`

[Android] 为Android安装BusyBox —— 完整的bash shell

 
阅读更多

http://www.cnblogs.com/xiaowenji/archive/2011/03/12/1982309.html

 

大家是否有过这样的经历,在命令行里输入adb shell,然后使用命令操作你的手机或模拟器,但是那些命令都是常见Linux命令的阉割缩水版,用起来很不爽。是否想过在Android上使用较完整的shell呢?用BusyBox吧。不论使用adb连接设备使用命令行还是在手机上直接用terminal emulator都可以。

一、什么是BusyBox ?

BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。(摘自百度百科)

二、在Android上安装BusyBox

准备:

0. 先要把手机给Root了,具体教程这里就不提供了,网上有很多。

1. 下载BusyBox的binary,打开这个地址 http://www.busybox.net/downloads/binaries ,选择最新版本,然后下载对应你的设备架构的版本,这里我下载了busybox-armv6l,下面将以这个文件名为示例。

2. 需要有一个命令行的环境,在电脑上使用adb或在手机上使用terminal emulator。

3. 连接手机和电脑,手机的USB Mode设置成None(仅充电),并且开启USB调试模式。

安装:

1. 将busybox-armv6l重命名为busybox

2. 将busybox传入手机的SD卡,可以使用下面的命令或自己想其他办法。

打开terminal(Linux,Mac)或cmd(Windows)

adb push ~/Desktop/busybox /mnt/sdcard

其中的~/Desktop请根据自己的情况替换成正确的路径

3. 输入以下命令,为了在/system目录写入文件

adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system

使用 ls 检查一下 /system 里是否有 xbin 目录,没有的话输入 mkdir xbin 创建,因为本示例是要把busybox安装到 /system/xbin 。

4. 复制 busybox 文件到 /system/xbin,并为其分配“可执行”的权限

cp /mnt/sdcard/busybox /system/xbin
chmod 755 busybox

5. 这时就可以使用 busybox 的命令了,例如以前没有清屏的clear命令,现在只需输入 busybox clear 就可以实现清屏功能,使用完整版的 ls 只需输入 busybox ls 。

但是每次前面都加上个busybox太麻烦了,所以我们还要继续完成安装。

在 /system/xbin 下输入

busybox --install .

如果想安装到别的目录,则把点替换成别的路径。

至此就安装完成了,比较一下原来的 ls 命令和 busybox 里的 ls 命令。

常见错误:

1. 如果安装时出现这样的错误,

busybox: /bin/zcat: No such file or directory

busybox: /sbin/zcip: Invalid cross-device link

说明没有输入安装路径,正确的示例 busybox --install /system/xbin

2. 如果出现这样的错误,

cp: /system/xbin/busybox: Read-only file system

说明没有正确输入上面第三步的mount命令。

小技巧:

1. busybox 里有 ash 和 hush 还有 sh 这几种 shell,在命令行输入 ash 或 hush,可以像在 bash 里那样,通过按上下键选择刚才输入的命令。

2. android系统本身就有ls命令,busybox里也有ls,输入ls时调用的是android的ls,那么想用busybox的ls就要每次都在前面加个busybox吗?不用,使用alias命令可以搞定。

alias ls='busybox ls'

同样的,cp、mv等二者都有的命令都可以这样搞定。也可以通过修改 /init.rc 来解决。

分享到:
评论

相关推荐

    ANDROID交叉编译后的BUSYBOX-1.19.4

    在Android的Linux shell环境中,BusyBox提供了大量的基本命令,如ls、cd、cp、mv等,使得开发者和高级用户可以在没有完整Linux发行版的情况下,进行文件管理、系统维护和故障排查。这对于设备调试、软件开发、系统...

    为Android加入busybox工具

    ### 为Android加入BusyBox工具详解 #### 一、引言 BusyBox是Linux系统中的一个集成工具包,它将许多标准Unix工具的功能合并到一个单一的可执行文件中。对于Android开发人员来说,BusyBox提供了强大的命令行功能,极...

    替换android默认的busybox

    本文将详细介绍如何在Android设备上替换默认的`BusyBox`,并将其设置为默认的shell,以实现tab补全等增强功能。 首先,替换Android默认`BusyBox`的步骤包括: 1. **下载预编译版**:你可以选择从特定源(如 ...

    Android平台下gnu bash的编译

    在Android平台上,GNU Bash的编译是一个相对复杂的过程,因为Android原生系统主要依赖于 BusyBox 中的ash或sh shell,这些shell相比GNU Bash功能较为有限。GNU Bash是一款功能丰富的命令行解释器,广泛用于Linux和...

    Python-用busybox加持的功能更加强大的adbshell不需要root

    通过将BusyBox安装到Android设备上,我们可以访问更多Linux命令,进而扩展ADB Shell的能力。这个方法尤其适用于那些没有root权限的设备,因为直接root设备可能会导致保修失效或者设备安全风险。 下面我们将深入探讨...

    Busybox,Android工具

    Busybox.apk 可以应用于Android开发的工具

    修正编译过的busybox的源码,验证过在android上能使用

    5. **安装**:编译成功后,使用`make install`将 Busybox 安装到指定的目标目录,通常是在交叉编译环境下模拟的Android文件系统结构。 6. **验证**:将编译好的Busybox复制到Android设备上,通过`adb push`命令传输...

    busybox-linux-e680.rar_E680_android e680 patch_busybox_busybox E

    在标题"busybox-linux-e680.rar_E680_android e680 patch_busybox_busybox E"中,我们可以看出这个压缩包是为E680手机定制的Android系统补丁,其中包含了用于替换原生shell的Busybox工具。 E680是一款基于Linux操作...

    busbox android shell

    "busbox android shell" 是一个针对Android系统的命令行工具集,主要基于开源项目BusyBox实现。BusyBox是一款轻量级的Unix工具集合,它将许多常见的Linux命令打包在一个小型可执行程序中,非常适合资源有限的嵌入式...

    android系统使用busybox工具

    本文旨在详细介绍如何将BusyBox工具集成到Android系统中,为开发者提供更为便捷的命令行操作环境。 #### 二、BusyBox简介 BusyBox是一款用于嵌入式系统的工具集合,它将许多标准的GNU/Linux工具合并为一个单一的可...

    busybox_android

    在 Android 系统中,Busybox 提供了与传统 Linux shell 类似的环境,使得开发者和高级用户能够在没有完整 Linux 工具链的设备上执行各种系统级任务。 标题 "busybox_android" 暗示这可能是专门为 Android 平台编译...

    adbShell轻量级安装tcpdump

    接下来,为了在非root设备上安装tcpdump,我们需要使用Android的`busybox`工具,它是一个包含了各种Linux命令的精简版实现。首先,将busybox的apk文件传输到设备上,可以使用adb的push命令: ```bash adb push ...

    Android代码-BusyBox

    This application is an BusyBox installer for Android. BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities ...

    busybox 1.20.2 for android

    busybox 1.20.2 for android. steps: adb remount adb push ./busybox-1.20.2-android2 /system/bin/ adb shell busybox ifconfig......

    android执行shell命令

    4. **Android Terminal Emulator**:对于普通用户,可以在设备上安装终端模拟器应用,如Terminal Emulator for Android,直接在设备上输入并执行shell命令。 执行shell命令时,需要注意以下几点: - **权限**:...

    Android 版本的busybox和 ifstat工具

    用户可以通过第三方应用市场下载并安装专门为Android优化的Busybox版本。安装完成后,需通过终端模拟器(如Termux)或其它shell环境来运行Busybox命令。 安装步骤通常包括: 1. 下载 Busybox 的 APK 文件到手机。 2...

    Busybox for Android v1.20.2

    Busybox for Android v1.20.2 Stable built by Linus Yang [Aug 12, 2012 Update] - Update to 1.20.2 stable [Features] - Tested on Android 2.1, 2.3, 4.0 and 4.1. Should be capable with all Android ...

    BusyBox-Installer:适用于Android的一键式BusyBox安装实用程序

    BusyBox安装程序是适用于Android的一键式BusyBox安装实用程序。 下载 要求 根访问权限 特征 一键安装BusyBox。 支持 报告错误或请求功能 您可以通过来报告错误或请求功能。 笔译 请帮助我通过POEditor翻译此应用程序...

    Android busybox 简单介绍

    简单地说,BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,也包含了 Android 系统的自带的shell。 Android busybox 的一个实用功能:进入adb shell 后编辑一些本地的文件,比如系统的一些xml配置...

Global site tag (gtag.js) - Google Analytics