busybox英文版busybox使用教程程

安卓刷机必备软件BusyBox安装教程(附BusyBox Pro下载)
BusyBox怎么用?发现很多朋友不知道安卓BusyBox怎么用,BusyBox这款安卓刷机必备软件,相信很多朋友都在找怎么安装安卓BusyBox软件。下面脚本之家小编为大家分享安卓BusyBox安装教程
BusyBox怎么用?发现很多朋友不知道安卓BusyBox怎么用,BusyBox这款安卓刷机必备软件,相信很多朋友都在找怎么安装安卓BusyBox软件。下面脚本之家小编为大家分享安卓BusyBox安装教程。软件名称:安卓刷机必备(BusyBox Pro) v11.0 已付费汉化中文版软件大小:3.48MB更新时间:
安卓BusyBox安装教程:
BusyBox安装准备工作:
1. 先要把手机给Root了,具体教程这里就不提供了,网上有很多。
2. 下载BusyBox然后下载对应你的设备架构的版本,下面将以busybox-armv6l文件名为示例。
3. 需要有一个命令行的环境,在电脑上使用安卓 adb&驱动工具。
4. 连接手机和电脑,手机的USB Mode设置成None(仅充电),并且开启USB调试模式。
BusyBox安装步骤:
1. 将busybox-armv6l重命名为busybox
2. 将busybox传入手机的SD卡,可以使用下面的命令或自己想其他办法。打开terminal(Linux,Mac)或cmd(Windows)
adb push ~/Desktop/busybox /mnt/sdcard
其中的~/Desktop请根据自己的情况替换成正确的路径
3. 输入以下命令,为了在/system目录写入文件
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
使用 ls 检查一下 /system 里是否有 xbin 目录,没有的话输入 mkdir xbin 创建,因为本示例是要把busybox安装到 /system/xbin 。
4. 复制 busybox 文件到 /system/xbin,并为其分配&可执行&的权限
cp /mnt/sdcard/busybox /system/xbin
chmod 755 busybox
5. 这时就可以使用 busybox 的命令了,例如以前没有清屏的clear命令,现在只需输入 busybox clear 就可以实现清屏功能,使用完整版的 ls 只需输入 busybox ls 。
但是每次前面都加上个busybox太麻烦了,所以我们还要继续完成安装。在 /system/xbin 下输入
busybox --install .
如果想安装到别的目录,则把点替换成别的路径。
至此就安装完成了,比较一下原来的 ls 命令和 busybox 里的 ls 命令。
常见错误:
1. 如果安装时出现这样的错误:busybox: /bin/zcat: No such file or directory、busybox: /sbin/zcip: Invalid cross-device link说明没有输入安装路径,正确的示例 busybox --install /system/xbin
2. 如果出现这样的错误:cp: /system/xbin/busybox: Read-only file system说明没有正确输入上面第三步的mount命令。
1. busybox 里有 ash 和 hush 还有 sh 这几种 shell,在命令行输入 ash 或 hush,可以像在 bash 里那样,通过按上下键选择刚才输入的命令。
2. android系统本身就有ls命令,busybox里也有ls,输入ls时调用的是android的ls,那么想用busybox的ls就要每次都在前面加个busybox吗?不用,使用alias命令可以搞定。
alias ls='busybox ls'
同样的,cp、mv等二者都有的命令都可以这样搞定。也可以通过修改 /init.rc 来解决。21ic官方微信
使用BusyBox简化嵌入式Linux系统
BusyBox是很多标准Linux&工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如cat和echo,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet(不过它的选项比传统的版本要少);有些人将BusyBox称为Linux工具里的瑞士军刀。本文将探索BusyBox的目标,它是如何工作的,以及为什么它对于内存有限的环境来说是如此重要。
尽管BusyBox的目标是提供一个相当完整的POSIX(可移植操作系统接口)环境,这是一个期望,而不是一种需求。这些工具虽然并不完整,但是它们提供了我们期望的主要功能。
BusyBox源代码树
BusyBox的源代码树组织得很好。这些工具都基于它们的用途进行了分类,并存储在单独的子目录中。例如,网络工具和守护进程(如httpd、ifconfig等)都在。/networking目录中;标准的模块工具(包括insmod、rmmod和lsmod)都在。/modutils目录中;编辑器(例如vi和流编辑器,如awk和sed)都在。/editors目录中。makefile配置、编译和安装所使用的各个文档都在这个目录树的根目录中。
清单5。编译默认的BusyBox配置
$cdbusybox-1。1。1
$makedefconfig
结果是一个相当大的BusyBox映像,不过这只是开始使用它的最简单的方法。我们可以直接调用这个新映像,这会产生一个简单的Help页面,里面包括当前配置的命令。要对这个映像进行测试,我们也可以对一个命令调用BusyBox来执行,如清单6所示。
清单6。展示BusyBox命令的执行和BusyBox中的ashshell
$。/busyboxpwd
/usr/local/src/busybox-1。1。1
$。/busyboxash
/usr/local/src/busybox-1。1。1$pwd
/usr/local/src/busybox-1。1。1
/usr/local/src/busybox-1。1。1$exit
在这个例子中,我们调用了pwd(打印工作目录)命令,使用BusyBox进入了ashshell,并在ash中调用了pwd。
如果您正在构建一个具有特殊需求的嵌入式设备,那就可以手工使用menuconfigmake目标来配置BusyBox的内容。如果您熟悉Linux内核的编译过程,就会注意到menuconfig与配置Linux内核的内容所使用的目标相同。实际上,它们都采用了相同的基于ncurses的应用程序。
使用手工配置,我们可以指定在最终的BusyBox映像中包含的命令。我们也可以对BusyBox环境进行配置,例如包括对NSA(美国国家安全代理)的安全增强Linux(SELinux),指定要使用的编译器(用来在嵌入式环境中进行交叉编译)以及BusyBox应该静态编译还是动态编译。图1给出了menuconfig的主界面。在这里我们应该可以看到可以为BusyBox配置的不同类型的应用程序(applet)。
图1。使用menuconfig配置BusyBox
多体系结构支持
可以简单地为BusyBox指定交叉编译器意味着我们可以为很多体系结构编译BusyBox。要为您的目标体系结构编译BusyBox,我们需要一个交叉编译器和一个已经为特定目标体系结构编译好的C库(uClibc或glibc)。
要手工配置BusyBox,请使用下面的命令:
清单7。手工配置BusyBox
$makemenuconfig
这为我们提供了可以调用的BusyBox的二进制文件。下一个步骤是围绕BusyBox构建一个环境,包括将标准Linux命令重定向到BusyBox二进制文件的符号链接。我们可以使用下面的命令简单地完成这个过程:
清单8。构建BusyBox环境
$makeinstall
默认情况下,这会创建一个新的本地子目录_install,其中包含了基本的Linux环境。在这个根目录中,您会找到一个链接到BusyBox的linuxrc程序。这个linuxrc程序在构建安装盘或急救盘(允许提前进行模块化的引导)时非常有用。同样是在这个根目录中,还有一个包含操作系统二进制文件的/sbin子目录。还有一个包含用户二进制文件的/bin目录。在构建软盘发行版或嵌入式初始RAM磁盘时,我们可以将这个_install目录迁移到目标环境中。我们还可以使用make程序的PREFIX选项将安装目录重定向到其他位置。例如,下面的代码就使用/tmp/newtarget根目录来安装这些符号链接,而不是使用。/_install目录:
清单9。将符号链接安装到另外一个目录中
$makePREFIX=/tmp/newtargetinstall
使用installmake目标创建的符号链接都来自于busybox。links文件。这个文件是在编译BusyBox时创建的,它包含了已经配置的命令清单。在执行install时,就会检查busybox。links文件确定要创建的符号链接。
到BusyBox的命令行链接也可以使用BusyBox在运行时动态创建。CONFIG_FEATURE_INSTALLER选项就可以启用这个特性,在运行时可以这样执行:
清单10。在运行时创建命令链接
$。/busybox--install-s
-s选项强制创建这些符号链接(否则就创建硬链接)。这个选项要求系统中存在/proc文件系统。
BusyBox编译选项
BusyBox包括了几个编译选项,可以帮助为我们编译和调试正确的BusyBox。
表1。为BusyBox提供的几个make选项
make目标说明
help显示make选项的完整列表
defconfig启用默认的(通用)配置
allnoconfig禁用所有的应用程序(空配置)
allyesconfig启用所有的应用程序(完整配置)
allbareconfig启用所有的应用程序,但是不包括子特性
config基于文本的配置工具
menuconfigN-curses(基于菜单的)配置工具
all编译BusyBox二进制文件和文档(。/docs)
busybox编译BusyBox二进制文件
clean清除源代码树
distclean彻底清除源代码树
sizes显示所启用的应用程序的文本/数据大小
在定义配置时,我们只需要输入make就可以真正编译BusyBox二进制文件。例如,要为所有的应用程序编译BusyBox,我们可以执行下面的命令:
清单11。编译BusyBox二进制程序
$makeallyesconfig
压缩BusyBox
如果您非常关心对BusyBox映像的压缩,就需要记住两件事情:
永远不要编译为静态二进制文件(这会将所有需要的库都包含到映像文件中)。相反,如果我们是编译为一个共享映像,那么它会使用其他应用程序使用的库(例如/lib/libc。so。X)。
使用uClibc进行编译,这是一个对大小进行过优化的C库,它是为嵌入式系统开发的;而不要使用标准的glibc(GNUC库)来编译。
BusyBox命令中支持的选项
BusyBox中的命令并不支持所有可用选项,不过这些命令都包含了常用的选项。如果我们需要知道一个命令可以支持哪些选项,可以使用--help选项来调用这个命令,如清单12所示。
清单12。使用--help选项调用命令
$。/busyboxwc--help
BusyBoxv1。1。1(-15:27+0000)multi-callbinary
Usage:wc[OPTION]。。。[FILE]。。。
Printline,word,andbytecountsforeachFILE,andatotallineif
morethanoneFILEisspecified。WithnoFILE,readstandardinput。
-cprintthebytecounts
-lprintthenewlinecounts
-Lprintthelengthofthelongestline
-wprintthewordcounts
这些特定的数据只有在启用了CONFIG_FEATURE_VERBOSE_USAGE选项时才可以使用。如果没有这个选项,我们就无法获得这些详细数据,但是这样可以节省大约13KB的空间。
向BusyBox中添加新命令
向BusyBox添加一个新命令非常简单,这是因为它具有良好定义的体系结构。第一个步骤是为新命令的源代码选择一个位置。我们要根据命令的类型(网络,shell等)来选择位置,并与其他命令保持一致。这一点非常重要,因为这个新命令最终会在menuconfig的配置菜单中出现(在下面的例子中,是MiscellaneousUtilities菜单)。
对于这个例子来说,我将这个新命令称为newcmd,并将它放到了。/miscutils目录中。这个新命令的源代码如清单13所示。
清单13。集成到BusyBox中的新命令的源代码
#include&busybox。h&
intnewcmd_main(intargc,char*argv[])
printf(&newcmdcalled:n&);
printf(&arg[%d]=%sn&,i,argv[i]);
接下来,我们要将这个新命令的源代码添加到所选子目录中的Makefile。in中。在本例中,我更新了。/miscutils/Makefile。in文件。请按照字母顺序来添加新命令,以便维持与现有命令的一致性:
清单14。将命令添加到Makefile。in中
MISCUTILS-$(CONFIG_MT)+=mt。o
MISCUTILS-$(CONFIG_NEWCMD)+=newcmd。o
MISCUTILS-$(CONFIG_RUNLEVEL)+=runlevel。o
接下来再次更新。/miscutils目录中的配置文件,以便让新命令在配置过程中是可见的。这个文件名为Config。in,新命令是按照字母顺序添加的:
清单15。将命令添加到Config。in中
configCONFIG_NEWCMD
bool&newcmd&
newcmdisanewtestcommand。
这个结构定义了一个新配置项(通过config关键字)以及一个配置选项(CONFIG_NEWCMD)。新命令可以启用,也可以禁用,因此我们对配置的菜单属性使用了bool(Boolean)值。这个命令默认是禁用的(n表示No),我们可以最后放上一个简短的Help描述。在源代码树的。/scripts/config/Kconfig-language。txt文件中,我们可以看到配置语法的完整文法。
接下来需要更新。/include/applets。h文件,使其包含这个新命令。将下面这行内容添加到这个文件中,记住要按照字母顺序。维护这个次序非常重要,否则我们的命令就会找不到。
清单16。将命令添加到applets。h中
USE_NEWCMD(APPLET(newcmd,newcmd_main,_BB_DIR_USER_BIN,_BB_SUID_NEVER))
这定义了命令名(newcmd),它在Busybox源代码中的函数名(newcmd_main),应该在哪里会为这个新命令创建链接(在这种情况中,它在/usr/bin目录中),最后这个命令是否有权设置用户id(在本例中是no)。
倒数第二个步骤是向。/include/usage。h文件中添加详细的帮助信息。正如您可以从这个文件的例子中看到的一样,使用信息可能非常详细。在本例中,我只添加了一点信息,这样就可以编译这个新命令了:
清单17。向usage。h添加帮助信息
#definenewcmd_trivial_usage&None&
#definenewcmd_full_usage&None&
最后一个步骤是启用新命令(通过makemenuconfig,然后在MiscellaneousUtilities菜单中启用这个选项)然后使用make来编译BusyBox。
使用新的BusyBox,我们可以对这个新命令进行测试,如清单18所示。
清单18。测试新命令
$。/busyboxnewcmdarg1
newcmdcalled:
arg[0]=newcmd
arg[1]=arg1
$。/busyboxnewcmd--help
BusyBoxv1。1。1(-13:47+0000)multi-callbinary
Usage:newcmdNone
就是这样!BusyBox开发人员开发了一个优秀但非常容易扩展的工具。
BusyBox是为构建内存有限的嵌入式系统和基于软盘系统的一个优秀工具。BusyBox通过将很多必需的工具放入一个可执行程序,并让它们可以共享代码中相同的部分,从而对它们的大小进行了很大程度的缩减,BusyBox对于嵌入式系统来说是一个非常有用的工具,因此值得我们花一些时间进行探索。
无相关信息BusyBox怎么用?发现很多朋友不知道安卓BusyBox怎么用,BusyBox这款安卓刷机必备软件,相信很多朋友都在找怎么安装安卓BusyBox软件。下面小编为大家分享安卓BusyBox安装教程。
安卓BusyBox安装教程:
BusyBox安装准备工作:
1. 先要把手机给Root了,具体教程这里就不提供了,网上有很多。
2. 下载BusyBox然后下载对应你的设备架构的版本,下面将以busybox-armv6l文件名为示例。
3. 需要有一个命令行的环境,在电脑上使用安卓 adb 驱动工具。
4. 连接手机和电脑,手机的USB Mode设置成None(仅充电),并且开启USB调试模式。
BusyBox安装步骤:
1. 将busybox-armv6l重命名为busybox
2. 将busybox传入手机的SD卡,可以使用下面的命令或自己想其他办法。打开terminal(Linux,Mac)或cmd(Windows)
adb push ~/Desktop/busybox /mnt/sdcard
其中的~/Desktop请根据自己的情况替换成正确的路径
3. 输入以下命令,为了在/system目录写入文件
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
使用 ls 检查一下 /system 里是否有 xbin 目录,没有的话输入 mkdir xbin 创建,因为本示例是要把busybox安装到 /system/xbin 。
4. 复制 busybox 文件到 /system/xbin,并为其分配“可执行”的权限
cp /mnt/sdcard/busybox /system/xbin
chmod 755 busybox
5. 这时就可以使用 busybox 的命令了,例如以前没有清屏的clear命令,现在只需输入 busybox clear 就可以实现清屏功能,使用完整版的 ls 只需输入 busybox ls 。
但是每次前面都加上个busybox太麻烦了,所以我们还要继续完成安装。在 /system/xbin 下输入
busybox --install .
如果想安装到别的目录,则把点替换成别的路径。
至此就安装完成了,比较一下原来的 ls 命令和 busybox 里的 ls 命令。
常见错误:
1. 如果安装时出现这样的错误:busybox: /bin/zcat: No such file or directory、busybox: /sbin/zcip: Invalid cross-device link说明没有输入安装路径,正确的示例 busybox --install /system/xbin
2. 如果出现这样的错误:cp: /system/xbin/busybox: Read-only file system说明没有正确输入上面第三步的mount命令。
1. busybox 里有 ash 和 hush 还有 sh 这几种 shell,在命令行输入 ash 或 hush,可以像在 bash 里那样,通过按上下键选择刚才输入的命令。
2. android系统本身就有ls命令,busybox里也有ls,输入ls时调用的是android的ls,那么想用busybox的ls就要每次都在前面加个busybox吗?不用,使用alias命令可以搞定。
alias ls='busybox ls'
同样的,cp、mv等二者都有的命令都可以这样搞定。也可以通过修改 /init.rc 来解决。busybox怎么用及验证失败解决办法_9号下载}

我要回帖

更多关于 busybox使用教程安卓 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信