Sponsored links

Android 10 の super.img を unpack してみる

先日作成した、Android 10 の「super.img」を unpack してみます。備忘を兼ねての記載としております。

XDAの開発者様方作成のツールを使用してunpack しました。この場をお借りして感謝です。Thanks!

super.img

super.img とは、簡単に説明するとAndroid 10 から採用された動的パーティションのことで、OTAアップデート時に、同パーティッション内にあるサプパーティッションを動的に変更(作成、サイズ変更、破棄)できるようになる。今までは、将来の OTA のために空き領域を残していたが、「super.img」を実装したデバイスではその必要がなくなる。
下記が、「supre.img」で、サポートされている動的パーティション

  • System
  • Vendor
  • Product
  • System Ext
  • ODM

source: google(概要実装)

下の画像のようなイメージでしょう。サブパーティッションである「system_a」「vendor_a」等のサイズを変更したり、「vendor_b」 を破棄したり云々。

メリットとしては、Firmware や ROM を作成するベンダー(デバイスメーカー)の作業が少し楽になる程度で、我々、スマホ使用者はまったくもってその恩恵を受けることはない。

Sponsored links

「super.img 」をunpack する方法

Linux (ubuntu)とWindowsとでの「unpack」方法がある。

Sponsored links

Linux (ubuntu)で super.img unpackする方法

PC 環境ですが、私は Ubuntu 18.04 LTS 64bit を使用しました。以外の、Debian(Linux Mint)でも動作すると思われます。Red Hat Linux(Fedora、Red Hat Enterprise Linux、CentOS)は動作未確認のため不明です。

必要なもの
  • unpack対象の super.img (こちらの記事で作成したものを使用しました)
  • ネットワーク環境(ファイルをダウンロードするため)
手順

XDA の「[GUIDE] OTA Tools LPUnpack」を参考に作業する。
こちらから「super_img_lpmake_lpunpack.zip」をダウンロードしてきて解凍する。

  1. 解凍してできたディレクトリ「lpmake-and-lpunpack」でターミナル(端末)を開く。
  2. 以下コマンドを実行して、superディレクトリを作成する。
    mkdir super
    
  3. lpunpackにu(所有者)とx(実行)の権限を付与する。
    chmod u+x lpunpack
  4. 同じくlpmakeにu(所有者)とx(実行)の権限を付与※今回は「lpmake」を
    使用しないのでこのコマンドなしでもよい。

    chmod u+x lpmake
  5. 先日こちらの記事で作成した「super.img」を「lpmake-and-lpunpack」ディレクトリ内にペーストする。
  6. 参考サイトに unpackの際は、
    ./lpunpack --slot=0 [path-to-super.img] [output_dir] をコマンドと記載のため適宜変更し以下コマンドを実施。
    ./lpunpack --slot=0 super.img /home/hoge/lpmake-and-lpunpack/super
  7. コマンド完了後、「super」ディレクトリを見ると「product_a.img」「system_a.img」「vendor_a.img」「product_b.img」「product_b.img」「product_b.img」
    が作成される。これで一旦unpack 作業完了。作成された.imgファイルの中身を見る方法についてはunpackしてできた system_a.img system_a.ext4 の中身を抽出する方法に記載。

Windowsで super.img unpackする方法

大まかな手順は、XDA の「[TOOL][WIN,LIN,AND,DARW] Super image unpack tool」を参考に、GitHubで共有されているsource を使用して、Ubuntu でコンパイルして.exe file を 作成し、そのファイルを windows 10 で使用する流れ。

Ubuntu での作業

Ubuntu 18.04 LTS 64bit を使用。下記、作業手順についてはコンパイラの導入手順などを除きざっくりで進める。

  1. まずは、GitHub からsource をダウンロードして、「makefile」の内容を適宜変更する。
    makefile のコンパイラのディレクトリを適宜変更する。
  2. make コマンドで以下を実行
    make superunpack.exe
  3. コマンドが完了したら、ディレクトリ内に「superunpack.exe」が完成しています。これをUSBメモリ等を使用して windows お好みのフォルダ内に保存する。

ここまでが「ubuntu」での作業。

Windows10での作業
  1. 先ほど作成した「superunpack.exe」をwindows のお好みのフォルダにペースト、画像のようにunpackしたい「super.img」を「superunpack.exe」にドラッグする。
  2. ドラッグすると、コマンドがつらつらと実行される。
  3. コマンドが完了したら、フォルダ内に「vendor_a.ext4」「system_a.ext4」「product_a.ext4」などが出来上がっている。

以上で、「super.img」をunpackする作業は完了。

unpackしてできた system_a.img system_a.ext4 の中身を抽出する方法

必要なもの

手順

  1. 対象のファイル「system_a.img」「system_a.ext4」なりを選択して右クリック、7-zip → 開くをクリック
  2. ファイルの中身が見れるので、抽出したいフォルダなりファイルを選択します。今回はsystem_a.ext4 の中にある systemフォルダを抽出する。
  3. 右クリックしてコピーをクリック
  4. 抽出したいフォルダを選択します(画像はsystemフォルダを選択してます)。「OK」を押下。
  5. systemフォルダが抽出したいフォルダ内に出来上がっている。
  6. system内部が見れます。apkファイル 等々見たい放題。

以上

(Visited 5,228 times, 2 visits today)
Pocket
LINEで送る
LinkedIn にシェア

Sponsored links

Leave a Comment