前言:我们在做系统级的app开发时,往往会在AndroidManifest.xml文件中添加:android:sharedUserId=”android.uid.system”以获取系统级的权限,如果你正在使用Android Studio进行开发,编译生成的apk会因为签名问题无法安装,如果每次通过手动签名的方式安装,那将是无比痛苦的,根本无法调试开发
解决方案:在AS中集成系统签名
一、准备工作
- 在github上下载工具
keytool-importkeypair点击下载 - Android证书文件准备
文件路径:Android/build/target/product/security,包括platform.pk8和platform.x509.pem
二、步骤
1.生成keystore文件
- 将keytool-importkeypair、platform.pk8和platform.x509.pem文件放在同一个目录下,执行如下命令,会生成platform.keystore文件:
./keytool-importkeypair -k assistant.keystore -p alibaba -pk8 platform.pk8 -cert platform.x509.pem -alias system
- -p 表示新生成的keystore的密码是什么,这里为alibaba
- -pk8 表示要导入的pk8文件的名称,可以包括路径,pk8文件用来保存private key的,是个私钥文件。
- -cert 表示要导入的证书文件,和pk8文件在同一个目录,pem这种文件就是一个X.509的数字证书,里面有用户的公钥等信息,是用来解密的,这种文 件格式里面不仅可以存储数字证书,还能存各种key。
- -alias 表示给生成的assistant.keystore取一个别名,这个名字只有我们在签名的时候才用的到,这里我们生成的文件名是assistant。这个名字,可以随便取,但是你自己一定要记住。
需要注意的是:命令只能在linux环境下使用,执行完命令后就生成了自带系统签名的assistant.keystore
2,配置signingConfigs
signingConfigs {
debug {
storeFile file("./tools/assistant.keystore")
storePassword 'alibaba'
keyAlias 'system'
keyPassword 'alibaba'
v1SigningEnabled true
v2SigningEnabled true
}
release {
storeFile file("./tools/assistant.keystore")
storePassword 'alibaba'
keyAlias 'system'
keyPassword 'alibaba'
v1SigningEnabled true
v2SigningEnabled true
}
}
附件: