@(Android研究)[android|CyanogenMod]android
[TOC]git
下文中無特殊說明時CM表明CyanogenMod的縮寫。 下文中說的「設備」均指Android設備。github
proprietary-blobs.txt文件的路徑:device/lge/hammerhead/proprietary-blobs.txtshell
參考資料: How To Build CyanogenMod For Google Nexus 5 ("hammerhead")app
本文中只列出與上面的參考資料中不一樣的地方,因此須要將上面的參考資料與本文結合起來閱讀。ui
repo init -u git://github.com/CyanogenMod/android.git -b cm-13.0code
在參考資料中有這麼一段話:ip
Note: Your device should already be running a build of CyanogenMod for the branch you wish to build for the extract-files.sh script to function properly.
這段話的意思是,若是你要爲Nexus5設備構建cm13.0的rom,你必須先在Nexus5設備中安裝cm13.0的rom。開發
仔細檢查extract-files.sh在終端中的輸出,由於這裏面可能包含一些執行時出錯的信息,一旦有錯誤信息就要修復錯誤,修復錯誤的思路請參考「問題解決」一節。rem
執行./extract-files.sh腳本時可能會出現下面的錯誤:
ERROR: Pull file /system/app/shutdownlistener.apk from a device running CyanogenMod ERROR: Pull file /system/app/TimeService.apk from a device running CyanogenMod
這是因爲指定的apk文件路徑不對,要從設備上拉取的文件列表記錄在"proprietary-blobs.txt"中。
解決辦法
找到"proprietary-blobs.txt"文件中的下面兩行:
-/system/app/shutdownlistener.apk -/system/app/TimeService.apk
更改成:
-/system/app/shutdownlistener/shutdownlistener.apk -/system/app/TimeService/TimeService.apk
執行./extract-files.sh腳本時可能會出現下面的錯誤:
remote object '/system/bin/bridgemgrd' does not exist
這個文件在設備上是存在的。這個文件在設備上的權限是:
-rwxr-xr-x 1 root shell 46900 2008-12-31 21:00 bridgemgrd
能夠發現other用戶是能夠讀取這個文件的,可是奇怪的是沒法經過adb pull命令拉取。
解決辦法
而後就再次adb pull拉取設備/system/bin目錄中的文件將會成功。
執行./extract-files.sh腳本時可能會出現下面的錯誤:
ERROR: Pull file /system/priv-app/OmaDmclient/OmaDmclient.apk from a device running CyanogenMod ERROR: Pull file /system/priv-app/SprintHiddenMenu/SprintHiddenMenu.apk from a device running CyanogenMod
解決辦法
找到"proprietary-blobs.txt"文件中的下面兩行:
-/system/priv-app/OmaDmclient/OmaDmclient.apk -/system/priv-app/SprintHiddenMenu/SprintHiddenMenu.apk
更改成:
-/system/app/OmaDmclient/OmaDmclient.apk -/system/app/SprintHiddenMenu/SprintHiddenMenu.apk
當遇到這個問題時只改"proprietary-blobs.txt"文件中的內容是不夠的。找到"device/lge/hammerhead/setup-makefiles.sh"文件,將該文件中相應的"priv-app"更改成"app"。找到"vendor/lge/hammerhead/proprietary/Android.mk"文件,將該文件中相應的"priv-app"更改成"app"。