【发布时间】:2017-12-24 06:11:27
【问题描述】:
我目前在对 .apk 进行双重签名时遇到了一些问题。 正常的工作流程总是:
zip -d FILE.apk META-INF/\*
jarsigner -verbose -keystore EXTERNAL.keystore FILE.apk EXTERNAL
jarsigner -verbose -keystore INTERNAL FILE.apk INTERNAL
zipalign -v 4 FILE.apk FILE_ALIGNED.apk
使用此原始方法时,我从 Google Play 商店收到错误消息:
您上传的 APK 签名无效(了解有关签名的更多信息)。来自 apksigner 的错误:错误(Jar 签名者 INTERNAL.RSA):JAR 签名 META-INF/INTERNAL.RSA 使用摘要算法 2.16.840.1.101.3.4.2.1 和签名算法 1.2.840.113549.1.1.1,API 不支持该算法级别 [[14, 17]]
由于我仅在尝试使用的“INTERNAL.RSA”中收到此算法错误:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore INTERNAL FILE.apk INTERNAL
这会导致另一个错误:
您上传的 APK 签名无效(了解有关签名的更多信息)。来自 apksigner 的错误:错误(Jar 签名者 EXTERNAL.DSA):META-INF/EXTERNAL.SF 中的 assets/www/assets/fonts/FONT.ttf 没有摘要
这只是错误的一个小sn-p,因为它列出了应用程序的每个资产都有相同的错误。感谢您提供有关如何解决此问题的所有帮助或提示。
干杯, 马吕斯
【问题讨论】:
-
关于第二个错误:(1)你是在原来的四行脚本中添加-sigalg和-digestalg参数并重试,还是在前两行之后运行修改后的jarsigner命令?文件? (2) 除了“在 META-INF/EXTERNAL.SF 中没有...的摘要”之外,Play 是否还有其他错误或警告
-
我尝试在新文件上使用 -sigalg 和 -digestalg 签名。我总是使用原始文件的副本对其进行签名,如果它不起作用,我将删除它。遗憾的是,除了“No digest for...Asset XY”之外,没有显示其他错误。
-
请添加 Play(或
apksigner verify)抱怨的 APK 中META-INF/EXTERNAL.SF的assets/www/assets/fonts/FONT.ttf部分的内容。
标签: java android algorithm apk jarsigner