标签:
作者 : 韩曙亮
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930
手机的两种模式 : 在下面有详细的图片示例;
-- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式;
-- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FASTBOOT 模式;
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;
国内相关博客 :
-- 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 官方提供的教程 : https://wiki.cyanogenmod.org/w/Install_CM_for_cancro;
手机的两种模式 :
-- Recovery 模式 : 音量键增加 + 电源键, 关机状态下 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式;
-- Fastboot 模式 : 音量键减小 + 电源键, 关机状态下 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FASTBOOT 模式;
-- TeamWin Recovery 图片 :
-- CyanogenMod Recovery 模式图片 :
-- Fastboot 模式图片 :
基带版本号条件 :
-- 条件需求 : 安装 CM 13.0 的 ROM 系统, 必须满足 基带版本号为 MPSS.DI.4.0.xxxxx ;
-- 基带版本号升级 : 如果基带版本号是 MPSS.DI.3.0.xxxxx, 访问 http://bit.ly/cancroCMBaseband 网站学习如何升级基带版本 ;
-- 查看基带版本号方法 : 设置 -> 关于手机 -> 基带版本号;
推荐文章 :
-- Recovery 简介地址 : https://wiki.cyanogenmod.org/w/All_About_Recovery_Images;
安装 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 模式;
使用 fastboot devices 命令错误排查 :
-- 1. 没有序列号 : 如果你没有看到设备序列号, 反而看到 "<waiting for device>" 信息, fastboot 没有配置好, 查看 fastboot 文档并配置, https://wiki.cyanogenmod.org/w/Doc:_fastboot_intro;
-- 2. 权限相关错误 : 如果看到 no permissions fastboot 错误, 确保 UDEV 规则被正确设置了, 设置指导页面 https://wiki.cyanogenmod.org/w/UDEV;
注意事项 :
-- 1. 进入 Recovery 方式 : 进入 Recovery 方式 关机 后 按下 音量增加 + 电源键;
-- 2. Recovery 被覆盖 : 注意 一些 ROM 再启动时 会覆盖 Recovery, 如果你不想马上进入 Recovery 去安装 CyanogenMod 系统, 要明确的知道这个操作会刷掉 Recovery 让手机又变成砖机;
推荐文章 :
-- Recovery 简介地址 : https://wiki.cyanogenmod.org/w/All_About_Recovery_Images;
安装 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 系统;
拷贝 ROM 到 SD 卡的途径说明 :
-- 命令不是必须的 : 拷贝 zip 包到 SD 卡中, 可以使用其它途径, 不是必须使用 adb push filename.zip /sdcard/ 命令将 zip 包拷贝到 SD 卡中;
-- 使用命令好处 : 使用命令安装的方法在所有的 Android 设备 以及 在正常模式 和 Recovery 模式都可以使用;
相关链接推荐 :
-- Android 官方的 源码编译依赖库安装地址 (访问需代理) : http://source.android.com/source/initializing.html;
-- CyanogenMod 源码编译依赖库安装地址 : https://wiki.cyanogenmod.org/w/Build_for_cancro#Install_the_Build_Packages;
硬件需求 :
-- 手机需求 : 小米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 命令行概念也是非常有用的;
操作系统需求 : 如果你不熟悉 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 位便无法使用了;
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 命令安装上述依赖库;
安装 SDK :
-- SDK 需求 : 如果之前没有安装 adb 和 fastboot 工具, 先安装一个 Android SDK, 之前说的 adb 和 fastboot 就在 SDK 的 platform-tools 目录中;
安装 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
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.
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 命令安装上述依赖库;
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 安装上述依赖库;
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;
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 ;
创建相关目录 :
-- 1. 创建 bin 目录 : 使用 mkdir -p ~/bin 命令;
-- 2. 创建 android/system 目录 : 使用 mkdir -p ~/android/system 命令;
创建过程的终端输出 :
-- 创建过程 :
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 公共的 模板 视频 图片 文档 下载 音乐 桌面
设置 repo 脚本 : 下载 repo 脚本, 并使 repo 脚本可执行 (赋予执行权限).
-- 1. 获取 repo 脚本 : 使用 curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 命令;
-- 2. 为 repo 脚本添加执行权限 : 使用 chmod a+x ~/bin/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
配置 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
初始化 CyanogenMod 源码仓库流程 :
-- 1.安装 phablet-tools 工具包 : 执行 repo 命令前需要先安装 phablet-tools 工具包 , 安装命令 sudo apt-get install phablet-tools ;
-- 2.为 Git 设置 邮箱 和 用户 : 设置邮箱 git config --global user.email "octopus_truth@163.com" , 设置用户 git config --global user.name "Shuliang Han" ;
octopus@octopus:~/android/system$ git config --global user.email "octopus_truth@163.com" 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. 初始化命令 : 执行 命令;
-- 执行完毕标识 : 出现以下内容说明执行成功;
初始化 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 <module> _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 "you@example.com" 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 "octopus_truth@163.com" octopus@octopus:~/android/system$ git config --global user.name "Shuliang Han"
完整的执行过程 - 终端输出 :
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 <repo@android.kernel.org>”已导入 gpg: 密钥 692B382C:公钥“Conley Owens <cco3@android.com>”已导入 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 <octopus_truth@163.com> 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
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 上获取更新最新的源代码, 你可以每隔几天执行一次该命令, 保持机器上的源代码是最新的;
下载 CyanogenMod 源码 :
-- 执行命令 : repo sync -j4, 正式下载源码;
-- 注意 : 下载一定要开 VPN, 没有 VPN 绝逼下载不下来, 好多资料都被中国屏蔽了.
-- 文件目录 :
-- 文件大小 : 该步骤下载了 12.9G 的源码;
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
获取预置应用 :
-- 进入指定目录 : 执行 cd ~/android/system/vendor/cm 命令, 进入 ~/android/system/vendor/cm 目录;
-- 在该目录获取相关应用 : 执行 ./get-prebuilts 命令即可, 注意 是在 ~/android/system/vendor/cm 目录中执行该命令 ;
执行结果 :
-- 命令行回应 : 执行 get-prebuilts 命令不会得到任何确认, 只是有另外一个提示;
-- 下载安装预置应用 : 执行该命令会下载一些预置应用, 并将它们安装到源代码中;
-- 只执行一次 : 该命令只需要执行一次, 执行完后, 以后编译就不用下载这些应用了;
设置环境变量 :
-- 进入源码根目录 : 进入 ~/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
下载设备相关源码 :
-- 步骤作用 : 该步骤下载 小米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?
出现了 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 命令, 就能执行成功;
设备专有文件简介 :
-- 文件列表 : 在 ~/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 个) 的路径写错了, 需要手动更正过来;
提取属性文件过程 : 这个过程要是能完整的执行下来, 没有任何错误, 那就出了老鬼了, 肯定会出错;
-- 手机 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#
如果出现了 以下错误 :
-- 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), 寻找相关问题答案;
提取文件时没有对应文件错误 :
-- 小米 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上, 再进行文件提取;
相关注意事项 :
-- 设备准备 : 设备已经准备好运行一个 Android 编译版本, 该版本时 CyanogenMod 源码的一个分支, 并且该 编译时针对 extract-files.sh 脚本提取出的文件.
-- 重要性 : 使用 extract-files.sh 脚本从设备中提取到 ~/android/system/vendor/xiaomi 中的专有文件很重要;
-- 生成 Makefile 作用 : 在提取 专有文件 的同时, 会生成 Makefile 文件, 确保文件最终都拷贝到了设备中;
-- 缺少专有文件的后果 : 如果没有这些文件, CyanogenMod 源码可能会编译通过, 但是你可能会丢失一些重要的功能, 如 图形库 等;
文件清单 : 提取的文件清单在 ~/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
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
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 目录中;
路径修改特殊说明 :
-- 注意路径错误问题 : 脚本中的前 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 个文件不管在 CM 上 还是在 MIUI 上都无法找到 :
vendor/lib/libFaceDeform.so vendor/lib/libdrmdecrypt.2.so vendor/lib/libc2d30.so etc/lut.dat vendor/lib/liboptizoom.so
直接从 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#
开始编译加速 :
-- 添加缓存环境变量 : 你可以在 ~/.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
执行下面两条命令开始编译 :
-- 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)) ####
编译缓存简介 :
-- 单位对应 : 50G 对应着 50GB 的缓存;
-- 一次执行有效 : 该命令只要运行一次即可, 该设置会被保存到本地磁盘, 不用重复设置;
-- 效果明显 : 25G ~ 100G 范围内的任何缓存值都会很明显的加速编译过程, 如传统的 1hr 编译时间可以被减少到 20 分钟;
-- 单台设备编译推荐 : 如果只为一台设备编译, 20 ~ 50G 即可;
-- 多台设备编译推荐 : 如果为 多种 设备编译, 并且这些设备不共享内核源码, 需要设置 75 ~ 100GB 的缓存;
-- 注意缓存控件时效 : 该配置的缓存控件会被永久的占用, 这个需要被考虑进去;
-- 更多关于 ccache 的知识点 : http://source.android.com/source/initializing.html#setting-up-ccache;
保存 ccache 独立性 :
-- 保持 ccache 独立性需求 : 如果你是一个非常活跃的开发者, 不只是在 Android 工程方面工作, 你可能想要保持 Android ccache 的独立性;
-- 原因 : 因为该 ccache 很大, 可能会影响其它工程的 ccache;
-- 通过环境变量设置缓存信息 : 从 CM12.1 开始, 可以通过环境变量指定 CyanogenMod 的 ccache 的位置和大小, 语法如下 :
export ANDROID_CCACHE_DIR="$HOME/android/.ccache" export ANDROID_CCACHE_SIZE="50G"
编译无法执行错误 :
-- 1. 编译不执行 : 如果编译没有开始 执行 lunch 命令, 从菜单列表中选择一个设备;
-- 2. 编译不执行 : 如果上面的操作无效, 执行 breakfast 命令, 从列表中选择;
-- 3. 执行完上面的操作后, 执行 make cancro 命令, 应该有效果;
命令无法找到 错误 :
-- 命令未找到错误 : 如果执行 croot, brunch, 或者 lunch 命令行报出 command not found 错误;
-- 解决方案 : 确保你在 ~/android/system 目录中执行了 source build/envsetup.sh 命令;
内存不足错误排除 :
-- 出现没有足够内存相关错误, 如下 :
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 命令, 再次尝试编译过程;
-- 虚拟机内存不足 : 如果没有任何报错就中断了, 可能是你编译用的虚拟机内存不足, 重新为虚拟机分配内存即可;
没有 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 个文件, 将文件路径修改完毕即可完成文件提取过程, 此时编译就没问题了;
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
文件路径错误 :
-- 错误信息 :
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/ 目录中;
文件路径错误 :
-- 错误信息 :
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/ 目录中;
没有文件错误 :
-- 错误信息 :
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 流程 :
-- 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
相关下载链接 :
-- 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) 可编译源码下载地址 : ;
【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
标签:
原文地址:http://blog.csdn.net/shulianghan/article/details/51592930