美文网首页
Kevin Learn Android: Android 系统签

Kevin Learn Android: Android 系统签

作者: Kevin_小飞象 | 来源:发表于2022-01-06 13:47 被阅读0次
每日一图.jpg

前言

在实际开发中,为保证设备正常运行。在使用 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 传送门

步骤

  1. 将 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。这个名字,可以随便取,但是你自己一定要记住。
  1. 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>
  1. 添加 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

相关文章

网友评论

      本文标题:Kevin Learn Android: Android 系统签

      本文链接:https://www.haomeiwen.com/subject/hiazvktx.html