Android 系统开发CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 系统开发CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)相关的知识,希望对你有一定的参考价值。



作者 : 韩曙亮

转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930



手机的两种模式 : 在下面有详细的图片示例;

-- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式;

-- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FASTBOOT 模式;







一. CyanogenMod 开发基础




1. CyanogenMod 开发相关资料推荐



(1) 官方资料



CyanogenMod 官方资料 : 

-- 硬件 : 小米4;

-- 小米4 的 CyanogenMod 源码编译教程 : https://wiki.cyanogenmod.org/w/Build_for_cancro#Install_the_Build_Packages,  主要介绍了 CyanogenMod 小米4 手机源码的下载编译过程, 本文部分内容是从此翻译过来的;

-- CyanogenMod Mi4 设备界面链接 : http://download.cyanogenmod.org/?device=cancro, 小米4 手机对应的 CyanogenMod 镜像下载界面, 包括 ROM 和 Recovery;

-- CyanogenMode Mi4 WIki 资料 : https://wiki.cyanogenmod.org/w/Cancro_Info;

-- CM Mi4 系统源码 : https://github.com/cyanogenmod/android_device_xiaomi_cancro;

-- CM Mi4 内核源码 : https://github.com/cyanogenmod/android_kernel_xiaomi_cancro;

-- 小米 4 编译源码 安装 ROM 详细教程 : https://wiki.cyanogenmod.org/w/Install_CM_for_cancro;

-- 小米4 CyanogenMod Recovery 和 ROM 下载地址 : http://download.cyanogenmod.org/?device=cancro;

-- CyanogenMod Recovery 简介地址https://wiki.cyanogenmod.org/w/All_About_Recovery_Images;

-- CM 编译开发 : https://wiki.cyanogenmod.org/w/Development;

-- 小米 ROM 下载主页 : http://rom.xiaomi.cn/;

-- ROM 之家 : http://www.romzj.com/;

-- ROM 之家 小米4 官网 : http://www.romzj.com/list/xiaomi_m4w_order_2_60.htm;

-- 刷机精灵 : http://www.shuame.com/;

-- Sdata2img 工具 (将 ROM 中的 img 转化成文件): https://github.com/xpirt/sdat2img;




(2) 国内 CyanogenMod 相关 高质量 博客 网站 文章



国内相关博客 : 

-- CyanogenMod 源码下载和编译http://blog.csdn.net/andie_guo/article/details/16879443;

-- CyanogenMod 中文站 (估计是个冒牌山寨货)http://www.androm.cn/;

-- CyanogenMod 12.1 编译教程http://www.oneplusbbs.com/thread-572886-1-1.html;

-- CyanogenMod ROM 编译尝试http://aswang.iteye.com/blog/1089841;

-- CyanogenMod 源码下载和编译http://www.cnblogs.com/qianxudetianxia/archive/2011/09/27/2193590.html;

-- Android 源码下载http://www.cnblogs.com/qianxudetianxia/archive/2011/05/29/2060636.html;

-- CM 9 源码下载和编译http://www.cnblogs.com/qianxudetianxia/archive/2012/05/27/2512447.html;

-- Ubuntu 虚拟机上进行 adb 调试 : http://www.linuxidc.com/Linux/2014-01/94931.htm;

-- Ubuntu 虚拟机 USB 设备挂载失败解决方案 (百度经验) : http://jingyan.baidu.com/article/c35dbcb0eec9418916fcbc3f.html;

-- Ubuntu 虚拟机使用 adb 调试 : http://blog.csdn.net/tangcheng_ok/article/details/6278567;

-- Android 第三方ROM CyanogenMod 源码下载,编译,刷机: http://blog.csdn.net/androiddevelop/article/details/8661120;

-- 为小米4与小米3 Mi3 Mi4编译Cyanogenmod 12.1与13.0 (CM12与CM13) 的步骤以及错误解决 : http://blog.csdn.net/sy373466062/article/details/51554341;

-- Android 源码部分编译 : http://bbs.csdn.net/topics/390128647;








二. 安装 CyanogenMod 官方提供的 Mi4 Recovery 和 ROM





CyanogenMod 官方提供的教程 : https://wiki.cyanogenmod.org/w/Install_CM_for_cancro;


手机的两种模式

-- Recovery 模式 : 音量键增加 + 电源键, 关机状态下 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式;

-- Fastboot 模式 : 音量键减小 + 电源键, 关机状态下 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FASTBOOT 模式;

-- TeamWin Recovery 图片

 

-- CyanogenMod Recovery 模式图片

     

-- Fastboot 模式图片





1. 基带版本号 必须满足的硬性条件


基带版本号条件

-- 条件需求 : 安装 CM 13.0 的 ROM 系统, 必须满足 基带版本号为 MPSS.DI.4.0.xxxxx ;

-- 基带版本号升级 : 如果基带版本号是 MPSS.DI.3.0.xxxxx, 访问 http://bit.ly/cancroCMBaseband 网站学习如何升级基带版本 ;

-- 查看基带版本号方法 : 设置 -> 关于手机 -> 基带版本号;







2. 使用 fastboot 安装 Recovery


推荐文章

-- Recovery 简介地址 : https://wiki.cyanogenmod.org/w/All_About_Recovery_Images;


(1) 安装 Recovery 流程



安装 Recovery 流程

-- 1. 工具软件 : 确保电脑上已经安装并能运行 adb 和 fastboot 工具;

-- 2. 下载 Recovery : 可以到 https://dl.twrp.me/cancro/twrp-3.0.2-0-cancro.img 页面下载 Recovery 镜像, 或者从 下载一个最新的 Recovery 镜像到你的手机中;

-- 3. 连接手机 : 通过 USB 将小米4 手机连接到电脑上;

-- 4. 执行路径 : 确保 fastboot 在 PATH 环境变量中, 或者让 fastboot 和 Recovery 在同一目录中;

-- 5. 手机进入 fastboot 模式 : 在 PC 中打开 cmd (Windows) 或者 terminal (Linux & MAC) 终端, 方法一 : 通过执行 adb reboot bootloader 命令, 重启设备进入 fastboot 模式, 该命令可能返回 reboot bootloader is disabled 错误; 方法二 : 小米4 关机后, 按下音量键- + 电源键, 进入 fastboot 模式;


-- 6. PC 识别手机 : 一旦设备进入 fastboot 模式, 在 PC 端通过使用 fastboot devices 命令查看 PC 是否已经识别了手机;


-- 7. 开始烧写 : 通过执行 fastboot flash recovery your_recovery_image.img 命令, 将 Recovery 烧写到你的设备中, 其中的 your_recovery_image.img 是 下载的 Recovery 镜像文件名称;


-- 8. 验证过程及一些注意事项 : 一旦烧写过程执行成功, 重启手机进入 Recovery 验证是否安装成功;  

-- Recovery 模式 : 音量键增加 + 电源键, 关机状态下 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式;




(2) fastboot 错误处理



使用 fastboot devices 命令错误排查

-- 1. 没有序列号 : 如果你没有看到设备序列号, 反而看到 "<waiting for device>" 信息, fastboot 没有配置好, 查看 fastboot 文档并配置, https://wiki.cyanogenmod.org/w/Doc:_fastboot_intro;

-- 2. 权限相关错误 : 如果看到 no permissions fastboot 错误, 确保 UDEV 规则被正确设置了, 设置指导页面 https://wiki.cyanogenmod.org/w/UDEV;



(3) 注意事项



注意事项

-- 1. 进入 Recovery 方式 进入 Recovery 方式 关机 后 按下 音量增加 + 电源键;

-- 2. Recovery 被覆盖 注意 一些 ROM 再启动时 会覆盖 Recovery, 如果你不想马上进入 Recovery 去安装 CyanogenMod 系统, 要明确的知道这个操作会刷掉 Recovery 让手机又变成砖机;





3. 使用 Recovery 安装 CyanogenMod ROM 镜像


推荐文章 : 

-- Recovery 简介地址 : https://wiki.cyanogenmod.org/w/All_About_Recovery_Images;


(1) 安装 CyanogenMod ROM 流程



安装 ROM 流程

-- 1. adb 安装 : 确保电脑上的 adb 工具可以正常使用, 做安卓的就不多说了;

-- 2. 下载 ROM : 到 http://download.cyanogenmod.org/?device=cancro 页面下载你想要安装的 ROM 镜像;

-- 3. 将 ROM 放到 SD 卡中 : 使用 adb push filename.zip /sdcard/ 命令, 将下载的 zip 压缩包放置到 sd 卡的根目录;


-- 4. 进入 Recovery 模式 : 如果还没有进入 Recovery 模式, 重启进入 Recovery 模式 (音量键- + 电源键);

-- 5. 选择 Recovery 选项 : 在 TeamWin 的 Recovery 中, 通过指定的按钮操作菜单选项;


-- 6. 创建备份 (可选步骤) : 选择 Recovery 中的 "Backup" 选项, 将现在的 ROM 备份一下, 以免 ROM 安装失败导致砖机, 下面是备份过程;

 

-- 7. 擦除 ROM : 选择菜单中的  "Wipe" 选项擦除 ROM, 然后选择 "Factory Reset" 恢复出厂设置;


-- 8. 开始安装 : 选择 "Install" 选项, 进入安装步骤;

-- 9. 选择 sd 卡 rom : 在 /sdcard 中选择 CyanogenMod 的 zip 包;



-- 10. 根据提示安装 : 根据屏幕上的提示, 安装 ROM 包;

-- 11. 安装其它包 (可选步骤) : 如果你希望安装其它安装包, 在安装完 CyanogenMod ROM 包之后, 然后在这个基础上安装随后的其它包;

-- 12. 完成安装 : 一旦安装完成, 返回主菜单, 选择 "Reboot" 选项, 然后选择 "System", 设备会重启并进入 CyanogenMod 系统;





(2) 拷贝 ROM 到 SD 卡中的说明



拷贝 ROM 到 SD 卡的途径说明 : 

-- 命令不是必须的 : 拷贝 zip 包到 SD 卡中, 可以使用其它途径, 不是必须使用 adb push filename.zip /sdcard/ 命令将 zip 包拷贝到 SD 卡中;

-- 使用命令好处 : 使用命令安装的方法在所有的 android 设备 以及 在正常模式 和  Recovery 模式都可以使用;






三. CyanogenMod 编译所需软硬件准备



相关链接推荐

-- Android 官方的 源码编译依赖库安装地址 (访问需代理) : http://source.android.com/source/initializing.html;

-- CyanogenMod 源码编译依赖库安装地址 : https://wiki.cyanogenmod.org/w/Build_for_cancro#Install_the_Build_Packages;




1. 硬件需求 与 操作系统


(1) 编译的硬件需求


硬件需求

-- 手机需求 : 小米3 (Mi 3) 或 小米4 (Mi 4) 手机;

-- 电脑需求 : 最新的电脑 (Linux, MAC OS, Windows), 有 8G 及以上的 RAM 内存 (内存越少, 编译时间越长), 100G 以上的硬盘 (越多越好, 如果为多个设备编译 或者 打开 ccache 需要更多硬盘), 使用 SSD 固态硬盘 会加速编译过程;

-- USB 接口 : 兼容 USB 接口的 Mi 3 或 Mi 4 手机, 一般是 micro USB 接口, 就是最常用的 USB 接口;

-- 网络需求 : 能够连接网络, 有足够带宽;

-- 知识需求 : 熟悉基础的 Android 操作和术语, 如果你曾经在其它手机上安装 ROM, 并熟悉 Recovery, 是非常有帮助的; 知道基本的 shell 命令行概念也是非常有用的;



(2) 操作系统需求



操作系统需求如果你不熟悉 Linux, 这是一个很棒的机会去学习它;

-- 使用虚拟机 : 到 https://wiki.cyanogenmod.org/w/Doc:_using_virtual_machines 界面下载一个虚拟机, 如 VirtualBox , 安装一个 Ubuntu 14.04 版本;

-- Ubuntu 版本 : 64 位的都可以编译通过, 但是 推荐使用 Ubuntu 14.04, 15.10, 16.04 等最新的版本;

-- 关于 32 位系统 : CyanogenMod 6 以及之前的系统可以使用 32 位 Ubuntu 进行编译, 对于 CyanogenMod 10.1 可以设置 BUILD_HOST_32bit=1 环境使用 32 位 Ubuntu 编译, 但是 CyanogenMod 10.2 之后的版本必须使用 64位 Ubuntu 进行编译, 32 位便无法使用了;






2. Ubuntu 14.04 系统上 CyanogenMod 源码下载编译所需依赖库安装


Ubuntu 14.04 系统安装 CyanogenMod 编译依赖库 : 

-- 1. 32 和 64 位系统必须安装的软件库 : 使用命令 sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev 安装上述依赖库;

-- 2. 64 位系统安装的软件库 : 使用命令 sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev 命令安装上述依赖库;



(1) 安装 Android SDK


安装 SDK

-- SDK 需求 : 如果之前没有安装 adb 和 fastboot 工具, 先安装一个 Android SDK, 之前说的 adb 和 fastboot 就在 SDK 的 platform-tools 目录中;



(2) 32 位 和 64 位都需要的软件包



安装 32 64 位都需要的软件包 : 

-- 编译需要的软件包 : 

bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev


-- 安装上述软件包 : 使用 sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev 命令安装这些软件包;

-- 安装成功 : 该命令行是安装完成后, 在执行一次安装命令, 返回所有软件包安装成功的信息, 安装过程几千行命令行输出, 就不贴了.

root@ubuntu:~# apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
bison is already the newest version.
build-essential is already the newest version.
flex is already the newest version.
gperf is already the newest version.
libesd0-dev is already the newest version.
libncurses5-dev is already the newest version.
xsltproc is already the newest version.
zip is already the newest version.
zlib1g-dev is already the newest version.
liblz4-tool is already the newest version.
libwxgtk2.8-dev is already the newest version.
lzop is already the newest version.
maven is already the newest version.
pngcrush is already the newest version.
schedtool is already the newest version.
git is already the newest version.
gnupg is already the newest version.
libsdl1.2-dev is already the newest version.
libxml2 is already the newest version.
libxml2 set to manually installed.
libxml2-utils is already the newest version.
openjdk-7-jdk is already the newest version.
squashfs-tools is already the newest version.
curl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 349 not upgraded.


-- 出现 404 错误 : 如果安装出现 404  Not Found 等错误, 更新 apt 下载源即可;

-- 更新源列表方法 : 编辑 /etc/apt/sources.list 文件, 然后添加源列表, 更新源列表 sudo apt-get update;

-- 参考博客 : http://zhoushijun.iteye.com/blog/1942475/;

-- 14.04 源列表官方 WIKI : http://wiki.ubuntu.org.cn/%E6%A8%A1%E6%9D%BF:14.04source;

-- 其它源列表 官方 WIKI : http://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8;

-- 源列表示例 : 反正我用的这个源列表, 东西全部下载下来了;

# deb cdrom:[Ubuntu 14.04.3 LTS _Trusty Tahr_ - Beta amd64 (20150805)]/ trusty main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ trusty universe
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty universe
deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu trusty-security main restricted
deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
deb http://security.ubuntu.com/ubuntu trusty-security universe
deb-src http://security.ubuntu.com/ubuntu trusty-security universe
deb http://security.ubuntu.com/ubuntu trusty-security multiverse
deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu trusty partner
# deb-src http://archive.canonical.com/ubuntu trusty partner

## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu trusty main
deb-src http://extras.ubuntu.com/ubuntu trusty main
deb http://us.archive.ubuntu.com/ubuntu/ trusty-proposed restricted multiverse main universe

## zhongkeda
deb http://mirrors.ustc.edu.cn/ubuntu/ precise-updates main restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise-updates main restricted
deb http://mirrors.ustc.edu.cn/ubuntu/ precise universe
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise universe
deb http://mirrors.ustc.edu.cn/ubuntu/ precise-updates universe
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise-updates universe
deb http://mirrors.ustc.edu.cn/ubuntu/ precise multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ precise-updates multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise-updates multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse

## souhu 
deb http://mirrors.sohu.com/ubuntu/ precise-updates main restricted
deb-src http://mirrors.sohu.com/ubuntu/ precise-updates main restricted
deb http://mirrors.sohu.com/ubuntu/ precise universe
deb-src http://mirrors.sohu.com/ubuntu/ precise universe
deb http://mirrors.sohu.com/ubuntu/ precise-updates universe
deb-src http://mirrors.sohu.com/ubuntu/ precise-updates universe
deb http://mirrors.sohu.com/ubuntu/ precise multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-updates multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-updates multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse

## wangyi
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted
deb http://mirrors.163.com/ubuntu/ precise universe
deb-src http://mirrors.163.com/ubuntu/ precise universe
deb http://mirrors.163.com/ubuntu/ precise-updates universe
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe
deb http://mirrors.163.com/ubuntu/ precise multiverse
deb-src http://mirrors.163.com/ubuntu/ precise multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse



(3) 64 位需要的软件包



64 位机器需要的软件包 : 

-- 软件包列表 : 

g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev

-- 安装命令 : sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev ;


-- 安装成功 : 该命令行是安装完成后, 在执行一次安装命令, 返回所有软件包安装成功的信息, 安装过程几千行命令行输出, 就不贴了.

root@ubuntu:~# apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
g++-multilib is already the newest version.
gcc-multilib is already the newest version.
lib32ncurses5-dev is already the newest version.
lib32readline-gplv2-dev is already the newest version.
lib32z1-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 349 not upgraded.

 



3. Ubuntu 15.10 系统上 CyanogenMod 源码下载编译所需依赖库安装



Ubuntu 15.10 系统安装 CyanogenMod 编译依赖库 : 本次编译使用的是 Ubuntu 14.04 这里没有真实安装;

-- 1. 32 和 64 位系统必须安装的软件库 : 使用命令 sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev 安装上述依赖库;

-- 2. 64 位系统安装的软件库 : 使用命令 sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev 命令安装上述依赖库;




4. Ubuntu 16.04 系统上 CyanogenMod 源码下载编译所需依赖库安装




Ubuntu 16.04 系统安装 CyanogenMod 编译依赖库本次编译使用的是 Ubuntu 14.04 这里没有真实安装;

-- 1. 32 和 64 位系统必须安装的软件库 : 使用命令 sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop maven openjdk-8-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev 安装上述依赖库;

-- 2. 64 位系统安装的软件库 : 使用命令 sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev 安装上述依赖库;




5. CyanogenMod 版本 编译对应的 Java 版本



CyanogenMod 与 JDK 对应关系

-- 1. CyanogenMod 7 - 9 : Sun/Oracle Java SE 1.6;
-- 2. CyanogenMod 10.1 : Sun/Oracle Java SE 1.6 or 1.7;
-- 3. CyanogenMod 10.2 - 11.0 : Sun/Oracle Java SE 1.6 or 1.7 (OpenJDK 1.7 也可以使用, 但是编译系统时会出现警告);
-- 4. CyanogenMod 12.0 - 13.0 : OpenJDK 1.7;




6. Ubuntu 16.04 及 后续 Ubuntu 版本的 JDK 选择



Ubuntu 16.04 新版本 JDK 选择

-- 出现的问题 : OpenJDK 1.7 被从 Ubuntu 官方源中删除了, 只能有下面两种解决方案;

-- 1. 下载 OpenJDK 1.7 并安装 : 下载地址 https://launchpad.net/~openjdk-r/+archive/ubuntu/ppa;

-- 2. 打开 实验的 OpenJDK 1.8 的 CyanogenMod 13 支持 : 支持方式, 编辑 $HOME/.bashrc 文件, 添加 export EXPERIMENTAL_USE_JAVA8=true ;







四. CyanogenMod 13.0 Android 源码下载




1. 创建相关目录



(1) 创建目录步骤


创建相关目录

-- 1. 创建 bin 目录 : 使用 mkdir -p ~/bin 命令;

-- 2. 创建 android/system 目录 : 使用 mkdir -p ~/android/system 命令;



(2) 创建过程的终端输出



创建过程的终端输出

-- 创建过程

octopus@octopus:~$ mkdir -p ~/bin
octopus@octopus:~$ ls
bin  develop  examples.desktop  jdk-8u25-linux-i586.tar.gz  vmware_tools  公共的  模板  视频  图片  文档  下载  音乐  桌面
octopus@octopus:~$ mkdir -p ~/android/system
octopus@octopus:~$ ls
android  bin  develop  examples.desktop  j

以上是关于Android 系统开发CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)的主要内容,如果未能解决你的问题,请参考以下文章

redmi Note4X安装原生安卓系统LineageOS

下载Cyanogenmod源代码树需要数月时间

Android 6 - 找到蓝牙设备时手机崩溃

CyanogenMod 11.0模拟器goldfish的编译方法及下载地址

Android 自定义启动器 startActivity() 阻止 BOOT_COMPLETED 意图

make: *** [/aosp/out/host/linux-x86/obj/lib/libc++.so] 构建 Cyanogenmod 时出现错误 1