1. 程式人生 > >如何判斷 兩個不同包名的 Android 應用的 Apk 簽名是否一致

如何判斷 兩個不同包名的 Android 應用的 Apk 簽名是否一致


假定安裝了JDK,如果想查HelloWorld.apk所使用的簽名的fingerprint,可以這樣做:

1. 查詢apk裡的rsa檔案

(Windows)
> jar tf HelloWorld.apk |findstr RSA

(Linux)
$ jar tf HelloWorld.apk |grep RSA


META-INF/CERT.RSA

2. 從apk中解壓rsa檔案

jar xf HelloWorld.apk META-INF/CERT.RSA

3. 獲取簽名的fingerprints

keytool -printcert -file META-INF/CERT.RSA

...
Certificate fingerprints:
MD5: BC:6D:BD:6E:49:69:2A:57:A8:B8:28:89:04:3B:93:A8
SHA1: 0D:DF:76:F4:85:96:DF:17:C2:68:1D:3D:FF:9B:0F:D2:A1:CF:14:60
Signature algorithm name: SHA1withRSA
Version: 3
...

4. 清理工作,刪除rsa檔案

(Windows)
rmdir /S /Q META-INF

(Linux)
rm -rf META-INF


如果你想知道兩個apk是不是用的同一個簽名,那比一下它們簽名的MD5碼(或SHA1碼)是不是一樣就行了。