如何自定义平台签名以及默认使用
2016-12-21 10:45
597 查看
简介
在做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_CERTIFICATEDEFAULT_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[@RELEASE]
ENG : $DEFAULT_SYSTEM_DEV_CERTIFICATE/releasekey.x509.pem
USER : $DEFAULT_SYSTEM_DEV_CERTIFICATE/releasekey.x509.pem
USERDEBUG : $DEFAULT_SYSTEM_DEV_CERTIFICATE/releasekey.x509.pem
相关文章推荐
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- ABAP–如何在’REUSE_ALV_GRID_DISPLAY’使用自定义F4帮助,返回多个字段以及计算修改其他字段
- Andriod Studio debug.keystore(默认)和如何生成自定义的keystore 以及如何生成数字签名
- win2000,xp,2003 如何使用自定义,设置默认纸张
- 如何使用自定义的签名进行调试
- ABAP--如何在'REUSE_ALV_GRID_DISPLAY'使用自定义F4帮助,返回多个字段以及计算修改其他字段
- flume学习(七)、(八):如何使用event header中的key值以及自定义source
- Jquery-easyui的默认图标的使用,以及如何添加自己想要的图标
- Andriod Studio debug.keystore(默认)和如何生成自定义的keystore 以及如何生成数字签名
- log4c 如何使用,以及如何自定义Logout
- My.Ioc 代码示例——如何使用默认构造参数,以及如何覆盖默认构造参数
- 如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- 使用struts2中默认的拦截器以及自定义拦截器
- ABAP--如何在'REUSE_ALV_GRID_DISPLAY'使用自定义F4帮助,返回多个字段以及计算修改其他字段
- EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射
- 如何创建、使用以及解析自定义注解
- ABAP--如何在'REUSE_ALV_GRID_DISPLAY'使用自定义F4帮助,返回多个字段以及计算修改其他字段
- EF的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射