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
等组件)。
- 移除相机功能:需修改