03 - YU7 车型与编译命令

维度:YU7 对应什么车型/lunch、dcd/xcd flavor 如何区分、整机怎么编译 核心文件:device/xiaomi/suiren/mibuild.shlunch_map.json


一、YU7 = suiren 车型

项目代号YU7
车型代号suiren
设备码n801
平台SM8150 / Auto8650
flavorXCD(新平台,非 DCD)

关键:整机源码里没有 “yu7” 目录,实际车型目录是 device/xiaomi/suiren/。lunch/build 都用 suiren


二、DCD vs XCD flavor

flavor全称TARGET_BOARD_SUFFIXregion适用
XCDCross/International China Device_gvmqcn/global/eu/eea新平台(YU7=suiren)
DCDDomestic 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.mkdevice/xiaomi/suiren/lunch_map.json

组件Lunch 选项
Product(常用)miproduct_suiren_native-userdebug / miproduct_suiren_cn-userdebug / miproduct_suiren_global-userdebug / miproduct_suiren_factory-userdebug
ODMmiodm_suiren_native-userdebug / miodm_suiren_cn-userdebug / miodm_suiren_global-userdebug / miodm_suiren_factory-userdebug
SSImissi_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)

参数说明

参数含义取值
-llunch 选项suiren-userdebug
-t编译目标full(完整含 super.img)/ system(仅分区)/ merge_super(合并)
-usku(region)cn(国内)/ global(海外)/ native(默认)
-jCPU 数默认自动
-f强制单编,不 merge ssi

五、sku ↔ region ↔ manifest 映射

-uproduct mk区域 manifestMiCarSettings 后缀
cnmiproduct_suiren_cn.mkcn/manifest.xml + cn/suiren.xml-xcd(通用 manifest.xml)
globalmiproduct_suiren_global.mkglobal/manifest.xml-global
nativemiproduct_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_mapdevice/xiaomi/suiren/lunch_map.json(n801→suiren)
Product AndroidProductsdevice/xiaomi/suiren/product/AndroidProducts.mk
native product mkdevice/xiaomi/suiren/product/native/miproduct_suiren_native.mk:11
编译入口mibuild.shmibuild.py
标准 envsetupbuild/envsetup.shmake/envsetup.sh