priv-app 系统应用权限

参考:https://source.android.com/devices/tech/config/perms-allowlist?hl=zh-cn

特权应用

特权应用是 priv-app 目录下的系统应用。

  • Android 8.1 and lower:priv-app位于/system 分区
  • Android 9 and higher:priv-app位于/system, /product, /vendor 分区

下文用partition统一指代 /system, /product, /vendor

特权应用权限XML文件

从 Android 8.0 开始,制造商必须在 partition/etc/permissions 目录下的privapp-permissions-xxxxxx.XML 文件中,明确每个特许app的权限。

privapp-permissions-xxxxxx.XML 文件只有与相应的app位于同一partition时才起作用。

例如,OnePlus5T的HydrogenOS 10.0.3中的/etc/permissions文件夹中包含如下文件:在这里插入图片描述
其中,com.incorporateapps.fakegps.fre不是系统原生的priv-app,而是我们使用systemizer这个magisk module放入system/priv-app,使其变为系统app的。

XML文件修改

我们将其内容修改为如下:

<?xml version="1.0" encoding="utf-8"?>
<!--
	Generated by App Systemizer (Terminal Emulator) by veez21
-->
<permissions>
    <privapp-permissions package="com.incorporateapps.fakegps.fre">
        <permission name="android.permission.ACCESS_COARSE_LOCATION"/>
        <permission name="android.permission.ACCESS_FINE_LOCATION"/>
        <permission name="android.permission.ACCESS_GPS"/>
        <permission name="android.permission.ACCESS_MOCK_LOCATION"/>
        <permission name="android.permission.ACCESS_NETWORK_STATE"/>
        <permission name="android.permission.FOREGROUND_SERVICE"/>
        <permission name="android.permission.INTERNET"/>
        <permission name="android.permission.VIBRATE"/>
        <permission name="android.permission.WAKE_LOCK"/>
        <permission name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
        <permission name="android.permission.INSTALL_LOCATION_PROVIDER"/>
        <permission name="android.permission.UPDATE_APP_OPS_STATS"/>
        <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
        <permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/> 
        <permission name="android.permission.ACCESS_MOCK_LOCATION"/>
    </privapp-permissions>
</permissions>

也就是加上了:

<permission name="android.permission.INSTALL_LOCATION_PROVIDER"/>
<permission name="android.permission.UPDATE_APP_OPS_STATS"/> 
<permission name="android.permission.WRITE_SECURE_SETTINGS"/> 
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/> 
<permission name="android.permission.ACCESS_MOCK_LOCATION"/> 
Logo

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

更多推荐