下载源码包,解包后进入Android-SDK/tools目录.
1 先安装dtc-master和fakeroot工具.
dtc-master安装方法:
解包后,在源码目录下: make && make install
fakeroot安装方法:
解包后,在源码目录下: ./configure ; make && make install
2 安装jdk, 注意因a33提供的是android4的代码,需要使用到原sun公司的jdk. android5及以上可用openjdk.
在终端执行:
./jdk-6u45-linux-x64.bin //它会在当前目录下解包同jdk1.6.0_45
在/etc/bashrc文件里设置环境变量:
export JAVA_HOME=/disk3/myown/A33/Android-SDK/jdk1.6.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
设置完成后,注消系统重登后环境变量生效.
可用”java -version” / “which java”确认是不是使用配置的jdk.
如还不是,则需作下面操作:
update-alternatives --install /usr/bin/java java /disk3/myown/A33/Android-SDK/jdk1.6.0_45/bin/java 300
update-alternatives --config java //弹出选项后,选择/disk3/myown/A33/Android-SDK/jdk1.6.0_45/bin/java即可
3 编译uboot, linux内核源码:
解包A33_Vstar_Lichee_20170227.tar.bz2后,进入lichee目录下终端操作:
./build.sh config
All available chips:
0. sun8iw5p1
Choice: 0
All available platforms:
0. android
1. dragonboard
2. linux
Choice: 0
All available kernel:
0. linux-3.4
Choice: 0
All available boards:
0. evb
1. maple
2. redwood
3. vstar
4. y2
5. y3
Choice: 3
//第一次编译前,需要给内核准备一个默认配置
cp linux-3.4/a33_vstar_defconfig linux-3.4/.config
//然后执行脚本,编译:
./build.sh
//它会把所用的交叉编译器解包到:lichee/out/sun8iw5p1/android/common/buildroot/external-toolchain
//执行完毕后,在lichee/out/sun8iw5p1/android/common目录下有生成的内核镜像,驱动模块的ko文件, 内存文件系统,uboot的镜像等.
4 android系统源码编译:
解包Android-SDK目录下的A33_Vstar_Android_20170227.tar.bz2后,进入android目录:
在终端上的执行:
. build/envsetup.sh //让android里面配置的环境生效
lunch //选择要编译的方案, 选择"6. vstar-eng"
extract-bsp //会复制内核镜像和驱动模块
make -j4 //编译
编译需要几个小时,完成后在 android/out/target/product/vstar/目录下生成 boot.img recovery.img system.img
//在编译过程,如发生下面这样的错误,则安装gperf库即可
File “scripts/make_css_property_names.py”, line 238, in
in_generator.Maker(CSSPropertiesWriter).main(sys.argv)
File “/disk3/myown/A33/Android-SDK/android/external/chromium_org/third_party/WebKit/Source/core/scripts/in_generator.py”, line 119, in main
writer.write_files(options.output_dir)
File “/disk3/myown/A33/Android-SDK/android/external/chromium_org/third_party/WebKit/Source/core/scripts/in_generator.py”, line 77, in write_files
self._write_file(output_dir, generator(), file_name)
File “scripts/make_css_property_names.py”, line 233, in generate_implementation
5 编译x86版的busybox程序, 用pack命令生成镜像时会使用busybox程序的功能.
解包Android-SDK/tools/busybox-1.27.2.tar.bz2源码包后, 进入busybox-1.27.2目录下终端操作:
make menuconfig //弹出配置界面后,无需作任何改变,保存退出即可.
make && make install
//完成后,"cp _install/bin/busybox /bin/"把busybox程序复制到系统的/bin目录下.
6 在android源码的根目录下,打包出镜像文件,在终端下执行:
pack
//生成文件在Android-SDK/lichee/tools/pack/sun8iw5p1_android_vstar.img