[置顶] Android源码编译详解【四】:Android 6.0_源码的下载与编译

时间:2021-12-02 02:42:38


 

 1、AOSP源码下载 


        AOSP:即为"Android Open-Source Project"的缩写,中文意为 :"安卓开放源代码项目"。

Google官方宣称:任何人都可以以任何目的使用Android源代码,我们也十分欢迎这样做。但是为了共享整个Android生态系统的应用程序,所有设备制造商必须参加“安卓兼容性计划”,但事实上......在中国很难实现兼容计划~!。

[置顶]        Android源码编译详解【四】:Android 6.0_源码的下载与编译

        目前,我们可以下载Google原生未定制修改的AOSP版Android源码进行测试编译,但是一定要保证整套源码的健全性,否则无法编译通过。


        正规手机厂商做ROM定制时,普遍的方案都是从源码定制厂商(如:高通、联发科、华为、Inter、Marvll等)拿到针对其硬件平台优化后的源码,进行二次的定制、修改、编译和发布(例如国内备受大家喜爱的: 小米 MIUI、魅族 Flyme、锤子 SmartisanOS、华为EMUI、一加 氢OS、OPPO ColorOS 等等)。

[置顶]        Android源码编译详解【四】:Android 6.0_源码的下载与编译

        通常情况下,手机厂商都会名义上免费拿到配套源码,前提是他们的产品需要搭载配套的芯片(如 高通的 Snapdragon 骁龙系列、MTK 的Helio 系列、华为的麒麟等)。

   

        这里提供一套Android 1.6 --- Android 6.0各个版本下载的网盘地址,供大家测试使用,其健全性还有待考究:


        链接: http://pan.baidu.com/s/1bmArk6           密码:m8fq

 

 2、上传源码到Ubuntu编译服务器 


        首次向编译服务器上传初始化源码,一般是由管理员账户执行,较比简便的的方式就是使用FTP软件(如Xshell、FlashFXP、Xftp等)登陆服务器,直接拖进对应的目录。

[置顶]        Android源码编译详解【四】:Android 6.0_源码的下载与编译


 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

[置顶]        Android源码编译详解【四】:Android 6.0_源码的下载与编译


        3.4运行lunch命令选择编译目标

                 lunch      

  [置顶]        Android源码编译详解【四】:Android 6.0_源码的下载与编译    

这里输入 "1" 选择aosp_arm_eng 

[置顶]        Android源码编译详解【四】:Android 6.0_源码的下载与编译

        各种版本的不同之处,待补充。

            

 4、执行编译 


        完成编译环境的配置之后,执行如下命令开始源码编译:

                sudo make -j8


        执行make -j8, 8为同时编译的线程数,一般Google推荐执行源码编译的线程数 = CPU核心数x 2 + 2,比如4核,就推荐10线程编译,执行make –10。


        关于cpu个数,可以用下面命令查看:

 
      
        cat /proc/cpuinfo


        编译命令同配置命令一样,不同的定制厂商都会包装出各自不同的源码编译方式和命令。

        由于使用虚拟机编译源码的时长超乎想象,所以,暂时不给大家提供编译结果的展示,后续,配置实体服务器编译正规源码后,补充贴图。

 

 5、刷机烧写ROM 


        由于暂时没有正式可编译的定制源码和测试机/测试板,而且不同源码定制平台厂商会提供不同刷机工具FlashTool,因此,这步暂时不做过多的说明,后续再行补充,敬请谅解。