Android 6.0 之前(SDK <= 23)
data/system/packages.xml 管理所有权限,且默认granted.
<xml version...?>
<packages>
<version.../>
<version.../>
<permission-trees />
<permissions>
<item name="string" package="string" protection="int" />
......
<item name="string" package="string" protection="int" />
</permissions>
<package name="string" codePath="string" nativeLibraryPath="string"...>
<sigs count="int">
<cert index="int" key="string" />
</sigs>
<perms>
<item name="权限名android.permission.XXX" granted="boolean" flags="0|1" />
......
<item name... />
<proper-signint-keyset indentifier="int" />
</package>
......
<package>......</package>
<shared-user name="string" userId="long">
<sign...>
<cert... />
</sign>
<perms>...<item.../>...</perms>
</shared-user>
<keyset-settings version="1">
<keys>
<public-key indentifier="int" value="string" />
......
</keys>
<keysets>
<keyset indentifier="int">
<key-id indentifier="int" />
</keyset>
<keyset>......</keyset>
</keysets>
<lastIssuedKeyId value="int" />
<lastIssuedKeyId value="int" />
</keyset-settings>
</packages>
Android 6.0 之后(SDK > 23)
data/system/packages.xml 管理普通权限,且默认granted.
data/system/users/0/runtime-permissions.xml 管理运行时权限,未requestPermissions()不会有对应app的pkg标签。
<?xml ... ?>
<runtime-permissions fingerprint="string">
<pkg name="packageName">
<item name="permissionName" granted="true|false" flags="int" />
<item>......</item>
</pkg>
<pkg>......</pkg>
<shared-user name="string">
<item>......</item>
</shared-user>
</runtime-permissions>
非系统app,未授权时,granted="false",flags="1",反之为true和0
修改runtime-permissions.xml后需重启,设置里面才会更改(原因暂不知,以后知道了再来补充)。
网友评论