1 什么是busybox?
BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、 cat 和 echo等等,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。也包含了 Android 系统的自带的shell.其官网是:
http://www.busybox.net/
为什么要在Android中加入busybox?
用过adb shell的人应该知道,在默认情况下,adb shell下是不能用clear,grep, find,vi等指令的,甚至连Tab链自动补全功能都不能用,对于已经习惯了使用这些指令的码农们来说,这是件比较悲摧的事情。幸运地是,我们有了busybox!
2 下载busybox
打开下载界面:http://www.busybox.net/downloads/binaries/ ,如下图:

选择最新的版本: 1.19.0, 然后进入下一个界面:

选择适合你的设备的版本进行下载,这里我们为Android模块器下载busybox-armv6l.
下载下来后,将其重命名为busybox:
$mv busybox-armv6l busybox
$chmod 755 busybox
3 放入模拟器
首先用adb shell进入模拟器,在/data目录下新建一个busybox的目录,然后将busybox放入此目录下.
$adb shell
#cd /data
#mkdir busybox
#exit
$adb shell push busybox /data/busybox
如下图:

4 安装并运行busybox所提供的工具
重新adb shell连接上模拟器,进入到/data/busybox目录下,然后输入
#./busybox clear
试试是不是就可以生效了呢?呵呵
可是这样还是不是很好使用,因为每次使用 busybox命令时都得在命令行前面加上./busybox前缀,这个很麻烦,因此,我们先将bosybox提供的这些命令安装到模拟器下,就可以省去这些麻烦了。
安装:
在/data/busybox当前目录下,输入:
#./busybox --install ./
--install 后面的./表示安装到当前目录,之所以要安装到当前目录,是因为默认安装到/system/bin目录下或/system/xbin目录下是不能成功的,因为没有足够的权限.
然后在当前目录下再次输入:
#./clear
可以看到clear命令生效了,比之前已前进了一步了.不过还是不是很好,因此运行 busybox所提供的指令必须进入到/data/busy目录或在指令中输入./data/busybox/clear,诸如这些的指令,还是比较麻烦,因此,接下来需要修改一个PATH的值:
# export PATH=/data/busybox:$PATH
然后试着在任何目录下运行clear,可以看到已经OK了。恭喜你,终于安装busybox成功了!
不过,还是有些东西不是很方便,至少还存在以下三个不足之处:
1 Tab 键的自动补全功能还是不行.
2 #号前没有显示当前路径,这使我们经常不知当前已经进入到目录的哪一层了.
3 退出adb shell后再次进入,得重新设置PATH值才能恢复方便使用busybox工具.
至于前面这个问题,其实busybox下有一个ash的shell,直接运行它:
#ash
然后我们就可以试试,看看是不是tab键自动补全功能还显示当前路径的功能已经有了呢.OK,前面两个问题已经解决,下次我去使用bosybox的时候,首先先运行ash就可以了.这样运行之后,原本没有任何颜色的显示也会变成丰富多彩起来,如下图所示:

还剩下最后一个问题.最后一个问题的解决方法,在adb shell后,Android模拟器根目录下有一个init.rc文件.如上图,用vi打开(vi也是busybox提供的工具),在最后一行加入如下指令:
# export PATH=/data/busybox:$PATH
然后保存,系统提示当前文件为只读文件,不能保存.看来没有写的权限,需要获取足够权限后再来修改此文件,然后保存才能解决此第三个问题.
只可惜此文件为只读权限,我试了安装z4root软件获取root权限,修改default.prop等诸多方法,都没能保存修改init.rc的内容。。。估计在adb 下是不能修改它的,要是有谁知道方法的话,还请告知一下!
我知道的另一种方法就是在源码下的out目录下修改 init.rc文件,然后重新生成镜像文件,再重新启动模拟器,但是这种方法相当于重新刷机。有一定的局限。
分享到:
相关推荐
然后,通过`./adb push`命令将busybox的tar程序推送到模拟器的`/system/bin`目录,以便在模拟器中执行文件系统提取。 5. **提取文件系统**: 在模拟器中,使用busybox的tar功能创建系统文件的备份,然后将其拉回到...
在Android设备上,终端模拟器可以配合Busybox一起使用,让用户能够直接在手机或平板电脑上执行Linux命令。通过终端模拟器,开发者可以调试应用、管理系统文件、查看设备状态,甚至进行系统级别的定制和优化。 【re...
总的来说,"ANDROID交叉编译后的BUSYBOX-1.19.4"是为Android设备定制的命令行工具集,通过在非Android系统上进行交叉编译生成,以满足Android环境下的系统管理和调试需求。使用这个版本的BusyBox,用户可以在没有...
6. **添加环境变量**:为了让Android系统能够识别并使用BusyBox中的命令,需要在环境变量中添加`/data/busybox`路径: ``` adb shell export PATH=$PATH:/data/busybox ``` #### 五、修改`init.rc`文件 为了确保...
5. **安装**:编译成功后,使用`make install`将 Busybox 安装到指定的目标目录,通常是在交叉编译环境下模拟的Android文件系统结构。 6. **验证**:将编译好的Busybox复制到Android设备上,通过`adb push`命令传输...
在描述中提到的"手机嵌入式Linux下可用的busybox源码",表明这个Busybox版本是专门为手机嵌入式环境设计的。嵌入式Linux系统通常资源有限,因此使用Busybox可以大大减少系统内存占用,同时提供必要的命令行工具,如...
5. **安装`BusyBox`**:在目标Android文件系统中创建一个`/bin`目录,然后将编译好的`BusyBox`二进制文件复制到该目录下。最后,通过运行`./busybox --install`命令安装`BusyBox`命令行工具。 接下来,为了使`...
重启Android设备后,可以在命令行中输入`busybox`命令,如果能够正常显示BusyBox的帮助信息,则表示BusyBox已经成功集成到Android系统中。 #### 四、使用BusyBox增强Android功能 BusyBox提供了大量的命令行工具,...
在android端使用busybox工具,可将附件的busybox复制到手机的system/xbin/目录下,修改权限之后就可以使用busybox,这样可以使用在android上很多linux命令
在 Android 系统中,Busybox 提供了与传统 Linux shell 类似的环境,使得开发者和高级用户能够在没有完整 Linux 工具链的设备上执行各种系统级任务。 标题 "busybox_android" 暗示这可能是专门为 Android 平台编译...
This application is an BusyBox installer for Android. BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities ...
Android busybox 可执行文件支持arm,arm64,x86,x86_64 版本1.34.1,更多版本见下面链接 https://busybox.net/downloads/binaries/ https://github.com/meefik/busybox
然后在/aa/android/android-samsung-dev目录下执行: export TARGET_PRODUCT=sec_smdkc210 1. 下载cyanogenmod修改过的busybox源码(即此源码,来源:https://github.com/CyanogenMod/android_external_busybox)并...
Busybox for Android v1.20.2 Stable built by Linus Yang [Aug 12, 2012 Update] - Update to 1.20.2 stable [Features] - Tested on Android 2.1, 2.3, 4.0 and 4.1. Should be capable with all Android ...
在这样的情况下,我们可以借助于`busybox`这个工具来弥补这个不足。 `busybox`是一个轻量级的工具集合,它整合了数百个最常用的Unix命令,如`ls`、`cp`、`mv`、`grep`等,并且体积小巧,适合在资源有限的环境或者...
在Android设备上安装Busybox通常需要root权限,因为这些命令通常不在非root的Android系统中提供。用户可以通过第三方应用市场下载并安装专门为Android优化的Busybox版本。安装完成后,需通过终端模拟器(如Termux)...
busybox 1.20.2 for android. steps: adb remount adb push ./busybox-1.20.2-android2 /system/bin/ adb shell busybox ifconfig......
adb push busybox /system/
1. ** 安装**:在编译并添加权限后,Busybox二进制文件需要被复制到系统的 `/system/bin` 或 `/system/xbin` 目录下,然后通过`chown`和`chmod`命令改变文件的所有者和权限,确保它能被系统正确执行。 2. ** 更新**...
android可用的交叉编译后的busybox。支持70多个linux命令,可以极大扩展android命令集