zoukankan      html  css  js  c++  java
  • CM12同步源码及编译教程

    同时提供基于安卓5.0的MKL魔趣猪扒饭编译教程~
    【玩机组出品】魔趣猪扒饭MKL50.1编译教程
    http://www.oneplusbbs.com/forum.php?mod=viewthread&tid=578692

    环境搭建

    1.安装64位Ubuntu系统(实体安装、虚拟机安装均可)

    注意:要求机器至少4G内存(虚拟机至少分配4G内存),硬盘至少100G空间(源码20G+,编译后整个目录约60~70G)
    安装方法请百度~

    2.更新系统至最新版本,在终端下输入

    1. sudo apt-get update
    2. sudo apt-get upgrade
    复制代码

    3.安装编译必需软件包

    1. sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
    复制代码

    4.建立repo命令

    1. mkdir -p ~/bin
    2. curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    3. chmod a+x ~/bin/repo
    4. echo "export PATH=~/bin:$PATH" >> ~/.bashrc
    复制代码

    注意,第二行要从谷歌那里下载repo小程序,国内网络你懂的,可以在浏览器上面挂个代理通过以下地址下载好,拷贝到~/bin/repo,再执行第三行和第四行命令

    1. https://storage.googleapis.com/git-repo-downloads/repo
    复制代码

    也可以使用我的附件解压得到的repo文件,我的附件是2014/11/23下载的,不保证是最新的~ <ignore_js_op> repo.rar (9.1 KB, 下载次数: 324) 

    同步源码
    1.新建一个储存源码的文件夹,这里以~/android/cm为例

    1. mkdir ~/android/cm
    2. cd ~/android/cm
    复制代码

    2.初始化源码目录

    1. repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0
    复制代码

    3.添加一加专用文件目录

    1. mkdir ~/android/cm/.repo/local_manifests
    2. gedit ~/android/cm/.repo/local_manifests/local_manifests.xml
    复制代码

    把以下内容复制进去

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <manifest>
    3. <project name="CyanogenMod/android_device_oneplus_bacon" path="device/oneplus/bacon" remote="github" />
    4. <project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
    5. <project name="CyanogenMod/android_device_oppo_msm8974-common" path="device/oppo/msm8974-common" remote="github" />
    6. <project name="CyanogenMod/android_device_oppo_common" path="device/oppo/common" remote="github" revision="cm-12.0" />
    7. <project name="CyanogenMod/android_kernel_oneplus_msm8974" path="kernel/oneplus/msm8974" remote="github" />
    8. <project name="TheMuppets/proprietary_vendor_oppo" path="vendor/oppo" remote="github" />
    9. <project name="TheMuppets/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" />
    10. <project name="CyanogenMod/android_frameworks_opt_connectivity" path="frameworks/opt/connectivity" remote="github" revision="cm-11.0" />
    11. </manifest>
    复制代码

    4.针对国内网络环境的处理(无需FQ)

    1. sudo gedit /etc/hosts
    复制代码

    在hosts文件中加入

    1. 203.208.49.187 googlesource.com
    2. 203.208.49.187 android.googlesource.com
    3. 203.208.49.187 gerrit.googlesource.com
    复制代码

    注意,203.208.49.187只是我这里临时获取的ip,请替换成适合你的地区的ip,具体获取方法如下

    1. ping ad.doubleclick.net
    复制代码

    这样就可以解析出来一个ip地址,这个ip地址是可以正常访问谷歌的~
    5.拉取代码(需要下载约十几个G的内容,花费时间参考各自网速)

    1. repo sync
    复制代码

    如果中间断网了,或者出错了,重新repo sync一下就可以继续了~
    6.获取预编译的部分文件

    1. cd ~/android/cm/vendor/cm
    2. ./get-prebuilts
    复制代码


    编译ROM
    1.初始化编译环境

    1. cd ~/android/cm
    2. . build/envsetup.sh
    3. lunch cm_bacon-userdebug
    复制代码

    2.编译ROM(我笔记本下面虚拟机花费时间约2小时,取决于个人电脑性能)

    1. make bacon -jX
    复制代码

    其中X是你CPU的线程数,比如我给虚拟机分配的是6线程,编译命令就是

    1. make bacon -j6
    复制代码

    注意:目前编译刚开始出现下面几行是正常现象,不影响的~

    1. find: 'src': No such file or directory
    2. find: 'phone/java': No such file or directory
    3. find: 'dummy': No such file or directory
    复制代码


    再次编译
    1.建议每次编译都要把上一次编译的内容清除,否则有可能出现莫名其妙的问题

    1. make clobber
    复制代码

    2.再次同步源码到最新版本

    1. repo sync
    复制代码

    3.初始化编译环境

    1. . build/envsetup.sh
    2. lunch cm_bacon-userdebug
    复制代码

    4.编译ROM

    1. make bacon -jX
    复制代码


    参考
    CM官方指导http://wiki.cyanogenmod.org/w/Build_for_bacon
    魔趣官方指导http://wiki.mokeedev.com/Setting_Up_A_Compile_Environment
    GRMrGecko的教程http://forum.xda-developers.com/ ... neplus-one-t2947949

  • 相关阅读:
    Nginx使用
    nginx常见配置详解
    配置yum源
    nginx常见使用方式和日志功能
    SpringCloud学习篇《一》
    myeclipse的各种背景:黑色,护眼,欢迎围观
    java基础二 <流程控制语句, 方法,数组,java内存结构> 未完待续...
    fastjson解析超长json串以及转成list,map等方法实例
    Linux下权限的修改-JDK的配置-文件的常见操作
    java面试基础大全,绝对经典<126-170><转>
  • 原文地址:https://www.cnblogs.com/bluestorm/p/4924472.html
Copyright © 2011-2022 走看看