【Android】Android签名:pem和pk8转化为keystore,jks
Android簽名,pem和pk8轉(zhuǎn)化為jks
- Android簽名證書
- Android簽名JKS
- JKS簽名生成
- How to use
- 擴(kuò)展 jks 轉(zhuǎn)pem/pk8
Android簽名證書
- 前因
- 目前獲取系統(tǒng)權(quán)限的方法
- 我們對(duì)第一點(diǎn),做下記錄,那么會(huì)拿到廠商提供的以下兩個(gè)文件
platform.pk8 保存private key 加密
platform.x509.pem X.509證書 存儲(chǔ)數(shù)字證書,公鑰信息還能存各種key
- 但是這兩種文件不能直接進(jìn)行簽名,需要調(diào)用對(duì)App簽名
- 對(duì)于這種方式
需要先生成apk,輸入命令簽名,再使用adb安裝
調(diào)試 非常不方便,故想將pk8 和pem轉(zhuǎn)成通用的jks或者keystore的簽名
Note:
android一般除了使用jarsigner簽名,還有使用signapk 后者位于android源碼,前者位于jdk中。兩者使用的文件格式不同前者使用JKS,后者使用公鑰+私鑰是分開的
Android簽名JKS
- 準(zhǔn)備工作
- openssl安裝
1. 官網(wǎng),無Windows版本
2. 鏡像,有Windows版本
- 這里給大家排個(gè)坑
首先對(duì)應(yīng)好你的編譯APP的JDK版本,如果是JDK8,就下載1.1.1,
如果是高的版本就下載3.0.0,不然你的JDK8keytool識(shí)別不了
JKS簽名生成
主要分三步
jks
keytool -importkeystore -destkeystore platform.jks -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass [密碼] -alias [別名]keystore
keytool -importkeystore -destkeystore platform.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass [密碼] -alias [別名]- 在這里我遇到了一個(gè)小坑
keytool 錯(cuò)誤: java.io.IOException: parseAlgParameters failed: ObjectIdentifier() -- data isn't an object ID (tag = 48)
解決方案: 使用jdk16的keytool
How to use
- 項(xiàng)目使用jks
Example:
signingConfigs {signconfig {keyAlias 'platform'keyPassword 'android'storeFile file('../app/platform.jks')storePassword 'android'} }buildTypes {debug {signingConfig signingConfigs.signconfigminifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}release {signingConfig signingConfigs.signconfigminifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'} }- Bingo,現(xiàn)在Android Studio 調(diào)試安裝都是platform簽名后的apk
擴(kuò)展 jks 轉(zhuǎn)pem/pk8
主要分五步
dump的文件格式
Bag AttributesfriendlyName: [別名]localKeyID: 54 69 6D 65 20 31 35 37 31 38 39 30 30 31 35 30 30 30 Key Attributes: <No Attributes> -----BEGIN PRIVATE KEY----- .... -----END PRIVATE KEY----- Bag AttributesfriendlyName: [別名]localKeyID: 54 69 6D 65 20 31 35 37 31 38 39 30 30 31 35 30 30 30 subject=C = US, ST = California, L = Mountain View, O = Android, OU = Android, CN = Android, emailAddress = android@android.com issuer=C = US, ST = California, L = Mountain View, O = Android, OU = Android, CN = Android, emailAddress = android@android.com-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----dos命令不好實(shí)現(xiàn),建議采用bash
grep -zoe '-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----' tmp.rsa.pem>cert.x509.pemdos命令不好實(shí)現(xiàn),建議采用bash
grep -zoe '-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----' tmp.rsa.pem>private.rsa.pem- 至此已經(jīng)生成pem pk8 格式的兩個(gè)簽名文件
參考
Android簽名證書 keystore jks pem x509
pk8/x509.pem轉(zhuǎn)換為keystore
總結(jié)
以上是生活随笔為你收集整理的【Android】Android签名:pem和pk8转化为keystore,jks的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “约见”面试官系列之常见面试题第三十三篇
- 下一篇: Android 手机 超级终端命令解析