CyanogenMod12编译教程

玩机组出品】CyanogenMod12编译教程

同时提供基于安卓5.0的MKL魔趣猪扒饭编译教程~
【玩机组出品】魔趣猪扒饭MKL50.1编译教程
http://www.oneplusbbs.com/forum.php?mod=viewthread&tid=578692
(出处: 一加社区, 一加论坛, 一加手机, 一加手机官方论坛)

CM12同步源码及编译教程

环境搭建

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, 下载次数: 153)

同步源码
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

时间: 2024-10-07 15:09:25

CyanogenMod12编译教程的相关文章

Padavan 编译教程

配置编译环境 安装虚拟机 安装Ubuntu 16.04LTS 安装 git 12 sudo apt-get update sudo apt-get install git 转到/opt目录,并且用命令克隆 Padavan 仓库 12 cd /optsudo git clone https://bitbucket.org/padavan/rt-n56u.git 安装编译固件所需要的工具 1 sudo apt-get install autoconf automake bison build-ess

Android APK反编译教程(带工具)

工具介绍:工具下载 apktool     作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar    作用:将apk反编译成java源码(classes.dex转化成jar文件) jd-gui       作用:查看APK中classes.dex转化成出的jar文件,即源码文件 反编译教程: apk反编译得到程序的源代码.图片.XML配置.语言资源等文件 下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar

OpenWRT 编译教程

1.安装Ubuntu 到 http://www.ubuntu.org.cn/desktop/get-ubuntu/download/ 下载,版本随便,我选的是10.10 32位版.安装过程就不说了,图形化安装,而且是中文版,连安装都搞不定的,可以关闭本页面了.可以安装在虚拟机里,也可以安装在物理机了,官方建议有条件的最好安装在物理机上,大概是说虚拟机有时会有不可预料的情况,但装在虚拟机里的人多得是了.题外话:安装过程中某一步设置用户名密码时,我是选择了自动登录,因为懒得每次都输密码登录,反正只是

红米3(ido)CyanogenMod12.1编译教程

环境搭建 1.安装64位Ubuntu系统(实体安装.虚拟机安装均可) 注意:要求机器至少4G内存(虚拟机至少分配4G内存),硬盘至少100G空间(源码20G+,编译后整个目录约60~70G) 安装方法请百度~ 2.更新系统至最新版本,在终端下输入 sudo apt-get update sudo apt-get upgrade 3.安装编译必需软件包 sudo apt-get install bison build-essential curl flex git gnupg gperf libe

Hadoop -2.7.2包64位编译教程

网上很多教程关于Hadoop-2.4包64位编码的教程,最新版2.7.2几乎相同,在此为大家复述一下. 分享两个比较权威的附上链接: Ubuntu用户推荐参考: http://www.aboutyun.com/forum.php?mod=viewthread&tid=8130&extra=page%3D1&page=1 CentOs系列用户参考:http://www.cnblogs.com/hadoop2015/p/4259899.html 1.前期工具准备: (1)  CentO

Ogre3d Android平台编译教程

上一篇我们讲了Ogre3d 在 Window平台的编译流程方法 点击跳转 这一篇我们介绍 Ogre3d 编译到Android 平台的方法.可以和官方英文教程对照学习. 转载自博客 http://blog.csdn.net/huutu QQ:790621656 首先下载Ogre3d 依赖库源代码 和Ogre3d 源代码,下载方法在上一篇中介绍了,这里不再重复. 转载自博客 http://blog.csdn.net/huutu QQ:790621656 编译工具:NDK.Visual Studio.

[C#反编译教程]001.Reflector.NET反编译工具 v8.5绿色版+注册机+注册教程

截图 下载地址 Reflector.NET反编译工具 v8.5绿色版+注册机 下载地址:http://pan.baidu.com/s/1mgN1Cpi 密码:mx19 简介 .NET Reflector是一个类浏览器和反编译器,.NET Reflector可以分析程序集并向你展示它的所有秘密..NET 框架向全世界引入了可用来分析任何基于 .NET 的代码(无论它是单个类还是完整的程序集)的反射概念.反射还可以用来检索有关特定程序集中包含的各种类.方法和属性的信息.使用 .NET Reflect

Mysql 源码编译教程贴

题外话:这是一篇教程贴,不仅学的是mysql的编译,还是一些编译的知识.我也是一个菜鸟,写一些感悟和心得,有什么问题可以批评指正,谢谢! 如果只是为了安装请移到我的另一篇安装贴: Mysql安装贴 环境: OS: CentOS 6.6x64 mini mysql: mysql-5.6.251. mysql 下载: http://dev.mysql.com/downloads/mysql/ 说明:这个网站有时候JS被墙,你选择了Source Code会没有反应,所以可以考虑翻翻翻翻翻翻Q或者直接点

QT5静态编译教程,主要针对vs2012(渡世白玉)

QT5,VS2012静态编译,所有的库准备充分的话qwebkit也可以静态编译通过,但是我编译的版本使用中如果用了QWEBVIEW控件在连接时会出错. 注:我自己编译的环境是:win server 2012 dc版 , vs2012 with update1,qt-everywhere-opensource-src-5.0.2,perl和rupy都是在qt官方给的地址下的最新的X64的,python是2.7 X64的... 本文主要针对qt 5.X版本,qt4.X的依赖没那么多,可以酌情参考下,