AndroidStudio 配置系统签名
一、准备工作
Android证书文件准备
文件路径:Android/build/target/product/security,包括platform.pk8和platform.x509.pem
二、步骤
1.生成keystore文件
将keytool-importkeypair、platform.pk8和platform.x509.pem文件放在同一个目录下,执行如下命令,会生成platform.keystore文件:
sh keytool-importkeypair -k ./platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
-p 表示新生成的keystore的密码是什么,这里为android
-pk8 表示要导入的pk8文件的名称,可以包括路径,pk8文件用来保存private key的,是个私钥文件。
-cert 表示要导入的证书文件,和pk8文件在同一个目录,pem这种文件就是一个X.509的数字证书,里面有用户的公钥等信息,是用来解密的,这种文 件格式里面不仅可以存储数字证书,还能存各种key。(有兴趣的可以点击此了解一下)
-alias 表示给生成的platform.keystore取一个别名,这个名字只有我们在签名的时候才用的到,这里我们生成的文件名是platform。这个名字,可以随便取,但是你自己一定要记住。
2.AndroidManifest.xml修改
AndroidManifest.xml中添加共享系统进程属性,如下:
android:sharedUserId="android.uid.system"
android:sharedUserId="android.uid.shared"
android:sharedUserId="android.media"
根据自己需求添加,因为我们测试验证用的是platform的,所以在xml中添加的是android:sharedUserId="android.uid.system"。
3.AndroidStudio添加keystore
添加keystore,打包apk
![381f3b854097](https://img0.php1.cn/3cdc5/6de3/61b/4397ae0e6f760108)
image
选择第二个选项,APK
![381f3b854097](https://img0.php1.cn/3cdc5/6de3/61b/4397ae0e6f760108)
image
两个密码和alias就是我们之前用keytool-importkeypair命令生成的,我这边使用的比较简单的密码“android”,alias为platform
![381f3b854097](https://img0.php1.cn/3cdc5/6de3/61b/4397ae0e6f760108)
image
选择打包的位置和选择版本,是debug还是release版本,我测试的时候选择的是release,下面的两个选项也要打勾,最后就打包成apk了。
![381f3b854097](https://img0.php1.cn/3cdc5/6de3/61b/4397ae0e6f760108)
image
如果要在run app的时候系统签名也可以用的话,还需要做一些措施,设置run app的时候的系统签名
![381f3b854097](https://img0.php1.cn/3cdc5/6de3/61b/4397ae0e6f760108)
image
添加keystore文件
![381f3b854097](https://img0.php1.cn/3cdc5/6de3/61b/4397ae0e6f760108)
image
修改Build Types,选择release,因为我们之前打包就是选择的release,需要保持一致。
![381f3b854097](https://img0.php1.cn/3cdc5/6de3/61b/4397ae0e6f760108)
image
设置build Variants,这个选项在android studio的左下角,选择release之后,就可以运行了。
![381f3b854097](https://img0.php1.cn/3cdc5/6de3/61b/4397ae0e6f760108)
image
三、注意点
一定要版本要一致,要选release全部选release,以上选项中不要去选debug的,不然一旦不一致,去安装,肯定会安装错误,错误之后必须把app的内容全部删除干净才能重新安装apk,这个是一件很麻烦的事情。