02 A33 Android系统源码编译

本文详细介绍了在A33平台上编译Android系统的全过程,包括安装必要的开发工具、配置环境变量、编译uboot及Linux内核源码、编译Android系统源码、编译busybox程序及最终打包生成镜像文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载源码包,解包后进入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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值