【问题标题】:How to manually verify apk signatures and compare signing keys如何手动验证 apk 签名并比较签名密钥
【发布时间】:2020-04-29 10:28:21
【问题描述】:
假设我有两个 .apk 文件,据说来自同一个开发人员。
如何验证它们是否使用相同的密钥签名?
如何验证密钥是否属于开发者?
在哪个 Android 下载中存在正确的工具?
我似乎没有找到它
commandlinetools-linux-6200805_latest.zip 也不
android-studio-ide-192.6392135-linux.tar.gz
【问题讨论】:
标签:
android
linux
shell
command-line
【解决方案1】:
您需要 apksigner 工具来验证 apk。
您有两种选择:
1) 下载 Android Studio 中的 SdkManger 提供的最新构建工具。
- 见指令https://developer.android.com/studio/intro/update#sdk-manager
2) 手动下载:
- 前往https://developer.android.com/studio#downloads 并选择命令行工具
适用于您的操作系统的软件包(例如,单击 mac 操作系统的“commandlinetools-mac-6200805_latest.zip”按钮)
('sdk_root' 参数可以是 android sdk 的路径,如果没有则为空)
(将构建工具下载到当前文件夹)
后续步骤:
- 何时拥有 /build-tools/29.0.3/apksigner cmd 工具
- 执行cmd >
./apksigner verify -v --print-certs /Users/you/Desktop/my_app.apk
(我从包含 apksigner 文件的文件夹中执行 cmd)
- 您将收到如下信息:
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
Number of signers: 1
Signer #1 certificate DN: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Signer #1 certificate SHA-256 digest: f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83
Signer #1 certificate SHA-1 digest: 38918a453d07199354f8b19af05ec6562ced5788
Signer #1 certificate MD5 digest: cde9f6208d672b54b1dacc0b7029f5eb
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: 2b06490d2d24305c6a90dbf74cc42f50183d207d572f8079e5d92fb2c2a0cda1
Signer #1 public key SHA-1 digest: b2da9ef7ec0f4474117fb0cba4dca3b795c0eab7
Signer #1 public key MD5 digest: a90ce510a96aa09bee6bf8d9da9b258b