`
notfatboy
  • 浏览: 237228 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转载)为Android加入busybox工具

阅读更多

原文http://blog.csdn.net/liaoshengjiong/archive/2009/03/05/3957725.aspx

我们可以通过两种方式进入Android的console:

1. 直接执行命令emulator -shell;

2. 在启动emulator后,通过命令adb shell进入。

之 后我们就可以使用一些linux下常用的命令了,如ls,cat等。然而Android自带的toolbox(位于/system/bin中)也太简略了 点,有些命令如find,Android并不支持或者支持得不好。下面将介绍如何为Android加入busybox工具,通过编译得到一个可以在 Android里面运行的busybox工具,我们就可以使用众多常见的linux命令了,如find,touch等。

步骤如下:

1. 首先去busybox主页 下载最新版本的busybox源代码.

2. 下载交叉编译工具: GNU Toolchain for ARM Processors 

    下载地址:http://www.codesourcery.com/gnu_toolchains/arm/download.html

    其中第一项选择ARM EABI或ARM GNU/Linux,第二项选择IA32 GNU/Linux TAR即可。

    最后得到一个arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2文件

    将压缩包解压到linux下某个目录, 并设置好环境变量, 使之能找到前缀为"arm-none-linux-gnueabi-"的交叉编译工具.

3. 进入busybox源码目录.

     先执行make menuconfig命令对编译过程进行配置.  过程如下:

     Busybox Settings -> Build Options ->

     [*] Build BusyBox as a static binary (no shared libs) 这个要选上,因上这样子编译出来的busyBox才是可以独立运行的。
(/home/jo/tool/arm-2008q3/bin/arm-none-linux-gnueabi-) Cross Compiler prefex 这是交叉编译器的"路径+前缀",要根据具体的情况来设置。
Busybox Settings -> Installation Options->
[*] Don’t use /usr        这样子编译出来的busybox才不会安装到你主机的/usr目录下。一定要选上。

4 执行make编译源码.  如果编译过程中产生无法找到头文件的错误, 可指定交叉编译器用到的头文件所在路径. 如

   $make -I./home/jo/tool/arm-2008q3/arm-none-linux-gnueabi/libc/usr/include/

5 编译成功后将得到一个名为busybox的可执行文件.

6 在Android的console下建立目录/data/busybox, 并使用下面的命令将文件busybox复制该目录中:

   adb push busybox /data/busybox

7 从Android的console进入/data/busybox目录, 为可执行文件busybox加上可执行属性: chmod +x busybox

8 这时我们就可以使用busybox工具了, 如果希望在任何目录下都可以直接使用bosybox,则需要将路径/data/busybox export到path环境变量中:

   export PATH=$PATH:/data/busybox

9 设置环境变量之后, 在命令行输入busybox, 即可看到其用法, 如:

   在当前目录及其子目录中查找名为init.rc的文件可使用以下命令:

   $busybox find . -name init.rc 

10 安装busybox。

   通过执行./busybox --install -s 我们会看到出现一些错误, 原因是因为Android系统的根目录和/sbin目录是只读的.  因此我们无法把一些常用命令安装到/bin目录下, 也不能修改/init.rc文件来设置PATH环境变量. 

   对于如何执行命令busybox --install -s 的默认安装路径, 这里我还不太清楚, 或许跟Makefile和编译busybox的相关设置有关. 

   尽管我们不可以在Android里面通过执行busybox --install -s 命令来安装常用命令, 我们却可以通过另外一个方法来把常用命令安装到Android里面.  

   方法很简单, 可以先在外面的linux系统中执行make install命令把相关的命令提取出来. 然后再通过命令adb push ./_install/bin /data/busybox/bin 把这些常用命令复制进Android系统中. 注意: make install安装命令的所在路径可通过执行make menuconfig进行设置, 默认为./_install目录下面.

   这样,我们就不用每次使用busybox提供的一个命令时, 都要在前面加上busybox了.

11 修改/init.rc文件设置环境变量.

     请参考帖子: 对Android启动过程的进一步研究

     要提醒的是, 修改PATH环境变量的时候, 应该把busybox常用命令的路径"/data/busybox/bin"放在Android的常用命令路径"/system/bin"的前面, 否则, 先查找得到的将不是busybox的命令,  可以这样设置:

     export PATH /data/busybox/bin:/sbin:/system/sbin:/system/bin:/system/xbin

分享到:
评论

相关推荐

    为Android加入busybox工具

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

    android系统使用busybox工具

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

    Android Busybox工具

    Android系统编译好的可用Busybox工具。 BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount...

    busybox工具,在android里面使用的

    在android端使用busybox工具,可将附件的busybox复制到手机的system/xbin/目录下,修改权限之后就可以使用busybox,这样可以使用在android上很多linux命令

    Busybox,Android工具

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

    ANDROID交叉编译后的BUSYBOX-1.19.4

    总的来说,"ANDROID交叉编译后的BUSYBOX-1.19.4"是为Android设备定制的命令行工具集,通过在非Android系统上进行交叉编译生成,以满足Android环境下的系统管理和调试需求。使用这个版本的BusyBox,用户可以在没有...

    Android 版本的busybox和 ifstat工具

    综上所述,Busybox和ifstat是Android系统中强大的工具,它们提供了一套实用的命令行工具和网络监控功能,对于系统管理员、开发者以及对系统有高级需求的用户来说,是必不可少的工具。合理利用这两个工具,可以极大地...

    Android busybox

    android可用的交叉编译后的busybox。支持70多个linux命令,可以极大扩展android命令集

    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的源码,验证过在android上能使用

    Busybox是一款轻量级的Linux实用程序集合,它将许多常见的Unix命令打包成一个单一的可执行文件,常用于嵌入式系统,如Android设备。标题提到“修正编译过的busybox的源码,验证过在android上能使用”,这意味着我们...

    Android busybox 简单介绍

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

    Android busybox 可执行文件支持arm,arm64,x86,x86-64

    Android busybox 可执行文件支持arm,arm64,x86,x86_64 版本1.34.1,更多版本见下面链接 https://busybox.net/downloads/binaries/ https://github.com/meefik/busybox

    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 工具,适用于全志T7/Android 9.0平台

    busybox 工具,适用于全志T7/Android 9.0平台

    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默认的busybox

    在Android系统中,`BusyBox`是一个非常重要的工具集,它包含了数百个常见的Linux命令行工具,如ls、cp、mv等。默认情况下,Android系统可能预装了基础的`BusyBox`,但用户可能会选择替换为更新或功能更丰富的版本,...

    busybox工具

    busybox给需要的人下载。需要卡刷刷入。

    busybox for android

    android中的busybox工具集。

    busybox_android

    总的来说,这个 "busybox_android" 压缩包为 Android 用户和开发者提供了一个方便的工具,使他们能够在设备上执行各种 Linux 命令,进行系统维护、故障排查或软件开发。通过安装和使用 Busybox,用户可以更深入地...

    android中用的busybox

    adb push busybox /system/

Global site tag (gtag.js) - Google Analytics