首页 > 代码库 > 关于Android 权限管理的几点认识
关于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关联起来。
关于Android 权限管理的几点认识
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。