编译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. linux grep命令

    linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...

  2. JSON转化为JAVABEAN集合

    String str = "[{'id':'392','type':'jpg'},{'id':'393','type':'jpg'},{'id':'377','type':'jpg'}]&q ...

  3. dagride实现模糊查询

    一:首行放置搜索元素(可以是easyui中的input.datetimebox.combox等等) 将各个元素的value值获取到存为Json格式(data{a:..,b:..,c:..}),再回车或 ...

  4. FineReport实现EXCEL数据导入自由报表

    在制作填报报表的时候,对于空白填报表,常常导出为Excel,派发给各部门人员填写后上交.如何能避免手动输入,直接将Excel中的数据导入到填报表中提交入库呢? 这里以一个简单的员工信息填报示例进行介绍 ...

  5. MapFile生成WMS

    MAP  NAME "HBWMS"  STATUS ON  SIZE 800 600  EXTENT 107.795 28.559 116.977 33.627  UNITS ME ...

  6. 写给自己:修改配置文件一定要cp一个.bak

    写给自己:修改配置文件一定要cp一个.bak 毕竟不是每次的修改都一定对,而且很多时候是在服务器上直接修改原文件,修改后重启服务才知道是否修改正确,如果不加备份修改,造成服务器动荡,将会造成不可挽回的 ...

  7. MyEclipse 2016正式版更新内容

    MyEclipse 2016 Stable 1.0正式发布!在保留之前CI系列的工具之外,又新增了许多非常棒的新功能.正式版下载地址 Eclipse Mars MyEclipse 2016基于Ecli ...

  8. Python学习笔记8-单元测试(1)

    源代码: roman_mumeral_map = (('M',1000), ('CM',900), ('D',500), ('CD',400), ('C',100), ('XC',90), ('L', ...

  9. 安装Ubuntu的那些事儿

    这是博主第一次写博客,本人虽然目前就读的专业属计算机,但目前也是属于新手上路的那一类人.正好不久前解决了一个困扰了我很久的问题 ,现在拿出来给大家分享一下. 上个学期学校的工作室给大家集中普及linu ...

  10. WPF 自定义搜索框

      控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html 搜索框设计过程比较简单: 1.先定义一个Rectangle作为背景 2. ...