解决一加9编译LineageOS源码breakfast时Cannot locate config makefile for product lineage_lemonade报错问题

目录

一、问题说明

1. 报错内容

2. 关键信息

3. 报错截图

4. 报错原因

二、解决方法

1. 手工拉取设备树源码

2. 拷贝源码文件夹到device目录

3. 查看源码树依赖

4. 拉取源码树依赖

5. 循环补充依赖

总结


一、问题说明

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值