Apk 簽名的那些事

Android不容許沒有簽名的apk安裝到手機上,應用的簽名相似於應用的身份證android

簽名更大的做用是爲了保護版權,若是應用的包名相同而簽名不一致,則沒法覆蓋安裝,必須先卸載再安裝工具

建立一個簽名

其中密鑰發佈組織單元密鑰發佈組織不必定要填寫,其餘的要填寫測試

爲了拯救糾正症患者,在這裏附上簽名的示例ui

在 Gradle 中配置簽名

android {

    signingConfigs {
        release {
            keyAlias '密鑰別稱'
            keyPassword '密鑰密碼'
            storeFile file('E:/MySign.jks')
            storePassword '密鑰庫密碼'
        }

        debug {
            keyAlias '密鑰別稱'
            keyPassword '密鑰密碼'
            storeFile file('E:/MySign.jks')
            storePassword '密鑰庫密碼'
        }
    }

    buildTypes {
        release {
            // 正式環境簽名
            signingConfig signingConfigs.release
        }

        debug {
            // 開發環境簽名
            signingConfig signingConfigs.debug
        }
    }
}
複製代碼

這裏重點說一下 debug 簽名,若是沒有指定簽名則默認使用系統自動生成的 debug 簽名,每臺電腦生成的簽名文件不會相同,由於我測試過用其餘同事的手機覆蓋安裝應用,卻提示要先卸載後才能安裝spa

獲取簽名的 MD五、SHA一、SHA256 值

打開 cmd 命令行,輸入如下指令:命令行

keytool -list -v -keystore 簽名文件地址
複製代碼

輸入密碼,在命令行窗口是看不到輸入的密碼,因此只管輸入以後回車便可debug

Android Debug的簽名文件在如下的路徑,密鑰庫密碼爲:androidcode

C:\Users\電腦當前用戶名\.android\debug.keystore
複製代碼

驗證apk簽名

在 cmd 命令行中輸入cdn

jarsigner -verify -verbose -certs apk文件地址
複製代碼

正確的簽名,證書到期日期爲約定有效期後的日期blog

X.509, CN=HJQ, L=guangdong, ST=shantou, C=CN
  [證書的有效期爲17-3-30 下午4:43至67-3-18 下午4:43]
  [CertPath 未驗證: Path does not chain with any of the trust anchors]

  s = 已驗證簽名
  m = 在清單中列出條目
  k = 在密鑰庫中至少找到了一個證書
  i = 在身份做用域內至少找到了一個證書

jar 已驗證。

警告:
此 jar 包含證書鏈未驗證的條目。
此 jar 包含的簽名沒有時間戳。若是沒有時間戳, 則在簽名者證書的到期日期 (2067-03-1
8) 或之後的任何撤銷日期以後, 用戶可能沒法驗證此 jar。
複製代碼

debug簽名信息,有效期大約爲30年

X.509, C=US, O=Android, CN=Android Debug
  [證書的有效期爲16-11-22 下午6:15至46-11-15 下午6:15]
  [CertPath 未驗證: Path does not chain with any of the trust anchors]

  s = 已驗證簽名
  m = 在清單中列出條目
  k = 在密鑰庫中至少找到了一個證書
  i = 在身份做用域內至少找到了一個證書

jar 已驗證。

警告:
此 jar 包含證書鏈未驗證的條目。
此 jar 包含的簽名沒有時間戳。若是沒有時間戳, 則在簽名者證書的到期日期 (2046-11-1
5) 或之後的任何撤銷日期以後, 用戶可能沒法驗證此 jar。
複製代碼

簽名不完整,未簽名或簽名錯誤

s = 已驗證簽名
  m = 在清單中列出條目
  k = 在密鑰庫中至少找到了一個證書
  i = 在身份做用域內至少找到了一個證書

jar 未簽名。(缺乏簽名或沒法解析簽名)
複製代碼

手動簽名

能夠用 360 提供的簽名工具進行簽名,能夠到 360 官網進行下載或者 QQ羣 78797078 中下載

相關文章
相關標籤/搜索