CM12同步源码及编译教程

CM12同步源码及编译教程同时提供基于安卓5.0的MKL魔趣猪扒饭编译教程~【玩机组出品】魔趣猪扒饭MKL50.1编译教程http://www.oneplusbbs.com/forum.php?mod=viewthread&tid=578692环境搭建1.安装64位Ubuntu系统(实体安装、虚拟机安装均可)注意:要求机器至少4G内存(虚拟机至少分配4G内存),硬盘至少100G空间(源码20G+…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

同时提供基于安卓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.proxy.ustclug.org/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.proxy.ustclug.org/git-repo-downloads/repo

复制代码

也可以使用我的附件解压得到的repo文件,我的附件是2014/11/23下载的,不保证是最新的~ <ignore_js_op>CM12同步源码及编译教程 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

转载于:https://www.cnblogs.com/bluestorm/p/4924472.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158905.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 机器学习——下采样(under-sampling)「建议收藏」

    下采样(under-sampling)什么是下采样?当原始数据的分类极不均衡时,如下图我们要想用这样的数据去建模显然是存在问题的。尤其是在我们更关心少数类的问题的时候数据分类不均衡会更加的突出,例如,信用卡诈骗、病例分析等。在这样的数据分布的情况下,运用机器学习算法的预测模型可能会无法做出准确的预测,最后的模型显然是趋向于预测多数集的,少数集可能会被当做噪点或被忽视,相比多数集,少数集被…

    2022年4月4日
  • 架构设计&分布式&数据结构与算法面试题(2020最新版)「建议收藏」

    架构设计&分布式&数据结构与算法面试题(2020最新版)「建议收藏」文章目录架构设计请列举出在JDK中几个常用的设计模式?什么是设计模式?你是否在你的代码里面使用过任何设计模式?静态代理、JDK动态代理以及CGLIB动态代理静态代理动态代理cglib代理单例模式工厂模式观察者模式装饰器模式秒杀系统设计分布式分布式概述分布式集群微服务多线程高并发分布式系统设计理念分布式系统的目标与要素分布式系统设计两大思路:中心化和去中心化分布式与集群的区别是什么?CAP定理CAP…

    2022年5月31日
  • Android studio学习笔记:adb被系统空闲进程占用了怎么办?

    Android studio学习笔记:adb被系统空闲进程占用了怎么办?在准备run的时候,adbserver报错:UnabletoopenconnectiontoADBserver:java.io.IOException:Can’tfindadbserveronport5037,IPv4attempt:Connectionrefused:connect,IPv6attempt:Connectionrefused:connect发现端口号5037被占用了,看网上的教程都是被一般进程给占用了,可以直接taskkill掉,空出端口

    2022年10月20日
  • Django(49)drf解析模块源码分析「建议收藏」

    Django(49)drf解析模块源码分析「建议收藏」前言上一篇分析了请求模块的源码,如下:definitialize_request(self,request,*args,**kwargs):"""Retu

    2022年7月31日
  • php ora01017,使用dblink出现ORA-01017

    php ora01017,使用dblink出现ORA-01017本地的Oracle数据库是版本是10g的,远程的数据库版本版本是11g,在本地建数据库连接后执行测试查询语句竟然出错,用户名/密码明明本地的Oracle数据库是版本是10g的,远程的数据库版本版本是11g,在本地建数据库连接后执行测试查询语句竟然出错,用户名/密码明明是对的。SQL>createdatabaselinkDBLINK_TESTconnecttotestidenti…

    2022年5月31日
  • Linux学习——Shell基础[通俗易懂]

    Shell 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至编写一些程序。Shell 还是一个功能强大的编程,易编写、易调试、灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。用户通过shell向Linux内核发指令,Linux内核通过shell将返回

    2022年2月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号