所需的源码及工具下载链接: https://pan.baidu.com/s/1qZlSb3A 密码: 21b2
编译android前,先确保内存有足够大(尽量4G以上), 并最好有4G以上的交换区. 否则有可能会在编译过程中异常退出.
如果没有交换区或交换区不够大可以在硬盘上生成一个交换区文件作交换区使用:
dd if=/dev/zero of=/usr/myswap bs=1M count=4096 //生成一个4G的文件
mkswap /usr/myswap //把这个文件格式化成swap区
// 如原有使用中的交换区可用swapoff命令停止使用交换区
swapon /usr/myswap //使用新交换区
并需安装fakeroot, flex, gperf等工具(在Allwinner_H3的tools目录里).
安装fakeroot工具fakeroot_1.18.4.orig.tar.bz2
tar xf fakeroot_1.18.4.orig.tar.bz2
cd fakeroot-1.18.4
./configure
make
make install
yum install flex*
yum install gperf*
//注意,必须需要安装好以上的工具才可以编译Android系统源码,否则会发生一些不明觉历的错误
//可在终端通过"which fakeroot/flex/gperf"验证命令是否已正常安装
//因Android系统源码里的编译器是32位的程序,所以需要安装32位程序支持库才可以:
yum install glibc*i686
yum install zlib*i686
yum install libstdc++*i686
因h3提供的是Android4.4的源码,需要使用较老的jdk6来编译源码,所以需要安装配置使用jdk6
1. 安装jdk6(在Allwinner_H3的tools目录里)
chmod +x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
2. 安装完成,在当前目录下出现jdk1.6.0_45子目录
mv jdk1.6.0_45/ /usr/lib/jvm
因系统里已经装有好几个版本的java虚拟机, 需要把我们这个虚拟机设为默认的虚拟机
//在终端执行底下两条命令,将会设为默认的虚拟机
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 300
update-alternatives --config java //输入此命令后, 会出现选择信息
选中"/usr/lib/jvm/jdk1.6.0_45/bin/java".
vim /etc/bashrc //修改环境变量, 以便使用java虚拟机. 修改后,重新打开终端就会生效
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
验证jdk是否配置好:
java -version
正常:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
----------
下载Allwinner_H3/Android Souces Code/qin2-sync-yunos-v1.0.tar.gz,
解包源码, 源码解包后会得到两个子录(android, lichee):
进lichee目录里编译uboot, 内核镜像等:
cd lichee
./build.sh lunch
选中2. sun8iw7p1-android-dolphin
编译完成后,进入android源码目录:
cd ..android
然后在终端执行:
source ./build/envsetup.sh
lunch dolphin_fvd_p1-eng
extract-bsp
make –j8
用busybox源码编译出一个pc上用的busybox可执行文件, 编好后复制到bin目录下
在busybox源码目录下, 执行命令"make distclean"后,执行"make menuconfig"保存退出后,
再执行make命令即可编译出pc上用的busybox程序.
执行"pack"命令打包出镜像文件
完成后,镜像在lichee/tools/pack/sun8iw7p1_android_dolphin-p1.img
镜像需在windows下用工具PhoenixCard_V310_20130618烧写到sd卡里