目录
- 1.问题描述
- 2.解决方案
.
BusyBox 是一个集成了数百个常用 Unix/Linux 命令的精简工具箱,专为资源受限的嵌入式系统设计。
BusyBox 将众多标准 Linux 命令(如 ls, cp, mv, grep, tar, ping, ifconfig, udhcpc, vi 等)编译到一个可执行文件中,通过符号链接或参数调用不同功能,极大节省存储空间和内存。
.
1.问题描述
在 Android 设备上执行 busybox 命令时报错,系统未预装 busybox 工具,导致无法使用如 udhcpc 等常用命令。
.
报错一:命令未找到
Shell
gen5_gvm_gy:/ # busybox ls
/system/bin/sh: busybox: inaccessible or not found
原因:设备未安装 busybox,或未加入 PATH。
.
报错二:架构不兼容
从官网下载:
Shell
wget https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-armv8l
adb push ./busybox-armv8l /
执行时报错:
Shell
gen5_gvm_gy:/ # ./busybox-armv8l ls
/system/bin/sh: ./busybox-armv8l: not executable: 32-bit ELF file
原因:下载的是 musl libc 编译的通用 Linux 版本,非 Android 专用,且可能是 32 位 ELF,与设备(arm64 / aarch64)不兼容。
.
2.解决方案
解决方案:使用 Android 专用预编译版本
推荐使用 GitHub 上为 Android 编译的 busybox。仓库地址:https://github.com/Magisk-Modules-Repo/busybox-ndk
支持架构:
-
busybox-arm (32位)
-
busybox-arm64 (64位)
-
busybox-x86
-
busybox-x86_64
操作步骤:
- 下载 busybox-arm64 文件:
Shell
wget https://github.com/Magisk-Modules-Repo/busybox-ndk/raw/master/busybox-arm64
- 推送到设备(需 root):
Shell
adb push busybox-arm64 /data/local/tmp/
- 进入设备 shell,赋予执行权限:
Shell
adb root && adb shell
cd /data/local/tmp
chmod +x busybox-arm64
- 测试执行:
Shell
./busybox-arm64 ls
- (可选)移动到系统路径并重命名,方便全局调用:
Shell
cp busybox-arm64 /system/xbin/busybox
chmod 755 /system/xbin/busybox
.
声明:资源可能存在第三方来源,若有侵权请联系删除!