关闭

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

713人阅读 评论(0) 收藏 举报
分类:

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 来解决。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

给Android系统安装busybox

busybox号称Linux平台的瑞士军刀,它集成了100多个最常用的Linux命令和工具的软件。其中包含一些常用的工具,如ls,cat,echo等等;也包含了一些更强大,更复杂的工具,如grep,f...
  • lxgwm2008
  • lxgwm2008
  • 2014-08-29 14:15
  • 10790

adb命令、adb shell与Linux各种命令(busybox)

【整理】adb命令、adb shell与Linux各种命令(busybox) 常用的ADB命令 1. 显示系统中全部Android平台: android list targets ...
  • mike8825
  • mike8825
  • 2015-11-18 13:04
  • 2407

使用busybox定制自己的应用程序

使用busybox定制自己的应用程序 2008-09-09 23:05:53 分类: LINUX 下面说说如何使用busybox定制自己的应用程序。 4.1  busyb...
  • linuxarmsummary
  • linuxarmsummary
  • 2013-10-11 12:03
  • 3510

安卓手机安装busybox使用linux命令

一、环境准备 1、安卓手机已root 2、下载安卓终端模拟器 下载地址:http://www.coolapk.com/apk/jackpal.androidterm?v=1.0.54 3、安装RE文件...
  • hqzxsc2006
  • hqzxsc2006
  • 2016-01-22 13:31
  • 2180

CentOS下编译安装Busybox

[root@cloud ~]# yum -y install wget make gcc perl glibc-static ncurses-devel libgcrypt-devel ...
  • cllosvneh
  • cllosvneh
  • 2016-02-15 17:16
  • 1169

给Android系统安装busybox

busybox号称Linux平台的瑞士军刀,它集成了100多个最常用的Linux命令和工具的软件。其中包含一些常用的工具,如ls,cat,echo等等;也包含了一些更强大,更复杂的工具,如grep,f...
  • scjie168
  • scjie168
  • 2016-09-06 10:10
  • 338

嵌入式Linux中BusyBox的使用

BusyBox是很多标准 Linux 工具的一个单个可执行实现,主要应用于嵌入式linux系统,是一个开源的“万能工具”。接下来我们一起来看看这个工具的魅力。 万能的BusyBox BusyBox...
  • binchel
  • binchel
  • 2014-03-01 11:49
  • 4709

安卓手机无法root的情况下使用busybox

安卓,无法rootb,busybox,android
  • lin_13969
  • lin_13969
  • 2017-05-20 23:54
  • 959

busybox初始化配置 登陆shell 非登陆shell

busybox取消了runlevels,runlevels已经被busybox的init进程忽略。如果想使用runlevels,就使用sysvinit来代替。 每个入口的格式:::: : busy...
  • lutherarcher
  • lutherarcher
  • 2017-03-25 22:59
  • 297

启动busybox自带的ftp服务器

关于ftp工作原理详解 ,可参考 http://blog.chinaunix.net/uid-12814440-id-2914750.html 为了了解ftp,首先在ubuntu上搭建一个ftp服务器...
  • mike8825
  • mike8825
  • 2015-11-17 22:08
  • 2294
    个人介绍
    个人资料
    • 访问:2307315次
    • 积分:26855
    • 等级:
    • 排名:第245名
    • 原创:81篇
    • 转载:1891篇
    • 译文:1篇
    • 评论:134条
    最新评论