You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用apksigner将未签名APK用另一已签名APK的签名签名?

使用apksigner为A.apk应用B.apk相同签名的方法

核心前提

要完成这个操作,必须持有B.apk签名时使用的私钥文件(如.jks、.keystore、.p12),以及对应的密钥库密码、密钥别名、密钥密码。仅通过已签名的B.apk无法提取出私钥,因此没有这些核心信息的话,无法实现用相同签名为A.apk签名。

签名命令(拥有私钥时)

针对JKS/Keystore格式密钥

apksigner sign --ks /path/to/your/keystore.jks --ks-key-alias your-key-alias --out signed_A.apk A.apk

执行后会交互式提示输入密钥库密码和密钥密码;若两者相同,可添加参数跳过交互:

apksigner sign --ks /path/to/your/keystore.jks --ks-key-alias your-key-alias --ks-pass pass:your-store-password --key-pass pass:your-key-password --out signed_A.apk A.apk

针对PKCS#12格式密钥

如果私钥是.p12格式,需指定密钥类型:

apksigner sign --ks /path/to/your/key.p12 --ks-type PKCS12 --out signed_A.apk A.apk

同样可添加密码参数跳过交互:

apksigner sign --ks /path/to/your/key.p12 --ks-type PKCS12 --ks-pass pass:your-password --out signed_A.apk A.apk

验证签名一致性

签名完成后,可通过以下命令对比A.apk(签名后)与B.apk的签名信息,确认是否一致:

# 查看B.apk的签名证书信息
apksigner verify --print-certs B.apk
# 查看签名后A.apk的签名证书信息
apksigner verify --print-certs signed_A.apk

对比两次输出的证书指纹、公钥、颁发者等信息,完全匹配则说明签名一致。

内容的提问来源于stack exchange,提问作者Debesh Mohanty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:32:39