framework中自定义系统级权限

转:http://blog.163.com/hero_213/blog/static/398912142014111922139370/

在android的framework源码中添加自定义的permission以便限制应用程序调用自定义的系统接口,

在frameworks/base/core/res/AndroidManifest.xml 中添加:

        android:label="@string/permlab_invoke_ivt_method"
        android:description="@string/permdesc_invoke_ivt_method"
        android:protectionLevel="dangerous" />

在frameworks/base/core/res/values/string.xml中添加
permlab_invoke_ivt_method 、permdesc_invoke_ivt_method的字符串资源

在被调用的接口处添加权限检验
public String getDeviceInfo() throws RemoteException 
{
  。。。。。。
        mContext.enforceCallingOrSelfPermission("android.permission.ENTERPRISE_SETTINGS", null);
。。。。。。

以下列出具体项目相关说明:
 

android:description :对权限的描述,一般是两句话,第一句话描述这个权限所针对的操作,第二句话告诉用户授予app这个权限会带来的后果
android:label: 对权限的一个简短描述
android:name :权限的唯一标识,一般都是使用 报名加权限名
android:permissionGroup: 权限所属权限组的名称
android:protectionLevel: 权限的等级,
normal 是最低的等级,声明次权限的app,系统会默认授予次权限,不会提示用户
dangerous  权限对应的操作有安全风险,系统在安装声明此类权限的app时会提示用户
signature  权限表明的操作只针对使用同一个证书签名的app开放
signatureOrSystem  与signature类似,只是增加了rom中自带的app的声明

android:name 属性是必须的,其他的可选,未写的系统会指定默认值

你可能感兴趣的:(android平台开发)