假如我自己给framework中添加一个权限android.permission.TEST,于此同时我需要acquire权限android.permission.WAKE_LOCK, 但是现在不想显式的声明wake_lock权限,就想做一个类似于权限继承的东西,比如我只要声明了android.permission.TEST,就等于同时也声明了android.permission.WAKE_LOCK。目前我是修改framework,在PackagheManagerService.java中checkuripermission方法中实现的,如果已经包含了android.permission.TEST权限,并且正在申请android.permission.WAKE_LOCK,那么直接返回PERMISSION_GRANTED,允许。不知道有没有以xml配置的方式可以做一个类似权限继承的权限,或者嵌套的权限呢》?
比如在/framework/base/core/res/AndroidManifest.xml中或者/framework/base/data/etc/platform.xml配置一下啊什么的。

解决方案 »

  1.   

    framework对权限的判断实现在:
    frameworks/base/services/java/com/android/server/PackageManagerService.java
    frameworks/base/services/java/com/android/server/am/ActivityManagerService.java仿照实现如果android.permission.TEST,那么android.permission.WAKE_LOCK 
      

  2.   


    不好意思 仔细读了一下原来LZ要xml方式…… 
    /framework/base/core/res/AndroidManifest.xml仅仅是权限列表,并不能起任何判断并且添加处理的作用吧,还是framework修改判断权限的处理比较合理。