如何在APK中替换XML文件?

joh*_*odo 6 android apk

我想在每个下载的APK文件中包含其他(每用户)数据.换句话说,我在服务器上有一个现有的APK文件,并希望:

  • /res/user_info.xml用动态生成的XML文件替换现有APK中的文件
  • 在用户下载之前更新并重新签名整个包

更多信息:我知道可以使用aapt,apktool,jarsigner完成...问题是文档非常差,我无法找到(或开发)重新打包APK文件的工作技术.例如,无论我做什么,aapt总是将XML文件放在根路径(/)中.我也不确定需要更新哪些资源,以便APK文件再次有效.此外,/res/编译现有的XML文件- 我是否也需要使用我的XML文件?如果是的话,我该怎么做?如果不是,我应该把我的XML文件放进去/res/raw/吗?

问题:如何在APK中替换XML文件并重新打包?需要哪些步骤以及我使用哪些工具?

Akd*_*niz 5

在这种写作,你可以找到拆包和包装的APK文件的基本步骤。

基本上

= apktool.bat d -s sample.apk .\sample\仅用于解码apk的资源。(根据您的情况,无需解码源部分)

=添加/编辑/替换您所需的资源。

= apktool.bat b .\sample\ .\sample_edited.apk用于构建更改的apk。

=如果您还没有RSA 2048密钥,则生成一个apk来签名apk: keytool -genkey -v -keystore my.keystore -alias myandroidalias -keyalg RSA -keysize 2048 -validity 20000

=使用生成的密钥对apk进行签名 jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my.keystore .\sample_edited.apk -signedjar .\sample_signed.apk myandroidalias

=然后将签名的apk与4字节边界对齐zipalign.exe -v 4 .\sample_signed.apk .\sample_aligned.apkzipalign随android-sdk一起提供