應用寶認領應用

【Android】命令行jarsigner簽字和解決找不到證書鏈錯誤

一、簽名失敗html

$jarsigner -verbose -keystore /Volumes/Study/resourcesLib/Qunero-achivements/AndroidApp/QuLordy-signed-key -signedjar ./signed_XiaomiVerify.apk ./XiaomiVerify.apk qulordy
輸入密鑰庫的口令短語: 
jarsigner: 找不到 qulordy 的證書鏈。qulordy 必須引用包含專用密鑰和相應的公共密鑰證書鏈的有效密鑰庫密鑰條目。

 

二、查看幫助算法

複製代碼

$jarsigner -h
用法:jarsigner [選項] jar 文件別名(key的別名)
       jarsigner -verify [選項] jar 文件

[-keystore <url>]           密鑰庫位置

[-storepass <口令>]         用於密鑰庫完整性的口令

[-storetype <類型>]         密鑰庫類型

[-keypass <口令>]           專用密鑰的口令(若是不一樣)

[-sigfile <文件>]           .SF/.DSA 文件的名稱

[-signedjar <文件>]         已簽名的 JAR 文件的名稱

[-digestalg <算法>]    摘要算法的名稱

[-sigalg <算法>]       簽名算法的名稱

[-verify]                   驗證已簽名的 JAR 文件

[-verbose]                  簽名/驗證時輸出詳細信息

[-certs]                    輸出詳細信息和驗證時顯示證書

[-tsa <url>]                時間戳機構的位置

[-tsacert <別名>]           時間戳機構的公共密鑰證書

[-altsigner <類>]           替代的簽名機制的類名

[-altsignerpath <路徑列表>] 替代的簽名機制的位置

[-internalsf]               在簽名塊內包含 .SF 文件

[-sectionsonly]             不計算整個清單的散列

[-protected]                密鑰庫已保護驗證路徑

[-providerName <名稱>]      提供者名稱

[-providerClass <類>        加密服務提供者的名稱
  [-providerArg <參數>]] ... 主類文件和構造函數參數

複製代碼

 

 

三、尋找簽名別名:eclipse

首先,在用eclipse進行導出的時候是成功的。因此嘗試從新導出應用能夠看到別名,以下個人是 'qulordy key' :ide

 

四、從新簽名:函數

複製代碼

$jarsigner -verbose -keystore /Volumes/Study/resourcesLib/Qunero-achivements/AndroidApp/QuLordy-signed-key -signedjar ./signed_XiaomiVerify.apk ./XiaomiVerify.apk 'qulordy key'
輸入密鑰庫的口令短語: 
   正在添加: META-INF/MANIFEST.MF
   正在添加: META-INF/QULORDY_.SF
   正在添加: META-INF/QULORDY_.RSA
  正在簽名: AndroidManifest.xml
  正在簽名: classes.dex
   正在添加: res/
   正在添加: res/drawable/
  正在簽名: res/drawable/icon.png
   正在添加: res/layout/
  正在簽名: res/layout/main.xml
  正在簽名: resources.arsc

 

在cmd進入jdk的bin目錄,而後執行如下命令:加密

 

jarsgner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [keystorePath] -singnedjar [apkOut] [apkln] [alias]url


ps:紅色英文不填的話,默認簽名算法採用「SHA256withRSA」,因此會致使360提示:」您的應用簽名算法採用「SHA256withRSA」,在部分4.2一下安卓版本的手機上不能安裝spa