roid自带的toolbox(位于/system/bin中)是常见Linux命令的阉割缩水版,一些常见的命令不支持或者支持的不好(例如支持的参数少了)。为此,为了使用功能完整的linux命令,我们需要使用添加第三方工具集Busybox。
BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。(摘自百度百科)。
下载BusyBox的binary, http://www.busybox.net/downloads/binaries
选择相应的版本,一般来说,android手机是选择arm版的最新版即可。或者进入android手机的命令行,查看/proc/cpuinfo这个文件。我下的是busybox-armv7l。下载之后重命名为busybox。
1. 打开adb命令行,在data目录下创建busybox文件夹(可以叫其它名字)
adb shell
mkdir /data/busybox
2. 退出adb shell,复制busybox文件到该目录下
exit
adb push busybox /data/busybox
3. 进入adb shell,修改busybox的权限的为755, 修改后可以通过ls -l查看。
adb shell
chmod 755 /data/busybox/busybox
4. 这时就可以使用busybox
但是使用的时候要带上路径,例如 /data/busybox/busybox ls;
如果当前目录在/data/busybox下,可以使用./busybox ls
如果希望在任何目录下都可以直接使用bosybox,则需要将路径/data/busybox export到path环境变量中:
export PATH=$PATH:/data/busybox
但是退出这个命令行后export的就失效了。要想永久生效,需要把这行添加到环境变量文件里或者将busybox文件放到系统定义好的环境变量的位置中。一般"/sbin","/system/bin","/system/sbin","/system/xbin"已经预定义了。可以使用export查看已有的环境变量,使用echo $PATH查看变量PATH的内容。
其它:
其实,也可以通过先把busybox文件复制到/sdcard/,再复制或移动busybox文件到非/mnt的路径。
关于busybox的安装
cd /data/busybox/
./busybox --install .
记得一定要cd到/data/busybox目录下,还有install后面有一个.表示当前。
这个操作只是安装到/data/busybox中,不是安装到PATH中,所以打命令的时候还是需要加上路径,
这里只是示范busybox的安装而已。
点评:BusyBox(无Root)的思路挺有意思,把 BusyBox 装到了自身的数据里去了,但没有 Root 的话 BusyBox 的威力发挥不出啊 点评来自@tastypear
核心:export PATH=$PATH:/data/data/burrows.apps.busybox/app_busybox; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/data/burrows.apps.busybox/app_busybox来一个我最爱的
BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。(摘自百度百科)。
下载BusyBox的binary, http://www.busybox.net/downloads/binaries
选择相应的版本,一般来说,android手机是选择arm版的最新版即可。或者进入android手机的命令行,查看/proc/cpuinfo这个文件。我下的是busybox-armv7l。下载之后重命名为busybox。
1. 打开adb命令行,在data目录下创建busybox文件夹(可以叫其它名字)
adb shell
mkdir /data/busybox
2. 退出adb shell,复制busybox文件到该目录下
exit
adb push busybox /data/busybox
3. 进入adb shell,修改busybox的权限的为755, 修改后可以通过ls -l查看。
adb shell
chmod 755 /data/busybox/busybox
4. 这时就可以使用busybox
但是使用的时候要带上路径,例如 /data/busybox/busybox ls;
如果当前目录在/data/busybox下,可以使用./busybox ls
如果希望在任何目录下都可以直接使用bosybox,则需要将路径/data/busybox export到path环境变量中:
export PATH=$PATH:/data/busybox
但是退出这个命令行后export的就失效了。要想永久生效,需要把这行添加到环境变量文件里或者将busybox文件放到系统定义好的环境变量的位置中。一般"/sbin","/system/bin","/system/sbin","/system/xbin"已经预定义了。可以使用export查看已有的环境变量,使用echo $PATH查看变量PATH的内容。
其它:
其实,也可以通过先把busybox文件复制到/sdcard/,再复制或移动busybox文件到非/mnt的路径。
关于busybox的安装
cd /data/busybox/
./busybox --install .
记得一定要cd到/data/busybox目录下,还有install后面有一个.表示当前。
这个操作只是安装到/data/busybox中,不是安装到PATH中,所以打命令的时候还是需要加上路径,
这里只是示范busybox的安装而已。
点评:BusyBox(无Root)的思路挺有意思,把 BusyBox 装到了自身的数据里去了,但没有 Root 的话 BusyBox 的威力发挥不出啊 点评来自@tastypear
核心:export PATH=$PATH:/data/data/burrows.apps.busybox/app_busybox; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/data/burrows.apps.busybox/app_busybox来一个我最爱的