【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. 没有序列号 : 如果你没有看到设备序列号, 反而看到 "" 信息, 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  jdk-8u25-linux-i586.tar.gz  vmware_tools  公共的  模板  视频  图片  文档  下载  音乐  桌面




2. 获取 repo 脚本


(1) 获取 repo 脚本步骤



设置 repo 脚本 : 下载 repo 脚本, 并使 repo 脚本可执行 (赋予执行权限).

-- 1. 获取 repo 脚本 : 使用 curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 命令;

-- 2. 为 repo 脚本添加执行权限 : 使用 chmod a+x ~/bin/repo 命令;



(2) 获取 repo 脚本的终端输出


获取 repo 脚本过程输出

-- 执行过程

octopus@octopus:~$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 26223  100 26223    0     0   6671      0  0:00:03  0:00:03 --:--:--  6674
octopus@octopus:~$ chmod a+x ~/bin/repo




3. 配置 repo 环境变量


配置 bin 目录到环境变量中 : 在 Ubuntu 14.04 LTS 中, Ubuntu 默认已经将 bin 目录添加到了 PATH 路径中, 如果没有, 请自行添加;

-- 配置方法 : 在 ~/.profile 中配置, 执行 sudo gedit .profile 命令, 即可打开该文件, 注意加上 sudo 权限.

-- 配置内容 : 

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi



4. 初始化 CyanogenMod 源码仓库


(1) 初始化 CyanogenMod 源码仓库步骤



初始化 CyanogenMod 源码仓库流程 : 

-- 1.安装 phablet-tools 工具包 : 执行 repo 命令前需要先安装 phablet-tools 工具包 , 安装命令 sudo apt-get install phablet-tools ;

-- 2.为 Git 设置 邮箱 和 用户 : 设置邮箱 git config --global user.email "[email protected]" , 设置用户 git config --global user.name "Shuliang Han" ;

octopus@octopus:~/android/system$ git config --global user.email "[email protected]"
octopus@octopus:~/android/system$ git config --global user.name "Shuliang Han"


-- 3. 连接 VPN 代理 : 可以再 Windows 上连接代理, 虚拟机就可以访问 GoogleSource 网站的资源了;


-- 3.进入 ~/android/system 目录 : 执行 repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0 命令, 进入该目录, 一定要在该目录执行 初始化步骤, 否则在哪个目录执行初始化命令, 源码就下载到哪里;

-- 4. 初始化命令 : 执行 命令;

-- 执行完毕标识 : 出现以下内容说明执行成功;




(2) 初始化过程中的出错处理



初始化 CyanogenMod 源码仓库期间出现的错误处理

-- 出现错误 1 : 没有安装 python 脚本执行的环境;

octopus@octopus:~/android/system$ repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0
程序“repo”尚未安装。 您可以使用以下命令安装:
sudo apt-get install phablet-tools


-- 错误处理 1 : 安装 , 执行 sudo apt-get install phablet-tools 命令, 安装 repo;

-- 出现错误 2 : 一些资源被中国防火墙屏蔽;

fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 101] Network is unreachable

-- 处理错误 2 : 长城防火墙把 Google 所有的先关网站都屏蔽了, 日了泰迪了, 没办法 开 VPN 解决, 一年 几百块钱的 VPN 钱就不要省了;



-- 出现错误 3 : 没有设置 git 的绑定邮箱 和 用户名;

Traceback (most recent call last):
  File "/home/octopus/android/system/.repo/repo/main.py", line 531, in 
    _Main(sys.argv[1:])
  File "/home/octopus/android/system/.repo/repo/main.py", line 507, in _Main
    result = repo._Run(argv) or 0
  File "/home/octopus/android/system/.repo/repo/main.py", line 180, in _Run
    result = cmd.Execute(copts, cargs)
  File "/home/octopus/android/system/.repo/repo/subcmds/init.py", line 395, in Execute
    self._ConfigureUser()
  File "/home/octopus/android/system/.repo/repo/subcmds/init.py", line 289, in _ConfigureUser
    name  = self._Prompt('Your Name', mp.UserName)
  File "/home/octopus/android/system/.repo/repo/project.py", line 703, in UserName
    self._LoadUserIdentity()
  File "/home/octopus/android/system/.repo/repo/project.py", line 716, in _LoadUserIdentity
    u = self.bare_git.var('GIT_COMMITTER_IDENT')
  File "/home/octopus/android/system/.repo/repo/project.py", line 2650, in runner
    p.stderr))
error.GitError: manifests var: 
*** Please tell me who you are.
Run
  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'octopus@octopus.(none)')


-- 错误处理 3

octopus@octopus:~/android/system$ git config --global user.email "[email protected]"
octopus@octopus:~/android/system$ git config --global user.name "Shuliang Han"




(3) 初始化 CyanogenMod 源码仓库的整个终端命令行输出



完整的执行过程 - 终端输出 : 

gpg: 钥匙环‘/home/octopus/.repoconfig/gnupg/secring.gpg’已建立
gpg: 钥匙环‘/home/octopus/.repoconfig/gnupg/pubring.gpg’已建立
gpg: /home/octopus/.repoconfig/gnupg/trustdb.gpg:建立了信任度数据库
gpg: 密钥 920F5C65:公钥“Repo Maintainer ”已导入
gpg: 密钥 692B382C:公钥“Conley Owens ”已导入
gpg: 合计被处理的数量:2
gpg:               已导入:2  (RSA: 1)


Get https://gerrit.googlesource.com/git-repo/clone.bundle

... A new repo command ( 1.22) is available.
... You should upgrade soon:

    cp /home/octopus/android/system/.repo/repo/repo /usr/bin/repo

Get https://github.com/CyanogenMod/android.git
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found
Server does not provide clone.bundle; ignoring.
remote: Counting objects: 3845, done.
remote: Total 3845 (delta 0), reused 0 (delta 0), pack-reused 3845
接收对象中: 100% (3845/3845), 1.26 MiB | 58.00 KiB/s, done.
处理 delta 中: 100% (1311/1311), done.
来自 https://github.com/CyanogenMod/android
 * [新分支]          cm-10.1    -> origin/cm-10.1
 * [新分支]          cm-10.2    -> origin/cm-10.2
 * [新分支]          cm-11.0    -> origin/cm-11.0
 * [新分支]          cm-12.0    -> origin/cm-12.0
 * [新分支]          cm-12.1    -> origin/cm-12.1
 * [新分支]          cm-13.0    -> origin/cm-13.0
 * [新分支]          cm-7.0.0   -> origin/cm-7.0.0
 * [新分支]          cm-7.0.1   -> origin/cm-7.0.1
 * [新分支]          cm-7.0.2.1 -> origin/cm-7.0.2.1
 * [新分支]          cm-7.0.3   -> origin/cm-7.0.3
 * [新分支]          cm-9.1.0   -> origin/cm-9.1.0
 * [新分支]          eclair     -> origin/eclair
 * [新分支]          froyo      -> origin/froyo
 * [新分支]          froyo-stable -> origin/froyo-stable
 * [新分支]          gb-release-7.2 -> origin/gb-release-7.2
 * [新分支]          gingerbread -> origin/gingerbread
 * [新分支]          gingerbread-release -> origin/gingerbread-release
 * [新分支]          ics        -> origin/ics
 * [新分支]          ics-release -> origin/ics-release
 * [新分支]          jellybean  -> origin/jellybean
 * [新分支]          jellybean-stable -> origin/jellybean-stable
 * [新分支]          mr1.1-staging -> origin/mr1.1-staging
 * [新分支]          shipping/cm-11.0 -> origin/shipping/cm-11.0
 * [新分支]          stable/cm-10.2 -> origin/stable/cm-10.2
 * [新分支]          stable/cm-11.0 -> origin/stable/cm-11.0
 * [新分支]          stable/cm-11.0-XNF8Y -> origin/stable/cm-11.0-XNF8Y
 * [新分支]          stable/cm-11.0-XNF9X -> origin/stable/cm-11.0-XNF9X
 * [新分支]          stable/cm-11.0-XNG2S -> origin/stable/cm-11.0-XNG2S
 * [新分支]          stable/cm-11.0-XNG3C -> origin/stable/cm-11.0-XNG3C
 * [新分支]          stable/cm-12.0-YNG1I -> origin/stable/cm-12.0-YNG1I
 * [新分支]          stable/cm-12.0-YNG1T -> origin/stable/cm-12.0-YNG1T
 * [新分支]          stable/cm-12.0-YNG1TA -> origin/stable/cm-12.0-YNG1TA
 * [新分支]          stable/cm-12.0-YNG3C -> origin/stable/cm-12.0-YNG3C
 * [新分支]          stable/cm-12.0-YNG4N -> origin/stable/cm-12.0-YNG4N
 * [新分支]          stable/cm-12.1-YOG3C -> origin/stable/cm-12.1-YOG3C
 * [新分支]          stable/cm-12.1-YOG4P -> origin/stable/cm-12.1-YOG4P
 * [新分支]          stable/cm-12.1-YOG7D -> origin/stable/cm-12.1-YOG7D
 * [新分支]          stable/cm-13.0-ZNH0E -> origin/stable/cm-13.0-ZNH0E
 * [新分支]          stable/cm-13.0-ZNH2K -> origin/stable/cm-13.0-ZNH2K
 * [新分支]          staging/cm-12.0-caf -> origin/staging/cm-12.0-caf
 * [新分支]          staging/cm-12.1 -> origin/staging/cm-12.1
 * [新分支]          staging/cm-13.0+r22 -> origin/staging/cm-13.0+r22
 * [新分支]          themes-exp -> origin/themes-exp
 * [新tag]           cm-10.1-M1 -> cm-10.1-M1
 * [新tag]           cm-10.1-M2 -> cm-10.1-M2
 * [新tag]           cm-10.1-M3 -> cm-10.1-M3
 * [新tag]           cm-10.1.0  -> cm-10.1.0
 * [新tag]           cm-10.1.0-RC1 -> cm-10.1.0-RC1
 * [新tag]           cm-10.1.0-RC2 -> cm-10.1.0-RC2
 * [新tag]           cm-10.1.0-RC3 -> cm-10.1.0-RC3
 * [新tag]           cm-10.1.0-RC4 -> cm-10.1.0-RC4
 * [新tag]           cm-10.1.0-RC5 -> cm-10.1.0-RC5
 * [新tag]           cm-10.1.1  -> cm-10.1.1
 * [新tag]           cm-10.1.2  -> cm-10.1.2
 * [新tag]           cm-10.1.3  -> cm-10.1.3
 * [新tag]           cm-10.1.3-RC1 -> cm-10.1.3-RC1
 * [新tag]           cm-10.1.3-RC2 -> cm-10.1.3-RC2
 * [新tag]           cm-10.2-M1 -> cm-10.2-M1
 * [新tag]           cm-10.2.0  -> cm-10.2.0
 * [新tag]           cm-10.2.1  -> cm-10.2.1
 * [新tag]           cm-10.2.1.1 -> cm-10.2.1.1
 * [新tag]           cm-11.0-XNPH05Q-bacon-5229c4ef56 -> cm-11.0-XNPH05Q-bacon-5229c4ef56
 * [新tag]           cm-11.0-XNPH05Q-tomato-9828f8e9cc -> cm-11.0-XNPH05Q-tomato-9828f8e9cc
 * [新tag]           cm-11.0-XNPH22R-bacon-03d77315ea -> cm-11.0-XNPH22R-bacon-03d77315ea
 * [新tag]           cm-11.0-XNPH25R-bacon-d22b777afa -> cm-11.0-XNPH25R-bacon-d22b777afa
 * [新tag]           cm-11.0-XNPH30O-bacon-4f280f505a -> cm-11.0-XNPH30O-bacon-4f280f505a
 * [新tag]           cm-11.0-XNPH33R-bacon-3628510d76 -> cm-11.0-XNPH33R-bacon-3628510d76
 * [新tag]           cm-11.0-XNPH44S-bacon-5fa8c79c0b -> cm-11.0-XNPH44S-bacon-5fa8c79c0b
 * [新tag]           cm-5.0.6   -> cm-5.0.6
 * [新tag]           cm-5.0.7   -> cm-5.0.7
 * [新tag]           cm-5.0.7-ds -> cm-5.0.7-ds
 * [新tag]           cm-6.0.0   -> cm-6.0.0
 * [新tag]           cm-6.0.0-rc1 -> cm-6.0.0-rc1
 * [新tag]           cm-7.0.0   -> cm-7.0.0
 * [新tag]           cm-7.0.1   -> cm-7.0.1
 * [新tag]           cm-7.0.2.1 -> cm-7.0.2.1
 * [新tag]           cm-7.0.3   -> cm-7.0.3
 * [新tag]           cm-7.1.0   -> cm-7.1.0

... A new repo command ( 1.22) is available.
... You should upgrade soon:

    cp /home/octopus/android/system/.repo/repo/repo /usr/bin/repo


Your identity is: Shuliang Han 
If you want to change this, please re-run 'repo init' with --config-name

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white 
  bold     dim      ul       reverse 
Enable color display in this user account (y/N)? y

repo has been initialized in /home/octopus/android/system





5. 使用 repo 正式下载 Android 源码



(1) 源码下载 repo 命令简介



repo 命令简介 : 

-- 下载命令 : 使用 repo sync 命令执行下载, 启动源码下载进程, 源码下载到指定的 ~/android/system 目录中;

-- 推荐配置 : CM Manifest 中包含了一个默认配置, 强烈推荐使用该配置, 不要加任何可选的命令选项;

-- 线程选项 : 默认 -j 4 -c 选项, -j 4 选项意味着同时建立了 4 个线程 或 连接; 如果下载总是出现问题, 可以减少线程数, 参数改为 -j 3 或者 -j 2;

-- 分支选项 : -c 选项, 代表 repo 只下载当前一个分支的完整源码, 并不把整个源码树所有分支完整的下载下来;

-- 下载时长 : 我用的 4M 独享带宽的 VPN, 下了大概 一天一夜, 该过程下载 12.9 G 的 android 源码, 这个时间是最长的, 如果带宽不足的话, 可能会花费更长时间.

-- repo sync 命令更新代码 : repo sync 命令还可以用于从 CyanogenMod 和 Google 上获取更新最新的源代码, 你可以每隔几天执行一次该命令, 保持机器上的源代码是最新的;




(2) 源码下载命令 及 下载结果



下载 CyanogenMod 源码

-- 执行命令 : repo sync -j4, 正式下载源码;

-- 注意 : 下载一定要开 VPN, 没有 VPN 绝逼下载不下来, 好多资料都被中国屏蔽了.

-- 文件目录


-- 文件大小 : 该步骤下载了 12.9G 的源码;





(3) repo sync 下载过程的终端输出



repo sync 下载过程 - 终端输出 : 

octopus@octopus:~/android/system$ repo sync -j4

... A new repo command ( 1.22) is available.
... You should upgrade soon:

    cp /home/octopus/android/system/.repo/repo/repo /usr/bin/repo

Fetching project CyanogenMod/android_frameworks_support
Fetching project CyanogenMod/android_packages_apps_CMUpdater
Fetching project platform/external/mockwebserver
Fetching project platform/external/jsoncpp
Fetching projects:   0% (1/519)  Fetching project CyanogenMod/android_hardware_ti_omap4xxx
Fetching project platform/external/libvncserver
Fetching project CyanogenMod/android_external_libvpx
Fetching project CyanogenMod/android_packages_apps_PackageInstaller
Fetching project CyanogenMod/android_packages_apps_Eleven
Fetching projects:   1% (6/519)  Fetching project CyanogenMod/android_packages_screensavers_WebView
Fetching project CyanogenMod/android_external_ffmpeg
Fetching project platform/external/squashfs-tools
Fetching project CyanogenMod/android_packages_services_Telecomm
Fetching project CyanogenMod/android_external_libtruezip
Fetching projects:   2% (11/519)  Fetching project platform/hardware/intel/audio_media
Fetching project platform/external/fonttools
Fetching project platform/external/aac
Fetching project CyanogenMod/android_external_toybox
Fetching project platform/external/jmonkeyengine
Fetching projects:   3% (16/519)  Fetching project CyanogenMod/android_hardware_ti_wlan
Fetching project platform/external/ipsec-tools
Fetching project CyanogenMod/android_frameworks_webview
Fetching project platform/external/google-fonts/cutive-mono
Fetching project CyanogenMod/android_external_gmock
Fetching projects:   4% (21/519)  Fetching project CyanogenMod/android_frameworks_opt_calendar
Fetching project CyanogenMod/android_packages_providers_TelephonyProvider
Fetching project platform/external/zxing
Fetching project platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8
Fetching project platform/external/drm_gralloc
Fetching projects:   5% (26/519)  Fetching project platform/external/jemalloc
Fetching project platform/external/google-fonts/dancing-script
Fetching project platform/external/libmtp
Fetching project platform/external/lldb
Fetching project platform/external/libcxxabi
Fetching project CyanogenMod/android_frameworks_compile_slang
Fetching projects:   6% (32/519)  Fetching project platform/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8
Fetching project platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9
Fetching project platform/external/naver-fonts
Fetching project CyanogenMod/android_external_nist-sip
Fetching project CyanogenMod/android_external_libusb
Fetching projects:   7% (37/519)  Fetching project CyanogenMod/android_hardware_intel_common_libwsbm
Fetching project platform/packages/apps/OneTimeInitializer
Fetching project device/generic/mini-emulator-mips
Fetching project platform/external/apache-xml
Fetching project CyanogenMod/android_packages_apps_CellBroadcastReceiver
Fetching projects:   8% (42/519)  Fetching project platform/external/nist-pkits
Fetching project CyanogenMod/android_packages_providers_PartnerBookmarksProvider
Fetching project platform/external/jmdns
Fetching project platform/external/kernel-headers
Fetching project CyanogenMod/android_external_f2fs-tools
Fetching projects:   9% (47/519)  Fetching project platform/external/ksoap2
Fetching project CyanogenMod/android_hardware_libhardware
Fetching project platform/external/chromium-webview
Fetching project CyanogenMod/android_external_sonivox
Fetching project CyanogenMod/android_external_libusbx
Fetching projects:  10% (52/519)  Fetching project platform/external/jsmn
Fetching project CyanogenMod/android_packages_apps_AudioFX
Fetching project device/generic/mini-emulator-arm64
Fetching project CyanogenMod/android_hardware_qcom_keymaster
Fetching project CyanogenMod/android_packages_providers_ThemesProvider
Fetching project CyanogenMod/android_frameworks_base
Fetching projects:  11% (58/519)  Fetching project CyanogenMod/android_frameworks_opt_net_voip
Fetching project platform/prebuilts/libs/libedit
Fetching project CyanogenMod/android_external_android-mock
Fetching project CyanogenMod/android_external_tinyxml2
Fetching project platform/frameworks/opt/inputconnectioncommon
Fetching projects:  12% (63/519)  Fetching project platform/external/selinux
Fetching project CyanogenMod/android_hardware_qcom_media
Fetching project platform/external/mdnsresponder
Fetching project CyanogenMod/android_external_wpa_supplicant_8
Fetching project platform/external/safe-iop
Fetching projects:  13% (68/519)  Fetching project CyanogenMod/android_packages_apps_Bluetooth
Fetching project CyanogenMod/android_hardware_qcom_media
Fetching project CyanogenMod/android_packages_providers_UserDictionaryProvider
Fetching project platform/hardware/ti/omap4-aah
Fetching project platform/external/giflib
Fetching project platform/external/openfst
Fetching projects:  14% (73/519)  Fetching project CyanogenMod/android_hardware_qcom_media
Fetching project CyanogenMod/android_external_lzma
Fetching project platform/external/libyuv
Fetching project CyanogenMod/android_packages_wallpapers_Basic
Fetching project CyanogenMod/android_device_google_atv
Fetching project CyanogenMod/android_packages_wallpapers_HoloSpiral
Fetching projects:  15% (78/519)  Fetching project platform/external/drm_hwcomposer
Fetching project CyanogenMod/android_external_gson
Fetching project CyanogenMod/android_packages_apps_TvSettings
Fetching project CyanogenMod/android_hardware_qcom_media
Fetching project CyanogenMod/android_hardware_invensense
Fetching project CyanogenMod/android_packages_apps_LockClock
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 0
Fetching project CyanogenMod/android_frameworks_opt_photoviewer
Fetching projects:  16% (84/519)  Fetching project CyanogenMod/android_frameworks_opt_colorpicker
来自 https://github.com/CyanogenMod/android_frameworks_base
   2d7713a..58ae12f  cm-13.0    -> github/cm-13.0
Fetching project CyanogenMod/android_external_jarjar
Fetching project platform/frameworks/data-binding
Fetching project CyanogenMod/android_packages_services_LiveLockScreenService
Fetching project CyanogenMod/android_frameworks_opt_datetimepicker
Fetching projects:  17% (89/519)  Fetching project CyanogenMod/android_system_qcom
Fetching project CyanogenMod/AndroidAsync
Fetching project CyanogenMod/android_bionic
Fetching project CyanogenMod/android_system_core
Fetching project CyanogenMod/android_packages_wallpapers_NoiseField
Fetching projects:  18% (94/519)  Fetching project CyanogenMod/android_hardware_qcom_media
Fetching project platform/external/libexif
Fetching project platform/external/webrtc
Fetching project CyanogenMod/android_external_ant-wireless_ant_service
Fetching project CyanogenMod/android_frameworks_rs
Fetching project CyanogenMod/android_external_tinyalsa
Fetching projects:  19% (99/519)  Fetching project CyanogenMod/android_packages_apps_ManagedProvisioning
Fetching project CyanogenMod/android_external_pdfium
Fetching project CyanogenMod/android_hardware_qcom_media
Fetching project CyanogenMod/android_external_pcre
Fetching project CyanogenMod/android_packages_apps_FMRadio
Fetching project CyanogenMod/android_external_dhcpcd
Fetching projects:  20% (104/519)  Fetching project CyanogenMod/android_system_bt
Fetching project platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8
Fetching project platform/external/zopfli
Fetching project device/generic/mini-emulator-x86_64
Fetching project platform/external/sfntly
Fetching projects:  21% (109/519)  Fetching project CyanogenMod/android_frameworks_volley
Fetching project platform/hardware/intel/common/utils
Fetching project CyanogenMod/android_hardware_cyanogen
Fetching project CyanogenMod/android_external_doclava
Fetching project CyanogenMod/android_external_ant-wireless_antradio-library
Fetching project platform/external/fio
Fetching projects:  22% (115/519)  Fetching project CyanogenMod/android_system_extras
Fetching project platform/external/xmlwriter
Fetching project CyanogenMod/android_external_vogar
Fetching project platform/external/jsilver
Fetching project platform/external/marisa-trie
Fetching projects:  23% (120/519)  Fetching project CyanogenMod/android_frameworks_opt_bluetooth
Fetching project CyanogenMod/android_external_elfutils
Fetching project platform/external/jetty
Fetching project platform/external/jdiff
Fetching project platform/external/blktrace
Fetching projects:  24% (125/519)  Fetching project CyanogenMod/android_external_libxml2
Fetching project platform/prebuilts/gradle-plugin
Fetching project CyanogenMod/android_external_ntfs-3g
Fetching project platform/external/compiler-rt
Fetching project CyanogenMod/android_hardware_qcom_media
Fetching project CyanogenMod/android_frameworks_opt_net_wifi
Fetching projects:  25% (130/519)  Fetching project CyanogenMod/android_packages_apps_Stk
Fetching project CyanogenMod/android_packages_wallpapers_PhaseBeam
Fetching project CyanogenMod/android_hardware_qcom_audio
Fetching project CyanogenMod/android_external_android-visualizer
Fetching project CyanogenMod/android_external_lzo
Fetching projects:  26% (135/519)  Fetching project platform/external/cblas
Fetching project CyanogenMod/android_hardware_intel_img_psb_headers
Fetching project CyanogenMod/android_external_nano
Fetching project CyanogenMod/android_packages_wallpapers_LivePicker
Fetching project platform/external/deqp
Fetching project CyanogenMod/android_system_netd
Fetching projects:  27% (141/519)  Fetching project platform/external/libgsm
Fetching project platform/external/neven
Fetching project device/sample
Fetching project CyanogenMod/android_external_libavc
Fetching project platform/external/google-tv-pairing-protocol
Fetching projects:  28% (146/519)  Fetching project CyanogenMod/android_external_mksh
Fetching project platform/external/javasqlite
Fetching project CyanogenMod/android_external_jpeg
Fetching project CyanogenMod/android_frameworks_opt_net_ethernet
Fetching project CyanogenMod/android_hardware_qcom_media
Fetching project CyanogenMod/android_external_unrar
Fetching projects:  29% (151/519)  Fetching project CyanogenMod/android_external_ant-wireless_ant_native
Fetching project CyanogenMod/android_packages_apps_Provision
Fetching project platform/external/expat
Fetching project platform/external/androidplot
Fetching project platform/external/apache-commons-math
Fetching projects:  30% (156/519)  Fetching project CyanogenMod/android_frameworks_minikin
Fetching project CyanogenMod/android_system_vold
Fetching project CyanogenMod/android_external_pigz
Fetching project CyanogenMod/android_frameworks_wilhelm
Fetching project platform/prebuilts/clang/darwin-x86/host/3.6
Fetching projects:  31% (161/519)  Fetching project CyanogenMod/android_external_powertop
Fetching project CyanogenMod/android_external_rsync
Fetching project platform/external/donuts
Fetching project CyanogenMod/android_packages_screensavers_PhotoTable
Fetching project CyanogenMod/android_hardware_qcom_audio
Fetching project device/generic/x86
Fetching project platform/external/chromium-libpac
Fetching projects:  32% (167/519)  Fetching project platform/external/libmpeg2
Fetching project CyanogenMod/android_external_libnfc-nxp
Fetching project platform/hardware/intel/common/wrs_omxil_core
Fetching project device/generic/x86_64
Fetching project CyanogenMod/android_packages_apps_Gello
Fetching projects:  33% (172/519)  Fetching project CyanogenMod/android_external_vim
Fetching project CyanogenMod/android_packages_apps_Nfc
Fetching project CyanogenMod/android_abi_cpp
Fetching project CyanogenMod/android_external_yaffs2
Fetching project CyanogenMod/android_device_generic_mips
Fetching projects:  34% (177/519)  Fetching project platform/external/vixl
Fetching project platform/external/messageformat
Fetching project platform/external/bsdiff
Fetching project platform/prebuilts/sdk
Fetching project CyanogenMod/android_external_google
Fetching projects:  35% (182/519)  Fetching project CyanogenMod/android_hardware_qcom_fm
Fetching project platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9
Fetching project CyanogenMod/android_external_libncurses
Fetching project CyanogenMod/android_hardware_ti_wpan
Fetching project CyanogenMod/android_hardware_qcom_audio
Fetching project device/generic/mini-emulator-x86
Fetching projects:  36% (187/519)  Fetching project CyanogenMod/android_dalvik
Fetching project CyanogenMod/android_external_iproute2
Fetching project platform/external/google-breakpad
Fetching project CyanogenMod/android_packages_apps_CarrierConfig
Fetching project CyanogenMod/android_frameworks_multidex
Fetching project CyanogenMod/android_hardware_broadcom_wlan
Fetching projects:  37% (193/519)  Fetching project CyanogenMod/android_device_generic_common
Fetching project CyanogenMod/android_frameworks_opt_emoji
Fetching project CyanogenMod/android_art
Fetching project platform/external/javassist
Fetching project CyanogenMod/android_external_fuse
Fetching projects:  38% (198/519)  Fetching project CyanogenMod/android_external_libnfnetlink
Fetching project CyanogenMod/android_frameworks_av
Fetching project platform/external/liblzf
Fetching project CyanogenMod/android_frameworks_opt_hardware
Fetching project platform/external/opencv
Fetching projects:  39% (203/519)  Fetching project platform/hardware/qcom/msm8994
Fetching project platform/external/glide
Fetching project CyanogenMod/android_external_ebtables
Fetching project platform/ndk
Fetching project platform/external/replicaisland
Fetching projects:  40% (208/519)  Fetching project CyanogenMod/android_hardware_qcom_display
Fetching project platform/hardware/intel/bootstub
Fetching project CyanogenMod/android_hardware_qcom_audio
Fetching project CyanogenMod/android_frameworks_native
Fetching project CyanogenMod/android_hardware_intel_img_psb_video
Fetching project platform/external/google-fonts/carrois-gothic-sc
Fetching projects:  41% (213/519)  Fetching project platform/external/owasp/sanitizer
Fetching project platform/external/regex-re2
Fetching project platform/external/tagsoup
Fetching project CyanogenMod/android_packages_providers_DataUsageProvider
Fetching project platform/external/timezonepicker-support
Fetching projects:  42% (218/519)  Fetching project CyanogenMod/android_device_generic_arm64
Fetching project CyanogenMod/android_external_gptfdisk
Fetching project platform/external/libunwind
Fetching project CyanogenMod/android_hardware_intel_common_libmix
Fetching project CyanogenMod/android_packages_apps_SoundRecorder
Fetching project platform/hardware/marvell/bt
Fetching projects:  43% (224/519)  Fetching project CyanogenMod/android_packages_services_Telephony
Fetching project CyanogenMod/android_frameworks_opt_inputmethodcommon
Fetching project platform/external/sonic
Fetching project CyanogenMod/android_external_bouncycastle
Fetching project platform/hardware/qcom/msm8960
Fetching projects:  44% (229/519)  Fetching project CyanogenMod/android_packages_apps_Email
Fetching project CyanogenMod/android_packages_services_Mms
Fetching project CyanogenMod/android_packages_apps_Contacts
Fetching project platform/external/robolectric
Fetching project CyanogenMod/android_hardware_qcom_audio
Fetching project CyanogenMod/android_libnativehelper
Fetching projects:  45% (234/519)  Fetching project CyanogenMod/android_hardware_qcom_camera
Fetching project CyanogenMod/android_system_keymaster
Fetching project CyanogenMod/android_packages_providers_TvProvider
Fetching project CyanogenMod/android_device_generic_armv7-a-neon
Fetching project CyanogenMod/android_hardware_broadcom_libbt
Fetching projects:  46% (239/519)  Fetching project CyanogenMod/android_packages_apps_BasicSmsReceiver
Fetching project platform/external/llvm
Fetching project platform/external/tinyxml
Fetching project CyanogenMod/android_packages_apps_SpeechRecorder
Fetching project platform/external/antlr
Fetching projects:  47% (244/519)  Fetching project CyanogenMod/android_packages_apps_Browser
Fetching project CyanogenMod/android_external_android-clat
Fetching project CyanogenMod/android_hardware_qcom_display
Fetching project CyanogenMod/android_prebuilts_cmsdk
Fetching project CyanogenMod/android_packages_apps_Exchange
Fetching project CyanogenMod/android_frameworks_opt_net_ims
Fetching project CyanogenMod/android_frameworks_ml
Fetching projects:  48% (250/519)  Fetching project platform/external/hamcrest
Fetching project platform/external/markdown
Fetching project platform/hardware/qcom/msm8x74
Fetching project CyanogenMod/android_hardware_qcom_audioFetching project CyanogenMod/external_android_support-prebuilt

Fetching project platform/external/tremolo
Fetching projects:  49% (255/519)  Fetching project CyanogenMod/android_hardware_qcom_bt
Fetching project platform/external/freetype
Fetching project platform/external/fdlibm
Fetching project platform/external/mesa3d
Fetching project CyanogenMod/android_external_guava
Fetching projects:  50% (260/519)  Fetching project CyanogenMod/android_packages_experimental
Fetching project CyanogenMod/android_external_connectivity
Fetching project platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9
Fetching project platform/system/gatekeeper
Fetching project CyanogenMod/android_external_libvterm
Fetching projects:  51% (265/519)  Fetching project CyanogenMod/android_vendor_qcom_opensource_dataservices
Fetching project CyanogenMod/android_device_generic_goldfish
Fetching project CyanogenMod/android_external_zlib
Fetching project CyanogenMod/android_hardware_qcom_display
Fetching project platform/external/gtest
Fetching project CyanogenMod/android_external_e2fsprogs
Fetching projects:  52% (270/519)  Fetching project CyanogenMod/android_packages_apps_Terminal
Fetching project platform/sdk
Fetching project CyanogenMod/android_external_flac
Fetching project CyanogenMod/android_packages_apps_DeskClock
Fetching project platform/external/esd
Fetching project CyanogenMod/android_external_skia
Fetching projects:  53% (276/519)  Fetching project CyanogenMod/android_packages_apps_ThemeChooser
Fetching project CyanogenMod/android_hardware_qcom_bt
Fetching project CyanogenMod/android_external_libselinux
Fetching project CyanogenMod/android_packages_apps_Profiles
Fetching project CyanogenMod/android_packages_apps_Snap
Fetching project CyanogenMod/android_hardware_qcom_audio
Fetching project CyanogenMod/android_packages_providers_CallLogProvider
Fetching projects:  54% (281/519)  Fetching project platform/hardware/qcom/msm8x84
Fetching project platform/external/objenesis
Fetching project platform/external/svox
Fetching project platform/external/ceres-solver
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
Fetching project platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9
Fetching projects:  55% (286/519)  Fetching project platform/hardware/ti/omap3
Fetching project CyanogenMod/android_packages_apps_Screencast
Fetching project CyanogenMod/android_development
Fetching project CyanogenMod/android_external_p7zip
Fetching project CyanogenMod/android_hardware_libhardware_legacy
Fetching projects:  56% (291/519)  Fetching project platform/external/protobuf
Fetching project CyanogenMod/android_hardware_intel_common_libva
Fetching project CyanogenMod/android_hardware_qcom_display
Fetching project platform/external/smali
Fetching project platform/hardware/mediatek
Fetching project CyanogenMod/android_packages_apps_SmartCardService
Fetching projects:  57% (296/519)  Fetching project platform/prebuilts/qemu-kernel
Fetching project platform/external/eyes-free
Fetching project CyanogenMod/android_packages_inputmethods_LatinIME
Fetching project CyanogenMod/android_external_unzip
Fetching project CyanogenMod/android_external_bash
Fetching project platform/external/v8
Fetching projects:  58% (302/519)  Fetching project platform/external/emma
Fetching project CyanogenMod/android_packages_apps_HTMLViewer
Fetching project CyanogenMod/android_external_bzip2
Fetching project platform/external/xmp_toolkit
Fetching project CyanogenMod/android_hardware_qcom_audio
Fetching project platform/external/libhevc
Fetching projects:  59% (307/519)  Fetching project CyanogenMod/android_hardware_qcom_wlan
Fetching project CyanogenMod/android_build
Fetching project CyanogenMod/android_packages_apps_YahooWeatherProvider
Fetching project platform/external/slf4j
Fetching project CyanogenMod/android_external_sepolicy
Fetching projects:  60% (312/519)  Fetching project platform/external/nfacct
Fetching project platform/prebuilts/misc
Fetching project platform/prebuilts/python/darwin-x86/2.7.5
Fetching project platform/prebuilts/eclipse
Fetching project CyanogenMod/android_packages_providers_CalendarProvider
Fetching projects:  61% (317/519)  Fetching project platform/external/google-fonts/coming-soon
Fetching project CyanogenMod/android_packages_apps_CertInstaller
Fetching project platform/external/lld
Fetching project CyanogenMod/android_vendor_cm
Fetching project CyanogenMod/android_packages_providers_DownloadProvider
Fetching projects:  62% (322/519)  Fetching project CyanogenMod/android_external_strace
Fetching project platform/prebuilts/android-emulator
Fetching project platform/external/libutf
Fetching project platform/external/dexmaker
Fetching project platform/prebuilts/devtools
Fetching projects:  63% (327/519)  Fetching project CyanogenMod/android_hardware_qcom_display
Fetching project CyanogenMod/android_packages_apps_Trebuchet
Fetching project platform/external/crcalc
Fetching project CyanogenMod/android_packages_apps_OpenWeatherMapProvider
Fetching project platform/external/mockito
Fetching project platform/developers/build
Fetching project CyanogenMod/android_packages_wallpapers_MagicSmoke
Fetching projects:  64% (333/519)  Fetching project CyanogenMod/android_packages_apps_PhoneCommon
Fetching project CyanogenMod/android_frameworks_opt_setupwizard
Fetching project platform/external/roboto-fonts
Fetching project CyanogenMod/ion
Fetching project CyanogenMod/android_hardware_samsung_slsi_exynos5
Fetching projects:  65% (338/519)  Fetching project platform/external/libphonenumber
Fetching project CyanogenMod/android_external_protobuf-c
Fetching project CyanogenMod/android_packages_apps_CMFileManager
Fetching project CyanogenMod/android_external_okhttp
Fetching project CyanogenMod/android_frameworks_opt_chips
Fetching projects:  66% (343/519)  Fetching project CyanogenMod/android_packages_apps_WundergroundWeatherProvider
Fetching project CyanogenMod/android_packages_apps_Gallery2
Fetching project platform/external/netcat
Fetching project platform/docs/source.android.com
Fetching project platform/external/parameter-framework
Fetching projects:  67% (348/519)  Fetching project CyanogenMod/android_bootable_recovery
Fetching project platform/prebuilts/clang/linux-x86/host/3.6
Fetching project CyanogenMod/android_packages_apps_Settings
Fetching project CyanogenMod/android_external_dnsmasq
Fetching project CyanogenMod/android_hardware_qcom_displayFetching project CyanogenMod/android_packages_apps_ExactCalculator

Fetching projects:  68% (353/519)  Fetching project platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8
Fetching project CyanogenMod/android_external_linux-tools-perf
Fetching project platform/external/noto-fonts
Fetching project platform/external/libopus
Fetching project platform/developers/samples/android
Fetching project CyanogenMod/android_hardware_qcom_wlan
Fetching project platform/external/srtp
Fetching projects:  69% (359/519)  Fetching project platform/prebuilts/python/linux-x86/2.7.5
Fetching project CyanogenMod/android_hardware_qcom_gps
Fetching project CyanogenMod/android_external_mm-dash
Fetching project CyanogenMod/android_frameworks_opt_telephony
Fetching project platform/external/eclipse-basebuilder
Fetching projects:  70% (364/519)  Fetching project CyanogenMod/android_packages_providers_ContactsProvider
Fetching project platform/external/junit
Fetching project CyanogenMod/android_hardware_intel_img_hwcomposer
Fetching project CyanogenMod/android_packages_wallpapers_Galaxy4
Fetching project platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9
Fetching projects:  71% (369/519)  Fetching project CyanogenMod/android_hardware_ti_omap4
Fetching project platform/external/ppp
Fetching project CyanogenMod/android_frameworks_ex
Fetching project CyanogenMod/android_packages_wallpapers_PhotoPhase
Fetching project device/google/accessory/demokit
Fetching projects:  72% (374/519)  Fetching project CyanogenMod/android_external_lz4
Fetching project platform/external/valgrind
Fetching project CyanogenMod/android_external_jsr305
Fetching project CyanogenMod/android_external_boringssl
Fetching project CyanogenMod/android_external_apache-http
Fetching projects:  73% (379/519)  Fetching project platform/external/nanopb-c
Fetching project CyanogenMod/android_external_fsck_msdos
Fetching project CyanogenMod/android_external_libnfc-nci
Fetching project CyanogenMod/android_frameworks_compile_libbcc
Fetching project platform/external/libedit
Fetching project platform/external/mockftpserver
Fetching projects:  74% (385/519)  Fetching project CyanogenMod/android_packages_apps_CMBugreport
Fetching project CyanogenMod/android_hardware_intel_common_omx-components
Fetching project platform/external/libcap-ng
Fetching project CyanogenMod/android_packages_apps_SetupWizard
Fetching project CyanogenMod/android_packages_apps_Camera2
Fetching projects:  75% (390/519)  Fetching project CyanogenMod/android_hardware_qcom_display
Fetching project platform/external/oauth
Fetching project CyanogenMod/android_system_extras_su
Fetching project CyanogenMod/android_external_htop
Fetching project CyanogenMod/android_device_common
Fetching project platform/prebuilts/ndk
Fetching projects:  76% (395/519)  Fetching project CyanogenMod/android_packages_providers_WeatherProvider
Fetching project platform/external/libogg
Fetching project CyanogenMod/android_packages_apps_ContactsCommon
Fetching project platform/external/libusb-compat
Fetching project platform/hardware/intel/sensors
Fetching projects:  77% (400/519)  Fetching project CyanogenMod/android_packages_apps_UnifiedEmail
Fetching project device/google/accessory/arduino
Fetching project CyanogenMod/android_frameworks_opt_timezonepicker
Fetching project platform/external/bison
Fetching project CyanogenMod/android_external_iptables
Fetching projects:  78% (405/519)  Fetching project CyanogenMod/android_vendor_qcom_opensource_time-services
Fetching project CyanogenMod/android_external_brctl
Fetching project CyanogenMod/android_packages_providers_BookmarkProvider
Fetching project platform/external/eclipse-windowbuilder
Fetching project CyanogenMod/android_external_libnetfilter_conntrack
Fetching project CyanogenMod/android_system_media
Fetching projects:  79% (411/519)  Fetching project CyanogenMod/android_external_tinycompress
Fetching project CyanogenMod/android_external_openssh
Fetching project CyanogenMod/android_packages_apps_KeyChain
Fetching project CyanogenMod/android_external_cyanogen_UICommon
Fetching project CyanogenMod/android_external_libtar
Fetching projects:  80% (416/519)  Fetching project CyanogenMod/android_packages_providers_MediaProvider
Fetching project platform/external/chromium-trace
Fetching project platform/pdk
Fetching project CyanogenMod/android_device_qcom_sepolicy
Fetching project platform/external/scrypt
Fetching projects:  81% (421/519)  Fetching project platform/external/cmockery
Fetching project CyanogenMod/android_frameworks_opt_bitmap
Fetching project platform/external/harfbuzz_ng
Fetching project CyanogenMod/android_hardware_qcom_display
Fetching project platform/external/jhead
Fetching project platform/external/ltrace
Fetching projects:  82% (426/519)  Fetching project CyanogenMod/android_frameworks_compile_mclinker
Fetching project platform/external/libcxx
Fetching project CyanogenMod/cm_platform_sdk
Fetching project platform/platform_testing
Fetching project platform/external/embunit
Fetching projects:  83% (431/519)  Fetching project CyanogenMod/android_external_sqlite
Fetching project platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9
Fetching project platform/external/netperf
Fetching project CyanogenMod/android_external_spongycastle
Fetching project platform/external/droiddriver
Fetching projects:  84% (436/519)  Fetching project CyanogenMod/android_external_ant-glob
Fetching project CyanogenMod/android_packages_apps_Calendar
Fetching project device/generic/mini-emulator-armv7-a-neon
Fetching project CyanogenMod/android_packages_apps_CMWallpapers
Fetching project platform/hardware/intel/common/bd_prov
Fetching project platform/external/nanohttpd
Fetching projects:  85% (442/519)  Fetching project platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8
Fetching project platform/hardware/qcom/msm8x26
Fetching project CyanogenMod/android_external_libphonenumbergoogle
Fetching project CyanogenMod/android_vendor_qcom_opensource_dpm
Fetching project device/generic/qemu
Fetching projects:  86% (447/519)  Fetching project CyanogenMod/android_frameworks_opt_vcard
Fetching project platform/external/conscrypt
Fetching project platform/external/mp4parser
Fetching project platform/hardware/intel/common/libstagefrighthw
Fetching project CyanogenMod/android_libcore
Fetching projects:  87% (452/519)  Fetching project CyanogenMod/android_packages_apps_Tag
Fetching project CyanogenMod/android_packages_apps_Messaging
Fetching project CyanogenMod/android_external_stagefright-plugins
Fetching project CyanogenMod/android_hardware_akm
Fetching project CyanogenMod/android_packages_screensavers_Basic
Fetching projects:  88% (457/519)  Fetching project platform/prebuilts/maven_repo/android
Fetching project CyanogenMod/android_packages_apps_BluetoothExt
Fetching project platform/hardware/qcom/msm8x27
Fetching project platform/external/littlemock
Fetching project platform/prebuilts/tools
Fetching projects:  89% (462/519)  Fetching project CyanogenMod/android_packages_apps_Dialer
Fetching project platform/external/eigen
Fetching project platform/external/libdrm
Fetching project platform/external/apache-harmony
Fetching project CyanogenMod/android_external_zip
Fetching project platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1
Fetching projects:  90% (468/519)  Fetching project CyanogenMod/android
Fetching project platform/external/easymock
Fetching project CyanogenMod/android_external_curl
Fetching project CyanogenMod/android_system_security
Fetching project CyanogenMod/android_external_json-c
Fetching projects:  91% (473/519)  Fetching project platform/external/libvorbis
Fetching project CyanogenMod/android_hardware_ril
Fetching project CyanogenMod/android_external_tcpdump
Fetching project platform/cts
Fetching project platform/external/proguard
Fetching projects:  92% (478/519)  Fetching project CyanogenMod/android_packages_apps_InCallUI
Fetching project platform/external/libpcap
Fetching project CyanogenMod/android_external_speex
Fetching project platform/external/hyphenation-patterns
Fetching project CyanogenMod/android_external_icu
Fetching projects:  93% (483/519)  Fetching project platform/external/vboot_reference
Fetching project platform/external/iputils
Fetching project platform/external/clang
Fetching project CyanogenMod/android_external_libxslt
Fetching project platform/external/webp
Fetching projects:  94% (488/519)  Fetching project platform/external/mtpd
Fetching project CyanogenMod/android_external_exfat
Fetching project platform/external/libnl
Fetching project CyanogenMod/android_external_libpng
Fetching projects:  97% (504/519)  Fetching project CyanogenMod/android_hardware_ril
Fetching projects: 100% (519/519), done.  
Checking out files: 100% (1396/1396), done.ut files:   0% (8/1396)   
Checking out files:  59% (5779/9711)   
Checking out files: 100% (9711/9711), done.
Checking out files: 100% (5699/5699), done.
Checking out files: 100% (4313/4313), done.
Checking out files:  44% (5164/11736)   ng out files:   4% (548/11736)   
Checking out files: 100% (11736/11736), done.
Checking out files: 100% (2438/2438), done.out files:  46% (1144/2438)   

Syncing work tree:   9% (47/519)  
Checking out files: 100% (2101/2101), done.out files:  27% (574/2101)   
Checking out files: 100% (10613/10613), done.
Checking out files: 100% (2067/2067), done.out files:   1% (29/2067)   
Checking out files: 100% (5640/5640), done.out files:  36% (2072/5640)   
Checking out files: 100% (2328/2328), done.out files:  19% (460/2328)   
Checking out files: 100% (7397/7397), done. out files:  31% (2351/7397)   
Checking out files: 100% (17133/17133), done.ut files:   9% (1635/17133)   
Checking out files: 100% (179/179), done.ng out files:  12% (23/179)   
Checking out files: 100% (383/383), done.ng out files:  38% (148/383)   
Checking out files: 100% (1195/1195), done.
Checking out files: 100% (766/766), done.ng out files:  30% (231/766)   
Checking out files: 100% (723/723), done.ng out files:   3% (27/723)   
Checking out files: 100% (3505/3505), done. out files:  31% (1118/3505)   
Checking out files: 100% (4367/4367), done. out files:  13% (610/4367)   
Checking out files: 100% (1054/1054), done.
Checking out files: 100% (28042/28042), done.ut files:   2% (588/28042)   
Checking out files: 100% (1066/1066), done. out files:  34% (368/1066)   
Checking out files: 100% (8945/8945), done. out files:   5% (529/8945)   
Checking out files: 100% (173/173), done.ng out files:  32% (56/173)   
Checking out files: 100% (2186/2186), done.
Checking out files: 100% (2658/2658), done. out files:   6% (160/2658)   
Checking out files: 100% (1451/1451), done.
Checking out files: 100% (3416/3416), done. out files:   0% (22/3416)   
Checking out files: 100% (64/64), done.king out files:  10% (7/64)   
Checking out files: 100% (68/68), done.king out files:   2% (2/68)   
Checking out files: 100% (96/96), done.
Checking out files: 100% (742/742), done.
Checking out files: 100% (127/127), done.ng out files:  34% (44/127)   
Checking out files: 100% (205/205), done.
Checking out files: 100% (269/269), done.
Checking out files: 100% (128/128), done.ng out files:  23% (30/128)   
Checking out files: 100% (209/209), done.
Checking out files: 100% (3202/3202), done.
Checking out files: 100% (3539/3539), done.
Checking out files: 100% (4198/4198), done. out files:   6% (268/4198)   
Checking out files: 100% (270/270), done.
Checking out files: 100% (10253/10253), done.
Checking out files: 100% (2050/2050), done.
Checking out files: 100% (956/956), done.
Checking out files: 100% (72214/72214), done.ut files:   6% (4606/72214)   
Checking out files: 100% (4865/4865), done.
Checking out files: 100% (3552/3552), done.
Checking out files: 100% (52/52), done.
Checking out files: 100% (1180/1180), done.
Checking out files: 100% (3826/3826), done. out files:   2% (95/3826)   
Checking out files: 100% (850/850), done.
Checking out files: 100% (221/221), done.ng out files:  42% (93/221)   
Syncing work tree: 100% (519/519), done.  




作者 : 韩曙亮

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





6. 获取预置的应用 (编译 CM11 及 11 以下的版本时执行 本次编译的是 CM13 不用执行该步骤)



(1) 获取预置应用


获取预置应用 : 

-- 进入指定目录 : 执行 cd ~/android/system/vendor/cm 命令, 进入 ~/android/system/vendor/cm 目录;

-- 在该目录获取相关应用 : 执行 ./get-prebuilts  命令即可, 注意 是在 ~/android/system/vendor/cm 目录中执行该命令 ;


(2) 获取预置应用产生的结果



执行结果 : 

-- 命令行回应 : 执行 get-prebuilts 命令不会得到任何确认, 只是有另外一个提示;

-- 下载安装预置应用 : 执行该命令会下载一些预置应用, 并将它们安装到源代码中;

-- 只执行一次 : 该命令只需要执行一次, 执行完后, 以后编译就不用下载这些应用了;






7. 下载 小米4 手机设备相关 源码



(1) 设置环境变量



设置环境变量

-- 进入源码根目录 : 进入 ~/android/system 目录, 使用 cd ~/android/system 命令, 进入 CyanogenMod 源码根目录;

-- 环境变量命令 : 执行 source build/envsetup.sh 命令, 设置环境变量; 

-- 设置过程 (终端输出内容)

octopus@octopus:~/android/system$ source build/envsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
including vendor/cm/bash_completion/git.bash
including vendor/cm/bash_completion/repo.bash




(2) 下载设备相关源码



下载设备相关源码

-- 步骤作用 : 该步骤下载 小米4 手机的 设备的特定配置 和 内核源码;

-- 创建 LocalManifest 文件 : 使用一个可选择的 命令 breakfast 去创建你的 LocalManifest 配置文件;

-- 源码定位 : 为了执行该操作, 你需要在 CyanogenMod 的 GitHub 地址 (https://github.com/CyanogenMod) 中找到你的设备源码位置, 并且在你本地的 LocalManifest 中列举出所有的 定义在 cm.dependencies 中的 代码仓库;

-- 了解更多命令细节 : 如果你想要知道更多关于 source build/envsetup.sh 命令的细节, 或者简单的了解下 breakfast, brunch, launch 命令, 你可以到 Evsetup Help (https://wiki.cyanogenmod.org/w/Envsetup_help) 页面;

-- 便捷命令 croot : 每次进入源代码的根目录, 都要执行 cd ~/android/system 命令, 比较麻烦; 可以使用 croot 命令替代, 执行 croot 命令相当于先执行 source build/envsetup.sh 命令, 再执行 ~/android/system 命令;

-- 终端输出过程

octopus@octopus:~/android/system$ breakfast cancro
including vendor/cm/vendorsetup.sh
build/core/envsetup.mk:90: *** Unable to determine HOST_ARCH from uname -sm: Linux i686!。 停止。
Device cancro not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_xiaomi_cancro
Default revision: cm-13.0
Checking branch info
Checking if device/xiaomi/cancro is fetched from android_device_xiaomi_cancro
Adding dependency: CyanogenMod/android_device_xiaomi_cancro -> device/xiaomi/cancro
Using default branch for android_device_xiaomi_cancro
Syncing repository to retrieve project.

... A new repo command ( 1.22) is available.
... You should upgrade soon:

    cp /home/octopus/android/system/.repo/repo/repo /usr/bin/repo

Fetching project repo
Fetching project CyanogenMod/android_device_xiaomi_cancro
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found
Server does not provide clone.bundle; ignoring.
Fetching projects:  50% (1/2)  remote: Counting objects: 1387, done.
remote: Compressing objects: 100% (52/52), done.
remote: Total 1387 (delta 12), reused 0 (delta 0), pack-reused 1332
接收对象中: 100% (1387/1387), 5.76 MiB | 94.00 KiB/s, done.
处理 delta 中: 100% (573/573), done.
来自 https://github.com/CyanogenMod/android_device_xiaomi_cancro
 * [新分支]          cm-13.0    -> github/cm-13.0
Fetching projects: 100% (2/2), done.  

Repository synced!
Looking for dependencies
Adding dependencies to manifest
Checking if device/qcom/common is fetched from android_device_qcom_common
Adding dependency: CyanogenMod/android_device_qcom_common -> device/qcom/common
Using default branch for android_device_qcom_common
Checking if kernel/xiaomi/cancro is fetched from android_kernel_xiaomi_cancro
Adding dependency: CyanogenMod/android_kernel_xiaomi_cancro -> kernel/xiaomi/cancro
Using default branch for android_kernel_xiaomi_cancro
Syncing dependencies

... A new repo command ( 1.22) is available.
... You should upgrade soon:

    cp /home/octopus/android/system/.repo/repo/repo /usr/bin/repo

Fetching project CyanogenMod/android_device_qcom_common
Fetching project CyanogenMod/android_kernel_xiaomi_cancro
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found
Server does not provide clone.bundle; ignoring.
  0     0    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found
Server does not provide clone.bundle; ignoring.
remote: Counting objects: 661, done.
remote: Total 661 (delta 0), reused 0 (delta 0), pack-reused 661
接收对象中: 100% (661/661), 197.33 KiB | 79.00 KiB/s, done.
处理 delta 中: 100% (440/440), done.
来自 https://github.com/CyanogenMod/android_device_qcom_common
 * [新分支]          cm-13.0    -> github/cm-13.0
 * [新tag]           cm-11.0-XNPH05Q-bacon-5229c4ef56 -> cm-11.0-XNPH05Q-bacon-5229c4ef56
 * [新tag]           cm-11.0-XNPH05Q-tomato-9828f8e9cc -> cm-11.0-XNPH05Q-tomato-9828f8e9cc
 * [新tag]           cm-11.0-XNPH22R-bacon-03d77315ea -> cm-11.0-XNPH22R-bacon-03d77315ea
 * [新tag]           cm-11.0-XNPH25R-bacon-d22b777afa -> cm-11.0-XNPH25R-bacon-d22b777afa
 * [新tag]           cm-11.0-XNPH30O-bacon-4f280f505a -> cm-11.0-XNPH30O-bacon-4f280f505a
 * [新tag]           cm-11.0-XNPH33R-bacon-3628510d76 -> cm-11.0-XNPH33R-bacon-3628510d76
 * [新tag]           cm-11.0-XNPH44S-bacon-5fa8c79c0b -> cm-11.0-XNPH44S-bacon-5fa8c79c0b
Fetching projects:  50% (1/2)  remote: Counting objects: 2740102, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 2740102 (delta 22), reused 18 (delta 18), pack-reused 2740074
接收对象中: 100% (2740102/2740102), 593.12 MiB | 585.00 KiB/s, done.
处理 delta 中: 100% (2292044/2292044), done.
来自 https://github.com/CyanogenMod/android_kernel_xiaomi_cancro
 * [新分支]          cm-13.0    -> github/cm-13.0
Fetching projects: 100% (2/2), done.  
Checking out files: 100% (42522/42522), done.

Looking for dependencies
Dependencies file not found, bailing out.
Looking for dependencies
Dependencies file not found, bailing out.
Done
build/core/envsetup.mk:90: *** Unable to determine HOST_ARCH from uname -sm: Linux i686!。 停止。

** Don't have a product spec for: 'cm_cancro'
** Do you have the right repo manifest?




(3) 出错处理



出现了 Makefile 或者其它相关错误

-- 人员复杂原因 : 不同的维护人员设置它们设备的继承规则不同; 

-- 供应商名称目录 : 一些需要一个以 手机供应商名称 当做目录, 并在 breakfast 命令快执行成功时, 将源码下载到该目录中; 

-- 相关错误解决方案 : 如果你收到一些错误, 关于 供应商目录中的 Makefile 文件错误, 那么跳过执行下一个步骤 Extract proprietary blobs (提取专有文件), 错误提示如下 : 

build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/xiaomi/cancro/cm.mk]]: "vendor/xiaomi/cancro/cancro-vendor.mk" does not exist.  Stop.

** Don't have a product spec for: 'cm_cancro'
** Do you have the right repo manifest?


-- 成功部分预测 : breakfast 开始的部, 获取源码树过程部分应该执行成功, 并且提取设备专有文件的脚本应该可用; 

-- 先提取设备文件 : 完成提取 设备专有文件 步骤之后, 再执行 breakfast cancro 命令, 就能执行成功; 





五. 提取 Mi 4 设备专有文件 (Extract Propertietary Blobs)



设备专有文件简介

-- 文件列表 : 在 ~/android/system/device/xiaomi/cancro/device-proprietary-files.txt 文件列表中列出了 505 个文件及其路径;

-- 文件不全 : 找不全所有的 505 个文件;

-- CyanogenMod 13.0 系统中的文件 : CM 13 系统中有 496 个文件能找到;

-- MIUI 7 系统中的文件 : MIUI 7 中能找到 4 个与上面不同的文件;

-- 找不到的文件 : 有 5 个文件找不到, 没有这 5 个文件编译也能通过;

-- 路径问题 : 不是所有的路径都是正确的, 有 17 个文件 (CM 中有 13 个, MIUI 中有 4 个) 的路径写错了, 需要手动更正过来;



1. 提取专有文件 (Extract Propertietary Blobs) 标准操作 (100%出错)



(1) 标准流程



提取属性文件过程 : 这个过程要是能完整的执行下来, 没有任何错误, 那就出了老鬼了, 肯定会出错;

-- 手机 USB 连接电脑 :首先确保你的 小米 4 手机通过 USB 接口 连接上了电脑; 

-- 进入指定目录 : 进入 ~/android/system/device/xiaomi/cancro 目录, 使用 cd ~/android/system/device/xiaomi/cancro 命令

-- 提取专有文件 : 运行 ./extract-files.sh 命令;

-- 提取过程操作 : 专有文件从 小米 4 设备中复制出来, 然后被移动到了 ~/android/system/vendor/xiaomi 目录; 

root@ubuntu:~/android/system/device/xiaomi/cancro# ./extract-files.sh
161 KB/s (26297 bytes in 0.158s)
3721 KB/s (1462439 bytes in 0.383s)
20 KB/s (899 bytes in 0.043s)
3 KB/s (159 bytes in 0.042s)
3 KB/s (159 bytes in 0.043s)
2382 KB/s (270358 bytes in 0.110s)
3772 KB/s (786432 bytes in 0.203s)
4153 KB/s (3125684 bytes in 0.734s)
16 KB/s (732 bytes in 0.044s)
800 KB/s (41508 bytes in 0.050s)
185 KB/s (9220 bytes in 0.048s)
1 KB/s (56 bytes in 0.047s)
7 KB/s (372 bytes in 0.051s)
0 KB/s (32 bytes in 0.044s)
48 KB/s (2212 bytes in 0.044s)
3762 KB/s (957200 bytes in 0.248s)
261 KB/s (12760 bytes in 0.047s)
8 KB/s (412 bytes in 0.048s)
1092 KB/s (61440 bytes in 0.054s)
348 KB/s (16384 bytes in 0.045s)
316 KB/s (16384 bytes in 0.050s)
332 KB/s (16128 bytes in 0.047s)
4 KB/s (212 bytes in 0.046s)
4 KB/s (200 bytes in 0.047s)
2631 KB/s (970896 bytes in 0.360s)
4 KB/s (360 bytes in 0.070s)
106 KB/s (5472 bytes in 0.050s)
362 KB/s (17830 bytes in 0.048s)
remote object '/system/etc/lut.dat' does not exist
root@ubuntu:~/android/system/device/xiaomi/cancro# 




(2) adb 错误出错处理



如果出现了 以下错误

-- 1. 无法获取文件 : adb being unable to pull the files; 

-- 2. 没有配置环境变量 :  adb may not be in the path of execution;

-- 解决方案 : 出现了上述问题, 到 adb 页面 (https://wiki.cyanogenmod.org/w/Doc:_adb_intro), 寻找相关问题答案;



(3) remote object '' does not exist 错误出错处理



提取文件时没有对应文件错误

-- 小米 4 的 6.0 版本操作系统 (MIUI) 没有 相应文件, 出现以下错误

root@ubuntu:~/android/system/device/xiaomi/cancro# ./extract-files.sh 
remote object '/system/etc/sdm_200_HOG3x3_Grid3x3_bin5_noproj_zero_reduced.bin.pca' does not exist

-- CM 13.0 版本操作系统出现以下错误

root@ubuntu:~/android/system/device/xiaomi/cancro# ./extract-files.sh
remote object '/system/etc/lut.dat' does not exist
root@ubuntu:~/android/system/device/xiaomi/cancro# 

-- 错误原因 : 不管是 MIUI7 还是 CyanogenMod 13.0 都不包含所有的文件, 这里需要分别从不同的系统中提取文件;

-- 错误处理方法 : MIUI 中没有上述文件, 因此需要先把 CyanogenMod 系统刷到小米4上, 再进行文件提取;



(4) 相关注意事项


相关注意事项

-- 设备准备 : 设备已经准备好运行一个 Android 编译版本, 该版本时 CyanogenMod 源码的一个分支, 并且该 编译时针对 extract-files.sh 脚本提取出的文件.

-- 重要性 : 使用 extract-files.sh 脚本从设备中提取到 ~/android/system/vendor/xiaomi 中的专有文件很重要;

-- 生成 Makefile 作用 : 在提取 专有文件 的同时, 会生成 Makefile 文件, 确保文件最终都拷贝到了设备中;

-- 缺少专有文件的后果 : 如果没有这些文件, CyanogenMod 源码可能会编译通过, 但是你可能会丢失一些重要的功能, 如 图形库 等;





2. 文件需求详细说明


(1) 需要提取的文件清单 (只是清单 不能使用该清单直接提取)


文件清单 : 提取的文件清单在  ~/android/system/device/xiaomi/cancro 目录中的 device-proprietary-files.txt 文件中列出;

-- 文件路径说明 : 这里的 etc/sdm_200_HOG3x3_Grid3x3_bin5_noproj_zero_reduced.bin.pca 文件指的是 手机系统里面的 /system/etc/sdm_200_HOG3x3_Grid3x3_bin5_noproj_zero_reduced.bin.pca 文件, 要在所有的前面加上一个 /system/, 找文件的时候也是去 /system/ 中去找;

-- 总共需要 505 个文件, 清单如下

etc/sdm_200_HOG3x3_Grid3x3_bin5_noproj_zero_reduced.bin.pca
etc/android_model_faceg.dat
etc/permissions/android.hardware.consumerir.xml
etc/permissions/qcrilhook.xml
etc/permissions/qcnvitems.xml
etc/android_model_facea.dat
etc/firmware/wcnss.b08
etc/firmware/wcnss.b06
etc/firmware/wcnss.mdt
etc/firmware/wcnss.b09
etc/firmware/a330_pm4.fw
etc/firmware/wcnss.b07
etc/firmware/wcnss.b00
etc/firmware/venus.b04
etc/firmware/a330_pfp.fw
etc/firmware/venus.b02
etc/firmware/wcnss.b02
etc/firmware/venus.mdt
etc/firmware/wcnss.b04
etc/firmware/cpp_firmware_v1_2_0.fw
etc/firmware/cpp_firmware_v1_1_6.fw
etc/firmware/cpp_firmware_v1_1_1.fw
etc/firmware/venus.b00
etc/firmware/venus.b01
etc/firmware/venus.mbn
etc/firmware/wcnss.b01
etc/firmware/venus.b03
etc/sensor_def_qcomdev.conf
etc/lut.dat
etc/data/dsi_config.xml
etc/data/netmgr_config.xml
etc/data/qmi_config.xml
etc/sdm_200_HOG3x3_Grid3x3_bin5_noproj_zero_reduced.bin
priv-app/qcrilmsgtunnel.apk
lib/libdrmfs.so
lib/libdrmdiag.so
lib/libqomx_core.so
lib/libchromatix_imx226_liveshot.so
lib/hw/activity_recognition.msm8974.so
lib/hw/gps.msm8974.so
lib/hw/camera.msm8974.so
lib/hw/consumerir.msm8974.so
lib/libchromatix_imx214_liveshot.so
lib/libqminvapi.so
lib/libchromatix_imx219_liveshot.so
lib/libchromatix_imx224_liveshot.so
lib/libc2dcolorconvert.so
lib/libchromatix_imx135_liveshot.so
lib/libdrmdecrypt.so
lib/libmmjpeg_interface.so
lib/libloc_core.so
lib/libloc_eng.so
lib/libloc_ds_api.so
lib/libchromatix_s5k3m2_liveshot.so
lib/libgps.utils.so
lib/libdrmtime.so
lib/libmmcamera_interface.so
lib/libDiracAPI_SHARED.so
lib/libstm-log.so
lib/libloc_api_v02.so
lib/soundfx/libdirac.so
lib/libchromatix_imx225_liveshot.so
lib/librpmb.so
lib/libmdmdetect.so
lib/drm/libdrmwvmplugin.so
lib/libQSEEComAPI.so
lib/libOmxVdecHevc.so
lib/libmm-omxcore.so
lib/libchromatix_imx215_liveshot.so
lib/libOmxVenc.so
lib/libRecoFace.so
lib/libssd.so
framework/qti-telephony-common.jar
framework/qcnvitems.jar
framework/qcrilhook.jar
bin/rmt_storage
bin/time_daemon
bin/irsc_util
bin/qmuxd
bin/sensors.qcom
bin/hvdcp
bin/radish
bin/mm-qcamera-daemon
bin/lowi-server
bin/qseecomd
bin/xtwifi-client
bin/charger_monitor
bin/xtwifi-inet-agent
bin/btnvtool
bin/wcnss_filter
bin/quipc_main
bin/quipc_igsn
bin/mpdecision
bin/fm_qsoc_patches
bin/netmgrd
bin/rfs_access
bin/wcnss_service
bin/qosmgr
bin/adsprpcd
vendor/lib/libadreno_utils.so
vendor/lib/libmmcamera2_vpe_module.so
vendor/lib/libTimeService.so
vendor/lib/libchromatix_imx132_default_video.so
vendor/lib/libchromatix_imx215_preview.so
vendor/lib/libchromatix_s5k3l1yx_hfr_120fps.so
vendor/lib/libchromatix_imx226_common.so
vendor/lib/libmmcamera2_cpp_module.so
vendor/lib/libchromatix_s5k3m2_video_uhd.so
vendor/lib/libmmcamera_hi256.so
vendor/lib/libchromatix_s5k3m2_snapshot_hdr.so
vendor/lib/libmm-hdcpmgr.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_zsl.so
vendor/lib/libchromatix_imx225_snapshot.so
vendor/lib/libfastcvopt.so
vendor/lib/libmmcamera_SKUAA_ST_gc0339.so
vendor/lib/libchromatix_ov5648_oty5f03_common.so
vendor/lib/libmmcamera2_frame_algorithm.so
vendor/lib/libquipc_os_api.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_default_video.so
vendor/lib/libchromatix_ov8825_liveshot_hd.so
vendor/lib/libcneapiclient.so
vendor/lib/libchromatix_s5k3l1yx_hfr_90fps.so
vendor/lib/libchromatix_ov5648_oty5f03_snapshot.so
vendor/lib/libchromatix_imx224_snapshot_w.so
vendor/lib/libjpegdhw.so
vendor/lib/libacdbloader.so
vendor/lib/libchromatix_ov9724_preview.so
vendor/lib/libFaceProc.so
vendor/lib/libchromatix_imx224_hfr_120.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_video_hd.so
vendor/lib/libmm-abl.so
vendor/lib/libchromatix_imx214_snapshot_w.so
vendor/lib/libactuator_rohm_bu64243gwz_camcorder.so
vendor/lib/libmmcamera_sunny_p12v01m_eeprom.so
vendor/lib/libchromatix_s5k3l1yx_liveshot.so
vendor/lib/libc2d30-a4xx.so
vendor/lib/libsrsprocessing.so
vendor/lib/libqct_resampler.so
vendor/lib/libactuator_ov8825_camcorder.so
vendor/lib/libchromatix_ov8825_preview.so
vendor/lib/liboptizoom.so
vendor/lib/libchromatix_ov2720_default_video.so
vendor/lib/libchromatix_imx215_video_hdr_uhd.so
vendor/lib/libactuator_bu6313_camcorder.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_video_hd.so
vendor/lib/libactuator_dw9716_camera.so
vendor/lib/libchromatix_ov8825_snapshot_hd.so
vendor/lib/hw/sensors.msm8974.so
vendor/lib/hw/flp.default.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_hfr_60fps.so
vendor/lib/libmmcamera_imx135.so
vendor/lib/libchromatix_imx226_snapshot_hdr.so
vendor/lib/libchromatix_imx215_snapshot_w.so
vendor/lib/libWVStreamControlAPI_L1.so
vendor/lib/libacdbrtac.so
vendor/lib/mediadrm/libdrmclearkeyplugin.so
vendor/lib/mediadrm/libwvdrmengine.so
vendor/lib/libmmcamera_imx219.so
vendor/lib/libRSDriver_adreno.so
vendor/lib/libactuator_ad5823_camera.so
vendor/lib/libchromatix_ov8825_snapshot.so
vendor/lib/libdiag.so
vendor/lib/libactuator_iu074_camera.so
vendor/lib/libchromatix_ov4688_preview.so
vendor/lib/libC2D2.so
vendor/lib/libchromatix_imx215_snapshot_hdr.so
vendor/lib/libchromatix_ov8865_q8v18a_zsl.so
vendor/lib/libchromatix_imx214_snapshot.so
vendor/lib/libacdbmapper.so
vendor/lib/libchromatix_ov8865_q8v18a_video_hd.so
vendor/lib/libchromatix_imx134_preview.so
vendor/lib/libchromatix_ov5648_oty5f03_default_video.so
vendor/lib/libsmemlog.so
vendor/lib/liboemcamera.so
vendor/lib/libchromatix_imx134_snapshot.so
vendor/lib/libchromatix_imx224_video_uhd.so
vendor/lib/libchromatix_skuf_ov5648_p5v23c_common.so
vendor/lib/libchromatix_imx215_video_hdr.so
vendor/lib/libchromatix_imx132_preview.so
vendor/lib/libqcci_legacy.so
vendor/lib/libactuator_dw9716.so
vendor/lib/libchromatix_imx225_common.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_hfr_90fps.so
vendor/lib/libchromatix_imx214_snapshot_hdr.so
vendor/lib/libchromatix_imx135_hfr_60.so
vendor/lib/libxtwifi_ulp_adaptor.so
vendor/lib/libchromatix_ov5648_oty5f03_zsl.so
vendor/lib/libchromatix_SKUAA_ST_gc0339_default_video.so
vendor/lib/libchromatix_ov8865_q8v18a_liveshot.so
vendor/lib/lib-dplmedia.so
vendor/lib/libchromatix_ov5648_oty5f03_preview.so
vendor/lib/libtime_genoff.so
vendor/lib/libmmcamera_imx226.so
vendor/lib/liblocationservice.so
vendor/lib/libactuator_ov12830_camera.so
vendor/lib/libchromatix_ov8825_hfr_60fps.so
vendor/lib/libchromatix_imx224_snapshot_hdr.so
vendor/lib/libmmcamera_skuf_ov12830_p12v01c.so
vendor/lib/libgeofence.so
vendor/lib/libasn1crtx.so
vendor/lib/librs_adreno_sha1.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_common.so
vendor/lib/libmmcamera_ubifocus_lib.so
vendor/lib/libdrmdecrypt.so
vendor/lib/libchromatix_ov8865_q8v18a_default_video.so
vendor/lib/libmmcamera2_iface_modules.so
vendor/lib/libmmcamera_ov9724.so
vendor/lib/libchromatix_imx214_video_hdr.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_snapshot.so
vendor/lib/libchromatix_imx215_default_video.so
vendor/lib/libactuator_ak7345.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_snapshot.so
vendor/lib/libchromatix_ov8825_preview_hd.so
vendor/lib/libchromatix_imx224_snapshot.so
vendor/lib/libubifocus.so
vendor/lib/libmmcamera_x5_imx214_eeprom.so
vendor/lib/libmmcamera_chromaflash_lib.so
vendor/lib/libchromatix_imx224_common.so
vendor/lib/libchromatix_skuf_ov5648_p5v23c_default_video.so
vendor/lib/liblbs_core.so
vendor/lib/libchromatix_s5k3m2_video_hdr.so
vendor/lib/libchromatix_imx219_common.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_snapshot.so
vendor/lib/libchromatix_imx226_video_hdr.so
vendor/lib/libmmcamera_ov2720.so
vendor/lib/libchromatix_imx226_snapshot_w.so
vendor/lib/libqmi.so
vendor/lib/libchromatix_imx214_video_uhd.so
vendor/lib/libqmi_csvt_srvc.so
vendor/lib/libchromatix_imx225_video_uhd.so
vendor/lib/libchromatix_s5k3l1yx_default_video.so
vendor/lib/libchromatix_ov8865_q8v18a_hfr_120fps.so
vendor/lib/libCB.so
vendor/lib/libchromatix_imx214_preview.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_default_video.so
vendor/lib/libSHIMDivxDrm.so
vendor/lib/libactuator_ov8825_camera.so
vendor/lib/libchromatix_ov4688_zsl.so
vendor/lib/libchromatix_SKUAA_ST_gc0339_common.so
vendor/lib/libmmcamera2_sensor_modules.so
vendor/lib/libaudioalsa.so
vendor/lib/libchromatix_imx214_video_hdr_uhd.so
vendor/lib/libchromatix_imx214_common.so
vendor/lib/librs_adreno.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_default_video.so
vendor/lib/libchromatix_imx134_hfr_60.so
vendor/lib/libulp2.so
vendor/lib/libchromatix_imx224_video_hdr.so
vendor/lib/libril-qc-qmi-1.so
vendor/lib/libmmcamera_truly_cm7700_eeprom.so
vendor/lib/libchromatix_s5k3m2_hfr_120fps.so
vendor/lib/libNimsWrap.so
vendor/lib/libchromatix_ov4689_preview.so
vendor/lib/libbccQTI.so
vendor/lib/libmmcamera_tintless_bg_pca_algo.so
vendor/lib/libqomx_jpegenc.so
vendor/lib/libbtnv.so
vendor/lib/libchromatix_imx219_default_video.so
vendor/lib/libmmcamera2_is.so
vendor/lib/libFaceDeform.so
vendor/lib/libactuator_ad5823.so
vendor/lib/libgsl.so
vendor/lib/libchromatix_skuf_ov5648_p5v23c_snapshot.so
vendor/lib/libmmcamera_SKUAB_ST_s5k4e1.so
vendor/lib/libdrmdecrypt.2.so
vendor/lib/libmmqjpeg_codec.so
vendor/lib/libchromatix_s5k3l1yx_video_hd.so
vendor/lib/libactuator_rohm_bu64243gwz_camera.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_hfr_120fps.so
vendor/lib/libchromatix_s5k3m2_snapshot_w.so
vendor/lib/libchromatix_ov8825_video_hd.so
vendor/lib/libchromatix_imx135_preview.so
vendor/lib/libarcsoft_beauty_shot.so
vendor/lib/libmmcamera_ov4688.so
vendor/lib/libactuator_bu6313_camera.so
vendor/lib/libchromatix_s5k3l1yx_zsl.so
vendor/lib/libsensor_test.so
vendor/lib/libmmcamera2_q3a_special.so
vendor/lib/libmmcamera_ov4689.so
vendor/lib/libchromatix_ov4689_common.so
vendor/lib/libqti-perfd-client.so
vendor/lib/lib-rtpsl.so
vendor/lib/libmmcamera_imx225.so
vendor/lib/libchromatix_ov8825_common.so
vendor/lib/libmmcamera2_stats_algorithm.so
vendor/lib/libchromatix_imx134_hfr_120.so
vendor/lib/lib-rtpdaemoninterface.so
vendor/lib/libactuator_bu6313.so
vendor/lib/libchromatix_ov4689_zsl.so
vendor/lib/libOpenCL.so
vendor/lib/libmmcamera_imx224.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_common.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_liveshot.so
vendor/lib/libsensor_reg.so
vendor/lib/libasn1crt.so
vendor/lib/libmmcamera2_pproc_modules.so
vendor/lib/libt2tmanager.so
vendor/lib/libchromatix_imx225_preview.so
vendor/lib/libchromatix_s5k3m2_preview.so
vendor/lib/libactuator_iu074.so
vendor/lib/libchromatix_SKUAA_ST_gc0339_preview.so
vendor/lib/libchromatix_imx132_snapshot.so
vendor/lib/libchromatix_ov8865_q8v18a_preview.so
vendor/lib/libchromaflash.so
vendor/lib/libjpegehw.so
vendor/lib/libqmi_client_qmux.so
vendor/lib/libfastcvadsp_stub.so
vendor/lib/libc2d30-a3xx.so
vendor/lib/soundfx/libqcbassboost.so
vendor/lib/soundfx/libqcreverb.so
vendor/lib/soundfx/libqcvirt.so
vendor/lib/libchromatix_imx224_video_hdr_uhd.so
vendor/lib/libmmipl.so
vendor/lib/libqmi_common_so.so
vendor/lib/libmm-abl-oem.so
vendor/lib/libchromatix_s5k3m2_default_video.so
vendor/lib/libchromatix_ov9724_default_video.so
vendor/lib/libmmQSM.so
vendor/lib/libchromatix_imx225_video_hdr_uhd.so
vendor/lib/libactuator_ad5823_camcorder.so
vendor/lib/libWVphoneAPI.so
vendor/lib/libaudcal.so
vendor/lib/libchromatix_imx219_snapshot.so
vendor/lib/libmmcamera_skuab_shinetech_gc0339.so
vendor/lib/libizat_core.so
vendor/lib/libactuator_rohm_bu64243gwz.so
vendor/lib/libdsutils.so
vendor/lib/libchromatix_imx215_hfr_120.so
vendor/lib/rfsa/adsp/libdspCV_skel.so
vendor/lib/rfsa/adsp/libapps_mem_heap.so
vendor/lib/rfsa/adsp/libfastcvadsp.so
vendor/lib/rfsa/adsp/libfastcvadsp_skel.so
vendor/lib/rfsa/adsp/libscveT2T_skel.so
vendor/lib/libchromatix_imx226_hfr_120.so
vendor/lib/libactuator_ak7345_camcorder.so
vendor/lib/libchromatix_ov2720_liveshot.so
vendor/lib/libwvdrm_L1.so
vendor/lib/libactuator_lc8214_camera.so
vendor/lib/libmmcamera2_wnr_module.so
vendor/lib/libmmcamera_imglib.so
vendor/lib/libquipc_ulp_adapter.so
vendor/lib/libmmcamera_faceproc.so
vendor/lib/libchromatix_ov4688_hfr.so
vendor/lib/libasn1cper.so
vendor/lib/libchromatix_imx214_hfr_120.so
vendor/lib/libmmcamera_s5k3m2.so
vendor/lib/libchromatix_ov9724_liveshot.so
vendor/lib/libmmjpeg.so
vendor/lib/libchromatix_imx214_default_video.so
vendor/lib/libmmcamera2_stats_modules.so
vendor/lib/libnetmgr.so
vendor/lib/libchromatix_imx219_preview.so
vendor/lib/libmmcamera_sunny_q8v18a_eeprom.so
vendor/lib/libscve.so
vendor/lib/libchromatix_ov8825_default_video.so
vendor/lib/libchromatix_ov2720_hfr.so
vendor/lib/libchromatix_ov4688_liveshot.so
vendor/lib/libmmcamera2_c2d_module.so
vendor/lib/libactuator_lc8214_camcorder.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_liveshot.so
vendor/lib/libchromatix_s5k3l1yx_preview.so
vendor/lib/libmmcamera_sunny_p5v23c_eeprom.so
vendor/lib/libI420colorconvert.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_preview.so
vendor/lib/libsensor_user_cal.so
vendor/lib/libDivxDrm.so
vendor/lib/libchromatix_ov4688_common.so
vendor/lib/libc2d30.so
vendor/lib/libchromatix_imx225_default_video.so
vendor/lib/libqdp.so
vendor/lib/libchromatix_ov8825_hfr_120fps.so
vendor/lib/libchromatix_imx226_video_hdr_uhd.so
vendor/lib/libHevcSwDecoder.so
vendor/lib/libchromatix_ov2720_common.so
vendor/lib/libchromatix_ov4689_hfr.so
vendor/lib/libchromatix_ov9724_common.so
vendor/lib/libmmcamera_wavelet_lib.so
vendor/lib/libchromatix_imx226_default_video.so
vendor/lib/libmmcamera_mt9m114.so
vendor/lib/libchromatix_ov8825_hfr_90fps.so
vendor/lib/libqmi_cci.so
vendor/lib/libQSEEComAPI.so
vendor/lib/libchromatix_imx224_preview.so
vendor/lib/libchromatix_imx225_snapshot_hdr.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_zsl.so
vendor/lib/libscve_stub.so
vendor/lib/libactuator_dw9714_camera.so
vendor/lib/libchromatix_imx215_snapshot.so
vendor/lib/egl/eglsubAndroid.so
vendor/lib/egl/libq3dtools_adreno.so
vendor/lib/egl/libEGL_adreno.so
vendor/lib/egl/libGLESv1_CM_adreno.so
vendor/lib/egl/libGLESv2_adreno.so
vendor/lib/libmmosal.so
vendor/lib/libsc-a2xx.so
vendor/lib/libchromatix_s5k3l1yx_hfr_60fps.so
vendor/lib/libconfigdb.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_zsl.so
vendor/lib/libmmcamera_imx214.so
vendor/lib/libmmcamera2_imglib_modules.so
vendor/lib/libchromatix_ov8825_zsl.so
vendor/lib/libchromatix_imx215_video_uhd.so
vendor/lib/libactuator_ov12830_camcorder.so
vendor/lib/libchromatix_ov4689_default_video.so
vendor/lib/libmmcamera_ov5648_oty5f03.so
vendor/lib/libsystem_health_mon.so
vendor/lib/libqmi_csi.so
vendor/lib/libxtadapter.so
vendor/lib/libchromatix_imx226_snapshot.so
vendor/lib/libmmcamera_imx134.so
vendor/lib/libmmcamera2_isp_modules.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_preview.so
vendor/lib/libmmcamera_tintless_algo.so
vendor/lib/libmmcamera_imx132.so
vendor/lib/libchromatix_skuf_ov5648_p5v23c_preview.so
vendor/lib/libchromatix_s5k3m2_common.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_common.so
vendor/lib/libchromatix_imx135_hfr_90.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_hfr_90fps.so
vendor/lib/libxtwifi_zpp_adaptor.so
vendor/lib/libchromatix_s5k3l1yx_snapshot.so
vendor/lib/libmm-color-convertor.so
vendor/lib/libactuator_lc8214.so
vendor/lib/libmmcamera_hdr_gb_lib.so
vendor/lib/lib-rtpcommon.so
vendor/lib/libchromatix_ov8865_q8v18a_snapshot.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_hfr_60fps.so
vendor/lib/libperipheral_client.so
vendor/lib/libsc-a3xx.so
vendor/lib/libchromatix_ov4688_default_video.so
vendor/lib/libchromatix_imx135_common.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_hfr_120fps.so
vendor/lib/libchromatix_ov8825_liveshot.so
vendor/lib/libmmcamera_skuf_ov5648_p5v23c.so
vendor/lib/libactuator_dw9716_camcorder.so
vendor/lib/libmmcamera_ov8865_q8v18a.so
vendor/lib/libchromatix_s5k3m2_snapshot.so
vendor/lib/libmmcamera_s5k3l1yx.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_preview.so
vendor/lib/libmmcamera_hdr_lib.so
vendor/lib/libqomx_jpegdec.so
vendor/lib/libchromatix_imx134_common.so
vendor/lib/libchromatix_imx215_common.so
vendor/lib/liboemcrypto.so
vendor/lib/libmmcamera_imx215.so
vendor/lib/libsensor1.so
vendor/lib/libllvm-qcom.so
vendor/lib/libactuator_iu074_camcorder.so
vendor/lib/libchromatix_ov4689_liveshot.so
vendor/lib/libchromatix_imx134_default_video.so
vendor/lib/libadsprpc.so
vendor/lib/libchromatix_imx225_snapshot_w.so
vendor/lib/libril-qcril-hook-oem.so
vendor/lib/libdsi_netctrl.so
vendor/lib/libscale.so
vendor/lib/libchromatix_s5k3m2_video_hdr_uhd.so
vendor/lib/libchromatix_imx135_hfr_120.so
vendor/lib/libadiertac.so
vendor/lib/libactuator_ov8825.so
vendor/lib/libchromatix_imx226_video_uhd.so
vendor/lib/libactuator_dw9714.so
vendor/lib/libdisp-aba.so
vendor/lib/libAKM8963.so
vendor/lib/libchromatix_ov8865_q8v18a_hfr_90fps.so
vendor/lib/libwifiscanner.so
vendor/lib/libactuator_ov12830.so
vendor/lib/libchromatix_imx132_common.so
vendor/lib/libwvm.so
vendor/lib/libchromatix_imx226_preview.so
vendor/lib/libchromatix_ov2720_preview.so
vendor/lib/libchromatix_imx225_video_hdr.so
vendor/lib/libqmiservices.so
vendor/lib/libmmcamera_ofilm_oty5f03_eeprom.so
vendor/lib/libqmi_encdec.so
vendor/lib/libchromatix_imx225_hfr_120.so
vendor/lib/libmmcamera_x4_s5k3m2_eeprom.so
vendor/lib/libchromatix_ov8865_q8v18a_common.so
vendor/lib/libxml.so
vendor/lib/libchromatix_ov2720_zsl.so
vendor/lib/libmmcamera_ov8825.so
vendor/lib/libchromatix_imx135_default_video.so
vendor/lib/libactuator_ak7345_camera.so
vendor/lib/libchromatix_imx132_liveshot.so
vendor/lib/lib-rtpcore.so
vendor/lib/libchromatix_imx135_snapshot.so
vendor/lib/libchromatix_s5k3l1yx_common.so
vendor/lib/libqdi.so
vendor/lib/libidl.so
vendor/lib/libactuator_dw9714_camcorder.so
vendor/lib/libchromatix_imx224_default_video.so
vendor/lib/libmmcamera_sp1628.so
vendor/lib/libchromatix_imx135_video_hd.so
vendor/lib/libchromatix_ov8865_q8v18a_hfr_60fps.so
vendor/firmware/keymaster/keymaster.b01
vendor/firmware/keymaster/keymaster.b02
vendor/firmware/keymaster/keymaster.b00
vendor/firmware/keymaster/keymaster.b03
vendor/firmware/keymaster/keymaster.mdt
vendor/firmware/bcm2079x-b5_pre_firmware.ncd
vendor/firmware/bcm2079x-b5_firmware.ncd
app/shutdownlistener.apk
app/fastdormancy.apk
app/TimeService.apk
../sbin/e2fsck_static
../sbin/chargeonlymode



(2) CyanogenMod 13.0 系统中能找到的文件 (及正确文件位置 该脚本用于 CM 13.0 操作系统直接提取文件)





CyanogenMod 13.0 系统中能找到的文件 : CM 13.0 系统中有 496 个文件, 其中 9 个设备文件找不到, 13 个文件的路径已经修改为正确的路径

-- 开启 root 模式 : 使用 adb root 命令, 获取 adb shell 中的 root 权限, 可以获取到绝大多数文件;

-- 注意路径错误问题 : 脚本中的前 13 个路径不正确, 该脚本下载完之后, 需要手动修改文件的路径;

-- 修改路径原理 (举个栗子) 很重要 : 脚本中原来的路径是 app/shutdownlistener.apk 即指向手机中的 /system/app/shutdownlistener.apk, 使用该路径是 pull 不下来的, 但是手机中实际的该文件的路径是 /system/app/shutdownlistener/shutdownlistener.apk, 使用该实际路径可以 pull 下来, 但是放到了 ~/android/system/vendor/xiaomi/cancro/proprietary/app/shutdownlistener/shutdownlistener.apk 中, 这样编译通不过, 编译脚本会到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中去找 shutdownlistener.apk 文件, 因此我们要将 shutdownlistener.apk 文件拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中;

-- 路径修改记录 : 脚本路径 -> 手机文件所在的真实路径;

CyanogenMod : 
app/shutdownlistener.apk -> app/shutdownlistener/shutdownlistener.apk
app/TimeService.apk -> app/TimeService/TimeService.apk
priv-app/qcrilmsgtunnel.apk -> priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk

lib/hw/camera.msm8974.so -> ./vendor/lib/hw/camera.msm8974.so
lib/libdrmdecrypt.so -> ./vendor/lib/libdrmdecrypt.so
lib/libDiracAPI_SHARED.so -> ./vendor/lib/libDiracAPI_SHARED.so
lib/soundfx/libdirac.so -> ./vendor/lib/soundfx/libdirac.so

vendor/lib/rfsa/adsp/libdspCV_skel.so -> ./lib/rfsa/adsp/libdspCV_skel.so
vendor/lib/rfsa/adsp/libapps_mem_heap.so -> ./lib/rfsa/adsp/libapps_mem_heap.so
vendor/lib/rfsa/adsp/libfastcvadsp.so -> ./lib/rfsa/adsp/libfastcvadsp.so
vendor/lib/rfsa/adsp/libfastcvadsp_skel.so -> ./lib/rfsa/adsp/libfastcvadsp_skel.so
vendor/lib/rfsa/adsp/libscveT2T_skel.so	-> ./lib/rfsa/adsp/libscveT2T_skel.so
vendor/lib/libQSEEComAPI.so -> ./lib/libQSEEComAPI.so


-- 提取文件清单

app/shutdownlistener/shutdownlistener.apk
app/TimeService/TimeService.apk
priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk

vendor/lib/hw/camera.msm8974.so
vendor/lib/libdrmdecrypt.so
vendor/lib/libDiracAPI_SHARED.so
vendor/lib/soundfx/libdirac.so

lib/rfsa/adsp/libdspCV_skel.so
lib/rfsa/adsp/libapps_mem_heap.so
lib/rfsa/adsp/libfastcvadsp.so
lib/rfsa/adsp/libfastcvadsp_skel.so
lib/rfsa/adsp/libscveT2T_skel.so
lib/libQSEEComAPI.so

../sbin/e2fsck_static
../sbin/chargeonlymode
bin/rmt_storage
bin/time_daemon
bin/sensors.qcom
bin/hvdcp
bin/mm-qcamera-daemon
bin/lowi-server
bin/qseecomd
bin/xtwifi-client
bin/charger_monitor
bin/xtwifi-inet-agent
bin/btnvtool
bin/wcnss_filter
bin/quipc_main
bin/quipc_igsn
bin/mpdecision
bin/fm_qsoc_patches
bin/netmgrd
bin/rfs_access
bin/wcnss_service
bin/qosmgr
bin/adsprpcd
etc/sdm_200_HOG3x3_Grid3x3_bin5_noproj_zero_reduced.bin.pca
etc/android_model_faceg.dat
etc/permissions/android.hardware.consumerir.xml
etc/permissions/qcrilhook.xml
etc/permissions/qcnvitems.xml
etc/android_model_facea.dat
etc/firmware/wcnss.b08
etc/firmware/wcnss.b06
etc/firmware/wcnss.mdt
etc/firmware/wcnss.b09
etc/firmware/a330_pm4.fw
etc/firmware/wcnss.b07
etc/firmware/wcnss.b00
etc/firmware/venus.b04
etc/firmware/a330_pfp.fw
etc/firmware/venus.b02
etc/firmware/wcnss.b02
etc/firmware/venus.mdt
etc/firmware/wcnss.b04
etc/firmware/cpp_firmware_v1_2_0.fw
etc/firmware/cpp_firmware_v1_1_6.fw
etc/firmware/cpp_firmware_v1_1_1.fw
etc/firmware/venus.b00
etc/firmware/venus.b01
etc/firmware/venus.mbn
etc/firmware/wcnss.b01
etc/firmware/venus.b03
etc/sensor_def_qcomdev.conf
etc/data/dsi_config.xml
etc/data/netmgr_config.xml
etc/data/qmi_config.xml
etc/sdm_200_HOG3x3_Grid3x3_bin5_noproj_zero_reduced.bin
lib/libdrmfs.so
lib/libdrmdiag.so
lib/libqomx_core.so
lib/libchromatix_imx226_liveshot.so
lib/hw/activity_recognition.msm8974.so
lib/hw/gps.msm8974.so
lib/hw/consumerir.msm8974.so
lib/libchromatix_imx214_liveshot.so
lib/libqminvapi.so
lib/libchromatix_imx219_liveshot.so
lib/libchromatix_imx224_liveshot.so
lib/libc2dcolorconvert.so
lib/libchromatix_imx135_liveshot.so
lib/libmmjpeg_interface.so
lib/libloc_core.so
lib/libloc_eng.so
lib/libloc_ds_api.so
lib/libchromatix_s5k3m2_liveshot.so
lib/libgps.utils.so
lib/libdrmtime.so
lib/libmmcamera_interface.so
lib/libstm-log.so
lib/libloc_api_v02.so
lib/libchromatix_imx225_liveshot.so
lib/librpmb.so
lib/libmdmdetect.so
lib/drm/libdrmwvmplugin.so
lib/libQSEEComAPI.so
lib/libchromatix_imx215_liveshot.so
lib/libOmxVenc.so
lib/libRecoFace.so
lib/libssd.so
framework/qti-telephony-common.jar
framework/qcnvitems.jar
framework/qcrilhook.jar
bin/irsc_util
bin/qmuxd
bin/radish
vendor/lib/libadreno_utils.so
vendor/lib/libmmcamera2_vpe_module.so
vendor/lib/libTimeService.so
vendor/lib/libchromatix_imx132_default_video.so
vendor/lib/libchromatix_imx215_preview.so
vendor/lib/libchromatix_s5k3l1yx_hfr_120fps.so
vendor/lib/libchromatix_imx226_common.so
vendor/lib/libmmcamera2_cpp_module.so
vendor/lib/libchromatix_s5k3m2_video_uhd.so
vendor/lib/libmmcamera_hi256.so
vendor/lib/libchromatix_s5k3m2_snapshot_hdr.so
vendor/lib/libmm-hdcpmgr.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_zsl.so
vendor/lib/libchromatix_imx225_snapshot.so
vendor/lib/libfastcvopt.so
vendor/lib/libmmcamera_SKUAA_ST_gc0339.so
vendor/lib/libchromatix_ov5648_oty5f03_common.so
vendor/lib/libmmcamera2_frame_algorithm.so
vendor/lib/libquipc_os_api.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_default_video.so
vendor/lib/libchromatix_ov8825_liveshot_hd.so
vendor/lib/libcneapiclient.so
vendor/lib/libchromatix_s5k3l1yx_hfr_90fps.so
vendor/lib/libchromatix_ov5648_oty5f03_snapshot.so
vendor/lib/libchromatix_imx224_snapshot_w.so
vendor/lib/libjpegdhw.so
vendor/lib/libacdbloader.so
vendor/lib/libchromatix_ov9724_preview.so
vendor/lib/libFaceProc.so
vendor/lib/libchromatix_imx224_hfr_120.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_video_hd.so
vendor/lib/libmm-abl.so
vendor/lib/libchromatix_imx214_snapshot_w.so
vendor/lib/libactuator_rohm_bu64243gwz_camcorder.so
vendor/lib/libmmcamera_sunny_p12v01m_eeprom.so
vendor/lib/libchromatix_s5k3l1yx_liveshot.so
vendor/lib/libc2d30-a4xx.so
vendor/lib/libsrsprocessing.so
vendor/lib/libqct_resampler.so
vendor/lib/libactuator_ov8825_camcorder.so
vendor/lib/libchromatix_ov8825_preview.so
vendor/lib/libchromatix_ov2720_default_video.so
vendor/lib/libchromatix_imx215_video_hdr_uhd.so
vendor/lib/libactuator_bu6313_camcorder.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_video_hd.so
vendor/lib/libactuator_dw9716_camera.so
vendor/lib/libchromatix_ov8825_snapshot_hd.so
vendor/lib/hw/sensors.msm8974.so
vendor/lib/hw/flp.default.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_hfr_60fps.so
vendor/lib/libmmcamera_imx135.so
vendor/lib/libchromatix_imx226_snapshot_hdr.so
vendor/lib/libchromatix_imx215_snapshot_w.so
vendor/lib/libWVStreamControlAPI_L1.so
vendor/lib/libacdbrtac.so
vendor/lib/mediadrm/libdrmclearkeyplugin.so
vendor/lib/mediadrm/libwvdrmengine.so
vendor/lib/libmmcamera_imx219.so
vendor/lib/libRSDriver_adreno.so
vendor/lib/libactuator_ad5823_camera.so
vendor/lib/libchromatix_ov8825_snapshot.so
vendor/lib/libdiag.so
vendor/lib/libactuator_iu074_camera.so
vendor/lib/libchromatix_ov4688_preview.so
vendor/lib/libC2D2.so
vendor/lib/libchromatix_imx215_snapshot_hdr.so
vendor/lib/libchromatix_ov8865_q8v18a_zsl.so
vendor/lib/libchromatix_imx214_snapshot.so
vendor/lib/libacdbmapper.so
vendor/lib/libchromatix_ov8865_q8v18a_video_hd.so
vendor/lib/libchromatix_imx134_preview.so
vendor/lib/libchromatix_ov5648_oty5f03_default_video.so
vendor/lib/libsmemlog.so
vendor/lib/liboemcamera.so
vendor/lib/libchromatix_imx134_snapshot.so
vendor/lib/libchromatix_imx224_video_uhd.so
vendor/lib/libchromatix_skuf_ov5648_p5v23c_common.so
vendor/lib/libchromatix_imx215_video_hdr.so
vendor/lib/libchromatix_imx132_preview.so
vendor/lib/libqcci_legacy.so
vendor/lib/libactuator_dw9716.so
vendor/lib/libchromatix_imx225_common.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_hfr_90fps.so
vendor/lib/libchromatix_imx214_snapshot_hdr.so
vendor/lib/libchromatix_imx135_hfr_60.so
vendor/lib/libxtwifi_ulp_adaptor.so
vendor/lib/libchromatix_ov5648_oty5f03_zsl.so
vendor/lib/libchromatix_SKUAA_ST_gc0339_default_video.so
vendor/lib/libchromatix_ov8865_q8v18a_liveshot.so
vendor/lib/lib-dplmedia.so
vendor/lib/libchromatix_ov5648_oty5f03_preview.so
vendor/lib/libtime_genoff.so
vendor/lib/libmmcamera_imx226.so
vendor/lib/liblocationservice.so
vendor/lib/libactuator_ov12830_camera.so
vendor/lib/libchromatix_ov8825_hfr_60fps.so
vendor/lib/libchromatix_imx224_snapshot_hdr.so
vendor/lib/libmmcamera_skuf_ov12830_p12v01c.so
vendor/lib/libgeofence.so
vendor/lib/libasn1crtx.so
vendor/lib/librs_adreno_sha1.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_common.so
vendor/lib/libmmcamera_ubifocus_lib.so
vendor/lib/libdrmdecrypt.so
vendor/lib/libchromatix_ov8865_q8v18a_default_video.so
vendor/lib/libmmcamera2_iface_modules.so
vendor/lib/libmmcamera_ov9724.so
vendor/lib/libchromatix_imx214_video_hdr.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_snapshot.so
vendor/lib/libchromatix_imx215_default_video.so
vendor/lib/libactuator_ak7345.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_snapshot.so
vendor/lib/libchromatix_ov8825_preview_hd.so
vendor/lib/libchromatix_imx224_snapshot.so
vendor/lib/libmmcamera_x5_imx214_eeprom.so
vendor/lib/libmmcamera_chromaflash_lib.so
vendor/lib/libchromatix_imx224_common.so
vendor/lib/libchromatix_skuf_ov5648_p5v23c_default_video.so
vendor/lib/liblbs_core.so
vendor/lib/libchromatix_s5k3m2_video_hdr.so
vendor/lib/libchromatix_imx219_common.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_snapshot.so
vendor/lib/libchromatix_imx226_video_hdr.so
vendor/lib/libmmcamera_ov2720.so
vendor/lib/libchromatix_imx226_snapshot_w.so
vendor/lib/libqmi.so
vendor/lib/libchromatix_imx214_video_uhd.so
vendor/lib/libqmi_csvt_srvc.so
vendor/lib/libchromatix_imx225_video_uhd.so
vendor/lib/libchromatix_s5k3l1yx_default_video.so
vendor/lib/libchromatix_ov8865_q8v18a_hfr_120fps.so
vendor/lib/libCB.so
vendor/lib/libchromatix_imx214_preview.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_default_video.so
vendor/lib/libSHIMDivxDrm.so
vendor/lib/libactuator_ov8825_camera.so
vendor/lib/libchromatix_ov4688_zsl.so
vendor/lib/libchromatix_SKUAA_ST_gc0339_common.so
vendor/lib/libmmcamera2_sensor_modules.so
vendor/lib/libaudioalsa.so
vendor/lib/libchromatix_imx214_video_hdr_uhd.so
vendor/lib/libchromatix_imx214_common.so
vendor/lib/librs_adreno.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_default_video.so
vendor/lib/libchromatix_imx134_hfr_60.so
vendor/lib/libulp2.so
vendor/lib/libchromatix_imx224_video_hdr.so
vendor/lib/libril-qc-qmi-1.so
vendor/lib/libmmcamera_truly_cm7700_eeprom.so
vendor/lib/libchromatix_s5k3m2_hfr_120fps.so
vendor/lib/libNimsWrap.so
vendor/lib/libchromatix_ov4689_preview.so
vendor/lib/libbccQTI.so
vendor/lib/libmmcamera_tintless_bg_pca_algo.so
vendor/lib/libqomx_jpegenc.so
vendor/lib/libbtnv.so
vendor/lib/libchromatix_imx219_default_video.so
vendor/lib/libmmcamera2_is.so
vendor/lib/libactuator_ad5823.so
vendor/lib/libgsl.so
vendor/lib/libchromatix_skuf_ov5648_p5v23c_snapshot.so
vendor/lib/libmmcamera_SKUAB_ST_s5k4e1.so
vendor/lib/libmmqjpeg_codec.so
vendor/lib/libchromatix_s5k3l1yx_video_hd.so
vendor/lib/libactuator_rohm_bu64243gwz_camera.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_hfr_120fps.so
vendor/lib/libchromatix_s5k3m2_snapshot_w.so
vendor/lib/libchromatix_ov8825_video_hd.so
vendor/lib/libchromatix_imx135_preview.so
vendor/lib/libarcsoft_beauty_shot.so
vendor/lib/libmmcamera_ov4688.so
vendor/lib/libactuator_bu6313_camera.so
vendor/lib/libchromatix_s5k3l1yx_zsl.so
vendor/lib/libsensor_test.so
vendor/lib/libmmcamera2_q3a_special.so
vendor/lib/libmmcamera_ov4689.so
vendor/lib/libchromatix_ov4689_common.so
vendor/lib/libqti-perfd-client.so
vendor/lib/lib-rtpsl.so
vendor/lib/libmmcamera_imx225.so
vendor/lib/libchromatix_ov8825_common.so
vendor/lib/libmmcamera2_stats_algorithm.so
vendor/lib/libchromatix_imx134_hfr_120.so
vendor/lib/lib-rtpdaemoninterface.so
vendor/lib/libactuator_bu6313.so
vendor/lib/libchromatix_ov4689_zsl.so
vendor/lib/libOpenCL.so
vendor/lib/libmmcamera_imx224.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_common.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_liveshot.so
vendor/lib/libsensor_reg.so
vendor/lib/libasn1crt.so
vendor/lib/libmmcamera2_pproc_modules.so
vendor/lib/libt2tmanager.so
vendor/lib/libchromatix_imx225_preview.so
vendor/lib/libchromatix_s5k3m2_preview.so
vendor/lib/libactuator_iu074.so
vendor/lib/libchromatix_SKUAA_ST_gc0339_preview.so
vendor/lib/libchromatix_imx132_snapshot.so
vendor/lib/libchromatix_ov8865_q8v18a_preview.so
vendor/lib/libchromaflash.so
vendor/lib/libjpegehw.so
vendor/lib/libqmi_client_qmux.so
vendor/lib/libfastcvadsp_stub.so
vendor/lib/libc2d30-a3xx.so
vendor/lib/soundfx/libqcbassboost.so
vendor/lib/soundfx/libqcreverb.so
vendor/lib/soundfx/libqcvirt.so
vendor/lib/libchromatix_imx224_video_hdr_uhd.so
vendor/lib/libmmipl.so
vendor/lib/libqmi_common_so.so
vendor/lib/libmm-abl-oem.so
vendor/lib/libchromatix_s5k3m2_default_video.so
vendor/lib/libchromatix_ov9724_default_video.so
vendor/lib/libmmQSM.so
vendor/lib/libchromatix_imx225_video_hdr_uhd.so
vendor/lib/libactuator_ad5823_camcorder.so
vendor/lib/libWVphoneAPI.so
vendor/lib/libaudcal.so
vendor/lib/libchromatix_imx219_snapshot.so
vendor/lib/libmmcamera_skuab_shinetech_gc0339.so
vendor/lib/libizat_core.so
vendor/lib/libactuator_rohm_bu64243gwz.so
vendor/lib/libdsutils.so
vendor/lib/libchromatix_imx215_hfr_120.so
vendor/lib/libchromatix_imx226_hfr_120.so
vendor/lib/libactuator_ak7345_camcorder.so
vendor/lib/libchromatix_ov2720_liveshot.so
vendor/lib/libwvdrm_L1.so
vendor/lib/libactuator_lc8214_camera.so
vendor/lib/libmmcamera2_wnr_module.so
vendor/lib/libmmcamera_imglib.so
vendor/lib/libquipc_ulp_adapter.so
vendor/lib/libmmcamera_faceproc.so
vendor/lib/libchromatix_ov4688_hfr.so
vendor/lib/libasn1cper.so
vendor/lib/libchromatix_imx214_hfr_120.so
vendor/lib/libmmcamera_s5k3m2.so
vendor/lib/libchromatix_ov9724_liveshot.so
vendor/lib/libmmjpeg.so
vendor/lib/libchromatix_imx214_default_video.so
vendor/lib/libmmcamera2_stats_modules.so
vendor/lib/libnetmgr.so
vendor/lib/libchromatix_imx219_preview.so
vendor/lib/libmmcamera_sunny_q8v18a_eeprom.so
vendor/lib/libscve.so
vendor/lib/libchromatix_ov8825_default_video.so
vendor/lib/libchromatix_ov2720_hfr.so
vendor/lib/libchromatix_ov4688_liveshot.so
vendor/lib/libmmcamera2_c2d_module.so
vendor/lib/libactuator_lc8214_camcorder.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_liveshot.so
vendor/lib/libchromatix_s5k3l1yx_preview.so
vendor/lib/libmmcamera_sunny_p5v23c_eeprom.so
vendor/lib/libI420colorconvert.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_preview.so
vendor/lib/libsensor_user_cal.so
vendor/lib/libDivxDrm.so
vendor/lib/libchromatix_ov4688_common.so
vendor/lib/libchromatix_imx225_default_video.so
vendor/lib/libqdp.so
vendor/lib/libchromatix_ov8825_hfr_120fps.so
vendor/lib/libchromatix_imx226_video_hdr_uhd.so
vendor/lib/libHevcSwDecoder.so
vendor/lib/libchromatix_ov2720_common.so
vendor/lib/libchromatix_ov4689_hfr.so
vendor/lib/libchromatix_ov9724_common.so
vendor/lib/libmmcamera_wavelet_lib.so
vendor/lib/libchromatix_imx226_default_video.so
vendor/lib/libmmcamera_mt9m114.so
vendor/lib/libchromatix_ov8825_hfr_90fps.so
vendor/lib/libqmi_cci.so
vendor/lib/libchromatix_imx224_preview.so
vendor/lib/libchromatix_imx225_snapshot_hdr.so
vendor/lib/libchromatix_skuab_shinetech_gc0339_zsl.so
vendor/lib/libscve_stub.so
vendor/lib/libactuator_dw9714_camera.so
vendor/lib/libchromatix_imx215_snapshot.so
vendor/lib/egl/eglsubAndroid.so
vendor/lib/egl/libq3dtools_adreno.so
vendor/lib/egl/libEGL_adreno.so
vendor/lib/egl/libGLESv1_CM_adreno.so
vendor/lib/egl/libGLESv2_adreno.so
vendor/lib/libmmosal.so
vendor/lib/libsc-a2xx.so
vendor/lib/libchromatix_s5k3l1yx_hfr_60fps.so
vendor/lib/libconfigdb.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_zsl.so
vendor/lib/libmmcamera_imx214.so
vendor/lib/libmmcamera2_imglib_modules.so
vendor/lib/libchromatix_ov8825_zsl.so
vendor/lib/libchromatix_imx215_video_uhd.so
vendor/lib/libactuator_ov12830_camcorder.so
vendor/lib/libchromatix_ov4689_default_video.so
vendor/lib/libmmcamera_ov5648_oty5f03.so
vendor/lib/libsystem_health_mon.so
vendor/lib/libqmi_csi.so
vendor/lib/libxtadapter.so
vendor/lib/libchromatix_imx226_snapshot.so
vendor/lib/libmmcamera_imx134.so
vendor/lib/libmmcamera2_isp_modules.so
vendor/lib/libchromatix_skuf_ov12830_p12v01c_preview.so
vendor/lib/libmmcamera_tintless_algo.so
vendor/lib/libmmcamera_imx132.so
vendor/lib/libchromatix_skuf_ov5648_p5v23c_preview.so
vendor/lib/libchromatix_s5k3m2_common.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_common.so
vendor/lib/libchromatix_imx135_hfr_90.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_hfr_90fps.so
vendor/lib/libxtwifi_zpp_adaptor.so
vendor/lib/libchromatix_s5k3l1yx_snapshot.so
vendor/lib/libmm-color-convertor.so
vendor/lib/libactuator_lc8214.so
vendor/lib/libmmcamera_hdr_gb_lib.so
vendor/lib/lib-rtpcommon.so
vendor/lib/libchromatix_ov8865_q8v18a_snapshot.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_hfr_60fps.so
vendor/lib/libperipheral_client.so
vendor/lib/libsc-a3xx.so
vendor/lib/libchromatix_ov4688_default_video.so
vendor/lib/libchromatix_imx135_common.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_hfr_120fps.so
vendor/lib/libchromatix_ov8825_liveshot.so
vendor/lib/libmmcamera_skuf_ov5648_p5v23c.so
vendor/lib/libactuator_dw9716_camcorder.so
vendor/lib/libmmcamera_ov8865_q8v18a.so
vendor/lib/libchromatix_s5k3m2_snapshot.so
vendor/lib/libmmcamera_s5k3l1yx.so
vendor/lib/libchromatix_SKUAB_ST_s5k4e1_preview.so
vendor/lib/libmmcamera_hdr_lib.so
vendor/lib/libqomx_jpegdec.so
vendor/lib/libchromatix_imx134_common.so
vendor/lib/libchromatix_imx215_common.so
vendor/lib/liboemcrypto.so
vendor/lib/libmmcamera_imx215.so
vendor/lib/libsensor1.so
vendor/lib/libllvm-qcom.so
vendor/lib/libactuator_iu074_camcorder.so
vendor/lib/libchromatix_ov4689_liveshot.so
vendor/lib/libchromatix_imx134_default_video.so
vendor/lib/libadsprpc.so
vendor/lib/libchromatix_imx225_snapshot_w.so
vendor/lib/libril-qcril-hook-oem.so
vendor/lib/libdsi_netctrl.so
vendor/lib/libscale.so
vendor/lib/libchromatix_s5k3m2_video_hdr_uhd.so
vendor/lib/libchromatix_imx135_hfr_120.so
vendor/lib/libadiertac.so
vendor/lib/libactuator_ov8825.so
vendor/lib/libchromatix_imx226_video_uhd.so
vendor/lib/libactuator_dw9714.so
vendor/lib/libdisp-aba.so
vendor/lib/libAKM8963.so
vendor/lib/libchromatix_ov8865_q8v18a_hfr_90fps.so
vendor/lib/libwifiscanner.so
vendor/lib/libactuator_ov12830.so
vendor/lib/libchromatix_imx132_common.so
vendor/lib/libwvm.so
vendor/lib/libchromatix_imx226_preview.so
vendor/lib/libchromatix_ov2720_preview.so
vendor/lib/libchromatix_imx225_video_hdr.so
vendor/lib/libqmiservices.so
vendor/lib/libmmcamera_ofilm_oty5f03_eeprom.so
vendor/lib/libqmi_encdec.so
vendor/lib/libchromatix_imx225_hfr_120.so
vendor/lib/libmmcamera_x4_s5k3m2_eeprom.so
vendor/lib/libchromatix_ov8865_q8v18a_common.so
vendor/lib/libxml.so
vendor/lib/libchromatix_ov2720_zsl.so
vendor/lib/libmmcamera_ov8825.so
vendor/lib/libchromatix_imx135_default_video.so
vendor/lib/libactuator_ak7345_camera.so
vendor/lib/libchromatix_imx132_liveshot.so
vendor/lib/lib-rtpcore.so
vendor/lib/libchromatix_imx135_snapshot.so
vendor/lib/libchromatix_s5k3l1yx_common.so
vendor/lib/libqdi.so
vendor/lib/libidl.so
vendor/lib/libactuator_dw9714_camcorder.so
vendor/lib/libchromatix_imx224_default_video.so
vendor/lib/libmmcamera_sp1628.so
vendor/lib/libchromatix_imx135_video_hd.so
vendor/lib/libchromatix_ov8865_q8v18a_hfr_60fps.so
vendor/firmware/keymaster/keymaster.b01
vendor/firmware/keymaster/keymaster.b02
vendor/firmware/keymaster/keymaster.b00
vendor/firmware/keymaster/keymaster.b03
vendor/firmware/keymaster/keymaster.mdt
vendor/firmware/bcm2079x-b5_pre_firmware.ncd
vendor/firmware/bcm2079x-b5_firmware.ncd




(3) MIUI 中单独提取的 4 个文件


MIUI 7 系统提取的文件 : 首先刷上 MIUI7 系统;

-- 需要提取的文件路径 : 格式 编译路径 -> 真实路径地址;

MIUI : 
app/fastdormancy.apk -> /system/app/fastdormancy/fastdormancy.apk
lib/libOmxVdecHevc.so -> /system/lib/libOmxVdecHevc.so
lib/libmm-omxcore.so -> /system/lib/libmm-omxcore.so
vendor/lib/libubifocus.so -> /system/vendor/lib/libubifocus.so


-- 提取文件方法 : 这里就不使用脚本提取了, 直接使用 adb pull 命令提取指定文件, 提取文件后, 拷贝到指定的目录, 下面是详细的路径和过程; 

-- 1. 提取 fastdormancy.apk 文件 : 使用 adb pull /system/app/fastdormancy/fastdormancy.apk 命令, 获取该文件, 然后拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/app 目录中;

-- 2. 提取 libOmxVdecHevc.so 文件 : 使用 adb pull /system/lib/libOmxVdecHevc.so 命令, 获取该文件, 然后拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/lib 目录中;

-- 3. 提取 libmm-omxcore.so 文件 : 使用 adb pull /system/lib/libmm-omxcore.so 命令, 获取该文件, 然后拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/lib 目录中;

-- 4. 提取 libubifocus.so 文件 : 使用 adb pull /system/vendor/lib/libubifocus.so 命令, 获取该文件, 然后拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/vendor/lib 目录中;




(4) 对于需要修改路径的 17 个文件特殊说明



路径修改特殊说明

-- 注意路径错误问题 : 脚本中的前 13 个路径不正确, 该脚本下载完之后, 需要手动修改文件的路径;

-- 修改路径原理 (举个栗子) 很重要 : 脚本中原来的路径是 app/shutdownlistener.apk 即指向手机中的 /system/app/shutdownlistener.apk, 使用该路径是 pull 不下来的, 但是手机中实际的该文件的路径是 /system/app/shutdownlistener/shutdownlistener.apk, 使用该实际路径可以 pull 下来, 但是放到了 ~/android/system/vendor/xiaomi/cancro/proprietary/app/shutdownlistener/shutdownlistener.apk 中, 这样编译通不过, 编译脚本会到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中去找 shutdownlistener.apk 文件, 因此我们要将 shutdownlistener.apk 文件拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中;

-- 修改过路径的文件列表  :

CyanogenMod : 
app/shutdownlistener.apk -> app/shutdownlistener/shutdownlistener.apk
app/TimeService.apk -> app/TimeService/TimeService.apk
priv-app/qcrilmsgtunnel.apk -> priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk

lib/hw/camera.msm8974.so -> ./vendor/lib/hw/camera.msm8974.so
lib/libdrmdecrypt.so -> ./vendor/lib/libdrmdecrypt.so
lib/libDiracAPI_SHARED.so -> ./vendor/lib/libDiracAPI_SHARED.so
lib/soundfx/libdirac.so -> ./vendor/lib/soundfx/libdirac.so

vendor/lib/rfsa/adsp/libdspCV_skel.so -> ./lib/rfsa/adsp/libdspCV_skel.so
vendor/lib/rfsa/adsp/libapps_mem_heap.so -> ./lib/rfsa/adsp/libapps_mem_heap.so
vendor/lib/rfsa/adsp/libfastcvadsp.so -> ./lib/rfsa/adsp/libfastcvadsp.so
vendor/lib/rfsa/adsp/libfastcvadsp_skel.so -> ./lib/rfsa/adsp/libfastcvadsp_skel.so
vendor/lib/rfsa/adsp/libscveT2T_skel.so	-> ./lib/rfsa/adsp/libscveT2T_skel.so
vendor/lib/libQSEEComAPI.so -> ./lib/libQSEEComAPI.so


MIUI : 
app/fastdormancy.apk -> /system/app/fastdormancy/fastdormancy.apk
lib/libOmxVdecHevc.so -> /system/lib/libOmxVdecHevc.so
lib/libmm-omxcore.so -> /system/lib/libmm-omxcore.so
vendor/lib/libubifocus.so -> /system/vendor/lib/libubifocus.so


-- 说明 : 设备列表中 有 17 个文件的路径是错误的, 我们从设备复制到 ~/android/system/vender/ 是按照原路径复制的, 但是编译系统不认, 必须将文件手动复制到错误的路径;




(5) 无法找到的文件



以下 5 个文件不管在 CM 上 还是在 MIUI 上都无法找到

vendor/lib/libFaceDeform.so
vendor/lib/libdrmdecrypt.2.so
vendor/lib/libc2d30.so
etc/lut.dat
vendor/lib/liboptizoom.so






3. 直接从 ROM 中提取 (可不看, 我没有使用这种方法, 提供参考)





直接从 ROM 提取流程参考

-- 1.将数据转为 img

root@ubuntu:~/android_back/rom# ./sdat2img.py system.transfer.list system.new.dat system.img
Copying 32770 blocks into position 0...
Copying 2 blocks into position 32809...
Copying 32212 blocks into position 33323...
Copying 2 blocks into position 65536...
Copying 32253 blocks into position 66050...
Copying 2 blocks into position 98304...
Copying 2 blocks into position 98345...
Copying 32212 blocks into position 98859...
Copying 2 blocks into position 131072...
Copying 28176 blocks into position 131586...
Skipping command zero
Skipping command erase

Done! Output image: /root/android_back/rom/system.img

 

-- 2. 创建 system 目录 : 执行 mkdir system 命令;

-- 3. 将 img 挂载到 system 目录中 : 执行 sudo mount -t ext4 system.img system 命令;

-- 4. 可以查看 system 中的文件

root@ubuntu:~/android_back/rom/system# ls
addon.d  app  bin  build.prop  etc  fonts  framework  lib  lost+found  media  priv-app  recovery-from-boot.p  tts  usr  vendor  xbin
root@ubuntu:~/android_back/rom/system# 







六. CyanogenMod 13.0 Android 源码编译




1. 开启缓存 开始编译



(1) 设置环境变量



开始编译加速

-- 添加缓存环境变量 : 你可以在 ~/.bashrc 环境变量文件中 添加  export USE_CCACHE=1 环境变量,  加速随后的编译过程; 

-- 分配缓存磁盘大小 : 为 ccache 指定磁盘中的一部分大小, 用于缓存, 使用 prebuilts/misc/linux-x86/ccache/ccache -M 50G 命令; 

-- 命令执行位置 : 注意在 Android 源码根目录执行 prebuilts/misc/linux-x86/ccache/ccache -M 50G 命令;

root@ubuntu:~/android/system# prebuilts/misc/linux-x86/ccache/ccache -M 50G
Set cache size limit to 50.0 Gbytes



(2) 开始编译


执行下面两条命令开始编译 

-- 1. 初始化环境 : 执行 croot 命令, 该命令作用是先初始化环境变量, 后进入 ~/android/system 目录;

-- 2. 开始编译 : 执行 brunch cancro 命令, 开始编译源码;

-- 3. 编译完成 : 中间太费劲了, 许多波折, 花了好几天用来研究, 终于还是编译通过了, 截个图纪念下;


-- 编译成功后的输出

using prebuilt boot.img from BOOTABLE_IMAGES...
   boot size (10211328) is 62.33% of limit (16384000)
  running:  openssl pkcs8 -in build/target/product/security/testkey.pk8 -inform DER -nocrypt
  running:  java -Xmx2048m -jar /root/android/system/out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 /tmp/tmp2PeuRT /root/android/system/out/target/product/cancro/cm_cancro-ota-89a867549b.zip
done.
Package Complete: /root/android/system/out/target/product/cancro/cm-13.0-20160613-UNOFFICIAL-cancro.zip
make: Leaving directory `/root/android/system'

#### make completed successfully (02:44:37 (hh:mm:ss)) ####





(3) 编译缓存简介



编译缓存简介

-- 单位对应 : 50G 对应着 50GB 的缓存;

-- 一次执行有效 : 该命令只要运行一次即可, 该设置会被保存到本地磁盘, 不用重复设置;

-- 效果明显 : 25G ~ 100G 范围内的任何缓存值都会很明显的加速编译过程, 如传统的 1hr 编译时间可以被减少到 20 分钟;

-- 单台设备编译推荐 : 如果只为一台设备编译, 20 ~ 50G 即可;

-- 多台设备编译推荐 : 如果为 多种 设备编译, 并且这些设备不共享内核源码, 需要设置 75 ~ 100GB 的缓存;

-- 注意缓存控件时效 : 该配置的缓存控件会被永久的占用, 这个需要被考虑进去;

-- 更多关于 ccache 的知识点 : http://source.android.com/source/initializing.html#setting-up-ccache;




(4) 保持 ccache 独立性简介


保存 ccache 独立性

-- 保持 ccache 独立性需求 : 如果你是一个非常活跃的开发者, 不只是在 Android 工程方面工作, 你可能想要保持 Android ccache 的独立性; 

-- 原因 : 因为该 ccache 很大, 可能会影响其它工程的 ccache; 

-- 通过环境变量设置缓存信息 : 从 CM12.1 开始, 可以通过环境变量指定 CyanogenMod 的 ccache 的位置和大小, 语法如下 : 

export ANDROID_CCACHE_DIR="$HOME/android/.ccache"
export ANDROID_CCACHE_SIZE="50G"



2. 常见编译错误




(1) 编译不执行错误



编译无法执行错误

-- 1. 编译不执行 :  如果编译没有开始 执行 lunch 命令, 从菜单列表中选择一个设备;

-- 2. 编译不执行 : 如果上面的操作无效, 执行 breakfast 命令, 从列表中选择;

-- 3. 执行完上面的操作后, 执行 make cancro 命令, 应该有效果;


(2) 命令无法找到错误



命令无法找到 错误

-- 命令未找到错误 : 如果执行 croot, brunch, 或者 lunch 命令行报出 command not found 错误;

-- 解决方案 : 确保你在 ~/android/system 目录中执行了 source build/envsetup.sh 命令;



(3) 编译内存不足



内存不足错误排除

-- 出现没有足够内存相关错误, 如下

ERROR: signapk.jar failed: return code 1make: *** [out/target/product/cancro/cm_cancro-ota-eng.root.zip] Error 1


-- 1. 需要修改的文件 : 找到 ~/android/system/build/tools/releasetools/common.py 文件;

-- 2. 需要修改的内容 : 找到 -Xmx2048m 内容, 将其修改为 -Xmx1024m 或者 -Xmx512m;

-- 3. 再次尝试编译 : 执行 brunch cancro 命令, 再次尝试编译过程;


-- 虚拟机内存不足 : 如果没有任何报错就中断了, 可能是你编译用的虚拟机内存不足, 重新为虚拟机分配内存即可;




(4) 没有 Manifest 文件错误



没有 Manifest 文件错误

-- 错误信息 : 

oot@ubuntu:~/android/system# brunch cancro
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/xiaomi/cancro/cm.mk]]: "vendor/xiaomi/cancro/cancro-vendor.mk" does not exist.  Stop.
Device cancro not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_xiaomi_cancro
Default revision: cm-13.0
Checking branch info
Checking if device/xiaomi/cancro is fetched from android_device_xiaomi_cancro
CyanogenMod/android_device_xiaomi_cancro already fetched to device/xiaomi/cancro
Syncing repository to retrieve project.
Fetching project CyanogenMod/android_device_xiaomi_cancro
Fetching projects: 100% (1/1), done.  

Repository synced!
Looking for dependencies
Done
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/xiaomi/cancro/cm.mk]]: "vendor/xiaomi/cancro/cancro-vendor.mk" does not exist.  Stop.

** Don't have a product spec for: 'cm_cancro'
** Do you have the right repo manifest?

No such item in brunch menu. Try 'breakfast'


-- 错误原因 : 这是因为没有提取手机中的配置文件, 就是那 505 个文件, 实际提取 500 个文件就能编译通过;

-- 处理方案 : 执行提取手机专有文件步骤, 在 ~/android/system/device/xiaomi/cancro 目录中执行 ./extract-files.sh 命令, 如果该命令通过没有错误, 那么编译就会通过, 注意修改文件路径问题, 需要用我修改完的 脚本从 CyanogenMod 13.0 系统中提取 (需要提前刷 CM13系统), 然后手动从 MIUI7 中提取那 4 个文件, 将文件路径修改完毕即可完成文件提取过程, 此时编译就没问题了;




(5) JDK 版本错误




JDK 版本错误

-- 编译错误 : jdk 版本错误;

You are attempting to build with the incorrect version
of java.
 
Your version is: java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode).
The required version is: "1.7.x"
 
Please follow the machine setup instructions at
    https://source.android.com/source/initializing.html
************************************************************
make: Entering directory `/root/android/system'
build/core/main.mk:181: *** stop.  Stop.
make: Leaving directory `/root/android/system'


-- 重新配置 java 环境变量 : 因为之前已经安装了 open-jdk-7, 只是环境变量没有配置, 配置 /etc/profile 环境变量;

#export JAVA_HOME=/opt/jdk1.8.0_91
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export GROOVY_HOME=/opt/groovy-2.4.6
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export ANDROID_SDK_HOME=/root/Work/android-sdk-linux
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$GROOVY_HOME/bin:$ANDROID_SDK_HOME/tools:$ANDROID_SDK_HOME/platform-tools:$PATH



(6) 文件路径错误 No rule to make target `vendor/xiaomi/cancro/proprietary/app/qcrilmsgtunnel.apk'




文件路径错误

-- 错误信息

make: *** No rule to make target `vendor/xiaomi/cancro/proprietary/app/qcrilmsgtunnel.apk', needed by `/root/android/system/out/target/product/cancro/obj/APPS/qcrilmsgtunnel_intermediates/package.apk'.  Stop.
make: *** Waiting for unfinished jobs....
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Download: /root/android/system/out/target/common/obj/APPS/Gello_intermediates/org.cyanogenmod.gello-17.apk
Download: /root/android/system/out/target/common/obj/JAVA_LIBRARIES/ambientsdk_intermediates/com.cyngn.ambient.ambientsdk-1.5.11.aar
make: Leaving directory `/root/android/system'

#### make failed to build some targets (15:44 (mm:ss)) ####

-- 错误原因 : 由于文件路径不正确, 将文件拷贝到对应位置即可, 将从设备中获取的 ~/android/system/vendor/xiaomi/cancro/proprietary/app/qcrilmsgtunnel/qcrilmsgtunnel.apk 拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中, 修改错误路径;

-- -- 修改路径原理 (举个栗子) 很重要 : 脚本中原来的路径是 app/shutdownlistener.apk 即指向手机中的 /system/app/shutdownlistener.apk, 使用该路径是 pull 不下来的, 但是手机中实际的该文件的路径是 /system/app/shutdownlistener/shutdownlistener.apk, 使用该实际路径可以 pull 下来, 但是放到了 ~/android/system/vendor/xiaomi/cancro/proprietary/app/shutdownlistener/shutdownlistener.apk 中, 这样编译通不过, 编译脚本会到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中去找 shutdownlistener.apk 文件, 因此我们要将 shutdownlistener.apk 文件拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中;





(7) 文件路径错误 No rule to make target `vendor/xiaomi/cancro/proprietary/app/shutdownlistener.apk'




文件路径错误

-- 错误信息

make: *** No rule to make target `vendor/xiaomi/cancro/proprietary/app/shutdownlistener.apk', needed by `/root/android/system/out/target/product/cancro/obj/APPS/shutdownlistener_intermediates/package.apk'.  Stop.
make: *** Waiting for unfinished jobs....
target Unpacked: libgiftranscode (/root/android/system/out/target/product/cancro/obj/SHARED_LIBRARIES/libgiftranscode_intermediates/PACKED/libgiftranscode.so)
make: Leaving directory `/root/android/system'

#### make failed to build some targets (01:02 (mm:ss)) ####



-- 错误原因 : 由于文件路径不正确, 将文件拷贝到对应位置即可, 将从设备中获取的 ~/android/system/vendor/xiaomi/cancro/proprietary/app/shutdownlistener/shutdownlistener.apk 拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中, 修改错误路径;

-- -- 修改路径原理 (举个栗子) 很重要 : 脚本中原来的路径是 app/shutdownlistener.apk 即指向手机中的 /system/app/shutdownlistener.apk, 使用该路径是 pull 不下来的, 但是手机中实际的该文件的路径是 /system/app/shutdownlistener/shutdownlistener.apk, 使用该实际路径可以 pull 下来, 但是放到了 ~/android/system/vendor/xiaomi/cancro/proprietary/app/shutdownlistener/shutdownlistener.apk 中, 这样编译通不过, 编译脚本会到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中去找 shutdownlistener.apk 文件, 因此我们要将 shutdownlistener.apk 文件拷贝到 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中;





(8) 没有文件错误  No rule to make target `vendor/xiaomi/cancro/proprietary/app/com.qualcomm.location.apk'



没有文件错误

-- 错误信息 : 

make: *** No rule to make target `vendor/xiaomi/cancro/proprietary/app/com.qualcomm.location.apk', needed by `/root/android/system/out/target/product/cancro/obj/APPS/com.qualcomm.location_intermediates/package.apk'.  Stop.
make: *** Waiting for unfinished jobs....
Notice file: packages/apps/Trebuchet/NOTICE -- /root/android/system/out/target/product/cancro/obj/NOTICE_FILES/src//system/priv-app/Trebuchet/Trebuchet.apk.txt
make: Leaving directory `/root/android/system'

#### make failed to build some targets (01:39 (mm:ss)) ####


-- 错误原因 : 根本就没有获取该 apk, CM 中没有该文件, MIUI 系统中有该文件 从 MIUI 中 pull 出来放入 ~/android/system/vendor/xiaomi/cancro/proprietary/app/ 目录中;





四. 安装 ROM 




安装 ROM 流程

-- 1. 查看 ROM : 编译完成后 ROM 生成在 /android/system/out/target/product/cancro/cm-13.0-20160613-UNOFFICIAL-cancro.zip 位置;

-- 2. 进入 fastboot 模式 : 手机关机, 按下 音量键- + 电源键 进入 fastboot 模式;

-- 3. 命令行查看 fastboot 模式 : 执行 fastboot devices 查看该模式;


-- 4. 烧写 Recovery : 命令行执行 fastboot flash recovery twrp-3.0.2-0-cancro.img 命令;


-- 5. 将 ROM 放在 sd 卡根目录 : 重启手机, 命令行执行 adb push cm-13.0-20160613-UNOFFICIAL-cancro.zip /sdcard/ 命令, 将 ROM 拷贝到 SD 卡根目录;


-- 6. 进入 Recovery 模式 : 关机, 按下 音量键+ + 电源键, 进入 Recovery 模式;

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

-- 8. 安装 ROM : 选择 Install, 从 SD 卡中选择 ROM 包安装;





相关下载链接 : 

-- CyanogenMod 13 (小米 4 配套 Android 6.0 源码) 百度网盘下载地址 (需要有一定的 Android系统 嵌入式 linux 基础 才能编译通过) : 

-- Ubuntu 14.04 LTS 虚拟机 + CM13 源码 百度网盘下载地址 (适合没有任何基础的小白下载) : , 直接安装 VMWare Workstation 12 版本, 然后导入该虚拟机, 虚拟机里面所有的配置都已经配置好, 包括 jdk, 环境变量, 源码编译所需全部包, 傻瓜式的编译环境, 导入 VM 虚拟机即可获取完整的 Android 系统开发环境; 

-- 编译好的 官方 ROM 和 Recovery 下载 : 

-- 自己编译的 小米4 ROM 下载 : 

-- CyanogenMod 13.0 (Android 6.0) 可编译源码下载地址 : ;


作者 : 韩曙亮

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

你可能感兴趣的:(Android,系统开发)