BusyBox
1.1、BusyBox简介
是什么 ?:The Swiss Army Knife of Embedded Linux. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system.
开发语言:C
官方主页:https://busybox.net
源码仓库:https://git.busybox.net/busybox

注意:BusyBox默认是不支持macOS的, 但也有一些别人修改的在GitHub上。

1.2、通过包管理器安装BusyBox
操作系统包管理器安装命令
Windowsscoopscoop install busybox
WindowsChocolateychoco install -y busybox
aptsudo apt-get install -y busybox
dnfsudo dnf install -y busybox
openSUSEzyppersudo zypper install -y busybox
Alpine Linuxapksudo apk add busybox

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm busybox
Gentoo LinuxPortagesudo emerge busybox
FreeBSDpkgngsudo pkg install -y busybox
1.3、通过源码安装BusyBox

step1、安装依赖

下载时cURL
解压时tarbzip2
编译时makegcc
运行时glibc ( libc.solibpthread.sold-linux-x86-64.so )

step2、使用curl命令下载BusyBox源码包 (

curl -LO https://busybox.net/downloads/busybox-1.31.1.tar.bz2

step3、使用tar解压BusyBox源码包

tar vxf busybox-1.31.1.tar.bz2

step4、进入busybox-1.31.1目录,并查看它的内容

step5、配置编译参数

make menuconfig

出现如下的配置界面:

step6、编译、安装

make && sudo make install
1.4、BusyBox Docker Image

下载Docker Official BusyBox Image镜像, 并创建一个容器,然后启动该容器:

docker run -it --rm --hostname busybox busybox:glib
1.5、通过BusyBox创建rootfs

step1、创建一个文件夹作为rootfs的根

mkdir -p ~/buxybox-rootfs/bin

step2、使用curl命令下载编译好的BusyBox二进制可执行文件 (

curl -LO https://busybox.net/downloads/binaries/1.21.1/busybox-x86_64

step3、修改busybox-x86_64文件的可执行权限

chmod a+x busybox-x86_64

step4、安装busybox-x86_64

./busybox-x86_64 --install ~/buxybox-rootfs/bin

step5、使用chroot切换根为~/buxybox-rootfs/bin

chroot ~/buxybox-rootfs/bin
1.6、在Android系统中安装BusyBox

step1、查看Android设备的CPU平台

adb shell getprop | grep cpu

运行效果如下:

Android支持的CPU平台如下:

familybit
armeabi32-bit
armeabi-v7a32-bit
arm64-v8a64-bit
mips32-bit
mips6464-bit
x8632-bit
x86-6464-bit

step2、下载对应CPU平台的编译好的BusyBox二进制可执行文件 (

curl -O https://busybox.net/downloads/binaries/1.21.1/busybox-i686

step3、把下载好的可执行文件推送到Android设备

adb push busybox-i686 /data/local/busybox

这里是推到Android设备/data/local/目录下, 该目录在PATH环境变量里,并且该目录一般是具有可写权限的。

step4、进入Android设备Shell

adb shell

step5、切换到/data/local目录

cd /data/local

step6、查看BusyBox的使用帮助

step7、安装BusyBox

./busybox --install .

这样就可以使用busybox里面的这些命令了。

BusyBox里面的命令仍然是有限的。 我们可以通过Android NDK进行移植其他好用的命令行工具。