0

在 apk 中存储标志信息的位置在哪里?apk 文件是带有 .apk 扩展名的 zip 存档。我可以更改一些追索权还是会影响签名?

4

1 回答 1

5

使用下面的这种方法,您可以编辑资源,但您必须退出 apk,但也如下所示。此示例编辑图像资源,但这可以与任何资源一起使用

首先使用 android SDK 中的“aapt”工具列出资源:

$ANDROID/tools/aapt list file.apk

一旦我们找到需要更改的资源,我们使用“remove”和“add”来替换它们:

$ANDROID/tools/aapt remove file.apk res/drawable/file.png
$ANDROID/tools/aapt add file.apk res/drawable/file.png

然后我们必须删除旧的 APK 签名并用新的签名替换它。我们将生成一个伪造的自签名密钥来对 APK 进行签名:

$ openssl genrsa -out key.pem 1024
$ openssl req -new -key key.pem -out request.pem
$ openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem
$ openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

从 APK 中删除旧签名:

for f in `$ANDROID/tools/aapt list file.apk |grep "META-INF"` ; do
$ANDROID/tools/aapt remove file.apk $f
done

现在我们对 APK 进行签名,我使用 signapk.jar 来执行此操作:

$ java -jar signapk.jar certificate.pem key.pk8 file.apk file-signed.apk
于 2012-09-24T14:25:19.683 回答