`
fuerbosi
  • 浏览: 472334 次
文章分类
社区版块
存档分类
最新评论

为Android加入busybox工具

 
阅读更多

我们可以通过两种方式进入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. 下载交叉编译工具: GNUToolchainforARMProcessors

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

其中第一项选择ARMEABI或ARMGNU/Linux,第二项选择IA32GNU/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工具

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

    替换android默认的busybox

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

    android busybox

    在Android平台上,Busybox扮演着至关重要的角色,因为它是Android系统的核心组件之一,提供了大量基本的命令行工具。 **一、Busybox的基本概念** 1. ** Busybox的作用**:在Android系统中,Busybox提供了数百个...

    android镜像编辑工具

    在IT行业中,Android镜像编辑工具是开发和定制Android系统不可或缺的部分。这些工具通常在Linux平台上运行,允许开发者和系统工程师对Android操作系统进行深入的修改和优化。Android AOSP(Android Open Source ...

    从Android NDK安装ARM交叉编译工具链

    Busybox是一个包含很多小型Unix工具的集合,它在Android系统上非常有用。它比Android标准工具箱更加强大。编译Busybox的过程包括下载源码包、解压、配置以及编译。在编译Busybox时,可能需要对配置文件进行修改,...

    busybox1.20.2

    6. **赋予执行权限**:在 Android 设备上,使用 `chmod` 命令给 `busybox` 文件添加执行权限,例如:`chmod 755 /path/to/busybox`。 7. **软链接**:为了让所有命令都能通过简单的命令名执行,你需要创建软链接。...

    busybox1.27.1_binary

    Busybox 的设计哲学是提供“最小可行系统”,因此每个工具都被优化为尽可能小,同时保持足够的功能。对于需要在资源有限的环境中构建和维护系统的 IT 专业人员来说,Busybox 是一个不可或缺的工具。

    busybox pro汉化版

    BusyBox是一个结合许多UNIX实用工具为一个小可执行程序的微小版本。它提供替代了你通常在GNU fileutils,shellutils等中发现的部分实用工具。 BusyBox的使用功能选项一般比其堂兄弟全功能的GNU少,然而,选项中包含...

    Android boot解包打包工具,支持Android 4到android11,Linux 环境可用

    本工具提供了这样的功能,它能解析boot.img文件,将其中的ramdisk(通常为 squashfs 或 ext4 格式)解压为可读写的目录结构,方便用户查看和修改内容。这对于系统开发者和安全研究人员来说尤其重要,他们可以借此...

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

    在Android设备的开发和调试过程中,ADB(Android Debug Bridge)是一个不可或缺的工具,它允许开发者通过USB...通过Python和BusyBox,我们可以创建更强大的工具,实现对Android设备的深度控制,而无需冒险获取root权限。

    BusyBox.apk

    root权限的配套工具。有的rom没有添加可以自己下载安装,缺了它很多高权限工具没法使用,没root的可以无视它。

    android 文件系统制作

    - **下载BusyBox**:访问链接`http://blog.chinaunix.net/u/20947/showart.php?id=1913228`下载适用于Android平台的BusyBox工具。 - **了解BusyBox**:BusyBox是一款集成了许多常用Linux命令和工具的小型软件,非常...

    android内核移植

    - **下载BusyBox工具**:BusyBox是一个包含了多个常用Linux工具的小型程序集。 - **使用emulator获取root文件系统**:通过启动Android模拟器,并使用ADB工具将BusyBox推送到模拟器中的/data分区,然后使用BusyBox...

    移植Android到S3C6410

    1. **下载BusyBox工具**:BusyBox是一个集成了许多常用Linux命令的小型工具,可以从`http://benno.id.au/blog/2007/11/14/android-busybox`下载。 2. **运行模拟器获取Root Filesystem**:使用Android SDK中的...

    android底层核心服务编程

    - 下载BusyBox工具,该工具包含了许多标准Unix工具的一个或多个命令的结合体。 - 使用Android SDK中的`emulator`工具启动模拟器,并通过ADB工具推送BusyBox至模拟器的文件系统中。 #### 二、Android底层核心服务...

    Android 系统内 system/xbin 脚本文件

    在Android中,`xbin`目录下的文件主要是 BusyBox 集成的实用工具和一些特定的系统服务。这些文件通常是 ELF (Executable and Linkable Format) 格式,可以在Linux环境下运行。BusyBox是一个轻量级的工具集,它集合...

    S3c6410移植android过程

    - 启动 Android 模拟器,并通过 ADB 工具将 BusyBox 推送到模拟器中。 - 在模拟器中使用 BusyBox 将 `/system`、`/data` 和 `/etc` 目录压缩成 tar.gz 文件。 #### 三、移植过程 1. **修改 Linux Kernel 源码**...

Global site tag (gtag.js) - Google Analytics