Android は APK を逆コンパイルして変更し、再パッケージ化します

        Apktoolは、Apk を逆コンパイルするためのサードパーティ ツールで、リソースを逆コンパイルし、変更後に Apk を再生成できます。

        注: apktool は Java1.8 に依存します。java -version を使用して、1.8 以降であるかどうかを確認してください。

1. apktool.jarを使用して逆コンパイルおよび解凍します。

コンパイルする必要がある apk と apktool.jar を同じフォルダーに置きます

cmd ターミナルで、このディレクトリに移動し、次のコマンドを入力します。

#
# test.apk: 表示反编译的apk
# out: 表示反编译后资源存放目录
#
java -jar apktool.jar d -f test.apk -o out

実行後、現在のディレクトリに out フォルダーが生成され、逆コンパイルされたリソース ファイルが保存されます。

2.逆コンパイルされたAPK情報を変更する

これで、情報を変更できるようになります。アプリケーションのバージョン番号を変更するには、 apktool.yml を変更するだけです。apktool.yml ファイルで versionCode と versionName を見つけ、対応する値を変更して保存します。

アプリケーション名を変更するには、res/values/strings.xmlファイル内のapp_name属性に対応する値を変更するだけです。

アプリケーションのアイコンを変更するには、res/mipmap-xxx ディレクトリ内の対応するアイコンを置き換えるだけです。

パッケージ名の変更には複数の場所の変更が必要です。最も変更が難しいのは、Java コードに対応する smali フォルダーです。com.demo.test を com.demo1.test1 に変更すると仮定すると、次の内容を変更する必要があります。

  •    AndroidManifest.xml 内のすべての com.demo.test を com.demo1.test1 に置き換えます。
  •    smali/com/demo/test ディレクトリの名前が smali/com/demo1/test1 に変更されます。
  •    smali ディレクトリ内のすべてのファイルを調べ、ファイル内のすべての com.demo.test を com.demo1.test1 に置き換えます。
  •    smali ディレクトリ内のすべてのファイルをスキャンし、ファイル内のすべての com/demo/test を com/demo1/test1 に置き換えます。

3: 変更したファイルをapkファイルに再コンパイルします

 次に、次のコマンドを使用して、out フォルダーを apk ファイルに再コンパイルします。このコマンドでは、modify.apk になります。

#
# modify.apk: 新生成的apk文件(未签名合对齐)
# out: 表示将out文件夹编译成apk
#
java -jar apktool.jar b -o modify.apk out

4: 新しいapkファイルに再署名し、メモリを調整します 

署名にはjarsignerツールが使用されます。jarsigner は、JDK によって提供される jar パッケージに署名するための一般的なツールです (jdk/bin/ ディレクトリにあります)。

署名用の署名ファイル test.keystore を現在のフォルダーに置き、次のコマンドを使用して APK に署名します

#
# test.keystore: 给apk签名用的签名文件
# 123456:签名文件的密码
# modify_signed.apk: 签名后生成的apk文件
# modify.apk: 指定需要签名的apk文件
# testalias: 签名文件的别名
#
jarsigner -verbose -keystore test.keystore -storepass 123456 -signedjar modify_signed.apk modify.apk testalias

zipalignツールはメモリの調整に使用されます。zipalign は、APK パッケージ内の非圧縮データが整然と配置されるように、zip パッケージを調整するツールです (AndroidSDK/build-tools/SDK version/ ディレクトリにあります) 実行時のアプリのメモリ消費量を削減する

zipalign コピーを現在のフォルダーに置き、次のコマンドを使用して APK をメモリ調整します。

#
# 对apk进行4字节对齐
#  
# modify_signed.apk: 需要内存对齐的apk文件
# modify_signed_aligned.apk: 对齐后生成的apk文件
#
zipalign -v 4 modify_signed.apk modify_signed_aligned.apk

 最終的に生成されたmodify_signed_aligned.apkが、最終的に使用するapkファイルです。

おすすめ

転載: blog.csdn.net/jxfcwys/article/details/126933003