Apkにパッケージ化されたAndroidManifest.xmlをバイナリ形式から通常のxmlファイルに逆コンパイルし、編集して、apkで受け入れられるバイナリファイルに再コンパイルします。基本的に、AXMLファイルのドライバーが必要です
APKインジェクションプロジェクトに取り組んでいます。私の目標は
私はapkの組み立てと分解にapktoolを使用しています。ただし、apkツールは--no-res
オプションでのみ機能します。apkがリソースで分解されると、ビルドできません。 これは、このバグを説明するgithubの問題です 。
Resフラグなしでapktool d --no-res app-debug.apk
を分解するので、生成されたAndroidマニフェストはバイナリ形式で提供されます。apktool
を使用してマニフェストを分解できますが、元に戻すことはできません。
私はどちらかをする必要があります:
apktool
を使用する方法を見つけるAndroidManifest.xml
をプレーンテキストバージョンに置き換えてビルドします。 apktool
がビルドされます。ただし、デバイスへのアプリのインストールは、「パッケージの解析中に問題が発生しました。解析エラー」で失敗します。apktool
の異なるバージョンの使用:v2.3.2
、v2.3.1
、v2.3.0
、v2.2.0
、v2.2.1
、v2.2.2
Stackoverflowは知識共有のためのコミュニティであり、それが何のために使用されているかを判断するものではありませんが、違法行為の非難を伴う同様の質問で他の人を選ぶ人がたくさんいます。
私がやっていることは完全に合法であり、誰かを悪用するために使用されることはありません。
プレーンテキストのandroiodマニフェストを使用してアプリケーションを再パッケージ化する唯一の信頼できる方法は、aapt
を直接使用して再パッケージ化することです。
aapt package -f -M ./AndroidManifest.xml -S res1/ -S res2/ ... -I Android.jar -F MyProject.apk.unaligned
Apkを作成するには、次のようにします。
aapt add -f MyProject.apk.unaligned classes.dex
コンパイルされたソースをパッケージに追加します。
次に、jarsignerを使用してパッケージに署名します。
jarsigner -storepass <keystore password> -keystore <keystore filename> MyProject.apk.unaligned <key name>
インストールにより、次の条件で解析エラーが発生する可能性があります。いずれかが満たされているかどうかを確認してください-
指定された here として手動でapkに署名できます。