gpt4 book ai didi

java - 如何在 Android 中签署 AAR Artifact ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:28:36 26 4
gpt4 key购买 nike

我目前正在开发一个 .AAR android 库,我想用我自己的 key 对发布的 Artifact 进行签名,这样我就可以确定我是否发布了具有相同名称和功能的假 aar。

通知一:

我希望能够以编程方式检查我的库的真实性,即使是伪造的库也只是伪造了我的 aar 文件的部分功能。

通知2:

不会将此 aar 发布到 maven、sonatype 或任何其他公共(public)存储库中。因此,我将为典型的发布流程对其进行签名,例如对 apk 文件进行签名。

最佳答案

您可以使用jarsigner 为您的aar 库签名,您可以使用keytool 生成签名 key 。这两个工具都位于 Android Studio 附带的嵌入式 JDK 中。执行以下操作以签署您的图书馆。

签署

使用 key 对生成 keystore 。您需要提供证书字段:

keytool -genkeypair -alias aarsign -keypass mypassword -keystore aarsign.keystore -storepass mypassword -v

将生成的证书导出到 PEM 文件中:

keytool -exportcert -rfc -alias aarsign -file aarsign-public.pem -keystore aarsign.keystore -storepass mypassword -v

创建包含证书的 keystore :

keytool -importcert -alias aarsign -file aarsign-public.pem -keystore aarsign-public.keystore -storepass mypassword -v

签署图书馆:

jarsigner -keystore aarsign.keystore -storepass mypassword -keypass mypassword -signedjar lib-signed.aar -verbose lib.aar aarsign

验证

任何希望证明库真实性的人都需要以可靠的方式获取您的证书(或带有它的 keystore ),然后输入此命令:

jarsigner -keystore aarsign-public.keystore -storepass mypassword -verify -verbose -certs lib-signed.aar aarsign

它会给出消息

jar verified.

带有一些关于证书过期和签名时间戳的警告。您可以通过创建更严格的证书来消除这些警告。请参阅 keytooljarsigner 文档。

有两种方法可以查明您的库是否被篡改:摘要不匹配或证书不匹配。如果有人从不同的源代码或使用不同的资源生成 aar,则摘要将不匹配并且 jarsigner 将发出警告,例如:

jarsigner: java.lang.SecurityException: invalid SHA-256 signature file digest for <file>

而且,如果有人提供的证书不同于您自己的证书,jarsigner 将发出警告:

Warning: 
This jar contains entries whose certificate chain is not validated.
This jar contains signed entries which are not signed by the specified alias(es).
This jar contains signed entries that are not signed by alias in this keystore.

关于java - 如何在 Android 中签署 AAR Artifact ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43121499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com