編輯:關於Android編程
本文操作手機平台 : 小米4 ;編譯平台 : Ubuntu 14.04 LTS 虛擬機,使用CyanogenMod 源碼編譯ROM。
手機的兩種模式: 在下面有詳細的圖片示例;
--Recovery 模式:音量鍵增加 + 電源鍵, 長按上述組合鍵, 看到 "MI" 的 LOGO 後即進入 Recovery 模式;
--Fastboot 模式:音量鍵減小 + 電源鍵, 長按上述組合鍵, 看到 "FASTBOOT" 後, 即 進入 FASTBOOT 模式;
CyanogenMod 官方資料:
--硬件: 小米4;
--小米4 的 CyanogenMod 源碼編譯教程:https://wiki.cyanogenmod.org/w/Build_for_cancro, 主要介紹了 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 官方提供的教程 : https://wiki.cyanogenmod.org/w/Install_CM_for_cancro;
手機的兩種模式 :
-- Recovery 模式 : 音量鍵增加 + 電源鍵, 關機狀態下長按上述組合鍵, 看到 "MI" 的 LOGO 後即進入 Recovery 模式;
-- Fastboot 模式 : 音量鍵減小 + 電源鍵, 關機狀態下長按上述組合鍵, 看到 "FASTBOOT" 後, 即 進入 FASTBOOT 模式;
-- TeamWin Recovery 圖片 :
-- CyanogenModRecovery 模式圖片 :
-- 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. 沒有序列號 : 如果你沒有看到設備序列號, 反而看到 "
-- 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;
硬件需求 :
-- 手機需求: 小米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 installbison 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 installg++-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
--安裝上述軟件包: 使用 sudoapt-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;
--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
--安裝命令: sudoapt-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 installbison 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 installg++-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 installg++-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 "[email protected]" , 設置用戶 git config --global user.name "Shuliang Han";
octopus@octopus:~/android/system$ git config --global user.email "[email protected]" octopus@octopus:~/android/system$ git config --global user.name "Shuliang Han"
連接 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_Main(sys.argv[1:]) File "/home/octopus/android/system/.repo/repo/main.py", line 507, in _Main result = repo._Run(argv) or 0 File "/home/octopus/android/system/.repo/repo/main.py", line 180, in _Run result = cmd.Execute(copts, cargs) File "/home/octopus/android/system/.repo/repo/subcmds/init.py", line 395, in Execute self._ConfigureUser() File "/home/octopus/android/system/.repo/repo/subcmds/init.py", line 289, in _ConfigureUser name = self._Prompt('Your Name', mp.UserName) File "/home/octopus/android/system/.repo/repo/project.py", line 703, in UserName self._LoadUserIdentity() File "/home/octopus/android/system/.repo/repo/project.py", line 716, in _LoadUserIdentity u = self.bare_git.var('GIT_COMMITTER_IDENT') File "/home/octopus/android/system/.repo/repo/project.py", line 2650, in runner p.stderr)) error.GitError: manifests var: *** Please tell me who you are. Run git config --global user.email "[email protected]" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'octopus@octopus.(none)')
-- 錯誤處理 3 :
octopus@octopus:~/android/system$ git config --global user.email "[email protected]" octopus@octopus:~/android/system$ git config --global user.name "Shuliang Han"
完整的執行過程 - 終端輸出:
gpg: 鑰匙環‘/home/octopus/.repoconfig/gnupg/secring.gpg’已建立 gpg: 鑰匙環‘/home/octopus/.repoconfig/gnupg/pubring.gpg’已建立 gpg: /home/octopus/.repoconfig/gnupg/trustdb.gpg:建立了信任度數據庫 gpg: 密鑰 920F5C65:公鑰“Repo Maintainer”已導入 gpg: 密鑰 692B382C:公鑰“Conley Owens ”已導入 gpg: 合計被處理的數量:2 gpg: 已導入:2 (RSA: 1) Get https://gerrit.googlesource.com/git-repo/clone.bundle ... A new repo command ( 1.22) is available. ... You should upgrade soon: cp /home/octopus/android/system/.repo/repo/repo /usr/bin/repo Get https://github.com/CyanogenMod/android.git % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0 curl: (22) The requested URL returned error: 404 Not Found Server does not provide clone.bundle; ignoring. remote: Counting objects: 3845, done. remote: Total 3845 (delta 0), reused 0 (delta 0), pack-reused 3845 接收對象中: 100% (3845/3845), 1.26 MiB | 58.00 KiB/s, done. 處理 delta 中: 100% (1311/1311), done. 來自 https://github.com/CyanogenMod/android * [新分支] cm-10.1 -> origin/cm-10.1 * [新分支] cm-10.2 -> origin/cm-10.2 * [新分支] cm-11.0 -> origin/cm-11.0 * [新分支] cm-12.0 -> origin/cm-12.0 * [新分支] cm-12.1 -> origin/cm-12.1 * [新分支] cm-13.0 -> origin/cm-13.0 * [新分支] cm-7.0.0 -> origin/cm-7.0.0 * [新分支] cm-7.0.1 -> origin/cm-7.0.1 * [新分支] cm-7.0.2.1 -> origin/cm-7.0.2.1 * [新分支] cm-7.0.3 -> origin/cm-7.0.3 * [新分支] cm-9.1.0 -> origin/cm-9.1.0 * [新分支] eclair -> origin/eclair * [新分支] froyo -> origin/froyo * [新分支] froyo-stable -> origin/froyo-stable * [新分支] gb-release-7.2 -> origin/gb-release-7.2 * [新分支] gingerbread -> origin/gingerbread * [新分支] gingerbread-release -> origin/gingerbread-release * [新分支] ics -> origin/ics * [新分支] ics-release -> origin/ics-release * [新分支] jellybean -> origin/jellybean * [新分支] jellybean-stable -> origin/jellybean-stable * [新分支] mr1.1-staging -> origin/mr1.1-staging * [新分支] shipping/cm-11.0 -> origin/shipping/cm-11.0 * [新分支] stable/cm-10.2 -> origin/stable/cm-10.2 * [新分支] stable/cm-11.0 -> origin/stable/cm-11.0 * [新分支] stable/cm-11.0-XNF8Y -> origin/stable/cm-11.0-XNF8Y * [新分支] stable/cm-11.0-XNF9X -> origin/stable/cm-11.0-XNF9X * [新分支] stable/cm-11.0-XNG2S -> origin/stable/cm-11.0-XNG2S * [新分支] stable/cm-11.0-XNG3C -> origin/stable/cm-11.0-XNG3C * [新分支] stable/cm-12.0-YNG1I -> origin/stable/cm-12.0-YNG1I * [新分支] stable/cm-12.0-YNG1T -> origin/stable/cm-12.0-YNG1T * [新分支] stable/cm-12.0-YNG1TA -> origin/stable/cm-12.0-YNG1TA * [新分支] stable/cm-12.0-YNG3C -> origin/stable/cm-12.0-YNG3C * [新分支] stable/cm-12.0-YNG4N -> origin/stable/cm-12.0-YNG4N * [新分支] stable/cm-12.1-YOG3C -> origin/stable/cm-12.1-YOG3C * [新分支] stable/cm-12.1-YOG4P -> origin/stable/cm-12.1-YOG4P * [新分支] stable/cm-12.1-YOG7D -> origin/stable/cm-12.1-YOG7D * [新分支] stable/cm-13.0-ZNH0E -> origin/stable/cm-13.0-ZNH0E * [新分支] stable/cm-13.0-ZNH2K -> origin/stable/cm-13.0-ZNH2K * [新分支] staging/cm-12.0-caf -> origin/staging/cm-12.0-caf * [新分支] staging/cm-12.1 -> origin/staging/cm-12.1 * [新分支] staging/cm-13.0+r22 -> origin/staging/cm-13.0+r22 * [新分支] themes-exp -> origin/themes-exp * [新tag] cm-10.1-M1 -> cm-10.1-M1 * [新tag] cm-10.1-M2 -> cm-10.1-M2 * [新tag] cm-10.1-M3 -> cm-10.1-M3 * [新tag] cm-10.1.0 -> cm-10.1.0 * [新tag] cm-10.1.0-RC1 -> cm-10.1.0-RC1 * [新tag] cm-10.1.0-RC2 -> cm-10.1.0-RC2 * [新tag] cm-10.1.0-RC3 -> cm-10.1.0-RC3 * [新tag] cm-10.1.0-RC4 -> cm-10.1.0-RC4 * [新tag] cm-10.1.0-RC5 -> cm-10.1.0-RC5 * [新tag] cm-10.1.1 -> cm-10.1.1 * [新tag] cm-10.1.2 -> cm-10.1.2 * [新tag] cm-10.1.3 -> cm-10.1.3 * [新tag] cm-10.1.3-RC1 -> cm-10.1.3-RC1 * [新tag] cm-10.1.3-RC2 -> cm-10.1.3-RC2 * [新tag] cm-10.2-M1 -> cm-10.2-M1 * [新tag] cm-10.2.0 -> cm-10.2.0 * [新tag] cm-10.2.1 -> cm-10.2.1 * [新tag] cm-10.2.1.1 -> cm-10.2.1.1 * [新tag] cm-11.0-XNPH05Q-bacon-5229c4ef56 -> cm-11.0-XNPH05Q-bacon-5229c4ef56 * [新tag] cm-11.0-XNPH05Q-tomato-9828f8e9cc -> cm-11.0-XNPH05Q-tomato-9828f8e9cc * [新tag] cm-11.0-XNPH22R-bacon-03d77315ea -> cm-11.0-XNPH22R-bacon-03d77315ea * [新tag] cm-11.0-XNPH25R-bacon-d22b777afa -> cm-11.0-XNPH25R-bacon-d22b777afa * [新tag] cm-11.0-XNPH30O-bacon-4f280f505a -> cm-11.0-XNPH30O-bacon-4f280f505a * [新tag] cm-11.0-XNPH33R-bacon-3628510d76 -> cm-11.0-XNPH33R-bacon-3628510d76 * [新tag] cm-11.0-XNPH44S-bacon-5fa8c79c0b -> cm-11.0-XNPH44S-bacon-5fa8c79c0b * [新tag] cm-5.0.6 -> cm-5.0.6 * [新tag] cm-5.0.7 -> cm-5.0.7 * [新tag] cm-5.0.7-ds -> cm-5.0.7-ds * [新tag] cm-6.0.0 -> cm-6.0.0 * [新tag] cm-6.0.0-rc1 -> cm-6.0.0-rc1 * [新tag] cm-7.0.0 -> cm-7.0.0 * [新tag] cm-7.0.1 -> cm-7.0.1 * [新tag] cm-7.0.2.1 -> cm-7.0.2.1 * [新tag] cm-7.0.3 -> cm-7.0.3 * [新tag] cm-7.1.0 -> cm-7.1.0 ... A new repo command ( 1.22) is available. ... You should upgrade soon: cp /home/octopus/android/system/.repo/repo/repo /usr/bin/repo Your identity is: Shuliang Han If you want to change this, please re-run 'repo init' with --config-name Testing colorized output (for 'repo diff', 'repo status'): black red green yellow blue magenta cyan white bold dim ul reverse Enable color display in this user account (y/N)? y repo has been initialized in /home/octopus/android/system
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.
獲取預置應用:
--進入指定目錄: 執行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 包安裝;
前言在我們的項目中,我們幾乎天天和一些固定的代碼打交道,比如在Activity中你要寫findViewById(int)方法來找到控件,然而這樣子的代碼對於一個稍微有點資
1,基本環境准備:安裝JDK1.5以上,Eclipse3.3以上版本.(MyEclipse也可以),筆者安裝了JDK1.6和MyEclipse 8.6。JDK1.6MyE
本文是我的《Android音頻開發》系列的第七篇文章,上一篇文章總整體上介紹了 Android OpenSL ES API 的基本概況,告訴了大家這個框架有什麼特性,可以
一、Android Camera可以做哪些?1、功能拍攝相片 視頻錄制 取景器(掃描類應用,如人臉識別,名片識別,條形碼識別)2、根據Camera API實現自己的拍照程
一直使用Eclipse環境開發Android,也嘗鮮使用過Android