Android 4.4 KitKat版本中,位于/system/app目录下的系统应用如何获得系统权限?

4

我是Jaemoon。

我的系统应用程序位于/system/app,一直运行良好,直到Android 4.3 Jelly Bean版本。但在Android 4.4 KitKat版本中出现了一些安全问题。

换句话说,我的系统应用程序需要一些权限,例如android.permission.WRITE_APN_SETTINGS和android.permission.CONNECTIVITY_INTERNAL,在Jelly Bean版本中表现良好,但从KitKat开始,出现了以下安全问题。我不明白为什么我的系统应用程序在Jelly Bean中表现良好,但从KitKat开始出现了安全问题。

我怀疑KitKat需要在某些脚本文件中进行新的设置以获取系统权限。有人能帮忙或指导吗?

---------------------------------------------------------------------
java.lang.SecurityException: No permission to write APN settings: Neither user 10146 nor current process has android.permission.WRITE_APN_SETTINGS.
...
---------------------------------------------------------------------
java.lang.SecurityException: ConnectivityService: Neither user 10097 nor current process has android.permission.CONNECTIVITY_INTERNAL.
---------------------------------------------------------------------

Thanks in advance..

3个回答

14
在Android 4.4版本中,只有位于/system/priv-app目录下的应用程序具有"system" level permission权限。谷歌这样做是为了让像三星这样的制造商更好地控制所具有的权限。 因此,管理型应用程序放在/system/priv-app 中,游戏、免费应用和其他垃圾应用则放在/system/app中。感谢!

请问您能详细解释一下“捆绑应用程序”这个术语吗?是否有任何网络参考资料可以解释什么是捆绑应用程序以及捆绑应用程序与管理应用程序之间的区别?谢谢。 - Jake
1
从Android 8.0开始,将应用程序放入/system/priv-app已经不够了。实现者必须在/etc/permissions目录中的系统配置XML文件中显式地将特权应用程序列入白名单。未在这些XML文件中显式列出的应用程序将不被授予特权权限。 - Vinayak Bevinakatti

7
在4.4版本中,请使用/system/priv-app

当我尝试使用jspurlock的评论中提到的/system/priv-app时,我的系统应用程序表现良好,在Android 4.4 KitKat中没有安全异常,感谢jspurlock。 - Jaemoon Hwang
亲爱的 jspurlock,你能告诉我为什么在Android 4.4中创建了 /system/priv-app,并且 /system/app 和 /system/priv-app 之间的区别是什么吗? - Jaemoon Hwang
3
@jaemoon.hwang 如果您感兴趣,我可以找出从system/app到priv-app迁移的提交消息和逻辑。https://dev59.com/bGIj5IYBdhLWcg3wzIFo#20104400 - Andrew T.

2
现在它将进入priv-app文件夹。在kitkat之前,系统分区中的所有应用都具有“system”级别的权限。现在只有在priv-app中的应用才能获得系统权限。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接