プログラミング

apkパッケージの中のAndroidManifest.xmlを読む方法

Androidのapkパッケージファイルの中に含まれているAndroidManifest.xmlファイルは、バイナリ形式にエンコードされているため、そのままではテキストエディタ等で読むことができません。

以下の手順で、エンコードされているAndroidManifest.xmlをテキストエディタで人間が読める形にデコードすることができます。

解析したいアプリのapkパッケージを用意する

自分でいま作成しているアプリの場合は、わざわざこんな手順を踏まなくてもAndroidManifest.xmlを直接読めばよいので問題ないと思いますが、過去にリリース済みのソフトで、ソースコードも無くなってしまったようなアプリの場合は、以下のいずれかの方法でアプリパッケージを用意することができます。

アプリパッケージを用意する方法

  • Google Playからapkファイルを直接ダウンロードする
  • ASTROファイルマネージャ等で端末内のアプリをバックアップする

いずれの方法も、検索するとすぐに方法は見つかります。

パッケージを用意できたら、ファイルの拡張子(~.apk)を~.zipに変更して、パッケージを解凍してください。

こんな感じで、AndroidManifest.xmlが解凍できれば準備完了です。

AXMLPrinter2.jarをダウンロードする

以下のサイトから、AXMLPrinter2.jarをダウンロードします。

Google Code Archive - Long-term storage for Google Code Project Hosting.
Google Code Archive - Long-term storage for Google Code Project Hosting.

続きを見る

AndroidManifest.xmlをデコードする

コマンドプロンプト等で以下のコマンドを実行すると、AndroidManifest.xmlの内容をoutput.txtに保存できます。

> java -jar "[AXMLPrinter2.jarのパス]" "[AndroidManifest.xmlのパス]" > output.txt

javaのパスが通っていない場合は、Javaがインストールされているフォルダのjava.exeを直接実行してください。

自分の環境では以下にインストールされていました。

C:\Program Files\Java\jdk[Javaのバージョン]\bin

上記の場合は以下のようなコマンドを実行することになります。

> "C:\Program Files\Java\jdk[Javaのバージョン]\bin\java.exe" -jar "[AXMLPrinter2.jarのパス]" "[AndroidManifest.xmlのパス]" > output.txt

保存されたoutput.txtに、AndroidManifest.xmlの中身が出力されていれば成功です。

参考AXMLPrinter2.jarやAndroidManifest.xmlのパスを手軽に入力したい方は、こちらの記事もご覧ください。パスを簡単にコピーすることができるので、あとは貼り付けるだけで上記コマンドを実行できます。

ファイルのパスを簡単にコピーする方法

社内のメールなどで、「このファイル、共有フォルダのここに置きました。」とファイルのパスをコピペしたいとき、どうしていますか? 案外知らない人が多い、ファイルのパスのコピーの仕方をご紹介します。 エクス ...

続きを見る

 

-プログラミング