设为首页 加入收藏

TOP

Android自带的toolbox分析及扩展
2014-11-24 08:14:56 来源: 作者: 【 】 浏览:0
Tags:Android 自带 toolbox 分析 扩展

shell实现分为两部分:


一、shell解释器和内置命令


源码位于system/core/sh目录下,主要完成shell命令的解释查找,对于builtins.c中包含的内置命令,直接执行,对于toolbox的扩展命令,间接调用toolbox程序完成。


二、toolbox扩展命令


主要完成扩展命令的执行,每一个扩展命令对应一个name_main函数,如ls命令,对应ls_main函数。同时,每一个扩展命令都由一个system/core/toolbox/目录下面的.c文件实现。toolbox.c会根据这个目录下面的.c文件生成tools.h头文件,并在system/core/toolbox/Android.mk文件中为每个命令生成指向toolbox的连接。toolbox的实现结构使它扩展一个命令很容易。


假设现在我们自己想手工添加一个shell命令mycommand,只要在system/core/toolbox/目录下面新建一个mycommand.c文件,并在里面实现一个mycommand_main函数,然后在system/core/toolbox/Android.mk中添加mycommand.c即可。Android.mk会自动把它编译进toolbox程序,并在编译生成的Android系统/system/bin目录下为这个命令生成一个指向toolbox的连接。


接下来翻译一下网上的一篇文章,借助它,可以把Android自带的toolbox替换成busybox。


在Android系统中安装busybox命令行工具


本文简单地介绍了怎么把busybox安装到Android的文件系统中去。如果你想直接安装,可以从下面的地址下载我已经预编译好并在Android2.1系统上试验成功的busybox,然后直接跳过下面的安装步骤。


下载在Linux公社的1号FTP服务器里,下载地址:


密码:www.muu.cc


在 2011年LinuxIDC.com\3月\Android自带的toolbox分析及扩展


下载方法见 http://www.linuxidc.net/thread-1187-1-1.html


一、编译busybox


1、下载busybox的最新版本,本文写作时最新版本是1.13.3。


下载地址:http://www.busybox.net/


2、解压源码:


tar jxf busybox-1.13.3.tar.bz2


3、运行menuconfig对busybox进行配置


cd busybox-1.13.3/


make menuconfig


4、在menuconfig中设置以下选项


Busybox Settings --> Build Options --> Build Busybox as a static binary (no shared libs) - Enable this option by pressing "Y"


Busybox Settings --> Build Options --> Cross compiler prefix - Set this option equal to "arm-none-linux-gnueabi-"


Busybox Settings --> Installation Options --> Don't use /usr - Enable this option by pressing "Y"


5、把交叉编译器的地址导入到环境变量:


export PATH=/opt/arm/arm-2007q3/bin:$PATH


6、编译busybox


make


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇PJSIP 在Linux系统下编译 下一篇Android使用socket使底层和framew..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)
·TCP/UDP协议_百度百科 (2025-12-26 12:20:11)
·什么是TCP和UDP协议 (2025-12-26 12:20:09)
·TCP和UDP详解 (非常 (2025-12-26 12:20:06)