- 參考連接
- 工具用到的是Android-Crack-Tool
1. 重新簽名apk椭迎, apksigner,默認(rèn)同時(shí)使用V1和V2簽名
進(jìn)入Android SDK/build-tools/SDK版本, 輸入命令apksigner sign --ks 密鑰庫(kù)名 --ks-key-alias 密鑰別名 xxx.apk
若密鑰庫(kù)中有多個(gè)密鑰對(duì),則必須指定密鑰別名apksigner sign --ks 密鑰庫(kù)名 --ks-key-alias 密鑰別名 xxx.apk
禁用V2簽名:
apksigner sign --v2-signing-enabled false --ks 密鑰庫(kù)名 xxx.apk
參數(shù):
--ks-key-alias 密鑰別名,若密鑰庫(kù)有一個(gè)密鑰對(duì),則可省略,反之必選
--v1-signing-enabled 是否開啟V1簽名,默認(rèn)開啟
--v2-signing-enabled 是否開啟V2簽名,默認(rèn)開啟
例如:
在debug.keystore密鑰庫(kù)只有一個(gè)密鑰對(duì):
apksigner sign --ks debug.keystore MyApp.apk
在debug.keystore密鑰庫(kù)中有多個(gè)密鑰對(duì),所以必須指定密鑰別名
apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk
1. 簽名驗(yàn)證
1.方法一(keytool,只支持V1簽名校驗(yàn))
進(jìn)入JDK/bin, 輸入命令
keytool -printcert -jarfile MyApp.apk (顯示簽名證書信息)
參數(shù):
-printcert 打印證書內(nèi)容
-jarfile <filename> 已簽名的jar文件 或apk文件
2.方法二(apksigner,支持V1和V2簽名校驗(yàn))
進(jìn)入Android SDK/build-tools/SDK版本(如果配置了Android SDK環(huán)境變量可以直接根目錄用), 輸入命令
apksigner verify -v --print-certs xxx.apk
參數(shù):
-v, --verbose 顯示詳情(顯示是否使用V1和V2簽名)
--print-certs 顯示簽名證書信息
簽名方式
- 查看apk簽名信息
切換到你安裝的Android sdk目錄下的build-tools中市袖,輸入 apksigner verify -v [apk的路徑], 下面這種是只有v1簽名五嫂,沒有v2簽名
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): false
- 利用apksigner 對(duì)apk進(jìn)行簽名
java -jar apksigner.jar sign //執(zhí)行簽名操作
--ks 你的jks路徑 //jks簽名證書路徑
--ks-key-alias 你的alias //生成jks時(shí)指定的alias
--ks-pass pass:你的密碼 //KeyStore密碼
--key-pass pass:你的密碼 //簽署者的密碼,即生成jks時(shí)指定alias對(duì)應(yīng)的密碼
--out output.apk //輸出路徑
input.apk //被簽名的apk
java -jar apksigner.jar sign --ks /Users/***/Documents/work/keystore/test.keystore --ks-key-alias testkey --ks-pass pass:test123321 --key-pass pass:test123321 --out a_dangame_release_sign.apk input.apk
apksigner sign --ks /Users/***/Documents/work/keystore/test.keystore --ks-key-alias testkey --ks-pass pass:test123321 --key-pass pass:test123321 --out a_dangame_release_sign.apk input.apk