【发布时间】:2016-05-24 14:02:13
【问题描述】:
我正在尝试在 Android 设备上运行 busybox,我将 busybox 二进制文件推送到 /tmp 文件夹,然后在 /tmp 文件夹中添加一个 i.sh 文件,代码如下:
#!/bin/sh
echo aa
/tmp/busybox dirname
然后进入/tmp文件夹,像这样执行:./busybox ash ./i.sh
错误报告:
./i.sh:第 3 行:/tmp/busybox:权限被拒绝
设备已植根,setenforce 已设置为 0。
如果使用系统sh执行这个文件sh ./i.sh,一切正常。
【问题讨论】:
-
chmod +x /tmp/busybox? -
可能与您为系统设置的路径有关,
echo $PATH给出了什么? -
chmod +x busybox一开始已经设置好了,如果你仔细看我的话,可以看到,我是用这个busybox ash来执行我的脚本,然后在脚本中再次调用这个busybox,如果chmod 没有设置,这个busybox不能执行,但是脚本已经跑到第3行了。 -
echo $PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin,如果手动从 shell 回显或在我的脚本文件中回显,则得到相同的 $PATH 结果。 -
我发现其他两点可能需要注意。 1)如果将busybox移动到/system,它将起作用。 2) /tmp 是指向/data/local/tmp 的符号链接,但即使在/data 中也应该没问题。