Android App拥有system权限

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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小康师兄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值