移植Busybox到Android平台
来源:互联网 发布:jsp中的js代码不执行 编辑:程序博客网 时间:2024/04/30 13:40
Busybox想必大家都很熟悉,但是其是基于glibc/uclibc开发,而android采用bionic,另外dns有特殊处理。在android的移植,实际上已经有人做过了,比如https://github.com/CyanogenMod.
但是他的移植不够好,主要有两点:
1. 基于eclair的,虽然在froyo下没什么问题。比如froyo下的bionic实际上已经有了regex了,而他依然选择第三方库的。此外种种,不一而足。
2. 无法自定义。我们知道,busybox的makefile和linux内核一样,具有高度的可配性,从而生成makefile。
而Android.mk需要指定LOCAL_SRC_FILES,虽然有LOCAL_GENERATED_SOURCES,但是还是不够灵活。为此,本人增加了一些补丁,来动态获取source.
实际上之前的移植和这相关,是定义gcc的cflags等环境变量,然后生成busybox,和agcc有点类似。
后来本人改为采用Android.mk这种方式了。经历一段时间后,终于基本完成。
在默认defconfig下,仍然有一些无法编译,本人也不想支持这些,所以不会再打补丁。
比如init, syslogd, loginutils,及rpc服务,共享内存,utmp/wtmp的几个。
考虑到这些基本在android里基本没有用,就直接去除了。
禁用的选项请参考Android.in。
不再多说,如果各位有心,请关注以下网址:
http://github.com/liudongmiao/busybox-android
另外,对bionic的要求是froyo以上,虽然里面有支持eclair,但只限于动态链接的情况。
目前静态链接编译bionic后,大约800多k,比起之前用glibc静态链接1.8M,已经很小很小了。
一是使用busybox里内建的makefile,比如你使用make menuconfig,但是编译时需要指定很多环境变量。
二是重新写适合busybox编译的Android.mk,然后直接运行make APP-busybox就可以了。
现在这里说一下运行我这个的方式:
1. 请确保bionic是eclair+的版本,最好是froyo或master (本人只在froyo下测试)
2. 默认使用静态链接,如果目标平台是eclair并要支持动态链接,请... (呃,真的有必要说方法么,哈?)
shell>> make APP-busybox
这个将使用默认的config,即defconfig,如果需要修改,请这样运行:
1. 到busybox目录下运行make O=/path/to/busybox_intermediates menuconfig (生成config)
然后运行make APP-busybox
- 移植Busybox到Android平台
- BusyBox移植到Android
- Android上移植busybox
- Android上移植busybox
- Android移植busybox
- Android移植busybox
- Android移植busybox
- Android Recovery 移植 Busybox
- ffmpeg移植到android平台
- FFmpeg 移植到 Android 平台
- srtp移植到android平台
- gloox移植到android平台
- FFmpeg 移植到 Android 平台
- 移植DynamixelSDK到Android平台
- tensorflow 移植到android平台
- 移植Busybox到宿主机
- 移植Busybox到宿主机
- 移植busybox到开发板
- /etc/dhcpd.conf说明
- Windows 下Redmine-0.9.x的安装
- SQLite数据库编程详解
- FreeBSD 设置网卡IP,网关和DNS
- 数组边界引起的死循环
- 移植Busybox到Android平台
- Linux core dump的调试技
- 客户信息获取
- native2ascii
- MyEclipse开发WebService教程
- 从百度文库中复制文本的方法
- Android输入法框的梳理
- android 调用系统前置摄像头
- XML 基础简介