はじめに
ビルドされた apk の中の AndroidManifest.xml に書かれている内容を確認したい!ってことありますよね。
このマニフェストファイルは勿論ソースコードの中にもあるのですが、
- ソースコードが手元にない
- 意図通りにビルドされているか実物を確認したい
とかの理由で「apkの中の」ものを見たいこともあります。
(特に現在では Jenkins などの CI/CD ツールを使って自動的に、かつ dev/prod などの接続先や debug ビルド/release ビルドなどのバリエーション違いのバイナリが生成されることもあるので)
apk を単純に unzip してもマニフェストファイルは人間が読める形にはなっておらず困ったので、調べた内容を書いておきます。
前提条件
- apk ファイルが PC にあること
- Android Studio がインストールされていること※
※非開発者であっても adb コマンドを使っている人であればインストールされていることが多いかなと思います。
プロジェクトのインポートやビルドまでは難しくても、インストールするだけなら簡単です。
環境
- macOS : Ventura 13.4
- Android Studio : Giraffe 2022.3.1 Patch 3
aapt を使う方法
こちらのページを参考にしたのですが、自分の環境だと aapt の場所だけ違っていて、 build-tools の下にありました。
コマンドは上記ページ記載のもの(以下に引用)で大丈夫でした。
aapt dump xmltree hoge.apk AndroidManifest.xml > foo.txt
- Finder や Terminal で aapt を見つける
例:/Users/ユーザ名/Library/Android/sdk/build-tools/バージョン番号/aapt
- Terminal で aapt がある場所へ移動(cd)するか、aapt がある場所を PATH に追加しておく
- 上述の引用を参考に aapt コマンドを実行する(※apkファイル名やパス、出力するテキストファイル名は適宜変更する)
- 出力されたテキストファイル(上記例だと foo.txt)をテキストエディタで開けばOKです。
Android Studio 付属の APK Analyzer を使う方法
後から知ったのですが、こちらの方が読みやすいです…!
公式ページだと APK Analyzer の起動方法は下記ですが、非開発者の場合ローカルにソースコードやプロジェクトが無いこともありますよね。(その場合、[Editor][Project]ウィンドウや[Build]メニューが出てきません)
・ APK または App Bundle を Android Studio の [Editor] ウィンドウにドラッグします。
・ [Project] ウィンドウの [Project] ビューに切り替えて、デフォルトの build/output/apks/ ディレクトリにある APK をダブルクリックします。
・メニューバーで [Build] > [Analyze APK] を選択し、APK または App Bundle を選択します。
自分の場合、下記手順でも AndroidManifest.xml の内容を表示できました。
- Android Studio を起動する
- メニューバーの [File] > [Profile or Debug APK] を選択
- APKファイルを選択する
- ウィンドウの左サイドメニューのファイル一覧から AndroidManifest.xml をダブルクリックして開く
おわりに
昔似たようなシチュエーションで aapt を使ったような…という記憶はあったのですが、たまにしかやらないし mac も新しくなってるしで手こずりました。
一夜明けて調べ直してみたら Android Studio 便利やん…となったので、「ビルドなんてしないし adb コマンドも使わない」という人でもインストールしておくといいんじゃないかなと思いました! (adb も便利なのでオススメです)