Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1130879
  • 博文数量: 276
  • 博客积分: 8317
  • 博客等级: 少将
  • 技术积分: 2329
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-12 08:17
个人简介

http://ads.buzzcity.net/adpage.php?partnerid=40096

文章分类

全部博文(276)

文章存档

2013年(1)

2012年(38)

2011年(102)

2010年(85)

2009年(45)

2008年(5)

分类: LINUX

2010-01-26 12:39:07

同事来问我,如何使android系统的sdcard目录具备可以运行可执行文件的权限。我首先想到的是rootfs下的init.rc文件。用vi 打开android源代码目录下的system/core/rootdir/init.rc文件,查找sdcard关键字,然后看到如下行
mkdir /sdcard 0000 system system
那四个0应该是关于权限的掩码,先改成0777试试看。
保存,退出。然后make整个源代码目录,其实有更快捷的方法,先这样吧。
然后启动模拟器。
在linux终端上用adb shell登录到模拟器上。
cd /sdcar4d
./xxx (可以利用adb pull一个在模拟器上可以运行的文件到/sdcard下)
permission denied
结果还是没有执行的权限,看来这个方法不行。
想想,sdcard的识别与挂载和vold这个daemon有关。所以sdcard可执行权限的控制很有可能在vold里面。
在system/core/vold/volmgr_vfat.c下发现有如下代码
flags = MS_NODEV | MS_NOEXEC | MS_NOSUID | MS_DIRSYNC;
应该是MS_NOEXEC起作用了。
将这个flag去掉,然后重新编译整个android源代码。
启动模拟器。
在linux终端上用adb shell登录到模拟器上。
cd /sdcard
./xxx
OK了。
阅读(1551) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~