编辑AndroidManifest.xml以启用调试后无法安装应用程序

问题描述

问题

我正在尝试编辑从Play商店下载的应用的AndroidManifest.xml,以启用调试功能

我可以始终对应用程序的smali文件进行更改,重新编译APK,对齐,签名并重新安装到手机上,而不会出现任何问题。但是,我无法对AndroidManifest.xml进行任何更改。

当我将application:debuggable="true"添加AndroidManifest.xml时,手机尝试在真实硬件上安装后抛出INSTALL_PARSE_Failed_UNEXPECTED_EXCEPTION

apktool的作者认为这是jarsigner中的错误,而不是apktool。 (请参阅https://github.com/iBotPeaches/Apktool/issues/2374

命令:

反编译为:

apktool d src/base.apk -f --force-manifest -r -o src/decoded

编译:

apktool b --force-all -o src/output/base-unaligned.apk src/decoded
zipalign -f 4 src/output/base-unaligned.apk src/output/modified-base.apk
jarsigner -sigalg SHA256withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore -storepass android src/output/base-unaligned.apk androiddebugkey

已安装:

adb install src/output/modified-base.apk

注意:它成功地反编译/编译。仅在尝试安装APK时才会显示错误

  • 尝试弄乱jarsigner使用的算法,因为其中一些算法会发出有关不安全的警告。我认为这并不重要。

  • 尝试克隆apktool并使用上游版本。

  • 尝试了这些构建命令的许多变体

我的假设:

通常,当使用apktool反编译APK时,AndroidManifest.xml实际上不是XML文件。相反,它采用一种称为AXML的二进制格式。

为了使apktool可以将AndroidManifest.xml从AXML反编译为普通XML,必须使用apktool选项--force-manifest对apk进行反编译。我认为问题在于再次编译APK时AndroidManifest.xml不会转换回AXML。我已经通过解压缩生成的APK并进行检查来验证了这一点。

我会亲自尝试将其转换为AXML,看看是否可以解决,但是将XML转换为AXML并非易事。可以使用aaptaapt2来做到这一点,但是这些并不是世界上最用户友好的程序。还有一个名为axml2xml的项目,但我无法使其正常工作。

问题

  • 是否有更简单的方法可以在逆向工程环境中对应用程序启用调试?

  • 我的假设可以被确认或破坏吗?

  • 此问题的原因是什么,如何调试或修复它?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)