Android App拥有system权限
16lz
2021-01-23
Android App拥有system权限
在有些Android板子上,app需要拥有system权限,才能访问硬件资源。
而app拥有system权限的方法很简单,只需要修改AndroidManifest.xml文件,添加共享系统进程属性:
android:sharedUserId="android.uid.system"android:sharedUserId="android.uid.shared"android:sharedUserId="android.media"
但这时候App无法直接安装到目标板子上,会提示签名信息不对,所以需要对apk进行系统签名。
系统签名
系统签名的方法有很多种
- 把App放到Android源码中编译,需要修改Android.mk文件,而且,App源码是普通(Eclipse)格式。
- 手动签名,需要signapk.jar,签名命令:java -jar signapk.jar ……
- 使用keytool-importkeypair,将签名信息导入到keystore中,然后使用xx.jks对apk进行签名。
因为我们目前一般使用Android Studio开发调试App,而第一种和第二种,开发调试就很麻烦。所以我们采用第三种,使用工具将签名信息导入到keystore中,利用Android Studio对apk进行签名。
相关文件:
platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks、signature.sh
platform.x509.pem、platform.pk8从目标板子的Android源码中获得
keytool-importkeypair下载
demo.jks通过Android Studio生成,或者自己原有的即可
signature.sh编写如下
#!/bin/sh# 转换平台签名命令./keytool-importkeypair -k demo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias demo# demo.jks : 签名文件# 123456 : 签名文件密码# platform.pk8、platform.x509.pem : 系统签名文件# demo : 签名文件别名
运行
如下操作需要在Linux环境中。
$ sudo chmod a+x signature.sh$ ./signature.sh
将重新生成的demo.jks放到相对目录下面,用Android Studio进行签名即可。
如果想要更加省事,可以配置builde.gradle
在android区域下(与defaultConfig同级)添加配置:
signingConfigs { release { storeFile file("../signature/demo.jks") storePassword '123456' keyAlias 'demo' keyPassword '123456' } debug { storeFile file("../signature/demo.jks") storePassword '123456' keyAlias 'demo' keyPassword '123456' }}
参考:https://www.jianshu.com/p/47265c8899b5
更多相关文章
- 系统签名apk--转
- android socket 配置文件
- Android学习笔记之mainfest文件中android属性
- android 下载文件注意事项
- android wifi子系统
- Android内核开发:图解Android系统的启动过程
- Android framework系统手势
- mainfest文件中android属性