@(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"。