Android 逆向打包apks闪退

使用bundletool打包的时候遇到的一个问题

  • 在使用bundltool转换成apks进行测试的时候一直在闪退,日志如下 Din't find class 排查之后发现问题是缺少dex文件

  • 将打包的apk和aab分别进行解包查看 发现是aab缺少dex文件 导致由aab转换的apks也缺少dex文件

  • 确定好问题之后查找为什么出现问题,发现在apk转换成aab的时候 出现重复文件的问题 查看日志发现在assets文件之中多出一个文件 注意:assets文件中的东西如果删除的时候没有删除干净 在你打包的时候会生成一个多余的dex文件 这样就会导致apk转换aab的时候有重复导致报错,无法继续打包下面的smali文件

  • 删除掉assets中的这个文件和外部的文件转换成apks之后测试成功

  • 这个文件夹 我这边存放的是facebook的sdk 上述方法也只是解决问题的其中一种方法 如遇到同样的问题 可以去尝试看看是不是工具的问题 使用的是aapt 还是aapt2 官网链接:https://developer.android.com/build/building-cmdline?hl=zh-cn#bundletool-build

  • 常用命令

 解包:apktool d a.apk -o file       
 打包:apktool b file -o a.apk
全局更换:Apkreplace -p oldname newname
apk转aab:buildaab  a.apk --sign=release.keystore --pwd=zxcvbnm --output=bundle
自定义签名:keytool -genkeypair -v -keystore your_keystore_filename.keystore -keyalg RSA -keysize 2048 -validity 3650 -alias your_alias_name
删除已经存在的apk并且重新打包生成: rm -rf a_*.apk && rm -rf ping/build && apktool b ping/ --use-aapt2 -o a.apk  && zipalign -v 4 a.apk a_align.apk && apksigner sign --ks ping.keystore --ks-pass pass:123456 --out a_align_sign.apk a_align.apk && adb install -r a_align_sign.apk