编译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. 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  2. 高访问量WEB开发中的架构模式,学习从点滴开始

     当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构 ...

  3. (转)解决 ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

    下面操作默认在安装Oralce数据库的服务器上运行. 1)确保Oracle 基本服务都已启动 OracleDBConsoleorcl OracleOraDb11g_home1TNSListener O ...

  4. 关getClass().getClassLoader()

    InputStream   is   =   getClass().getClassLoader().getResourceAsStream("helloworld.properties&q ...

  5. Sqlite 存储自定义对象

    在iOS中如果想保存自定义对象,要让自定义对象实现NSCoding接口并实现方法-(id)initWithCoder:(NSCoder *)coder和-(void)encodeWithCoder:( ...

  6. jQuery的性能优化

    原文链接:http://www.colotu.com/html/gcs/6.html 现在越来越多的人应用jQuery了,有些同学在享受爽快淋漓coding时就将性能问题忽略了, 比如我. jquer ...

  7. 如何安装Genymotion虚拟机以及Genmotion的eclipse插件

    ---内容开始--- - 首先去genymotion的官网去下载其安装文件 资源下载 Genymotion官网必须注册一个账号这个账号安装之后还有用的,用户名最好用网易126邮箱注册----我下载的是 ...

  8. MVC View中获取action、controller、area名称

    获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); 获取Action名称: ViewContext.Ro ...

  9. SQL中Round(),Floor(),Ceiling()函数的浅析

    项目中的一个功能模块上用到了标量值函数,函数中又有ceiling()函数的用法,自己找了一些资料,对SQL中这几个函数做一个简单的记录,方便自己学习.有不足之处欢迎拍砖补充 1.round()函数遵循 ...

  10. Java中json的构造和解析

    什么是 Json? JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式.  易于人阅读和编写.同时也易于机 ...