编译CM14.1内存要求很高,至少8G以上,我的6G也可以搞定,交换空间分配大一点。

1、安装平台

建议安装Deepin 15.3桌面版系统,系统UI好看。

2、配置环境

(1)安装编译依赖库

 sudo apt-get  update
sudo apt-get upgrade
sudo apt-get install git-core gnupg flex bison gperf libsdl1.-dev libesd0-dev libwxgtk3.-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk--jre openjdk--jdk pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev gcc-multilib maven tmux screen w3m ncftp liblz4-tool

(2)建立保存repo文件的bin文件夹

 #新建文件夹
mkdir ~/bin
#设置路径
PATH=~/bin:$PATH
#下载repo
curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
#赋予权限
chmod a+x ~/bin/repo

(3)设置 github 帐号user.name和邮箱user.email

 git config --global user.name username
git config --global user.email username@email.com

(4)更新/替换系统 hosts,轻松访问国外站点

 wget https://raw.githubusercontent.com/racaljk/hosts/master/hosts -qO /tmp/hosts
sudo sh -c 'cat /tmp/hosts > /etc/hosts'

如果出现 sudo: 无法解析主机:dinphy--310cn: 连接超时 类似的问题,请参考这里解决:http://www.cnblogs.com/dinphy/p/5660645.html

3、下载CM14.1源码并编译

(1)新建源码文件夹并初始化

#新建文件夹
mkdir ~/SudaMod
#进入目标文件夹
cd ~/SudaMod
#初始化源码
repo init -u git://github.com/SudaMod/android.git -b sm-3.0
#同步下载源码
repo sync -c -f -j8 --force-sync --no-clone-bundle

如果同步AOSP源码过程比较慢,可以更改谷歌源码地址为国内的地址,如清华大学镜像源的。方法是:

只需要将.repo/manifest.xml 把其中的 aosp 这个 remote 的 fetch 从 https://android.googlesource.com 改为 https://aosp.tuna.tsinghua.edu.cn/

 <manifest>

    <remote  name="aosp"
- fetch="https://android.googlesource.com"
+ fetch="https://aosp.tuna.tsinghua.edu.cn"
review="android-review.googlesource.com" /> <remote name="github"

修改后,可以继续同步 repo sync -c -f -j8 --force-sync --no-clone-bundle 。

(2)添加设备编译三套件及依赖的文件(这一步可以忽略,也可以加入~/SudaMod/.repo/manifests/snippets/cm.xml的倒数第二行),例如我的设备:

<!-- Start Device -->
<project path="device/xiaomi/ido" name="CyanogenMod/android_device_xiaomi_ido" remote="github" revision="cm-14.1" />
<project path="vendor/xiaomi/ido" name="dinphy-dev/sudamod_vendor_xiaomi_ido" remote="github" revision="sm3.0" />
<project path="kernel/xiaomi/msm8916" name="CyanogenMod/android_kernel_xiaomi_msm8916" remote="github" revision="cm-14.1" />
<project path="external/sony/boringssl-compat" name="CyanogenMod/android_external_sony_boringssl-compat" remote="github" revision="cm-14.1" groups="pdk" />
<project path="external/stlport" name="CyanogenMod/android_external_stlport" remote="github" revision="cm-14.1" groups="pdk" />
<project path="packages/resources/devicesettings" name="CyanogenMod/android_packages_resources_devicesettings" remote="github" revision="cm-14.1" groups="pdk" />
<!-- END Device -->

设备编译三套件及依赖的文件也可以单独 git clone ,然后放入相应的文件夹下。我的设备代号是ido,处理器是msm8916,所以放入路径可以参考上面path中引号的部分。

(3)源码同步完成后,开始编译

#编译加速设置
echo "export USE_CCACHE=1" >> ~/.bashrc
#给定一个50G的空间,缩短编译时间
~/SudaMod/prebuilts/misc/linux-x86/ccache/ccache -M 50G
#初始化编译,注意“ . ”别忘了
. build/envsetup.sh
#编译机型brunch "device name",我的是ido
brunch sm_ido-userdebug

4、我的内存为6G,编译时提示内存空间不足的错误和jack错误,如果有出现同样的问题,请参考:http://www.cnblogs.com/dinphy/p/6138803.html

5、编译结束。

编译CM14.1(sudmod71.1)过程记录的更多相关文章

  1. linux-i386(ubuntu)下编译安装gsoap_2.8.17过程记录

    过程记录 :  1.下载gsoap_2.8.17.zip 并 解压 : $unzip gsoap_2.8.17.zip     2.进入解压后的目录gsoap-2.8   3.自动配置编译环境:  $ ...

  2. 使用VS2010编译Qt 5.6.1过程记录

    由于Qt官方发布的Qt 5.6.1二进制安装包没有对应VS2010版本的,而我的电脑上只安装了VS2010,因此只能自己编译. 本文记录本人的编译安装过程,以及其中遇到的一些问题. 本文使用VS201 ...

  3. [原创]Nexus5 源码下载、编译、真机烧录过程记录

    asop使用清华镜像源https://mirror.tuna.tsinghua.edu.cn/help/AOSP/ 一开始使用每月初始化包的方式因为无法搞定版本的问题,没能通过编译,无奈,老老实实一点 ...

  4. openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录(转)

    基于 backfire10.03(从http://downloads.openwrt.org/backfire/10.03/ 中下砸的源码包backfire_10.03_source.tar.bz2: ...

  5. win10--vs2015--libjpeg--64位库的编译过程记录

    win10--vs2015--libjpeg--64位库的编译过程记录 1. 下载源代码:   http://libjpeg.sourceforge.net/    或者  http://www.ij ...

  6. openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录 --- 实际是由于下载了错误的backfire源码包导致的

    基于 backfire10.03(从http://downloads.openwrt.org/backfire/10.03/ 中下砸的源码包backfire_10.03_source.tar.bz2: ...

  7. CentOS 5.5 下安装Countly Web Server过程记录

    CentOS 5.5 下安装Countly Web Server过程记录 1. 系统更新与中文语言包安装 2. 基本环境配置: 2.1. NodeJS安装 依赖项安装 yum -y install g ...

  8. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  9. openvswitch 2.7 安装过程记录 总结

    envswitch 2.7 安装过程记录 总结 安装思路是参考文档: http://docs.openvswitch.org/en/latest/intro/install/general/#obta ...

随机推荐

  1. 企业IT架构介绍

    企业信息化之路 问题   互联互通   统一访问 统一身份管理 数据管理模型 企业数据集成业务架构 业务流程框架 业务流程模型 个性流程支持 跨业务的业务流程组合 EBS总线 ] SOA架构上视图 B ...

  2. JS高程5.引用类型(2)Array类型

    Array类型: ECMAScript数组的每一项可以保存任何类型的数据,数组的大小是可以动态调整的. 创建数组的基本方式: (1)使用Array构造函数 var color=new Array(); ...

  3. JSON.parse与eval的区别

    JSON.parse与eval和能将一个字符串解析成一个JSON对象,但还是有挺大区别. 测试代码 var A = "{ a: 1 , b : 'hello' }"; var B ...

  4. Android简单介绍SharedPreference,内部文件,sdcard数据存储

    SharedPreference 以xml的结构储存简单的数据,储存在data/data/程序包名/shared_prefs文件夹中 使用方式 创建对象的方式有三种 Context 的 getShar ...

  5. Android WebView 302斗争之旅

    一.背景 越来越多的业务接入,项目内多多少少会出现几个H5页面,只是单纯的提供WebView容器接入H5页面根本满足不了需求,他们需要登录态,需要制定协议控制Native的导航栏,或者需要JsBrid ...

  6. Java中一些常用的方法

    1.计算程序运行时常 long start = System.currentTimeMillis(); … … … long end = System.currentTimeMillis(); Sys ...

  7. solr定时更新索引遇到的问题(SolrDataImportProperties Error loading DataImportScheduler properties java.lang.NullPointerException)

    问题描述 报如下错误,很显然,问题原因:空指针异常: ERROR (localhost-startStop-1) [   ] o.a.s.h.d.s.SolrDataImportProperties ...

  8. [AlwaysOn Availability Groups]AG排查和监控指南

    AG排查和监控指南 1. 排查场景 如下表包含了常用排查的场景.根据被分为几个场景类型,比如Configuration,client connectivity,failover和performance ...

  9. SQLite使用(三)&&核心API使用

    概述     SQLite提供了一系列接口供用户访问数据库,主要包括连接数据库,处理SQL,迭代查询结果等.本文会针对我们使用SQLite的主要场景,列出核心的API,详细介绍API的用法并给出代码用 ...

  10. JAVA NIO Channel

    Basic:   多数通道都是链接到开发的文件描述符的.Channel类提供维持平台独立性的抽象过程.   通道是一种途径,访问和操作操作系统,缓冲区是数据操作点: Channel类继承结构图: 通过 ...