lunch选择的版型与版型对应的配置文件

lunch选择的版型与版型对应的配置文件

  • 作者:吴思含(Witheart)
  • 更新时间:20241203

在Android构建系统中,lunch命令是用于选择目标产品(版型)的核心工具。它通过加载与版型相关的配置文件,设置环境变量,从而确保构建系统能够正确生成目标镜像。本文将结合rk3568_HW.mk文件的内容,详细说明lunch命令如何与版型对应。


1. lunch命令的作用

lunch命令的主要功能是:

  • 列出当前构建系统中可用的版型(产品)。
  • 根据用户选择的版型,设置构建所需的环境变量,例如TARGET_PRODUCT、TARGET_BUILD_VARIANT等。
  • 加载与版型相关的配置文件,包括设备树、内核配置、分区布局等。

例如,当执行以下命令时:

bash 复制代码
lunch rk3568_HW-userdebug

系统会根据rk3568_HW版型加载相关配置并设置环境变量。


2. lunch与版型的对应机制

2.1 版型名称的来源

在lunch菜单中显示的版型名称来源于AndroidProducts.mk文件中的定义。该文件通过PRODUCT_MAKEFILES变量列出了所有支持的版型。例如:

device/rockchip/rk356x/AndroidProducts.mk

这里的rk3568_HW.mk文件定义了rk3568_HW版型。lunch命令会根据该文件加载版型的配置。

2.2 加载rk3568_HW.mk文件

在rk3568_HW.mk文件中,定义了以下关键变量:

  • PRODUCT_NAME := rk3568_HW
  • PRODUCT_DEVICE := rk3568_HW
  • PRODUCT_MODEL := rk3568
  • PRODUCT_MANUFACTURER := rockchip

这些变量分别指定了产品名称、设备名称、型号和制造商信息。特别是PRODUCT_NAME和PRODUCT_DEVICE,它们是lunch命令与版型对应的核心字段。

2.3 通过include继承其他配置

rk3568_HW.mk文件通过include语句继承了多个配置文件,例如:

makefile 复制代码
include device/rockchip/rk356x/rk3568_HW/BoardConfig.mk
include device/rockchip/common/BoardConfig.mk

这些文件中可能包含设备树路径、内核配置、分区布局等信息。例如,在BoardConfig.mk中可能定义了:

makefile 复制代码
PRODUCT_KERNEL_DTS := rk3568-evb1-ddr4-v10
BOARD_PREBUILT_DTBIMAGE_DIR := kernel/arch/arm64/boot/dts/rockchip

这些信息告诉构建系统应该使用哪个设备树文件以及其路径。


3. 环境变量的设置

当用户选择rk3568_HW-userdebug时,lunch命令会设置以下环境变量:

  • TARGET_PRODUCT=rk3568_HW
  • TARGET_BUILD_VARIANT=userdebug
  • TARGET_DEVICE=rk3568_HW

这些变量将决定构建系统加载哪些配置文件。例如:

  • TARGET_PRODUCT会指向rk3568_HW.mk文件。
  • TARGET_DEVICE会用于定位设备相关的目录(如device/rockchip/rk356x/rk3568_HW)。

通过这些环境变量,构建系统能够准确找到设备树文件、内核配置等关键资源。

可选版型

sh 复制代码
56. rk3568_HW-user
57. rk3568_HW-userdebug
58. rk3568_NK-user
59. rk3568_NK-userdebug
60. rk3568_QY-user
61. rk3568_QY-userdebug
相关推荐
longxibo7 小时前
【AIBIZ低代码平台:能长出业务系统的平台】
android·低代码·rxjava
无奈笑天下7 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
Rabitebla10 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
坤坤子吖15 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
AI_Gump15 小时前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
星恒随风16 小时前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
少司府16 小时前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
无足鸟ICT17 小时前
【RHCA+】IO调度算法
linux·服务器
wacsii17 小时前
【Linux进程(四)】命令行参数与环境变量
linux·服务器
无奈笑天下17 小时前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库