领先的高清媒体半导体解决方案供应商全志科技(AllWinner Technology)授权获得了ARM Cortex-A8处理器和 Mali-400 MP图形处理单元(GPU),致力以超低功耗将高性能处理器和超高清带入一系列广泛的基于Android操作系统的互联消费电子产品,包括从平板电脑到汽车多媒体系统等.
Ubuntu Server14.04上编译Android6.0源码
步骤一:
安装Ubuntu系统。我们既可以通过虚拟机的方式安装Ubuntu,也可以直接在电脑上安装,为了获得更好的Linux操作体验,我建议直接在电脑上面安装Ubuntu,我在自己电脑上安装了win10和Ubunut Server14.04双系统,使用的时候可以根据自己的需要随时切换系统,非常方便。关于如何搭建双系统,网上有很多教程,我就不在此叙述了,但是我想说明的一点是在安装Ununtu的时候,分配给Ubuntu的磁盘空间一定要尽可能大一点,至少60G,我分配了105G,编译完成之后还剩下50多G,也就是说差不多用了近50G的空间,所以安装Ubuntu的时候一定得分配大一点的磁盘空间,不然编译会因为空间不足而中断。
步骤二:
搭建好Ubuntu系统之后,我们需要下载一份Android6.0的源码,网上很多文章都介绍了如何通过repo的方式来下载源码,但是通过这种方式下载速度可能并不是很理想,我是直接下载的别人已经上传到百度云的Android6.0源码,下载地址:http://pan.baidu.com/s/1o6N86a2#path=%252F。
因为Android6.0的源码所占空间非常大,所以上传者把Android源码分成了很多个文件,待全部下载完毕之后,我们可以通过命令把这些分开的文件合并为一个文件。
步骤三:
如果我们是在Windows上下载的源码,那么当我们打开Ubuntu之后,要做的第一件事请就是把Windows中的Android源码拷贝到Ubuntu系统下面,我直接利用复制粘贴的方式将源码拷贝到了Ubuntu的Home目录下面,拷贝之后的目录结构Home/android6_r1/各个分开的源码文件。
步骤四:
合并这些被分开的源码文件。我们按下键盘上的ctrl + alt + T打开控制台,通过cd命令进入到Home/android6_r1/目录下面,然后执行命令:cat Android6_r1_* > M.tgz,不用多久,在Home/android6_r1/目录下面就会生成一个新的文件——M.tgz,M.tgz就是合并之后的压缩文件。
步骤五:
解压步骤四生成的压缩文件。同样是在Home/android6_r1/目录下面,我们在控制台执行命令:tar zxvf M.tgz,开始解压。解压的过程大概需要20分钟左右的时间,请耐心等待。解压好了之后,在Home/android6_r1/会生成一个mydroid的文件夹,这个文件夹就是Android源码的根文件夹了,里面有abi、devices、hardware、packages、sdk、art等文件夹和文件。
步骤六:
安装编译源码所需要的软件。在控制台中我们通过cd..命令退回到Unbuntu用户的根目录下,然后依次执行以下命令:
sudo apt-get update
sudo apt-get install openjdk-7-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac
以上命令每一条都必须分开单独执行,目的是为了获取1.7版本的jdk并设置环境变量。当我们安装完Ubuntu之后可能会自带一个jdk,但是如果用自带的jdk编译Android源码很可能会提示jdk版本不符合要求的错误,因此我们需要重新下载1.7版本的jdk,我用openjdk-7-jdk编译未出现任何问题。
接下来继续执行以下命令,同样每一行都是分开单独执行的:
sudo apt-get install git gnupg flex bison gperf build-essential
sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
sudo apt-get install libgl1-mesa-dev g++-multilib mingw32 tofrodos
sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
以上命令主要是安装编译源码时需要用到的各种软件,如果没有安装这些软件,编译的过程中会提示缺少必要的软件而无法继续编译,因此,在正式编译源码之前,一定要先安装这些软件。
步骤七:
开始编译。在控制台中通过cd命令进入到Home/android6_r1/mydroid/目录下,然后执行命令:source build/envsetup.sh,导入编译Android源码所需的环境变量和其它参数。
步骤八:
在控制台中执行命令:lunch,运行命令之后会提示我们选择编译目标。这里我选择的的默认目标,即aosp_arm_eng。
步骤九:
在控制台中执行命令:make -j8,开始编译。注意,make -j8命令中的数字8和我们电脑的CPU核心数以及线程数有关系,一般这个数字的数值最大不能超过CPU线程数的2倍,例如我电脑的处理器是i5 6200U,为双核四线程,因此编译Android源码的时候,我可以设置的最大工作线程数量为4 * 2 = 8。在执行make命令的时候我们应该根据自己的CPU参数设置合理的工作线程数值。
以上步骤执行完之后,就是一段非常漫长的等待了,我从中午十二点多开始编译,一直到晚上九点多编译完成,整个编译过程耗时九个多小时,幸好我的运气还不错,编译过程中没有出现任何错误,只是中途意外中断了一次,但是Android源码是可以接着上次中断的位置继续编译的,已经编译的部分不会重复编译,因此并未对我造成大的影响。同志们,我想说的是,编译的过程中一定要有耐心哟!
整个源码编译完成之后,如果提示如下信息,那么Congratulations, you are successful!!!
此时,你可以直接执行命令:emulator,执行之后将会出现android模拟器的界面,如图:
OK,至此Android6.0源码的编译就大功告成了,接下来我们就可以随心所欲地阅读和修改源码内容,定制自己心目中的Android系统了!
《全志A64 Android6.0编译》
下载里面的”Android6.0/SDK源码”目录的所有源码压缩包.
Android6.0的源码是由三个压缩包: cqa64_android_v6.0_20180714.tar.gz.aa, cqa64_android_v6.0_20180714.tar.gz.ab, cqa64_android_v6.0_20180714.tar.gz.ac组成的。
解包命令: cat cqa64_android_v6.0_20180714.tar.gz.a* | tar -xzvf -
解包完成后,会产生cqa64_android_v6.0源码目录,里面有android和lichee子目录,分别存放android系统源码和linux内核源码.
编译过程与其它全志方案差不多.
因编译过程需要使用到32位的系统工具,需要先安装32位的相关工具:
sudo yum install glibc*i686
sudo yum install zlib*i686
sudo yum install libstdc++*.i686
32位系统工具安装完成后,需要安装fakeroot工具,源码包在”tools”目录里。只要解包后执行:
./configure
make
make install
编译bootloader及linux内核.
进入源码lichee目录下直接执行./build.sh 即可.
上步完成后,在编译Android源码前还需要安装一些如jdk等系统工具:
sudo yum install gperf
sudo yum install flex
sudo yum install java-1.7.0-openjdk*
注意: jdk需要使用openjdk,而且版本必须是1.7
上面操作完成后,还需要编译出一个pc上使用的busybox工具。
解包busybox源码包后, 进入busybox源码目录下操作:
make menuconfig //出现界面后,直接保存退出即可,无需作任何更改
make
cp busybox /bin/ //复制编译出的busybox工具到系统的bin目录
进入源码android目录下编译:
source build/envsetup.sh
lunch
//出现选择界面后,选择"22. tulip_p1-eng"
extract-bsp
make -j4
pack //生成的镜像在cqa64_android_v6.0/lichee/tools/pack/sun50iw1p1_android6.0_p1_uart0_bv3.img
编译出Android系统镜像后,就可以使用全志提供的PhoenixCard工具烧写到sd卡启动。
也可以使用PhoenixSuit工具通过usb线烧写到板上emmc.
注意: PhoenixCard工具只有提供windows系统上使用的.
PhoenixSuit工具有提供Linux系统上使用,在Centos7上因内核版本低无法使用,建议在windows系统上使用.
刷机步骤:
1、 按住开发板 MENU 按钮不放
2、 插入电源给板子上电
3、 使用 mini usb 线连接开发板和电脑
4、 松开 MENU 按钮
PhoenixSuit 提示升级。