
TWRP编译及设备树报错解决合集
简介
此处为汇总一些常见的问题,可以使用Crtl+F进行关键字查询,回答有人工和AI回答。
TWRP编译
如果要构建vendor_boot构建标识BUILD_TARGET将recovery改为vendorboot
安卓10以上编译报错
In file included from build/make/target/product/telephony_vendor.mk:24:
device/alldocube/T1030M/device.mk:24: **error: **PRODUCT_STATIC_BOOT_CONTROL_HAL is obsolete. Use shared library module instead. See
解决方法:omni_device.mk或twrp_device.mk中的full_base_telephony.mk改为aosp_base.mk
无法克隆设备树

将仓库设置为公开
构建过程错误

解决方法:

1 | # Inherit some common TWRP stuff. |
替换成上面这个
安卓10编译报错

设备树生成器的问题
TARGET_SCREEN_DENSITY := 480
将480改为320
解决 TWRP 编译时报错 PRODUCT_STATIC_BOOT_CONTROL_HAL is obsolete 全流程
适用场景:基于 AOSP / Lineage / Omni 源码编译 TWRP(或其他 Recovery)时,出现
error: PRODUCT_STATIC_BOOT_CONTROL_HAL is obsolete. Use shared library module instead.
一、背景简介
在较新的 Android 构建系统(Android 11 及之后)中,Google 移除了 PRODUCT_STATIC_BOOT_CONTROL_HAL 这一变量,改用 共享库(shared library)方式来管理 Boot Control HAL。
如果你的设备配置 (device.mk) 里仍然写着这行,就会导致整个编译流程直接失败并抛出上述错误。
二、问题定位
编译日志中的关键提示(示例):
1 | device/alps/ls12_mt8797_wifi_64/device.mk:24: error: PRODUCT_STATIC_BOOT_CONTROL_HAL is obsolete. |
编译 TWRP 时提示 Device ossi not found 的原因与解决方案
在编译 Recovery时,个别人会遇到如下报错信息:
1 | Device ossi not found. Attempting to retrieve device repository from TeamWin Github (http://github.com/TeamWin). |
在TeamWin Github中没有找到设备树,看是否是设备名称填写错误。
设备树编译
设备树创建时报错 Property ro.product.first_api_level could not be found in build.prop 的原因与解决方案
1. ro.product.first_api_level
网友 @yunzimo 在使用设备树自动生成工具(如 sebaubuntu_libs)时遇到如下错误:
self.first_api_level = self.get_first_prop(FIRST_API_LEVEL)
File “/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/sebaubuntu_libs/libandroid/device_info.py”, line 179, in get_first_prop
raise AssertionError(f’Property {props[0]} could not be found in build.prop’)
AssertionError: Property ro.product.first_api_level could not be found in build.prop
ro.product.first_api_level属性表示设备首次发布的 Android API 级别。- 该属性缺失,导致设备树生成工具无法正确识别设备 Android 版本信息。
解决方案
手动解包并补充 build.prop
进入手机/system/build.prop
编辑
build.prop文件查看ro.product.first_api_level后面的值在rec文件的
build.prop中添加缺失的属性:ro.product.first_api_level=29
这里的
29是 Android 10 的 API 级别,根据实际设备版本填写(Android 11 是 30,Android 12 是 31,Android 13 是 33)。
AssertionError: Property ro.product.system.device could not be found in build.prop
系统system/build.prop和vendor/build.prop的内容一起合并到/prop.default然后打包生成
- 感谢您的赞赏







