最近、特定のproductFlavorsのみの依存関係を追加する方法に関するガイドを公開しました。 我々は必要な手順を実装した後、我々は最終的なことを確認したかったです。apkは、実際にはもう不要なクラスが含まれていません。 この記事では、どのクラスとリソースがapkにあるかを確認する方法を紹介します。注:このガイドは、あなた自身のapkを逆コンパイルするために設計されており、他の開発者のハードワークではありません。 したがって、コードの難読化をリバースエンジニアリングまたは回避するための手順は含まれていませんでした。P>
準備:ツールのインストール
Android apkは基本的にzip形式のディレクトリで、いくつかの生のリソース(画像、レイアウトファイ. とclasses.dex
ファイル。 このファイルには、すべての実際のコードが含まれており、私たちに最も興味があります。 必要なすべてのツールをダウンロードしましょう:
- apkを解凍する必要があります。 お使いのオペレーティングシステムの組み込み機能を使用するか、7-Zipのようなお気に入りの(un)アーカイバをインストールすることができます。
classes.dex
.jar
に戻すには、dex2jarツールをダウンロードする必要があります。最後に、.jar
ファイルを人間の目で読み取り可能にするには、JD-Guiをダウンロードして実行します。
あなたのコードを取り戻す
さて、今では実際の作業を行う時間です。 Apkファイルを作業するディレクトリにコピーします。 お好みのツールを使用してapkを解凍し、いくつかのサブディレクトリといくつかのファイルを持つディレクトリを取得する必要があります。 p>
AndroidManifest.xml
res
classes.dex
dex2jar
ツールに切り替えて、新しい端末を開きます。Mac OSを使用している場合は、sh d2j-dex2jar.sh -f -o output.jar your_app_input.apk
を実行します。 Windowsユーザーは、.bat
.jar
.jar
JD-GUI
.jar
ファイルを開きます。
apkにあるすべてのパッケージとクラスを参照できます。 コードは削除されたバージョンであり、IDEに表示されているコメントや冗長な構造は含まれていません。 これは、アプリのコンパイル済みの最小化です。 それにもかかわらず、それはあなたにアプリの基本について学ぶのに十分な情報を与えるはずです。 たとえば、アプリにadmobライブラリに関連するパッケージがないことを確認するのに役立ちました。
その他のオプション
クイック逆コンパイルが必要な場合は、次のオンラインツールを使用できますwww.decompileandroid.com/.
より高度な逆コンパイルの目的のために、apktoolを見てみることができます。