BusyBox是何方神圣?

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 替换系统默认的命令。


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

相关推荐

  1. BusyBox何方神圣

    2024-04-22 19:02:02       15 阅读
  2. 什么神经网络?

    2024-04-22 19:02:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 19:02:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 19:02:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 19:02:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 19:02:02       18 阅读

热门阅读

  1. Linux根据进程ID查看进程的文件路径

    2024-04-22 19:02:02       12 阅读
  2. 深度学习中图像标注框的作用是什么

    2024-04-22 19:02:02       15 阅读
  3. C# 工具类

    2024-04-22 19:02:02       12 阅读
  4. PEI转染试剂使用手册

    2024-04-22 19:02:02       14 阅读
  5. MySQL-多表设计

    2024-04-22 19:02:02       11 阅读
  6. PG用户密码有效期设置

    2024-04-22 19:02:02       14 阅读
  7. Shell流程if与模式匹配case

    2024-04-22 19:02:02       14 阅读
  8. Redis:redis 版本过低

    2024-04-22 19:02:02       12 阅读
  9. 华为校招机试 - 扑克牌消除(20240417)

    2024-04-22 19:02:02       9 阅读