Android具有system权限为什么不可以访问SDcard
来源:互联网 发布:农村淘宝服务中心电话 编辑:程序博客网 时间:2024/05/16 09:21
Android具有system权限为什么不可以访问SDcard
大家android系统app开发时候经常会用到android.uid.system这个uid,它就是代表我们写的app是属于系统app,当然这时候也要求我们要和系统有一样的签名才行。这时候app具有了系统权限可以进行一些系统api的调用,例如静默安装等。。。
但是如果我们app想去访问读写sdcard的时候却是没有权限,笔者当时就纳闷,为啥我是系统app居然还不能访问sdcard,这不是搞笑吗,普通app都可以去访问sdcard,然后就是网上查找相应资料,但是大多都是修改系统Volume.cpp文件让我们系统app可以访问sdcard,只有解决没有真正说明理由,笔者依然很不满意对这些答案,我其实就想知道安卓为什么会要求这样?
终于在官方文档中找到如下解释:
Processes that continue holding open fds on the sdcard a little after it is
requested to be unmounted will be killed so that it can unmount.
We don't want the system process to be able to access the sdcard to avoid
these kinds of issues (and just general security cleanliness), so that it
does not have permission to access it.
可能大家看到这英文文档解释也还是不懂,不知道它在说什么,哈哈笔者刚开始也是这样的,没关系。
下面就让笔者给大家用中文解释一下为什么吧(其实也就是直白易懂的一种翻译)
sdcard属于易插拔的外部设备,如果说我们系统app可以访问sdcard,并且一直持有sdcard中相应文件的fds(文件句柄),如果我们sdcard这时候拔除,
这时系统app就有可能因为fds文件句柄没有被killed,但是系统app一般是不可以被killed,因为你想想如果我们的主页launcher被killed了或者其他重要系统app被killed
就有可能导致一系列安全问题,如主页crash或者手机重启等等,也就是我一拔sdcard结果手机死机了的悲剧结果。。。
说到这里大家应该很明白为什么Android具有system权限不可以访问SDcard。
以上分析属于笔者自己理解如果有错误请大神指出,欢迎转载
- Android具有system权限为什么不可以访问SDcard
- 具有system权限的进程无法访问sdcard
- 更改Android sdcard访问权限
- android sdcard访问权限问题
- 添加 sdcard访问权限
- 使apk具有system权限
- 使apk具有system权限
- Android SdCard写入权限
- android sdcard文件访问权限与apk应用 userid 访问权限的关系。
- android sdcard文件访问权限与apk应用 userid 访问权限的关系。
- android studio gradle 的升级后为什么不可以使用
- 为什么博客不可以粘贴?》
- android.uid.system和sdcard
- android 模拟器 sdcard权限修改
- android 模拟器 sdcard权限修改
- android 模拟器 sdcard权限修改
- Android程序中访问sdcard
- android boot.img 拆包,修改adb 具有root权限,以i9250为例
- java基础之泛型
- 从尾到头打印链表每个节点的值。
- 深度学习与人脸识别系列(5)__vgg人脸识别模型测试
- layout_marginLeft和layout_marginStart
- Android实现开机自动运行程序
- Android具有system权限为什么不可以访问SDcard
- Linux中常用命令——查找命令对比分析
- RHEL5.5配置SFTP-ONLY访问
- bzoj1800
- Android消息机制之 Looper、Handler、Message的关系和运行
- typeof
- 深度学习与人脸识别系列(6)__利用训练好的vgg模型进行人脸识别(利用摄像头)
- hex文件解析
- WEB项目优化:雅虎优化网站的34条法则(转)