将apk中打包的 AndroidManifest.xml 从二进制格式转换为普通的xml文件,编辑并重新编译回apk可接受的二进制文件。基本上我需要一个AXML文件的驱动程序
我正在开发一个APK注入项目。 我的目标是
我使用apktool来组装和反汇编apk。但是,apk工具仅适用于--no-res
选项,如果使用资源对apk进行反汇编,则无法构建它。 Here's a github issue describing this bug。
由于我在没有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是一个知识共享社区,而不是判断它的用途 - 我看到很多人在针对非法活动的指控中挑选其他人。
我所做的事情绝对合法,不会被用来利用任何人。
答案 0 :(得分:6)
安装可以在以下条件下给出解析错误,看看是否遇到了任何问题 -
您可以手动将apk设置为给定here。
答案 1 :(得分:0)
我发现使用纯文本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>
答案 2 :(得分:0)
我也遇到过类似的问题,但我在 Easy APK tool 上很幸运。
我打开了应用程序,然后导航到 options -> apktool
并选中了 don't decode classes.dex
。然后我能够成功地重新编译应用程序。
另一种选择是使用 aapt,正如 Ben 已经说过的那样,但它需要更多的知识/努力。