03 - YU7 车型与编译命令
维度:YU7 对应什么车型/lunch、dcd/xcd flavor 如何区分、整机怎么编译 核心文件:
device/xiaomi/suiren/、mibuild.sh、lunch_map.json
一、YU7 = suiren 车型
| 项 | 值 |
|---|---|
| 项目代号 | YU7 |
| 车型代号 | suiren |
| 设备码 | n801 |
| 平台 | SM8150 / Auto8650 |
| flavor | XCD(新平台,非 DCD) |
关键:整机源码里没有 “yu7” 目录,实际车型目录是
device/xiaomi/suiren/。lunch/build 都用suiren。
二、DCD vs XCD flavor
| flavor | 全称 | TARGET_BOARD_SUFFIX | region | 适用 |
|---|---|---|---|---|
| XCD | Cross/International China Device | 非 _gvmq | cn/global/eu/eea | 新平台(YU7=suiren) |
| DCD | Domestic China Device | _gvmq | 仅 cn | 老平台(msmnile/msm8996) |
判定在 vendor/micar/prebuilts/packages/Android.mk:7-42。YU7(suiren)是 SM8150/Auto8650 新平台 → XCD。
影响版本配置:XCD 的 MiCarSettings 用通用 manifest.xml(revision 带 -xcd);DCD 用 cn/watt.xml/cn/hertz.xml(带 -dcd)。
三、YU7(suiren)Lunch 选项
来源:device/xiaomi/suiren/{odm,product}/AndroidProducts.mk、device/xiaomi/suiren/lunch_map.json
| 组件 | Lunch 选项 |
|---|---|
| Product(常用) | miproduct_suiren_native-userdebug / miproduct_suiren_cn-userdebug / miproduct_suiren_global-userdebug / miproduct_suiren_factory-userdebug |
| ODM | miodm_suiren_native-userdebug / miodm_suiren_cn-userdebug / miodm_suiren_global-userdebug / miodm_suiren_factory-userdebug |
| SSI | missi_suiren_factory_only64-userdebug |
lunch_map.json(n801 → suiren)
{
"n801": {
"name": "suiren",
"native": {
"vendor": "mivendor_auto8650_native",
"odm": "miodm_suiren_native",
"ssi": "missi_auto_native_only64",
"product": "miproduct_suiren_native"
},
"factory": { ... }
}
}四、整机编译命令
方式一:mibuild.sh(推荐,小米整机工具)
cd /home/zbc/pangu/yu7
# 国内版(最常用)
./mibuild.sh -l suiren-userdebug -t full -u cn
# 海外版
./mibuild.sh -l suiren-userdebug -t full -u global
# 仅编译 system 分区(快)
./mibuild.sh -l suiren-userdebug -t system -u cn
# 编译后合并 super.img
./mibuild.sh -l suiren-userdebug -t merge_super -u cn方式二:标准 lunch/make
cd /home/zbc/pangu/yu7
source build/envsetup.sh
lunch miproduct_suiren_native-userdebug # 或 _cn / _global
make -j$(nproc)参数说明
| 参数 | 含义 | 取值 |
|---|---|---|
-l | lunch 选项 | suiren-userdebug |
-t | 编译目标 | full(完整含 super.img)/ system(仅分区)/ merge_super(合并) |
-u | sku(region) | cn(国内)/ global(海外)/ native(默认) |
-j | CPU 数 | 默认自动 |
-f | 强制单编,不 merge ssi |
五、sku ↔ region ↔ manifest 映射
-u | product mk | 区域 manifest | MiCarSettings 后缀 |
|---|---|---|---|
cn | miproduct_suiren_cn.mk | cn/manifest.xml + cn/suiren.xml | -xcd(通用 manifest.xml) |
global | miproduct_suiren_global.mk | global/manifest.xml | -global |
native | miproduct_suiren_native.mk | 默认 | -xcd |
YU7 的
cn/suiren.xml不覆盖 MiCarSettings,所以 cn 编译用通用manifest.xml:131的版本。
六、Product Include 链路
graph TD A["lunch miproduct_suiren_native-userdebug<br/>./mibuild.sh -l suiren-userdebug -t full -u cn"] --> B["device/xiaomi/suiren/product/native/miproduct_suiren_native.mk:11"] B --> C["device/micar/common/product/product_common.mk"] C --> D[":33 inherit products_product.mk"] C --> E[":44 PRODUCT_PACKAGES += MiCarSettingsRRO"] D --> F["products_product.mk:59<br/>PRODUCT_PACKAGES += MiCarSettings"] F --> G["/product/priv-app/MiCarSettings/"] E --> H["/product/overlay/MiCarSettingsRRO/"] style F fill:#90EE90 style G fill:#87CEEB
七、关键源码行号索引
| 内容 | 文件(yu7 根下) |
|---|---|
| YU7 车型目录 | device/xiaomi/suiren/ |
| lunch_map | device/xiaomi/suiren/lunch_map.json(n801→suiren) |
| Product AndroidProducts | device/xiaomi/suiren/product/AndroidProducts.mk |
| native product mk | device/xiaomi/suiren/product/native/miproduct_suiren_native.mk:11 |
| 编译入口 | mibuild.sh、mibuild.py |
| 标准 envsetup | build/envsetup.sh → make/envsetup.sh |