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.。。。

时间: 2024-10-10 03:46:25

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,而是我 们的

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

Mysql常用基本命令汇总及默认账户权限与修改

一直只是在浅显利用数据库存储数据,也被windows惯坏了,很多命令使用的时候记不起来,so,换LINUX系统!不再使用GUI管理数据库!也想深入学习下Mysql,从权限管理开始!也就诞生了这篇学习笔记. 修改默认密码 Mysql新安装时默认root密码为空,极不安全!建议安装过后马上就修改.附修改方法: mysqladmin -u root -p password 接下来按提示输入新密码即可! 命令详解: mysqladmin -u root -p[oldpass] password newp

命令行修改文件文件夹访问权限 cacls, 修改hosts内容方法

背景 日常使用Windows的过程中,hosts(C:\Windows\System32\drivers\etc)文件可能被一些程序串改,因此在网上找到禁止/允许修改hosts文件的bat脚本,但是在使用过程中有遇到了新的麻烦,特记录下相关问题的解决方法. 禁止/允许修改hosts文件的bat脚本 Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动

linux文件权限误修改之后如何恢复

linux文件权限误修改之后如何恢复 linux系统权限修复 应用场景 在有些时候,不小心执行了修改文件权限,比如chown mysql.mysql / ,这种对属组属主的操作,想要恢复看起来很麻烦,怎么办呢 这个脚本可以让你脱离苦海 使用条件 可以提前备份相关权限,脚本提供备份功能 也可以找到权限相似的主机备份好之后在自己主机恢复 备份方法: 直接复制脚本内容,在你的主机向运行,需要有getfacl命令 备份完成后,备份的是整个文件系统当中所有文件的权限信息 含有两个文件,分别是/tmp/ge

[转载]如何使Android应用程序获取系统权限来修改系统时间

在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用. 本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的. 第一个方法简单点,不过需要在

chmod修改文件的权限/chown修改文件和目录的所有者

ll指令的显示的信息为(当前目录下只有nameservice1一个目录): drwxr-xr-x 3 hdfs hdfs 4096 4月 14 16:19 nameservice1 上述信息分别表示:权限(drwxr-xr-x 3).所属用户(hdfs)和组(hdfs).大小(4096).时间(4月 14 16:19).名称(nameservice1). 权限中的字母一共有10位数: 其中,第1位有两种选择:-表示是文件,d表示是目录.此处是d,表示nameservice1是目录:   第2位到

chmod修改文件的权限/chown修改文件和目录的所有者(转)

ll指令的显示的信息为(当前目录下只有nameservice1一个目录): drwxr-xr-x 3 hdfs hdfs 4096 4月 14 16:19 nameservice1 上述信息分别表示:权限(drwxr-xr-x 3).所属用户(hdfs)和组(hdfs).大小(4096).时间(4月 14 16:19).名称(nameservice1). 权限中的字母一共有10位数: 其中,第1位有两种选择:-表示是文件,d表示是目录.此处是d,表示nameservice1是目录:   第2位到

Linux的文件访问权限及修改权限命令chmod

Linux的文件访问权限及修改权限命令chmod Mxx000 Mxx000 11 人赞同了该文章 Linux的文件访问权限可以使用ls -l进行查看,如下图这样操作就可以了. 一.访问权限 访问权限分为读(read).写(write).执行(execute)三种, 并且涉及到文件所有者(user).文件所属组(group).其他人(other)三个主体. 选取上图红框中的两行为例,结合下面的表格先讲一下基本结构: 第一位表示文件类型 第二-十位表示权限:每三位一组,共三组,分别表示三个主体对应