cm13编译中的local manifest写法
来源:互联网 发布:淘宝过了售后期怎么办 编辑:程序博客网 时间:2024/05/22 17:45
转载注明出处:
背景
cm13官方支持小米3W,最近就想自己做rom编译,刷到小米3W上,参考网上的编译教程。
ps:
CyanogenMod的官网www.cyanogenmod.org已经关闭了,新的官网地址为https://www.lineageos.org/
问题
同步完cm-13的代码后,执行
source build/envsetup.shbreakfast cancro
发现报错
buildbot@085008b6fe59:~/android$ breakfast cancroincluding vendor/cm/vendorsetup.shbuild/core/product_config.mk:234: *** Can not locate config makefile for product "cm_cancro". Stop.Device cancro not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).Found repository: android_device_xiaomi_cancroDefault revision: cm-13.0Checking branch infoTraceback (most recent call last): File "build/tools/roomservice.py", line 258, in <module> result = json.loads(urllib.request.urlopen(githubreq).read().decode()) File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen return _opener.open(url, data, timeout) File "/usr/lib/python2.7/urllib2.py", line 410, in open response = meth(req, response) File "/usr/lib/python2.7/urllib2.py", line 523, in http_response 'http', request, response, code, msg, hdrs) File "/usr/lib/python2.7/urllib2.py", line 448, in error return self._call_chain(*args) File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain result = func(*args) File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)urllib2.HTTPError: HTTP Error 403: Forbiddenbuild/core/product_config.mk:234: *** Can not locate config makefile for product "cm_cancro". Stop.** Don't have a product spec for: 'cm_cancro'** Do you have the right repo manifest?
网上编译教程中倒是提到了这里可能报错:
Different maintainers setup their device inheritance rules differently. Some require a vendor directory to be populated before breakfast will even succeed. If you receive an error here about vendor makefiles, then jump down to the next section Extract proprietary blobs. The first portion of breakfast should have succeeded at pulling in the device tree and the extract blobs script should be available. After completing that section, you can rerun breakfast cancro
但是人家也说了,first portion of breakfast should have succeeded at pulling in the device tree,而且下一步的操作Extract proprietary blobs,需要用到device/xiaomi/cancro下的extract-files.sh脚本,我这里执行完breakfast后,并没有看到相应的device/xiaomi/cancro目录。查看另外一个教程,里面提到了一个LocalManifest文件
下载设备相关源码 :
– 步骤作用 : 该步骤下载 小米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) 页面;
以及另外一篇文章
6.添加小米4C专用源码同步地址
mkdir ~/android/cm13/.repo/local_manifests
gedit ~/android/cm13/.repo/local_manifests/local_manifests.xml
也就是说我应该在.repo的local_manifests路径下创建local_manifests.xml文件,文件的内容是机型对应的源码信息。但是这里的文件内容,即上面所说的cm.dependencies中的代码仓库,应该去哪里找呢?
解决方法
在尝试了各种搜索,却只能找到一些其他机型的local_manifests.xml,最接近的也才是小米4C,并没有自己想要的小米3W的local_manifest.xml文件。
转机出现在搜索cm.dependencies,发现很多工程里有这个文件。再回去看CyanogenMod github中的项目android_device_xiaomi_cancro,里面也有这个文件
[ { "repository": "android_device_qcom_common", "target_path": "device/qcom/common" }, { "repository": "android_kernel_xiaomi_cancro", "target_path": "kernel/xiaomi/cancro" }]
到这里就清晰了,小米3W的local_manifests.xml应该包含
android_device_xiaomi_cancroandroid_device_qcom_commonandroid_kernel_xiaomi_cancro
三个工程。
最终的文件为:
<?xml version="1.0" encoding="UTF-8"?><manifest> <project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-13.0" /> <project name="CyanogenMod/android_device_xiaomi_cancro" path="device/xiaomi/cancro" remote="github" revision="cm-13.0" /> <project name="CyanogenMod/android_kernel_xiaomi_cancro" path="kernel/xiaomi/cancro" remote="github" revision="cm-13.0" /></manifest>
参考
【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
CM13 安卓6.0.1编译教程(以小米4C为例)
How To Build CyanogenMod For Xiaomi Mi 3, Mi 4 (“cancro”)
- cm13编译中的local manifest写法
- CM13编译错误解决
- Android local manifest
- 关于 MANIFEST.MF 写法
- MANIFEST.MF写法.txt
- manifest的写法。
- Ubuntu 14.04 编译Oneplus One Bacon CM13.0
- cm12级cm13源码下载、环境搭建及编译
- Android6.0/CM13源码编译笔记(一)
- cm13 编译过程中遇到的几个问题及解决方法
- ubuntu16.04 配置CM13编译环境的几个操作
- 关于 jar包中MANIFEST.MF 写法
- 关于 jar包中MANIFEST.MF 写法
- 打包jar的MANIFEST.MF的写法
- java中的manifest文件格式
- manifest中的 android:name
- 获得manifest中的数据
- Manifest中的Permission
- wpa_supplicant demo 分析
- 【第6章 循环】while语句
- 寻找数组中的逆序对
- 博客更新扉页
- day32_hibernate配置文件
- cm13编译中的local manifest写法
- shell 文件内容替换 sed用法
- SpringMVC
- 动态分配的顺序线性表的十五种操作—C语言实现
- 排序之希尔排序
- 分布式应用共享session
- 基于socket的简单tcp客户端与服务端程序
- JCenter下载太慢?教你修改Maven仓库地址为国内镜像
- 208. Implement Trie (Prefix Tree)