Android11 Framework定制之打印系统所有权限

保存在设备上的 /data/system/packages.xml 中 。
开机读取流程为:
Settings class :
的 readLPw 到 PermissionSettings.readPermissions(parser), 最终存入 PermissionSettings 的 mPermissions 变量中 :

 /**
     * All of the permissions known to the system. The mapping is from permission
     * name to permission object.
     */
    @GuardedBy("mLock")
    final ArrayMap<String, BasePermission> mPermissions =
            new ArrayMap<String, BasePermission>();

所以我们可以在 PermissionSettings 定义一个方法来打印所有的权限,然后在 Settings 中来调用这个方法 。



    public void dumpAllPermissionsNames(PrintWriter pw){
        pw.println("size  "+ mPermissions.keySet().size());
for(String a:    mPermissions.keySet())
{
    pw.println(" "+a);
}
    }

下面这个方法加在 frameworks/base/services/core/java/com/android/server/pm/Settings.java中 ,然后加入 dump 系统 ,就可以打印了 。

 void dumpAbcd(PrintWriter pw) {
        mPermissions.dumpAllPermissionsNames(pw);
    }

比如我的是这样运行:

adb  shell dumpsys package abcd

打印后发现系统有622个权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值