我想在每个下载的APK文件中包含其他(每用户)数据。换句话说,我在服务器上有一个现有的APK文件,并希望:
/res/user_info.xml
更多信息:我知道可以使用aapt,apktool,jarsigner完成...问题是文档很差,我无法找到(或开发)工作重新打包APK文件的技巧。例如,aapt
始终将XML文件放在根路径(/
)中,无论我做什么。我也不确定需要更新哪些资源,以便APK文件再次有效。此外,/res/
中的现有XML文件已编译 - 我是否也需要使用我的XML文件?如果是的话,我该怎么做?如果不是,我应该将我的XML文件放在/res/raw/
吗?
问题:如何在APK中替换XML文件并重新打包?需要哪些步骤以及我使用哪些工具?
答案 0 :(得分:4)
在这个writing中,您可以找到解压缩和打包apk文件的基本步骤。
Basicly;
=使用apktool.bat d -s sample.apk .\sample\
仅解码apk的资源。(在您的情况下,无需解码源部分)
=添加/编辑/替换您所需的资源。
=使用apktool.bat b .\sample\ .\sample_edited.apk
构建更改的apk。
=生成RSA 2048密钥以签署apk(如果您还没有):keytool -genkey -v -keystore my.keystore -alias myandroidalias -keyalg RSA -keysize 2048 -validity 20000
=使用生成的密钥jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my.keystore .\sample_edited.apk -signedjar .\sample_signed.apk myandroidalias
=并将带有4字节边界的签名apk对齐zipalign.exe -v 4 .\sample_signed.apk .\sample_aligned.apk
( zipalign附带android-sdk )