如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的权限管理的变种,万变不离其宗啊!

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

版权声明:本文博客原创文章。博客,未经同意,不得转载。

最新文章

  1. Java调用批处理或可执行文件
  2. iOS 直播-实现后台录音并推流
  3. BestCoder 2nd Anniversary
  4. VMware-workstation-full-11.0.0-2305329&amp;VMware-player-7.0.0-2305329
  5. 利用decorator和descriptor进行数据缓存
  6. Readonly和disabled的区别 display:none和visible:hidden的区别
  7. jquery动画效果---animate()--滚屏
  8. 2、JPA的HelloWorld
  9. DataGridView控件的使用---添加行
  10. 框架使用的技术主要是SpringMVC 在此基础上进行扩展
  11. Mysql加密方式
  12. jdbc连接数据库的步骤
  13. PAT 1057
  14. 把elipse非maven的Struts2+Spring+Ibatis项目导入Idea中
  15. sql server 查询时会锁表吗?
  16. 聊一聊啥都不会的我自学Linux系统的历程
  17. SVN上传下载项目
  18. MPU6050
  19. 国外IOS UI指南
  20. 微信emoji表情编码 、MySQL 存储 emoji 表情符号字符集

热门文章

  1. umlの实现图
  2. 通过 Jersey Http请求头,Http响应头,客户端 API 调用 REST 风格的 Web 服务
  3. redis加入到Windows 服务
  4. Knockout应用开发指南 第三章:绑定语法(1)
  5. java性能缓慢
  6. 13、Cocos2dx 3.0三,找一个小游戏开发3.0中间Director :郝梦主,一统江湖
  7. 辛星分析html中间name和id 差额
  8. python之字符串的分割和拼接
  9. J2EE请求和响应—Servlet
  10. Oracle SQL Lesson (8) - 使用集合操作符(Union,Intersect,Minus)