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.更新系统至最新版本,在终端下输入
- sudo apt-get update
- sudo apt-get upgrade
复制代码
3.安装编译必需软件包
- 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命令
- mkdir -p ~/bin
- curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
- chmod a+x ~/bin/repo
- echo "export PATH=~/bin:$PATH" >> ~/.bashrc
复制代码
注意,第二行要从谷歌那里下载repo小程序,国内网络你懂的,可以在浏览器上面挂个代理通过以下地址下载好,拷贝到~/bin/repo,再执行第三行和第四行命令
- https://storage.googleapis.com/git-repo-downloads/repo
复制代码
也可以使用我的附件解压得到的repo文件,我的附件是2014/11/23下载的,不保证是最新的~ <ignore_js_op> repo.rar (9.1 KB, 下载次数: 324)
同步源码
1.新建一个储存源码的文件夹,这里以~/android/cm为例
- mkdir ~/android/cm
- cd ~/android/cm
复制代码
2.初始化源码目录
- repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0
复制代码
3.添加一加专用文件目录
- mkdir ~/android/cm/.repo/local_manifests
- gedit ~/android/cm/.repo/local_manifests/local_manifests.xml
复制代码
把以下内容复制进去
- <?xml version="1.0" encoding="UTF-8"?>
- <manifest>
- <project name="CyanogenMod/android_device_oneplus_bacon" path="device/oneplus/bacon" remote="github" />
- <project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
- <project name="CyanogenMod/android_device_oppo_msm8974-common" path="device/oppo/msm8974-common" remote="github" />
- <project name="CyanogenMod/android_device_oppo_common" path="device/oppo/common" remote="github" revision="cm-12.0" />
- <project name="CyanogenMod/android_kernel_oneplus_msm8974" path="kernel/oneplus/msm8974" remote="github" />
- <project name="TheMuppets/proprietary_vendor_oppo" path="vendor/oppo" remote="github" />
- <project name="TheMuppets/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" />
- <project name="CyanogenMod/android_frameworks_opt_connectivity" path="frameworks/opt/connectivity" remote="github" revision="cm-11.0" />
- </manifest>
复制代码
4.针对国内网络环境的处理(无需FQ)
- sudo gedit /etc/hosts
复制代码
在hosts文件中加入
- 203.208.49.187 googlesource.com
- 203.208.49.187 android.googlesource.com
- 203.208.49.187 gerrit.googlesource.com
复制代码
注意,203.208.49.187只是我这里临时获取的ip,请替换成适合你的地区的ip,具体获取方法如下
- ping ad.doubleclick.net
复制代码
这样就可以解析出来一个ip地址,这个ip地址是可以正常访问谷歌的~
5.拉取代码(需要下载约十几个G的内容,花费时间参考各自网速)
- repo sync
复制代码
如果中间断网了,或者出错了,重新repo sync一下就可以继续了~
6.获取预编译的部分文件
- cd ~/android/cm/vendor/cm
- ./get-prebuilts
复制代码
编译ROM
1.初始化编译环境
- cd ~/android/cm
- . build/envsetup.sh
- lunch cm_bacon-userdebug
复制代码
2.编译ROM(我笔记本下面虚拟机花费时间约2小时,取决于个人电脑性能)
- make bacon -jX
复制代码
其中X是你CPU的线程数,比如我给虚拟机分配的是6线程,编译命令就是
- make bacon -j6
复制代码
注意:目前编译刚开始出现下面几行是正常现象,不影响的~
- find: 'src': No such file or directory
- find: 'phone/java': No such file or directory
- find: 'dummy': No such file or directory
复制代码
再次编译
1.建议每次编译都要把上一次编译的内容清除,否则有可能出现莫名其妙的问题
- make clobber
复制代码
2.再次同步源码到最新版本
- repo sync
复制代码
3.初始化编译环境
- . build/envsetup.sh
- lunch cm_bacon-userdebug
复制代码
4.编译ROM
- 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
CM12同步源码及编译教程相关推荐
- 麻将服务端架设linux,湖南房卡麻将客户端/服务器端完整源码及编译教程
客户端源码是基于cocos2d-x 3.10版本开发的.代码完整可编译.本人在WINDOWS平台下成功编译了android包并正常运行.源码里面也有服务器的源码(C++),经过再次鉴定应该是配套的,服 ...
- [Pixhawk] ardupilot源码windows编译教程
[声明] 此教程最开始取自于淘宝商家,后查找资料发现淘宝商家取自"怒飞垂云"的教程,但原教程中有些冗余和错误导致无法通过编译,我做更改整理后发出,如有疑问请各位一起讨论. 目录 一 ...
- GOM 登录器源码及编译教程
常见登录器引擎如下 BLUE/LEGEDN引擎 一般应用于1.70 1.76 复古 80英雄合击 85英雄合击版本 MirXM2引擎 一般应用于1.70 1.76 复古 8 ...
- android系统源码7.1.2_r8下载,编译,运行到nexus5X上,修改源码并编译SDK进行测试
一,学习android系统源码下载,编译的作用 1,可以自己 DIY 自己的rom系统,从系统层面,宏观的加深理解 android系统 2,编译自己的 userdebug(原生root权限) rom, ...
- 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...
- android 清华镜像,清华镜像网站下载android源码并编译
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 下载android源码方法: 我的系统是ubuntu 18.04,主要参考了blog通过清华大学镜像下载Android源 ...
- [Android编译(二)] 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
1 前言 经过一周的奋战,终于从谷歌官网上下载最新的Android 6.0.1_r62源码,编译成功,并成功的刷入nexus6p,接着root完毕,现写下这篇博客记录一下实践过程. 2 简介 自己下载 ...
- Android FrameWork学习(一)Android 7 0系统源码下载 编译
最近计划着研究下 Android 7.0 的系统源码,之前也没做过什么记录,这次正好将学习的内容记录下来,方便以后复习巩固. 既然要学习我们的系统源码,那我们第一步要做的就是下载源码并进行编译了. # ...
- mysql 5.7.18源码包下载_MYSQL数据库CentOS6.9+Mysql5.7.18源码安装详细教程
<MYSQL数据库CentOS6.9+Mysql5.7.18源码安装详细教程>要点: 本文介绍了MYSQL数据库CentOS6.9+Mysql5.7.18源码安装详细教程,希望对您有用.如 ...
最新文章
- Linq学习笔记(三)
- Halcon知识:如何求一个工件的粗细
- js前端和后台数据交互-----前端传字符串,后台控制器将其转化为集合
- Linux系统下如何挂载FAT32的U盘
- centos 修改语言、时区
- 数据结构(字典,跳跃表)、使用场景(计数器、缓存、查找表、消息队列、会话缓存、分布式锁)、Redis 与 Memcached、 键的过期时间、数据淘汰策略、持久化(RDB、AOF)
- 生日快乐程序_祝肖战1005生日快乐-用R给他画个蛋糕爱心吧
- 【激活函数】Mish激活函数详解
- linux unzip到指定目录
- Java集合6 (SortedSet)
- 手机距离传感器坏了有什么影响_恢复出厂设置对手机有什么影响?
- 存储总结——DASNASSAN
- C# 判断圆与矩形的冲突
- Variable is already assigned to this value JAVA什么意思
- 模型复现 | YOLOR入门教程
- 四旋翼无人机动力学模型及控制
- 中考计算机必背知识点,语文中考必背知识考点(完整版)
- anyRTC2020年 年终总结
- 把Linux系统装在U盘上
- Zcash使用工具nheqminer用cpu挖矿