カテゴリ(モバイル)

Apktoolを使ってapkファイルの展開、再構築をする

Apktoolを使ってapkファイルをデコード、エンコードする


Apktool

Apktool - A tool for reverse engineering Android apk files
http://ibotpeaches.github.io/Apktool/

Apktoolはapkファイルの展開、再構築をするツールです。
apkファイルは実はzipファイルなんですが、構築する際に中のデータが暗号化されます。なので単にzipファイルとして解凍するだけでは中に含まれる内容が読めないようになっています。

apkファイルの構成
  AndroidManifest.xml
  META-INF(署名ファイル)
  res(画像等のリソース)
  classes.dex(プログラム)
  resources.arsc(言語等のリソース)

そこでApktoolを使ってapkファイルを復号化しつつ展開することで内容が分かるようになり、書き換えもできるようになります。

準備するもの

  1. JDK7
  2. Android SDK
  3. ↑この2つはAndroid SDKを導入しておけば導入済み
  4. apktool.bat
  5. apktool_XXX.jar
  6. (7-Zip コマンドラインバージョン 7za.exe)
  7. 使用するAndroid端末のframework-res.apk(/system/framework/framework-res.apk)
  8. 展開、再構築したいapkファイル
例えばCドライブ直下にapktoolフォルダを作成して必要なファイルをコピーします。
ダウンロードしたapktool_XXX.jarはapktool.jarにリネームしておきます。
framework-res.apkは念のためframeworkフォルダごとadb pullコマンドで端末から取得しておきます。
C:\apktool>adb pull /system/framework framework

apktool━━━7za.exe
              ┣━apktool.bat
              ┣━apktool.jar
              ┣━framework
              ┗━XXXX.apk ←展開、再構築したいファイル

使い方

.odexファイルがある場合はまずこちら
初めに必要になるframeworkファイルをインストールしておきます。

C:\apktool>apktool if framework\framework-res.apk

apkファイルの展開
C:\apktool>apktool d XXXX.apk
コマンド実行後、XXXX.apkが展開されたファイルがXXXXフォルダ内に作成されます。
以上で展開は完了です。必要であればここで編集を行います。


apkファイルの再構築
C:\apktool>apktool b -c XXXX -o new.apk
成功すると再構築されたapkファイル(new.apk)が作成されます。
(※オプション-cによってアプリをapkに必要な元の署名ファイル(AndroidManifest.xmlとMETA-INF)がコピーされます。)

以上で再構築は完了です。書き換えたapkファイルを端末の/system/app/以下に書き戻すことで実行することができます。




5 件のコメント :

  1. C:\apktool>adb pull /system/framework/framework framework
    のところなのですが、
    /system/framework/frameworkではなく/system/frameworkだと思います。。

    返信削除
  2. がじぇったほりっく2016年8月14日 22:00

    指摘ありがとうございます。
    修正しておきました!!

    返信削除
  3. apktool b -c XXXX -o new.apk
    とすると、unknown¥nawes.properties(指定されたパスが見つかりません。)
    となるのですが、どうすれば良いのでしょうか?

    返信削除
  4. 初めまして。
    .apkファイルは暗号化された圧縮(.zip)ファイルとのことですが、PCゲームのファイルにも.apkファイルのものがあるんですが多分それとはまた違うんですよね?

    返信削除
  5. It was wonderful blog on the unpack and pack of apk
    this was amazing to read
    Argon is the first unified security solution protecting the integrity of
    your software throughout the entire DevOps pipeline
    We provide best-in-class security for every stage of your CI CD pipeline,
    ensuring maximum output without compromising speed for safety.
    Argon delivers the first unified security solution
    for your development infrastructure
    Argon identifies all tools, assets, users,
    and activities in your environment and
    provides a single view into your whole
    DevOps process. Through seamless
    integration, connect effortlessly to your
    existing CI/CD pipeline security tools and achieve maximum visibility.
    Argon prioritizes and automates
    remediation of alerts according to
    CICD security best practices and compliance
    rules, connecting security and DevOps
    teams and reducing the need for
    manual intervention

    返信削除

当ブログの内容は私感を含むため確実性は保証できかねます。