如何手动验证APK签名并比较签名密钥

时间:2020-04-29 10:28:21

标签: android linux shell command-line

假设我有两个.apk文件,据称它们来自同一位开发人员。 如何验证它们是否使用相同的密钥签名? 如何验证密钥是否属于开发人员?

正确的工具存在于哪个Android下载中? 我似乎没有找到它 commandlinetools-linux-6200805_latest.zip也不 android-studio-ide-192.6392135-linux.tar.gz

1 个答案:

答案 0 :(得分:1)

您需要apksigner工具来验证apk。

您有两种选择:


1)下载 SdkManger在Android Studio中的最新构建工具。 -参见说明https://developer.android.com/studio/intro/update#sdk-manager


2)手动下载: -转到https://developer.android.com/studio#downloads并选择命令行工具 适用于您的操作系统的软件包(例如,对于Mac OS,单击“ commandlinetools-mac-6200805_latest.zip”按钮)

  • 同意上述条款和条件并下载命令行工具

  • 解压命令行工具(您将收到名为“ tools”的文件夹)

  • 转到tools / bin文件夹

  • 执行cmd> ./sdkmanager --list --sdk_root=''

('sdk_root'参数可以是android sdk的路径,如果没有则可以为空)

  • 查找最后一个构建工具版本。就我而言: "build-tools;29.0.3 | 29.0.3 | Android SDK Build-Tools 29.0.3"

  • 执行cmd> ./sdkmanager "build-tools;29.0.3" --sdk_root=''

(将构建工具下载到当前文件夹)



下一步:

  • 何时拥有/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