android 系统权限

1.System/app和system/priv-app文件夹下的权限区别

a)PermissionInfo.java系统分四个层级权限normaldangeroussignatruesignatureOrSystem

b)priv-app可以获得最高的signatureOrSystem权限

c)只有priv-app才能写WRITE_SECURE_SETTINGS权限

d)Android.mk中加LOCAL_PRIVILEGED_MODULE:=true

e)frameworks\base\core\res\AndroidManifest.xml

<!--Allowsanapplicationtoreadorwritethesecuresystemsettings.

<p>Notforusebythird-partyapplications.-->

<permissionandroid:name="android.permission.WRITE_SECURE_SETTINGS"

android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"

android:protectionLevel="signature|system|development"

android:label="@string/permlab_writeSecureSettings"

android:description="@string/permdesc_writeSecureSettings"/>

f)framework/base/data/etc/platform.xml

normal表示权限是低风险的,不会对系统、用户或其他应用程序造成危害。

dangerous表示权限是高风险的,系统将可能要求用户输入相关信息,才会授予此权限。

signature告诉Android,只有当应用程序所用数字签名与声明此权限的应用程序所有数字签名相同时,才能将权限授给它。

signatureOrSystem告诉Android,将权限授给具有相同数字签名的应用程序或Android包类,这一级别适用于非常特殊的情况,比如多个供应商需要通过系统影像共享功能时。

另外一个是android:permissionGroup属性,表示一个权限组。可以将权限放在一个组中,但对于自定义权限,应该避免设置此属性。如果确实希望设置此属性,可以使用以下属性代替:android.permission-group.SYSTEM_TOOLS。

相关推荐