Android设备:无busybox工具解决


目录

  • 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

操作步骤:

  1. 下载 busybox-arm64 文件:
Shell 复制代码
wget https://github.com/Magisk-Modules-Repo/busybox-ndk/raw/master/busybox-arm64
  1. 推送到设备(需 root):
Shell 复制代码
adb push busybox-arm64 /data/local/tmp/
  1. 进入设备 shell,赋予执行权限:
Shell 复制代码
adb root && adb shell
cd /data/local/tmp
chmod +x busybox-arm64
  1. 测试执行:
Shell 复制代码
./busybox-arm64 ls
  1. (可选)移动到系统路径并重命名,方便全局调用:
Shell 复制代码
cp busybox-arm64 /system/xbin/busybox
chmod 755 /system/xbin/busybox

.


声明:资源可能存在第三方来源,若有侵权请联系删除!

相关推荐
阿巴斯甜12 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker12 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq952713 小时前
Andorid Google 登录接入文档
android
黄林晴15 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android