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进行系统签名。

系统签名

系统签名的方法有很多种

  1. 把App放到Android源码中编译,需要修改Android.mk文件,而且,App源码是普通(Eclipse)格式。
  2. 手动签名,需要signapk.jar,签名命令:java -jar signapk.jar ……
  3. 使用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

Android App拥有system权限相关推荐

  1. Android APP 默认赋予权限

    Android APP 默认赋予权限 首先在/vendor/xxxx/中创建etc/文件夹 在etc/中创建Android.bp和default-permissions-xxxx.xml文件 Andr ...

  2. Android App签名和权限

    签名简介 在Android系统中,所有安装到系统的应用程序都必有一个Android数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protecti ...

  3. android app没有读写权限设置,Android 6.0以上权限拒绝打开权限设置界面的解决方法...

    本人使用小米手机,打开qq或者微信的时候,某个权限拒绝的话,会提示你开启,点击开启会跳转到app的权限设置界面,当然了,这是国内系统深层定制的原因,也就是说这个界面原声的android没有的!这里以小 ...

  4. android 执行shell root权限,Android App 获取root权限后,执行shell命令

    背景: 做一个应用,需求是获取root权限后可以停用/启用某些应用,包括系统应用!停用的应用将不在设置-->应用中展示,大部分系统自带的桌面应该也不会再显示! 如果是用menifest.xml中 ...

  5. android app gps 定位权限,uniapp 打开[ios/安卓]GPS定位权限

    如何检测GPS有没有开启我是写在高德地图API接口中fail函数里的 openGps(){ let system = uni.getSystemInfoSync();// 获取系统信息 if (sys ...

  6. android app 获得root 权限管理,获得Android App的“root”权限

    首先:请注意,您只能使用su执行shell命令(=您只能以root身份使用shell命令,而不能使用java代码). 第二:不确定这是否适用于所有su应用程序,但这是我手机上su的帮助信息: Usag ...

  7. Android应用如何获取System权限和root权限

    Android应用获取System权限的方式有以下两种: 第一种: 需要在Android系统源码的环境下用make来编译: 1. 在应用程序的AndroidManifest.xml中的manifest ...

  8. Android APP代码执行历史漏洞与攻击面分析

    文章目录 前言 错误的反射调用 漏洞根源分析 漏洞防御建议 反射调用思考 CVE-2020-8913 漏洞根源分析 动态加载Dex "寄生兽"漏洞 TikTok APP漏洞 代码执 ...

  9. android第三方app改为系统app,加入system组,获取system权限

    用Androd studio 开发的app,编译出apk, 想获取system权限. 环境:编译好的apk, android 源码环境,有root权限和源码对应的开发板,我这里是user版本. 思路: ...

  10. Android ROOT System权限 设备管理器

    申明:本文部分内容为网络相关资料整理,并结合本人实际工作总结而成.请引用或者转载注明出处,对于文章内容有疑问请留言. 一.Android ROOT 1.ROOT原理 ROOT也叫系统管理员用户,该账户 ...

最新文章

  1. 拨号用户如何使用局域网上的LinuxSamba服务器
  2. VII python面向对象
  3. vs2015 C#打包程序为exe
  4. Json和XML之间的对比
  5. 编写下载服务器。 第四部分:有效地实现HEAD操作
  6. 在Java web中使用json
  7. Win10无法使用小娜搜索本地应用问题的解决方案
  8. Java 随心笔记7
  9. Python中的顺序表
  10. mysql front 视图_mysql 视图
  11. .Net CF 开发菜鸟笔记(PDA应用开发)
  12. 【python】习题 1-4周
  13. android smb同步,SMBsync安卓下最好的同步备份工具
  14. 翻转课堂融入计算机课,【计算机基础论文】大学计算机基础翻转课堂的构建思路(共3745字)...
  15. C++实现进程通信(管道pipe)
  16. 月薪9K程序员,写完这段代码就被辞退了
  17. 北京卓镭激光完成近亿元B轮融资,君联资本领投
  18. 服务器网卡支持25G,如何使用网卡连接10G/25G/40G服务器与交换机?
  19. 计算机械功的公式,机械功的计算
  20. 使用容联云通讯实现电话云呼叫功能

热门文章

  1. PTA C语言程序设计 单项链表
  2. 第七版辅导书和第六版 通信原理_通信原理(第七版)同步辅导及习题全解
  3. 信息系统项目管理师-学习笔记与复习资料
  4. [译] 人人都是设计师。我们可以的
  5. Vosviewer图谱相关指标详细解释1
  6. C++使用万能头文件报错
  7. pom.xml 导入ojdbc6报错
  8. idea java EclipseFormatter代码格式化模板
  9. 2022华为杯研究生数学建模竞赛E题思路解析
  10. java核心技术 第11版 集合