- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
toolbox命令集
Android自带的toolbox分析及扩展
Android那点儿少得可怜的shell命令折磨的死去活来,终于下定了革命的决心。看一下怎么把渺小的toolbox替换成伟大的busybox吧。先大致描述一下Android系统中的shell程序部分。
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。
Installing Busybox command line tools
在Android系统中安装busybox命令行工具
本文简单地介绍了怎么把busybox安装到Android的文件系统中去。如果你想直接安装,可以从下面的地址下载我已经预编译好并在Android2.1系统上试验成功的busybox,然后直接跳过下面的安装步骤。
下载在Linux公社的1号FTP服务器里,下载地址:
FTP地址:
用户名:
密码:www.muu.cc
在 2011年LinuxIDC.com\3月\Android自带的toolbox分析及扩展
下载方法见?/thread-1187-1-1.html
一、编译busybox
1、下载busybox的最新版本,本文写作时最新版本是1.13.3。
下载地址:/
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 -- Dont use /usr? -? Enable this option by pressing Y
5、把交叉编译器的地址导入到环境变量:
export PATH=/opt/arm/arm-2007q3/bin:$PATH
6、编译busybox
make
二、安装busybox
把busybox安装到Android系统中去,做这几步:
1、在Android系统根目录下创建一个/bin目录。
mkdir /path-to-Android-fs/bin
2、把编译出来的busybox复制到/bin目录下
cp busybox /path-to-Android-fs/bin
3、把busybox安装到Android机器中
cd /bin
./busybox --install
三、把busybox作为默认shell
需要像下面这样编辑一下init.rc
1、编辑console服务,让它默认运行busybox
service console /system/bin/sh? -? service console /bin/sh
2、把busybox路径
文档评论(0)