Andorid 系统本身提供的命令工具很有限,对于开发人员来说,是需要一个功能强大的busybox滴.
如何让一个标准的busybox能够在Android 系统运行起来。可以有两种方法。
1. 将 busybox source code移植到Android 系统中, 然后编译出可执行文件。
2. 不移植busybox 到Android 系统中, 但让它能在Android 系统中运行。
对于第一种情况,需要将 busybox 的source code移植到Android 系统中,利用Android自带的toolchain来编译,但是,由于Android自带的toolchain与标准的arm-linux编译器不是完全兼容。
因此,工作量相对较大。这种方法可以使用Android 的系统 lib 库,从而编译出很小size的可执行文件。
对于第二种情况,则相对简单,但是需要考虑如下条件:
编译器支持的 ARM 指令集的版本 (是否一致)
linux的系统调用 (是否一致)
当然,由于编译器环境不一致,因此,只能编译静态的可执行文件,不能对 lib 库有依赖。这样,编出的可执行文件的size 比较大。
方法:
1. 下载 busybox source code, 目前最新的版本是 1.15.0
2. make menuconfig
使能如下项
Busybox Settings -> Build Options -> Build as a static binary (no hared libs).
3. modify Makefile
设置编译器类型, 我用的是 arm-linux-4.1.1 toolchains.
:= arm-linux-
同时将编译器的路径加入到系统PATH变量下
4. make
通过make 获得 busybox 可执行文件
5. 拷贝 busybox 到Android 运行环境中, 并增加可执行权限
chmod 777 busybox.
6. enjoy it.
for exmaple, get network device information.
./busybox ifconfig
或者通过如下命令来安装
./busybox --install
阅读(1983) | 评论(0) | 转发(0) |