通過apksigner對apk進行v2簽名

通過apksigner對apk進行v2簽名

1 前言

在 Android 7.0 Nougat 中引入了全新的 APK Signature Scheme v2簽名方式, SDK提供的apksigner工具對已經打包好的apk進行v2簽名。

2 基本使用

Android官方文檔已經對apksigner的使用有比較詳細的解釋。下面說說實際的操作步驟:

2.1 ZipAlign

zip對齊,因爲APK包的本質是一個zip壓縮文檔,經過邊界對齊方式優化能使包內未壓縮的數據有序的排列,從而減少應用程序運行時的內存消耗 ,通過空間換時間的方式提高執行效率(zipalign後的apk包體積增大了100KB左右)。
打開cmd,把目錄切換到SDK的build-tools目錄下(例如 E:\SDK\build-tools\25.0.2\),執行:

.\zipalign.exe -v -p 4 input.apk output.apk
zipalign命令選項不多:
-f : 輸出文件覆蓋源文件
-v : 詳細的輸出log
-p : outfile.zip should use the same page alignment for all shared object files within infile.zip
-c : 檢查當前APK是否已經執行過Align優化。
另外上面的數字4是代表按照4字節(32位)邊界對齊。

2.2 apksigner

這個工具位於SDK目錄的build-tools目錄下。必須說明的是,v2簽名方式時在Android7.0後才推出的,所以只有版本>25的SDK\build-tools\中才能找到apksigner.jar。
打開cmd,把目錄切到SDK\build-tools\版本號\lib下(例如E:\SDK\build-tools\25.0.2\lib),執行:

java -jar apksigner.jar sign//執行簽名操作 
--ks //jks簽名證書路徑
--ks-key-alias 你的alias           //生成jks時指定的alias 
--ks-pass pass:你的密碼 //KeyStore密碼
--key-pass pass:你的密碼  //簽署者的密碼,即生成jks時指定alias對應的密碼
--out output.apk     //輸出路徑 
input.apk           //被簽名的apk

*.jks可以通過android studio 生成 ,可以對簽過過名的apk,修改某文件後再次簽名

apksigner.bat sign --ks test.jks 
--ks-key-alias key0 
--ks-pass pass:123456 
--key-pass pass:123456 
--out  123.apk snake.apk

3.安裝apk

adb install *.apk
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章