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

来源:互联网 发布:python编程实践 编辑:程序博客网 时间:2024/04/29 02:02

作为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关联起来。






0 0