web-dev-qa-db-ja.com

Android環境のAndroidアプリケーションのapkファイルからアプリケーションまたはパッケージ情報を取得する方法

Android環境にインストールせずに、apkファイルからパッケージまたはアプリケーションに関する情報を取得することはできますか?

19
Alex

Apkファイルは、実際には別の名前の単なるZipアーカイブです。 x.apkの名前をx.Zipに変更します。xはファイルの名前で、任意のZipツールで開くことができます。それは、apkファイルでそれを見つけることができるかどうかについて、どのような情報を求めているかによります。あなたが探しているものがわかっていれば、アプリのアクセス権などの重要な情報がかなり読みやすい形式で格納されているAndroidManifest.xmlファイルにアクセスできると言えます。何を見つけたいですか? READMEか何かを探しているなら、ほとんど間違いなくそこにありません。

$ aapt dump badging <path-to-apk>
91
Paul Kavanagh

PackageManager クラスからこのメソッドを確認してください。

public PackageInfo getPackageArchiveInfo(String archiveFilePath, int flags)

パッケージアーカイブファイルで定義されたアプリケーションパッケージに関する全体的な情報を取得する

あなたに役立つかもしれません;)

22
Håvard Geithus

バイナリ形式からAndroidManifest.xmlを解凍して変換することは最良の方法ではありません(IMHO)

あなたはオプションがあるように振る舞います。あなたが持っているすべてがAPKであるならば、あなたはそうしません。唯一の解決策は、APKファイルだけの場合は、サムが指摘したことに基づいています。

もちろん、APKを入手している場所(Webサーバーなど)がどこであっても、APKと一緒に別のファイルでメタデータを公開できます。

2
CommonsWare