程序员开发实例大全宝库

网站首页 > 编程文章 正文

BusyBox是何方神圣?(bussy box)

zazugpt 2024-10-20 15:57:52 编程文章 342 ℃ 0 评论

1.概念

BusyBox 是一个集成了300多个常用 Linux 命令(例如:clear、mount、telnet、grep等)和工具的单一可执行文件,常用于嵌入式 Linux 系统,如 Android。

它虽然很小,但提供了许多命令行的功能,被称作Linux工具里的瑞士军刀。

BusyBox内置了ash、hush、sh等多套不同的shell环境。

BusyBox与ToyBox(轻量级的Linux命令行工具集合)类似。


2.在 Android 上使用 BusyBox 的步骤

1)获取 BusyBox

你可以根据Android系统的CPU架构(例如armeabi-v7a或arm64-v8a等)从 BusyBox 的官方网站(例如:https://busybox.net/downloads/binaries/)或源代码仓库下载源代码。

编译 BusyBox 以适应你的 Android 系统。这通常涉及到配置编译选项,以确保生成的 BusyBox 可执行文件与你的 Android 系统的CPU架构(如 ARM、x86、x64 等)相匹配。

配置编译选项的方法:

执行`make defconfig`生成一个默认的配置文件`.config`,然后执行`make menuconfig`打开图形配置界面,这里需要选择“Build BusyBox as a static binary (no shared libs)”选项,以编译成一个静态链接的可执行文件,避免运行时依赖其他库。

2)将 BusyBox 安装到 Android 设备

将编译好的 BusyBox 可执行文件复制到你的 Android 设备上。这可以通过 ADB(Android Debug Bridge)或直接将文件复制到设备的文件系统来完成。

你可能需要将 BusyBox 文件复制到设备的某个特定位置,例如 /system/bin 或 /system/xbin,以便可以在命令行中直接调用。但是,这通常需要 root 权限。若不需root权限,可以复制到/vendor/bin目录或其他不需root的目录下。

如果设备未root,可以将BusyBox命令安装到可以读、写、执行的普通目录下,如/data/tool/busybox,并添加到系统环境变量里。命令如下:

adb shell

cd /data/tool/busybox

#给所有用户增加读、写、执行权限

chmod a+rwx busybox

./busybox --install ./

export PATH=/data/tool/busybox:$PATH

如需环境变量永久生效,可以将上一句代码写入/etc/profile文件,并使用source /etc/profile命令让配置文件生效。

若需验证是否安装成功BusyBox,可以执行命令adb shell busybox查看返回结果。

安装后,Android系统里就拥有了2套命令行程序,一个是Android原生的,一个是BusyBox的。

3)为 BusyBox 创建软链接

由于 BusyBox 本身只是一个单一的可执行文件,但它提供了许多不同的命令,因此你需要为每个命令创建一个指向 BusyBox 的软链接。这可以通过为Android系统自带命令创建符号链接来完成。

例如,要为 ls 命令创建软链接,你可以执行 ln -s /data/tool/busybox/busybox ls。

4)使用 BusyBox

若要调用wget命令,可以执行:

busybox wget

wget


3.注意事项

修改 Android 系统的 /system 分区通常需要 root 权限,可以使用adb root即adb remount命令来获取访问权限。

如果你没有 root 权限,你可能无法使用 BusyBox 替换系统默认的命令。



若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢。您的支持是我们为您提供帮助的最大动力。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表