目录
一、问题说明
1. 报错内容
拉取LineageOS 22.2源码后,尝试执行 breakfast lemonade 命令时,会出现以下报错:
In file included from build/make/core/config.mk:406:
In file included from build/make/core/envsetup.mk:351:
build/make/core/product_config.mk:226: error: Cannot locate config makefile for product "lineage_lemonade".
09:43:28 dumpvars failed with: exit status 1
Device lemonade not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Failed to fetch data from GitHub
...
** Don't have a product spec for: 'lineage_lemonade'
** Do you have the right repo manifest?
2. 关键信息
报错内容中存在以下关键信息:
- Cannot locate config makefile for product "lineage_lemonade".
- Device lemonade not found.
- Don't have a product spec for: 'lineage_lemonade'
提示找不到 lemonade(oneplus9) 设备对应的编译配置文件
3. 报错截图
完整报错截图可参考:

4. 报错原因
在网上看到这么一句话:
由于LineageOS官方并未支持XXX型号的设备,因此我们需要手动配置设备树
啊?你官方Wiki的编译指南里可不是这么说的。。。
二、解决方法
1. 手工拉取设备树源码
在Github搜索 android_device_oneplus_lemonade 找到项目地址
执行命令 git clone https://github.com/LineageOS/android_device_oneplus_lemonade.git -b lineage-22.2 手工拉取源码:

2. 拷贝源码文件夹到device目录
先执行命令创建文件夹 mkdir ./device/oneplus/
再执行命令 mv ./android_device_oneplus_lemonade/ ./device/oneplus/lemonade 拷贝并重命名设备树源码文件夹到device目录
3. 查看源码树依赖
执行命令 cat ./device/lemonade/lineage.dependencies 查看依赖,在文件中看到如下内容:
[
{
"repository": "android_device_oneplus_sm8350-common",
"target_path": "device/oneplus/sm8350-common"
}
]
说明我们需要继续拉取 android_device_oneplus_sm8350-common 项目,拷贝到 ./device/oneplus/ 目录,并重命名为 sm8350-common
4. 拉取源码树依赖
执行命令 git clone https://github.com/LineageOS/android_device_oneplus_sm8350-common.git -b lineage-22.2 拉取依赖:

执行命令 mv ./android_device_oneplus_sm8350-common/ ./device/sm8350-common 拷贝并重命名
5. 循环补充依赖
执行命令 cat ./device/sm8350-common/lineage.dependencies 查看 sm8350-common 项目的依赖,在文件中看到如下内容:
[
{
"repository": "android_hardware_oplus",
"target_path": "hardware/oplus"
},
{
"repository": "android_kernel_oneplus_sm8350",
"target_path": "kernel/oneplus/sm8350"
}
]
即说明我们需要继续拉取 android_hardware_oplus 项目,拷贝到 ./hardware/ 目录,并重命名为 oplus,以及拉取 android_kernel_oneplus_sm8350 项目,拷贝到 ./kernel/oneplus/ 目录,并重命名为 sm8350
补充完上面2个依赖后,检查发现 ./hardware/oplus/ 及 ./kernel/oneplus/sm8350/ 目录下均不再存在依赖描述文件,即说明需要从Github上手工拉取的设备树源码已全部准备就绪
通过上面的步骤,该问题已得到解决,接下来正常提取设备闭源文件、完成编译即可
总结
作者因为很害怕,所以这里并没有对文章进行总结,但贴了一张Hanser的壁纸XD



被折叠的 条评论
为什么被折叠?



