文档章节

关于外置SDCARD权限问题

吃草小蚁
 吃草小蚁
发布于 2014/01/13 15:31
字数 483
阅读 3293
收藏 2

今天应用层的说是apk无法在外置SDCARD写数据,豌豆荚也创建不了,我仔细在adb下看了SDCARD的权限,如图:

我要说的是EXTSD(sdcard是系统从nand分配的内存),拥有者是SYStem,media_rw为用户组,拥有者是没有读写权限的,而media_rw是可读可写可执行的,其他用户是没有写的权限(由此可见该APK所属其他用户),这个问题我尝试这在init.rc中用chmod 777 /mnt/extsd 来增加权限,但是可惜的是在系统启动的时候通过串口ll查看确实是改过来了 ,但是等android完全跑起来之后,通过ADB查看,还是原样的075的权限;

原因是在VOLD的检测到外置SDCARD的时候又重新分配了权限;

怎么解决呢?

第一是:

修改源码system/vold/Volume.cpp

if (primaryStorage) {
            // Special case the primary SD card.
            // For this we grant write access to the SDCARD_RW group.
            gid = AID_SDCARD_RW;
        } else {
            // For secondary external storage we keep things locked up.
            gid = AID_MEDIA_RW;
        }
改为

if (1) {
            // Special case the primary SD card.
            // For this we grant write access to the SDCARD_RW group.
            gid = AID_SDCARD_RW;
        } else {
            // For secondary external storage we keep things locked up.
            gid = AID_MEDIA_RW;
        }

方法二:

在android/out/target/product/wing-k70/system/etc/permissions目录下的platform.xml

如果没有源码的话,就下个ES,修改同样是修改system/etc/permissions目录下的platform.xml


<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
      <group gid="sdcard_rw" />
    </permission>
改为
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
      <group gid="sdcard_rw" />
      <group gid="media_rw" />
    </permission>

保存,重启。所有的应用都能够打开extsd卡上文件并修改保存,pptv也能把下载地址设置为extsd。另外360手机助手也能直接操作extsd卡上的内容进行删除。

在到/mnt下ll,如图:

extsd的权限已改为777;

这样做只是能保证我们的APK能读写外置SDCARD,但是有没有安全的问题,有待发现!


© 著作权归作者所有

共有 人打赏支持
吃草小蚁
粉丝 15
博文 63
码字总数 110019
作品 0
深圳
高级程序员
Android 外部存储权限分析

不知道你有么有发现,来自菜鸟的成长史:http://blog.csdn.net/zjbpku/article/details/25161131, KitKat之后的版本不再支持用户对外置SDcard(Secondary Storage)的写入等操作。如果用户想要...

sflfqx
2015/02/09
0
0
Android笔记:存储相关,getExternalCacheDir, getExternalFilesDir,getExternalStorageDirectory等

File cacheDir = mContext.getExternalCacheDir();if(null != cacheDir){ mCacheDirPath = cacheDir.getAbsolutePath() + "/images/";} if(TextUtils.isEmpty(mCacheDirPath)){ if(Environme......

glblong
2015/09/29
0
0
我的三星手机内置SD卡开机无法自动加载

我一直用的一个三星手机,采用原厂的ROM就没有问题,一旦刷成比较新的4.2版本,就会出现(经常性的)内置SD卡无法自动加载的问题。这是一个很讨厌的问题,因为一旦内置的SD卡无法加载,很多应...

小穷博士
2013/10/26
0
0
Read-only file system问题

【环境】android2.2虚拟机、ubuntu系统、 【解决方法】 在cmd窗口一条命令就可以了: adb shell mount -o remount rw / 【其它东东】 如何一起动就让sdcard有读写权限呢? ----------------...

元来元去
2011/09/15
0
0
如何区分手机内置存储卡与外置存储卡

android系统自从升级到2.3以后,多一个功能,可以判断存储卡是否是可以卸载的。Environment.isExternalStorageRemovable(),通过此方法我们可以知道手机上的存储卡是手机自带的还是外边可插拔...

wanyang
2014/01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

可爱的python测试开发库(python测试开发工具库汇总)

欢迎转载,转载请注明来源: github地址 谢谢点赞 本文地址 相关书籍下载 测试开发 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装。 链接 selenium - web UI自动化测试。 链...

python测试开发人工智能安全
今天
2
0
Shiro | 实现权限验证完整版

写在前面的话 提及权限,就会想到安全,是一个十分棘手的话题。这里只是作为学校Shiro的一个记录,而不是,权限就应该这样设计之类的。 Shiro框架 1、Shiro是基于Apache开源的强大灵活的开源...

冯文议
今天
1
0
linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
2
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
3
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部