BusyBox是何方神圣?

ops/2024/11/13 11:05:32/

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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

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


http://www.ppmy.cn/ops/9631.html

相关文章

2024 应届校招经验分享(非互联网篇)

📢📢📢 2024年应届毕业生,浙江大学计算机研究生。自23年秋招开始至今,博主先后拿到了互联网行业、机械制造行业、国企央企、高校体制等多家企业和单位的数十个Offer,了解多行业中的计算机求职方向&#xff…

展览展会媒体媒体邀约执行应该怎么做?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 展览展会邀请媒体跟其他活动邀请媒体流程大致相同,包括 制定媒体邀约计划,准备新闻稿,发送邀请函,确认媒体参会,现场媒体接待及…

《大话西游2》本人收集的十二个单机版游戏,有详细的视频架设教程,云盘下载

《大话西游2》是一款经典的大型多人在线角色扮演游戏,也是一款国风经典的游戏。 有能力的可以架设个外网,让大家一起玩。 《大话西游2》本人收集的十二个单机版游戏,有详细的视频架设教程,值得收藏 下载地址: 链接&…

数据分析_数据分析思维(1)

数据分析_数据分析思维(1) 这篇文章具体的给大家介绍数据分析中最为核心的技术之一: 数据分析思维的相关内容。 一、数据分析的三种核心思维 作为新手数据分析师或数据运营, 在面对数据异常的时候, 好多小伙伴都会出现: “好像是A引起的”, “好像也和B渠道有关”, “也可能…

LocalAi,Ollama+AnythingLLM搭建部署本地大模型AI知识库,汉化版本

AnythingLLM 是一个全栈应用程序,您可以使用商业现成的 LLM 或流行的开源 LLM 和 vectorDB 解决方案来构建私有 ChatGPT,无需任何妥协,您可以在本地运行,也可以远程托管并能够智能聊天以及您提供的任何文件。 AnythingLLM 将您的文…

物理机中没有VMNet1和VMNet8虚拟网卡

控制面板——网络连接——网络适配器 VMware Network Adapter VMnet1 VMware Network Adapter VMnet8 如果没有这两个虚拟网卡,虚拟机的网络会出现问题 # 解决办法-恢复虚拟网卡默认设置 1、下载并打开ccleaner,ccleaner官网:CCleaner M…

【InternLM 实战营第二期笔记04】XTuner微调LLM:1.8B、多模态、Agent

一、微调的原因 大模型微调(Fine-tuning)的原因主要有以下几点: 适应特定任务:预训练的大模型往往是在大量通用数据上训练的,虽然具有强大的表示学习能力,但可能并不直接适用于特定的下游任务。通过微调&…

【学习笔记】Vue3源码解析:第四部分- runtime-dom(2)

课程地址:【已完结】全网最详细Vue3源码解析!(一行行带你手写Vue3源码) 第四部分-:(对应课程的第27-28节) 第27节:《事件的处理》 1、在 event.ts 中编写如下代码:由于…