灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1804回复:0

通过修改源码实现system组和root用户访问sd卡

楼主#
更多 发布于:2012-09-06 13:49


[html]
对于Android的sdcard不能直接通过chmod命令来修改对于system组的读写权限。但是可以通过修改源码方式实现,其实也很简单,方法如下:
Android2.2以后修改
修改/system/core/vold/Volume.cpp 文件

[html]
Fat::doMount(devicePath, "/mnt/secure/staging", false, false, false,
                1000, 1015, 0702, true))  
修改为:
[html]
Fat::doMount(devicePath, "/mnt/secure/staging", false, false, false,
                1000, 1015, 0002, true))
参数含义:
1000代表的是uid,即sytem
1015代表的是gid,
0002:是对权限的掩码
0002:表示 system: rwx-rwxr-x,此时system有读写执行权限
如果system不需要写权限可以将0002改为
0202: 表示 r-xrwxr-x。
默认的0702代表 ---rwxr-x

然后将vold重新编译一下,用adb push 命令push到 /system/bin/目录下。重新启动一下机器就OK了。
对于Android 2.1以下:
可以
修改/system/core/vold/volmgr_vfat.c
[html]
rc = mount(devpath, vol->mount_point, "vfat", flags,"utf8,uid=1000,gid=1000,fmask=711,dmask=700,shortname=mixed");
改为
[html]
rc = mount(devpath, vol->mount_point, "vfat", flags,"utf8,uid=1000,gid=1000,fmask=0,dmask=0,shortname=mixed");
这里的dmask和fmask和上面的作用类似。通过改写711和700可以配置出不同的权限。

摘自  weidawei0609的专栏

喜欢0 评分0
游客

返回顶部