编译CM14.1(sudmod71.1)过程记录

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

1、安装平台

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

2、配置环境

(1)安装编译依赖库

1 sudo apt-get  update
2 sudo apt-get  upgrade
3 sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk3.0-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-8-jre openjdk-8-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文件夹

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

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

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

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

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

如果出现 sudo: 无法解析主机:dinphy-500-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/

1 <manifest>
2 
3    <remote  name="aosp"
4 -           fetch="https://android.googlesource.com"
5 +           fetch="https://aosp.tuna.tsinghua.edu.cn"
6             review="android-review.googlesource.com" />
7 
8    <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、编译结束。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值