关于Android 权限管理的几点认识

作为Android的应用开发者,对于android的权限机制总是感觉很奇怪,为什么要有权限这个东西?为什么要在AndroidManifest里面写uses-permission 这样东西?以前一直困惑,但是用着没什么问题也就认了,没去好好深究过,这回就来好好看下吧。

        原来在设备上有这么个文件/system/etc/permissions/platform.xml 打开来看

    <permission name="android.permission.INTERNET" >
        <group gid="inet" />
    </permission>

    <permission name="android.permission.CAMERA" >
        <group gid="camera" />
    </permission>

    <permission name="android.permission.READ_LOGS" >
        <group gid="log" />
    </permission>

    <permission name="android.permission.READ_EXTERNAL_STORAGE" >
        <group gid="sdcard_r" />
    </permission>

    <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
        <group gid="sdcard_rw" />
    </permission>

    <permission name="android.permission.WRITE_MEDIA_STORAGE" >
        <group gid="media_rw" />
    </permission>

是这样的内容,很眼熟吧,这不就是在应用的AndroidManifest里面用到的use-permission吗?

下面的gid 看起来也很眼熟吧,sdcard_rw这个最为常见,对,就是sdcard上的文件的组

drwxrwxr-x system   sdcard_rw          2013-02-23 08:45 baidu
所以根据经验猜测,莫非这个xml就是权限与组的对应关系? 只要apk申明了这个权限就会通过这个xml文件找到对应的要加入的组里。有种恍然大悟的感觉,原来android的权限管理还是linux的权限管理的变种,万变不离其宗啊!

验证猜测是否正确的方法就是--看代码:通过查找谁用到了这个文件很容易就发现 是PackageManagerService在解析它,果然是将permission和gid关联起来。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值