apktoo反编译和重新生成apk

181 阅读1分钟

工具准备,下载好apktool ibotpeaches.github.io/Apktool/ zipaligin,以及签名文件mykey.jks 将下载好的apktool,要反编译的apk文件,mykey.jks 放到同一个文件apktest下

步骤1:

在apktest下执行终端命令,

 java -jar apktool_2.7.0.jar d -f demo.apk -o demo02

会生成反编译后的文件,可以修改应用图标,名称等, 检查下ManiFest文件中android:usesCleartextTraffic="true是否为true,要改成true

  • 1、针对 Android 6+,如果 extractNativeLibs 设置为 false 且 so 未压缩,将阻止您安装未对齐 APK,并提示:「Failure [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]」。旧版的安卓并不关心,总是提取本地库,即使未对齐也可以安装。
  • 2、google市场的要求不管是否对 so 文件做压缩,都要做zipalign对齐才能上传。
  • 3、从android studio 2.2 preview 2 和最新的构建工具开始,构建过程将自动存储未压缩的本机库,并在apk中对齐页面。不管是否对 so 进行压缩,都会做对齐的操作。*
  • 未添加该属性到 AndroidManifest.xml 中,即使用默认值时 会自动去压缩 so 文件(除非一些引入库是可能导致问题,如objectbox)

步骤2:生成新的demo_repackage1.apk

 java -jar apktool_2.7.0.jar b  -o demo_repackage1.apk demo02

步骤3:需要将新签名一起打进去 mysign.apk

 jarsigner -verbose -keystore mykey.jks -storepass 123456 -signedjar mysign.apk demo_repackage1.apk mykey

步骤4:zipalign生成新的apk modify_mysign.apk ps:如果不做这一步,记得在Manifest.xml添加

android:extractNativeLibs="true"

然后终端命令执行

 zipalign -v 4 mysign.apk modify_mysign.apk

最后安装

adb install  modify_mysign.apk

image.png