android shareduserid 不起作用,关于AndroidManifest里面的sharedUserId的个人理解。
8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?在我个人的理解中,安卓基于安全性的问题会对apk有不同的分类,比如SEAndroid会將APK分为untrustedapp-platformapp-systemapp.在权限的控制上面也是systemapp > platformapp > untrustedapp.怎么让一个apk拥有platfrom权限首先.
8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
在我个人的理解中,安卓基于安全性的问题会对apk有不同的分类,比如SEAndroid会將APK分为untrustedapp-platformapp-systemapp.
在权限的控制上面也是systemapp > platformapp > untrustedapp.
怎么让一个apk拥有platfrom权限
首先我们平时自己编译出来的apk肯定是不具有platform权限的,那怎么让一个apk具有platform权限呢。
答案就是拥有platform的签名,在userdebug版里我们可以直接从下面的路径拿到系统签名然后签名:build/target/product/security/ platform.pk8、platform.x509.pem
然后找到signapk.jar进行签名,jar包路径为:out/host/linux-x86/framework/signapk.jar
命令如下:java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk
这样我们的apk就会被签上系统签名然后拥有platform的权限。
对于user版,我们拿不到platform的key的话则需要在rom编译的时候通过makefile指定预编译的apk为platformapp
这样在编译的时候就会给apk签platform的签名从而达到我们的需求。
到了这个时候,我们的apk就已经拥有了platform的权限了,可以做很多事情了。
怎么让一个apk拥有system权限
可有的时候权限还是不足以满足我们的需求,这个时候我们就需要升级我们的apk让他拥有system权限,那我们怎么让一个apk拥有system权限呢。
想让一个apk拥有system权限的前提是这个apk拥有platform的签名,然后我们需要做的是去manifest的根节点加上如下代码:android:sharedUserId=”android.uid.system”
这样做就可以拥有system权限。是不是很好奇这么写的作用是什么呢。
其实我们都知道android是基于linux的,在linux里每个user所在组的权限是不同的。我们这么写就是指定了我们的app在linux的用户组是system的group
所以在有了platform权限的前提下,我们身处system分组,自然身份是不同的。
更多推荐
所有评论(0)