.apkファイルのコンテンツを抽出して表示する方法はありますか?
13 に答える
実際、apkファイルは単なるzipアーカイブであるため、ファイルの名前をに変更しtheappname.apk.zipて、任意のzipユーティリティ(7zipなど)で抽出することができます。
ファイルとリソースが抽出されandroidmanifest.xmlて表示できますが、ソースコードはパッケージに含まれていません。コンパイルされた.dexファイル( "Dalvik Executable")のみです。
解凍するとリソースが表示されますが、AndroidManifest.xmlはエンコードされます。apktoolとりわけ、このファイルをデコードすることもできます。
App.apkアプリケーションをフォルダにデコードするには、次Appを実行します
apktool decode App.apk App
apktool公式のAndroidSDKには含まれていませんが、ほとんどのパケットリポジトリを使用して利用できます。
zzosもあります。(完全開示:私はそれを書きました)。dex部分ではなく、実際のリソースを逆コンパイルするだけです(私が作成しなかったbaksmaliは、その部分を処理する優れた仕事をします)。
Zzosはapktoolほど知られていませんが、それによってより適切に処理されるAPKがいくつかあります(逆もまた同様です。これについては後で詳しく説明します)。ほとんどの場合、カスタムリソースタイプ(修飾子ではない)を含むAPKは、前回チェックしたときにapktoolによって処理されず、zzosによって処理されました。zzosがより適切に処理できるようにエスケープする場合もあります。
マイナス面として、zzos(現在のバージョン)をインストールするには、いくつかのサポートツールが必要です。これはperlで書かれており(Javaで書かれているAPKToolとは対照的に)、実際の逆コンパイルにはaaptを使用します。また、属性リソースはまだ逆コンパイルされていません(APKToolは逆コンパイルします)。
名前の意味は、Androidのリソースコンパイラである「aapt」を1文字下にシフトしたものです。
利用可能なツールがいくつかあります。
Aapt(Android SDKの一部です)
$ aapt dump badging MyApk.apk $ aapt dump permissions MyApk.apk $ aapt dump xmltree MyApk.apk-
$ java -jar apktool.jar -q decode -f MyApk.apk -o myOutputDir APKビューア
-
$ dex2jar/d2j-dex2jar.sh -f MyApk.apk -o myOutputDir/MyApk.jar -
$ ninjadroid MyApk.apk $ ninjadroid MyApk.apk --all --extract myOutputDir/ -
$ apkinfo MyApk.apk
apkファイルを開くための4つの提案された方法:
1.AndroidStudioでapkファイルを開く(写真、Javaコード、サイズ分析用)最良の方法
2.アプリケーションで開くwinRar、7zipなど(写真を見るだけで...)
3.ウェブサイトのjavadecompilersを使用します(写真およびJavaコード用)
4.APKツールを使用する(写真およびJavaコード用)
unzip my.apk
APK形式は上部のZIPファイルにすぎないため、これはLinuxコマンドラインからのトリックを実行します。
アンドロイドapk用のオンライン逆コンパイラがあります
http://www.decompileandroid.com/
ローカルマシンからapkをアップロードする
しばらくお待ちください
ソースコードをzip形式でダウンロードします。
解凍すると、すべてのリソースを正しく表示できますが、すべてのJavaファイルが正しく逆コンパイルされません。
詳細については、この回答をご覧ください
APKを抽出する理由によっては、APKアナライザーで十分な場合があります。ディレクトリとファイルサイズが表示されます。また、ドリルダウンできるパッケージごとにグループ化されたメソッド数も表示されます。
APKアナライザーはAndroidStudioに組み込まれています。トップメニューの[ビルド]->[APKの分析]からアクセスできます。
cordovaとangularjsを使用して開発されたハイブリッドアプリの場合、次のことができます。
1) .apkファイルの名前を.zipに変更します
。2)コンテンツを抽出/解凍します
。3)アセットフォルダーにwwwフォルダーがあります。
Jadx(https://github.com/skylot/jadx)を使用することもできます。このページに記載されているすべてのツールを使用しましたが、Jadxが最適であることがわかりました。マニフェストファイルおよびその他のクラスファイルは、このツールによって可能な限り読み取り可能な形式に変換されます。
PS- http: //www.javadecompilers.com/apkもjadxデコンパイラーを使用して同じ作業をオンラインで実行します。単一のapkをアーカイブ解除したい場合はもっと簡単です。
乾杯!
また、Androidデバイス自体の中にAPKファイルの内容を表示することもできます。これは、デバッグに大いに役立ちます。
アプリのマニフェストを含むすべてのファイルは、メールやクラウドなどを使用して表示および共有できます。ルート化は必要ありません。アプリは以下から入手できます:
https://play.google.com/store/apps/details?id=com.dasmic.android.apkpeek
免責事項:私はこのアプリの作者です。
APKスキャナーはPC上のAPKファイルの情報を表示することができます。
また、Androidデバイスからapkファイルをプルすることができます。
また、他のツールにリンクすることもできます(JADX-GUI、JD-GUI ...)

