简介
在做cts测试的时候就会发现必须修改平台签名才能测试通过关于签名的问题.
这是因为平台默认的是test签名.网上大多说签名的都是app签名而非平台签名.
test签名这种类型的key只适用于开发阶段,而且这种秘钥是公开的,谁都可以使用。
当发布一款android产品,就需要另外给整个系统签个名,防止被别人盗用。
这种系统就是release版本的Android系统。
这里就简单记录下方法.
生成自己的平台release签名
要对Android系统进行签名,需要生成四种类型的key文件。
a)releasekey
b)media
c)shared
d)platform
我们就拿releasekey为例简单介绍下生成过程。
1)进入/android_src/development/tools目录。
/development/tools$ ls
apkcheck etc1tool hosttestlib jdwpspy makedict mkstubs
axl findunused idegen line_endings make_key monkeyrunner zoneinfo
2)使用make_key工具生成签名文件
development/tools$ sh make_key releasekey '/C=CN/ST=JiangSu/L=NanJing/O=Company/OU=Department/CN=YourName/emailAddress=YourE-mailAddress'
Enter password for 'releasekey' (blank for none; password will be visible): mypassword <------- 设置你的密码
creating platform.pk8 with password [mypassword]
Generating RSA private key, 2048 bit long modulus...............+++........................................................+++e is 3 (0x3)
这里要顺便介绍下make_key的参数。第一个参数是要生成key的名字,第二个参数是关于你公司的信息。
key的名字很好理解,就是前面提到的4中类型的key,公司信息的参数比较多,它们的含义如下:
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
这样就生成了一组releasekey,另外3种类型的key的生成方法也基本一样。
生成后的结果如下:
/development/tools$ ls
makedict media.pk8 mkstubs platform.pk8
releasekey.pk8 shared.pk8
make_key media.x509.pem platform.x509.pem
releasekey.x509.pem shared.x509.pem
.pk8是生成的私钥,而*.x509.pem是公钥,生成时两者是成对出现的.
修改android平台签名为刚才修改的签名文件
1.修改build/core/config.mk将:
ifdef PRODUCT_DEFAULT_DEV_CERTIFICATE
DEFAULT_SYSTEM_DEV_CERTIFICATE := $(PRODUCT_DEFAULT_DEV_CERTIFICATE)
else
DEFAULT_SYSTEM_DEV_CERTIFICATE := build/target/product/security/testkey
endif
修改为:
ifdef PRODUCT_DEFAULT_DEV_CERTIFICATE
DEFAULT_SYSTEM_DEV_CERTIFICATE := $(PRODUCT_DEFAULT_DEV_CERTIFICATE)
else
DEFAULT_SYSTEM_DEV_CERTIFICATE := build/target/product/security/XXXreleasekey
endif
2.将上面生成的签名文件放到 build/target/product/security/XXX/目录
3.修改external/sepolicy/keys.conf
原文:https://blog.csdn.net/tfslovexizi/article/details/53781494?utm_source=copy