- Kevin Learn Android: Android 系统签
- Kevin Learn Android:Android 手签板
- Kevin Learn Android:Android Prof
- Kevin Learn Android:MaterialCard
- Kevin Learn Android:TabLayout
- Kevin Learn Android:TextView
- Kevin Learn Android:FloatingActi
- Kevin Learn Android:TextInputLay
- Kevin Learn Android:HandlerThrea
- Kevin Learn Android:AsyncTask
前言
在实际开发中,为保证设备正常运行。在使用 Android Studio 开发 APP 的时候,可能会遇到需要使用系统权限,或者该应用是系统级别的App。简单点说:需要调用系统接口,或者需要系统权限,或者需要调用隐藏API,或者访问系统相关资源。请往下看。
准备
- 在应用程序 manifest.xml 文件根节点中加入属性:Android:sharedUserId=“android.uid.system”;
- 在 github 下载工具keytool-importkeypair 传送门
- Android 证书文件准备,路径:Android/build/target/product/security,包括 platform.pk8 和platform.x509.pem 传送门
步骤
- 将 keytool-importkeypair、platform.pk8 和 platform.x509.pem 文件放在同一个目录下,gitbash 执行如下命令,会生成 platform.jks 文件:
sh keytool-importkeypair -k ./platform.jks -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
命令说明:
- -p 表示新生成的 jks的密码是什么,这里为 android
- -pk8 表示要导入的 pk8 文件的名称,可以包括路径, pk8 文件用来保存 private key 的,是个私钥文件。
- -cert 表示要导入的证书文件,和 pk8 文件在同一个目录,pem 这个文件就是一个 X.509 的数字证书,里面有用户的公钥等信息,是用来解密的,这种文 件格式里面不仅可以存储数字证书,还能存各种 key。
- -alias 表示给生成的 platform.keystore 取一个别名,这个名字只有我们在签名的时候才用的到,这里我们生成的文件名是 platform。这个名字,可以随便取,但是你自己一定要记住。
- AndroidManifest.xml 添加:android:sharedUserId="android.uid.system"
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.gyq.teachlauncher"
android:sharedUserId="android.uid.system">
<!-- android:sharedUserId="android.uid.system"-->
...
</manifest>
-
添加 keystore ,打包 apk
第一步:点击 Build ,选择 Generate Signed Apk...
01.png
第二步:选择 APK
02.png
第三步:两个密码和 alias 就是之前用 keytool-importkeypair 命令生成的
03.png
第四步:选择打包的位置和选择版本,注意:下面的两个选项也要打勾,最后就打包成 apk了。build.gradle 会自动生成签名。
04.png
第五步:同一个目录下执行如下命令,生成系统签名的 apk
系统签名apk.png
java -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk teachlauncher.apk
参数说明:
- app-release.apk Android studio 打包的 apk
- teachlauncher.apk 执行上述命令后生成的 apk,此apk是系统签名的 apk。
第六步:添加 keystore 文件
06.png
注意
一定要版本要一致,要选 release 全部选 release,以上选项中不要去选 debug 的,不然一旦不一致,去安装,肯定会安装错误,错误之后必须把 app 的内容全部删除干净才能重新安装 apk ,这是一件很麻烦的事情。
-
修改 Build Types,选择 release ,因为我们之前打包就是选择的release,需要保持一致
07.png -
设置 build Variants,这个选项在 android studio 的左下角,选择release 之后,就可以运行了
08.png
网友评论