6

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

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

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

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

4

1 回答 1

5

在本文中,您可以找到解压和打包apk文件的基本步骤。

基本上;

=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

= 使用生成的密钥签署 apkjarsigner -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 一起提供

于 2012-11-08T22:54:19.637 回答