build文件夹下面的主要配置文件
四个文件(handheld_system.mk、handheld_product.mk、handheld_system_ext.mk、handheld_vendor.mk)均为 Android 手持设备(手机/平板)的核心编译配置文件,分别对应不同系统分区和功能维度。:
| 配置文件 | 对应分区 | 核心作用 | 关键内容 | 典型组件/配置示例 |
|---|---|---|---|---|
handheld_system.mk | system(系统分区) | 定义手持设备 system 分区的核心组件,确保系统基础功能(如交互、服务)正常运行。 | 通过 PRODUCT_PACKAGES 声明必装应用、服务、工具和库;通过 PRODUCT_COPY_FILES 拷贝系统配置文件。 | - 应用:Settings、SystemUI、Camera- 服务: Bluetooth、Telecom(通信)、cameraserver- 工具: screenrecord(录屏)- 配置: audio_effects.conf(音频效果) |
handheld_product.mk | 无特定分区(产品定义) | 定义手持设备的产品属性和功能范围,是构建系统的“总开关”。 | 通过 inherit-product 继承基础配置(如 handheld_system.mk);通过 PRODUCT_FEATURES 声明设备支持的功能(如 camera、wifi)。 | - 特性:bluetooth、telephony(电话功能)、sensor(传感器)- 设备类型: PRODUCT_CHARACTERISTICS := default(默认手持设备) |
handheld_system_ext.mk | system_ext(系统扩展分区) | 定义厂商定制的系统扩展组件,用于增强原生系统功能(不影响核心逻辑)。 | 通过 PRODUCT_PACKAGES 声明厂商扩展服务、库和工具。 | - 扩展服务:SystemExtService(厂商系统服务)- 定制库: libsystem_ext_utils(扩展工具库)- UI 扩展: CustomSystemUIExtensions(状态栏定制) |
handheld_vendor.mk | vendor(厂商分区) | 定义硬件相关的驱动和配置,确保设备硬件(如相机、屏幕)正常工作。 | 通过 PRODUCT_PACKAGES 声明硬件驱动(HAL)、厂商私有服务;通过 PRODUCT_VENDOR_PROPERTIES 配置硬件参数。 | - 驱动:vendor.camera.hal(相机HAL)、libvendor_display(显示驱动)- 硬件参数: ro.vendor.camera.model(相机型号)、ro.vendor.display.resolution(屏幕分辨率) |
核心关系
- 依赖链:
handheld_product.mk继承handheld_system.mk、handheld_system_ext.mk等,组合成完整的产品配置。 - 分区协作:
system分区提供原生核心功能,system_ext提供厂商扩展,vendor分区提供硬件驱动,共同构成可运行的手持设备系统。 - 裁剪场景:
- 移除相机功能:需修改
handheld_system.mk(删除相机应用/服务)和handheld_vendor.mk(删除相机驱动)。 - 禁用电话功能:需修改
handheld_product.mk(移除telephony特性)和handheld_system.mk(删除Telecom等组件)。
- 移除相机功能:需修改
