在没有jarsigner/apksigner或任何java工具的情况下为APK生成CERT.RSA



我目前正在尝试使用以下过程动态打包APK:

  • 当终端用户要求下载时,我在APK中添加了一个文件
  • 我在APK上签名(这是一直使用的同一个密钥(
  • 我交付APK

问题是,对于大型APK(500M+(来说,使用通用工具(apksigner、jarsigner(签署APK可能会很耗时

我的目标是更新META-INF数据,只生成新的CERT.RSA文件(如果我没有弄错的话,这是CERT.SF的编码(

我已经成功地找到了如何在META-INF目录中生成MANIFEST.MF和CERT.SF。我只是找不到从CERT.SF生成CERT.RSA的算法或任何openssl命令

有线索吗?

首先,确保您的minSdkVersion<24.如果你有24或以上,那么这些文件是不必要的,你只能使用apksig使用APK Signature v2方案进行签名,这将比签名快一个数量级。

现在,假设do需要v1签名并且想要手动生成它,我建议您查看JarSigner的OpenJDK实现。特别参见Block类:https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/sun/security/tools/JarSigner.java#L2221-L2344

这是*.RSA文件的内容。正如你所看到的,这是一些东西结合在一起的标志。如果您只使用RSA密钥,您可能会大大简化此代码,并根据您的工具对其进行调整。

相关内容

  • 没有找到相关文章

最新更新