源码
7.1
build\target\product\security
README
development\tools
make_key
简介
系统编译过程涉及对app签名,或者重新签名,亦或者对系统升级包签名。签名文件的私钥和证书制作采用openSSL方案。我们常用的签名文件如platform,这是本文章的重点介绍对象,由此可以拓展其他类型。
问题
1.怎么制作platform.pk8和platform.x509.pem?
1.查看README
build\target\product\security
README
2.执行脚本,生成platform
development/tools/make_key platform '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
3.详细介绍'/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'代表意思
C ---> Country Name (2 letter code)
ST ---> State or Province Name (full name)
L ---> Locality Name (eg, city)
O ---> Organization Name (eg, company)
OU ---> Organizational Unit Name (eg, section)
CN ---> Common Name (eg, your name or your server’s hostname)
emailAddress ---> Contact email address
例如可以自定义
'/C=ZH/ST=GUANGDONG/L=SHENZHEN/O=GalanzOS/OU=GalanzOS IOT/CN=GalanzOS IOT/emailAddress=galanz@galanz.com'
2.怎么通过platform生成Android Studio可用的jks签名文件?
1.原理主要运行openssl和keytool工具生成对应的密钥,实现方案可用采用开源的项目(https://github.com/getfatday/keytool-importkeypair)
2.这里我们主要讲解开源项目的运用
keytool-importkeypair -k ~/.android/galanzos.jks -p galanzos -pk8 platform.pk8 -cert platform.x509.pem -alias galanzos
-k jks生成的路径
-p 签名密码
-pk8 签名私钥。例如platform.pk8
-cert 签名证书。例如platform.x509.pem
-alias jks的别名
3.系统怎么更改platform涉及的签名文件?
最原始和安全的有效方法,替代build\target\product\security中platform.pk8/platform.x509.pem/platform.pem
注意platform.pem的生成规则,可用查看README的方案:
openssl pkcs8 -inform DER -nocrypt -in testkey.pk8 -out testkey.pem
4怎么查看jks以及apk的签名信息?
查看jks证书信息
keytool -list -v -keystore xxx.jks
查看apk的签名信息
keytool -printcert -jarfile xxx.apk
5.系统的releasekey怎么创建导入?
1.创建自己的releasekey
2.mk中引入,例如:
PRODUCT_DEFAULT_DEV_CERTIFICATE := build/target/product/security/galanzos/releasekey
参考学习
https://source.android.com/devices/tech/ota/sign_builds.html
https://github.com/getfatday/keytool-importkeypair
网友评论