下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android中APK簽名工具之jarsigner和apksigner詳解
一.工具介紹jarsigner是JDK提供的針對(duì)jar包簽名的通用工具,
位于JDK/bin/jarsigner.exeapksigner是Google官方提供的針對(duì)Androidapk簽名及驗(yàn)證的專用工具,
位于AndroidSDK/build-tools/SDK版本/apksigner.bat不管是apk包,還是jar包,本質(zhì)都是zip格式的壓縮包,所以它們的簽名過(guò)程都差不多(僅限V1簽名),
以上兩個(gè)工具都可以對(duì)Androidapk包進(jìn)行簽名.1.V1和V2簽名的區(qū)別在AndroidStudio中點(diǎn)擊菜單Build->Generatesignedapk...打包簽名過(guò)程中,
可以看到兩種簽名選項(xiàng)V1(JarSignature)
V2(FullAPKSignature),
剛開(kāi)始升級(jí)AS看到這個(gè)懵了,既然是APKSignature,就放心偷懶選了V2,結(jié)果安裝失?????無(wú)奈,只能查資料...從Android7.0開(kāi)始,谷歌增加新簽名方案V2Scheme(APKSignature);
但Android7.0以下版本,只能用舊簽名方案V1scheme(JARsigning)V1簽名:
V2簽名:
V2簽名優(yōu)點(diǎn)很明顯:
注意:apksigner工具默認(rèn)同時(shí)使用V1和V2簽名,以兼容Android7.0以下版本2.zipalign和V2簽名位于AndroidSDK/build-tools/SDK版本/zipalign.exe
zipalign是對(duì)zip包對(duì)齊的工具,使APK包內(nèi)未壓縮的數(shù)據(jù)有序排列對(duì)齊,從而減少APP運(yùn)行時(shí)內(nèi)存消耗
zipalign可以在V1簽名后執(zhí)行
但zipalign不能在V2簽名后執(zhí)行,只能在V2簽名之前執(zhí)行?。。《?簽名步驟1.生成密鑰對(duì)(已有密鑰庫(kù),可忽略)Eclipse或AndroidStudio在Debug時(shí),對(duì)App簽名都會(huì)使用一個(gè)默認(rèn)的密鑰庫(kù):
1.生成密鑰對(duì)
進(jìn)入JDK/bin,輸入命令
keytool-genkeypair-keystore密鑰庫(kù)名-alias密鑰別名-validity天數(shù)-keyalgRSA
參數(shù):
-genkeypair
生成一條密鑰對(duì)(由私鑰和公鑰組成)
-keystore
密鑰庫(kù)名字以及存儲(chǔ)位置(默認(rèn)當(dāng)前目錄)
-alias
密鑰對(duì)的別名(密鑰庫(kù)可以存在多個(gè)密鑰對(duì),用于區(qū)分不同密鑰對(duì))
-validity
密鑰對(duì)的有效期(單位:天)
-keyalg
生成密鑰對(duì)的算法(常用RSA/DSA,DSA只用于簽名,默認(rèn)采用DSA)
-delete
刪除一條密鑰
-genkeypair
生成一條密鑰對(duì)(由私鑰和公鑰組成)
-keystore
密鑰庫(kù)名字以及存儲(chǔ)位置(默認(rèn)當(dāng)前目錄)
-alias
密鑰對(duì)的別名(密鑰庫(kù)可以存在多個(gè)密鑰對(duì),用于區(qū)分不同密鑰對(duì))
-validity
密鑰對(duì)的有效期(單位:天)
-keyalg
生成密鑰對(duì)的算法(常用RSA/DSA,DSA只用于簽名,默認(rèn)采用DSA)
-delete
刪除一條密鑰
提示:可重復(fù)使用此條命令,在同一密鑰庫(kù)中創(chuàng)建多條密鑰對(duì)
例如:
在debug.keystore中新增一對(duì)密鑰,別名是release
2.查看密鑰庫(kù)
進(jìn)入JDK/bin,輸入命令
keytool-list-v-keystore密鑰庫(kù)名
參數(shù):
-list查看密鑰列表
-v
查看密鑰詳情
-list查看密鑰列表
-v
查看密鑰詳情
例如:
現(xiàn)在debug.keystore密鑰庫(kù)中有兩對(duì)密鑰,別名分別是androiddebugkeyrelease2.簽名1.方法一(jarsigner,只支持V1簽名)
進(jìn)入JDK/bin,輸入命令
jarsigner-keystore密鑰庫(kù)名xxx.apk密鑰別名
從JDK7開(kāi)始,jarsigner默認(rèn)算法是SHA256,但Android4.2以下不支持該算法,
所以需要修改算法,添加參數(shù)-digestalgSHA1-sigalgSHA1withRSA
jarsigner-keystore密鑰庫(kù)名-digestalgSHA1-sigalgSHA1withRSAxxx.apk密鑰別名
參數(shù):
-digestalg
摘要算法
-sigalg
簽名算法
-digestalg
摘要算法
-sigalg
簽名算法
例如:
用JDK7及以上jarsigner簽名,不支持Android4.2以下
用JDK7及以上jarsigner簽名,兼容Android4.2以下
2.方法二(apksigner,默認(rèn)同時(shí)使用V1和V2簽名)
進(jìn)入AndroidSDK/build-tools/SDK版本,輸入命令
apksignersign--ks密鑰庫(kù)名--ks-key-alias密鑰別名xxx.apk
若密鑰庫(kù)中有多個(gè)密鑰對(duì),則必須指定密鑰別名
apksignersign--ks密鑰庫(kù)名--ks-key-alias密鑰別名xxx.apk
禁用V2簽名
參數(shù):
--ks-key-alias
密鑰別名,若密鑰庫(kù)有一個(gè)密鑰對(duì),則可省略,反之必選
--v1-signing-enabled是否開(kāi)啟V1簽名,默認(rèn)開(kāi)啟
--v2-signing-enabled是否開(kāi)啟V2簽名,默認(rèn)開(kāi)啟
--ks-key-alias
密鑰別名,若密鑰庫(kù)有一個(gè)密鑰對(duì),則可省略,反之必選
--v1-signing-enabled是否開(kāi)啟V1簽名,默認(rèn)開(kāi)啟
--v2-signing-enabled是否開(kāi)啟V2簽名,默認(rèn)開(kāi)啟
例如:
在debug.keystore密鑰庫(kù)只有一個(gè)密鑰對(duì)
在debug.keystore密鑰庫(kù)中有多個(gè)密鑰對(duì),所以必須指定密鑰別名
3.簽名驗(yàn)證1.方法一(keytool,只支持V1簽名校驗(yàn))
進(jìn)入JDK/bin,輸入命令
參數(shù):
-printcert
打印證書內(nèi)容
-jarfile<filename>
已簽名的jar文件或apk文件
-printcert
打印證書內(nèi)容
-jarfile<filename>
已簽名的jar文件或apk文件
2.方法二(apksigner,支持V1和V2簽名校驗(yàn))
進(jìn)入AndroidSDK/build-tools/SDK版本,輸入命令
參數(shù):
-v,--verbose顯示詳情(顯示是否使用V1和V2簽名)
--print-certs顯示簽名證書信息
-v,--verbose顯示詳情(顯示是否使用V1和V2簽名)
--print-certs顯示簽名證書信息
例如:
Verifies
Verifiedusingv1scheme(JARsigning):true
Verifiedusingv2scheme(APKSignatureSchemev2):true
N
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘭州科技職業(yè)學(xué)院《循證護(hù)理實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西科技師范大學(xué)《商務(wù)智能與數(shù)據(jù)挖掘Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 吉首大學(xué)《輕量化平臺(tái)開(kāi)發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 【物理】重力 同步練習(xí)+2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 黑龍江幼兒師范高等??茖W(xué)?!董h(huán)境3S技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶郵電大學(xué)《公體戶外運(yùn)動(dòng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中央音樂(lè)學(xué)院《中醫(yī)大健康》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江農(nóng)林大學(xué)暨陽(yáng)學(xué)院《汽車電氣設(shè)備》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州食品工程職業(yè)學(xué)院《德國(guó)史專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)2024-2025學(xué)年度勞動(dòng)技能大賽方案
- AQ 1029-2019 煤礦安全監(jiān)控系統(tǒng)及檢測(cè)儀器使用管理規(guī)范
- 太陽(yáng)能驅(qū)動(dòng)的污水處理技術(shù)研究與應(yīng)用
- 未成年旅游免責(zé)協(xié)議書
- 預(yù)防保健科主任競(jìng)聘課件
- 團(tuán)隊(duì)成員介紹
- 水泵行業(yè)銷售人員工作匯報(bào)
- 《流感科普宣教》課件
- 離職分析報(bào)告
- 春節(jié)家庭用電安全提示
- 醫(yī)療糾紛預(yù)防和處理?xiàng)l例通用課件
- 廚邦醬油推廣方案
評(píng)論
0/150
提交評(píng)論