Android4.4对于sdcard权限的改动以及兼容性问题

我们在升级4.4的过程中,发现了部分第三方应用不能使用。查看发现以下几点要求:

1》 API 19以上现在强制要求android.permission.READ_EXTERNAL_STORAGE 和android.permission.WRITE_EXTERNAL_STORAGE 权限了。

2》如果发现仍然可以在真机上面没有加权限也可以读到sdcard的内容。请查看手机是否是root过的。

原因如下:

这个问题在Nexus5上用root能看到/storage/emulated/0,而是我

们的手机上看不到。这是因为在Nexus5上我们得到root权限是能过super su得到的,

而在我们的手机上是直接能adb root(因为我们是在userdebug版本上)。我们看

到的额外的/storage/emulated/0节点是被supersu的daemonsu程序mount出来的。

如果把我们的手机的user版本也越一下狱,在su底下看,结果是跟N5一模一样的。

为了验证,我们把N5上的supersu daemon杀死(killall daemonsu),然后重新用

strace跟踪一下:

strace -s 200 -f /system/xbin/daemonsu --auto-daemon

当在另一个终端里执行adb shell->su->mount察看时,还是能看到

/storage/emulated/0,然后察看strace的输出,它执行了/storage/emulated/0的

mount操作。strace的输出见附件。

另外很有意思的一点,用su得到的shell,用ps $$察看这个进程的话,会发现它的

父进程是daemonsu。

3》注意: 当你manifest中定义的android:minSdkVersion 和 android:targetSdkVersion是3或者以下的话,这个权限在API 19(android 4.4.2)的机器上是会强制给你附上这个读写sdcard的权限的,如果你确定你的应用不需要读写sdcard的权限的话,需要声明targetSdkVersion 大于等于4.。。。

Android4.4对于sdcard权限的改动以及兼容性问题,布布扣,bubuko.com

时间: 2024-10-16 18:43:51

Android4.4对于sdcard权限的改动以及兼容性问题的相关文章

Android4.4对于sdcard权限的修改以及兼容性问题

我们在升级4.4的过程中,发现了部分第三方应用不能使用.查看发现下面几点要求: 1> API 19以上如今强制要求android.permission.READ_EXTERNAL_STORAGE 和android.permission.WRITE_EXTERNAL_STORAGE 权限了. 2>假设发现仍然能够在真机上面没有加权限也能够读到sdcard的内容.请查看手机是否是root过的. 原因例如以下: 这个问题在Nexus5上用root能看到/storage/emulated/0,而是我

如何修改Android中模拟器的sdcard权限的问题

最近几天在学习开发Android项目中文件和数据库的时候,由于要用到模拟器中的sdcard,但是突然发现怎么这个sdcard的权限不对呢?于是导致开发的停断,本着良好的学习规范,于是先查了查网上的一些说法. 具体的内容如下: 现在的权限: 网上大多数的说法就是如下图所示的,就是在AVD管理器中添加SD Card support这个选项. 当然不否认这个方法有些人用成功过,但是对于我的模拟器却不怎么管用,相信有与我遇到类似问题的也是行不通,但是究竟是不是这里的原因呢?其实这里只是添加一些有关硬件的

sdcard 权限管理

系统升级app进入的时候发生crash.从log中看是app没有访问sdcard目录的权限. 修改方法: 在init.qcom.rc里修改storage的权限为0775: mkdir /storage 0775 system sdcard_r 这样第三方app就有权限访问这个目录,而sdcard是mount到这个目录里的. 在system/vold/Volume.cpp里修改Fat::doMount的参数,改为:AID_SYSTEM, AID_SDCARD_RW, 0002 AID_SYSTEM

Linux的文件权限

Linux一般将文件可存取訪问的身份分为3个类别:owner.group.others.且3种身份各有read.write.execute等权限. 一.用户和用户组 1.文件全部者 由于Linux是多用户.多任务的操作系统.因此可能经常有多人同一时候在某台主机上工作.但每一个人均可在主机上设置文件的权限.让其成为个人的"私密文件",即个人全部者.由于设置了适当的文件权限,除本人(文件全部者)之外的用户无法查看文件内容. 比如某个MM给你发了一封Email情书,你将情书转为文件之后存档在

Android开发系列(七):把文件存放在SDCard中

一般我们的手机应用默认的存储空间是手机自带的内存中,但是对于比较大的文件比如视频.音频来说,我们可以把它存放在SDCard中: 接下来通过代码实现具体的把文件存放在SDCard中(仅实现了核心代码) 首先,因为要存放在SDCard中,我们需要提供SDCard权限: 在AndroidManifest.xml中添加权限: <!-- 在SDCard创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT

eclipse中DDMS 视图中sdcard中文件导入的处理

首先需要说明下,这里说的sdcard的权限并不是指在Android application程序中设置sdcard的权限读 取问题.而是指在DDMS看到的目录下的那个sdcard目录的权限问题.       有时候,当你想在sdcard目录下面导入某个文件时,突然发现sdcard目录没有权限,它的权限状态为( d-------即000).这时候我们需要做的事:1.如果你没有配置好adb运行环境,在环境配置的path下面将 android-sdk-windows\platform-tools路劲添加

说说Linux文件权限那些事儿

文件全部权 显示文件的全部权 更改文件的全部权 文件的权限 改动文件的权限 用符号表示法改动 用数字表示法改动 使用umask指定默认的文件权限 參考文献 首先我们要知道Linux的标准文件权限和安全机制与Unix的一致.因此要学习这方面的知识,我们能够參考一下Unix方面的书籍. 文件全部权 在Linux系统中.一切都是文件. 因此文件既包括普通文件也包括文件夹,下文也就不再区分文件和文件夹了. 说到Linux文件权限(permission),我们不得不先说说文件的全部权问题. 在Linux系

Android 开发中eclipse 下 DDMS 视图中 sdcard 中文件导入的处理

首先需要说明下,这里说的sdcard的权限并不是指在Android application程序中设置sdcard的权限读 取问题.而是指在DDMS看到的目录下的那个sdcard目录的权限问题.       有时候,当你想在sdcard目录下面导入某个文件时,突然发现sdcard目录没有权限,它的权限状态为( d-------即000).这时候我们需要做的事:1.如果你没有配置好adb运行环境,在环境配置的path下面将 android-sdk-windows\platform-tools路劲添加

Android--数据持久化之内部存储、Sdcard存储

前言 之前一直在讲AndroidUI的内容,但是还没有完结,之后会慢慢补充.今天讲讲其他的,关于数据持久化的内容.对于一个应用程序而言,不可避免的要能够对数据进行存储,Android程序也不例外.而在Android中,提供了几种实现数据持久化的方法.后面会分别介绍. 在Android中,可以使用几种方式实现数据持久化: Shared Preferences:共享参数形式,一种以Key-Value的键值对形式保存数据的方式,Android内置的,一般应用的配置信息,推荐使用此种方式保存. Inte