66b52468c121889b900d4956032f1009.png

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分组,自然身份是不同的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐