android平台修改默认签名

简介

在做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  
 

猜你喜欢

转载自blog.csdn.net/liangtianmeng/article/details/83063118