1、AOSP源码下载
AOSP:即为"Android Open-Source Project"的缩写,中文意为 :"安卓开放源代码项目"。
Google官方宣称:任何人都可以以任何目的使用Android源代码,我们也十分欢迎这样做。但是为了共享整个Android生态系统的应用程序,所有设备制造商必须参加“安卓兼容性计划”,但事实上......在中国很难实现兼容计划~!。
目前,我们可以下载Google原生未定制修改的AOSP版Android源码进行测试编译,但是一定要保证整套源码的健全性,否则无法编译通过。
正规手机厂商做ROM定制时,普遍的方案都是从源码定制厂商(如:高通、联发科、华为、Inter、Marvll等)拿到针对其硬件平台优化后的源码,进行二次的定制、修改、编译和发布(例如国内备受大家喜爱的: 小米 MIUI、魅族 Flyme、锤子 SmartisanOS、华为EMUI、一加 氢OS、OPPO ColorOS 等等)。
通常情况下,手机厂商都会名义上免费拿到配套源码,前提是他们的产品需要搭载配套的芯片(如 高通的 Snapdragon 骁龙系列、MTK 的Helio 系列、华为的麒麟等)。
这里提供一套Android 1.6 --- Android 6.0各个版本下载的网盘地址,供大家测试使用,其健全性还有待考究:
链接: http://pan.baidu.com/s/1bmArk6 密码:m8fq
2、上传源码到Ubuntu编译服务器
首次向编译服务器上传初始化源码,一般是由管理员账户执行,较比简便的的方式就是使用FTP软件(如Xshell、FlashFXP、Xftp等)登陆服务器,直接拖进对应的目录。
3、 编译前的配置
编译前对编译环境的配置,是我们编译源码的必行之路。介于不同的源码定制厂商对环境配置可能会有一定的出入,因此,这里只是介绍几个基本通用的环境配置命令,供大家参考:
3.1在 .bashrc文件中添加相关属性:
echo export USE_CCACE=1 >> ~/.bashrc
3.2为了提高编译效率,我们需要设置编译器高速缓存,执行以下命令:
prebuilts/misc/linux-x86/ccache/ccache -M 50G
-M 50G 两个参数表示设置50G大小的空间作为编译缓存,这个数值可以根据自己的硬盘空间大小进行调整
3.3导入编译Android源码所需的环境变量和其它参数,运行以下命令:
source build/envsetup.sh
3.4运行lunch命令选择编译目标
lunch
这里输入 "1" 选择aosp_arm_eng
各种版本的不同之处,待补充。
4、执行编译
完成编译环境的配置之后,执行如下命令开始源码编译:
sudo make -j8
【执行make -j8, 8为同时编译的线程数,一般Google推荐执行源码编译的线程数 = CPU核心数x 2 + 2,比如4核,就推荐10线程编译,执行make –10。】
关于cpu个数,可以用下面命令查看:
cat /proc/cpuinfo
编译命令同配置命令一样,不同的定制厂商都会包装出各自不同的源码编译方式和命令。
由于使用虚拟机编译源码的时长超乎想象,所以,暂时不给大家提供编译结果的展示,后续,配置实体服务器编译正规源码后,补充贴图。
5、刷机烧写ROM