04 · 功能差异与对抗验证

一、车型差异速查矩阵(核心)

功能MX11Kunlun<E4U3Kunlun≥E4U3其他(Lemans/Modena)海外ECE海外非ECE
电动门分组配置126配置126配置126配置126配置126配置126
童锁自定义(HyperTask)✗(<26RC11)/✓(≥)✓(≥26RC11)
前备箱高度限值✓(75=POWER_RELEASE_CINCH)
后备箱高度限值✓(112)
加油口增程才显示增程增程增程增程增程
调光天幕配置配置配置配置隐藏(lemans_ece)配置
迎宾灯效入口隐藏(lemans_ece)
个性锁车音效隐藏(海外)隐藏(海外)
天窗遮阳帘(旧)配置E4U3前配置配置配置
后排遮阳帘(新)配置E4U3起配置配置配置
车顶帐篷入口(旧)112=LIFTERE4U3前112=LIFTER
升降车顶大组件(新)112=LIFTERE4U3起112=LIFTER
升降顶安全锁+密码随帐篷随帐篷随大组件
锁车降悬架配置+E4U3+

关键差异点

  • Kunlun E4U3 是分水岭:旧「天窗遮阳帘+车顶帐篷入口」→ 新「后排遮阳帘+升降车顶大组件+锁车降悬架」
  • MX11/Kunlun 才有电动前后备箱高度限值
  • 增程式 才有加油口
  • 海外 隐藏个性锁车音效(无 toybox);ECE 额外隐藏调光天幕+迎宾灯效入口

二、配置字编号速查

编号key控制
112micar_sun_roof/micar_power_operated_tailgate升降顶/天幕/电动尾门
126micar_opening_closing_door电动门(ELECTRIC_4_DOORS)
132micar_config_digit数字钥匙(UWB)
75micar_config_digitfront_hatch_cover前备箱类型(MANUAL_MECHANICAL/MANUAL_POWER/POWER_RELEASE_CINCH)
146car_config_welcome_carpet_lamp迎宾毯
car_config_power_door_handle门把手(POWER_DOOR_HANDLE_ENABLE)
EASY_ENTRY_FUNCTION_CONFIG便利进出/降悬架

三、getPreferenceKeyResIdsToRemove 14 条规则

1. 非增程 → 加油口整组
2. !isKunLun || <26RC11 → 童锁自定义
3. isOverseasRegion → 个性锁车音效
4. 调光天幕: ASM 全不支持→整组; 单不支持→单分区项; 双不支持→双分区项
5. 遮阳帘: !=ELECTRIC→两组全删; ELECTRIC但<E4U3→删后排; 否则→删天窗(旧)
6. 后备箱: 按配置112+车型+数字钥匙裁剪
7. 前备箱: 按配置75+车型+数字钥匙; MANUAL_POWER_RELEASE/POWER_RELEASE_CINCH 二选一
8. !isElectricDoorSupported → 电动门整组
9. isElectricDoor || DoorCinch==UNKNOW → 自动吸合(反直觉)
10. POWER_DOOR_HANDLE_ENABLE != getPowerHandleConfig → 门把手内翻
11. 吸合+把手都删 → 车门动作整组
12. !isSunRoofSupported || <E4U3 → 车顶帐篷整组(含安全锁/密码)
13. !isSunRoofSupported || >E4U3 → 升降车顶大组件
14. !isAutomaticSuspensionLowering || !>E4U3 → 锁车降悬架

12/13 互斥:E4U3 前显示车顶帐篷入口(旧),E4U3 后显示升降车顶大组件(新)。

四、CarConfigManager 5 方法

方法配置字控制
getPropulsionTypeConfig()动力类型!=EXTENDED_RANGE_ELECTRIC 隐藏加油口
isWindowASMConfigEnable()DIMMING_ROOF/ELECTROCHROMIC调光天幕单分区
isWindowDualZoneASMConfigEnable()FRONT_AND_REAR_ZONE_SMART_DIMMING双分区天幕+同步
getRoofSunShadeConfig()SunroofSunshadeTypeCfg==ELECTRIC 显示遮阳帘
isAutomaticSuspensionLoweringEnable()EASY_ENTRY_FUNCTION_CONFIG锁车降悬架

五、DeviceUtil / VehicleStageUtilsKt 判断

判断用途
DeviceUtil.isKunLun()童锁自定义、车门水印、迎宾灯 widget、E4U3 分水岭
DeviceUtil.isOverseasRegion()个性锁车音效、DoorUnLockActivity 状态栏
MiCarSettings.isMX11()/isKunLun()前后备用高度限值(需 MX11||Kunlun)
isBeforeVehicleStage(26RC11)童锁自定义
isBeforeKunlunVehicleStage(E4U3)天窗遮阳帘(旧)/车顶帐篷入口(旧)
isAfterKunlunVehicleStage(E4U3)升降车顶大组件(新)/锁车降悬架

License 未使用(与 Light 不同,Light 用 LicenseControlMgr 控转向灯)。功能可见性全靠车型+配置字+阶段+区域。

六、hiddenFeatures(2 处,lemans_ece)

key含义
pk_lock_smart_sun_roof(调光天幕组)整组(透光度+同步)
pk_settings_lock_suggestion_category(内链设置组)含迎宾灯效入口

机制:"lemans_ece".equals(hiddenFeatures) && MiCarSettings.isEce()rom.build.region==ECE_REGION)。

七、不可用原因机制(lazy 拉取)

设计模式:点击 disabled 控件时才读 reason 信号when 映射 Toast/Dialog。详见《02-信号梳理》第七节(13 个 reason 类)。

关键:盖板异常(HOOD_REAR_ADJUST_EXCEPTION)13 种、遮阳帘不可用 7 种、调光天幕 4 种、升降车顶 3 类原因信号。

八、对抗验证记录(Lock 模块发现)

#常见误解 / 偏差源码真相
入口 Fragment 在 lock 包VehicleLockSettingsFragment + 3 核心 Controller 在 vehicle 包
迎宾光毯/尾翼在 Lock XML✅ 定义在 Lock,被 Light 模块 XML 引用(跨模块复用)
升降顶安全锁是车信号RoofSafetyLockControllerSettings.Global(非车信号)+ MIS
DoorUnLockActivity 用户点击触发✅ 由 Intent 拉起(外部系统,车门解锁失败时),独立于 Controller
右栏 Controller 有逻辑空壳(仅 TAG)
两个 Toggle Controller 同类✅ VehicleDoorToggleCtrl(4门电动动作) vs VehicleLockToggleCtrl(童锁+车窗锁状态)
门吸逻辑:电动门才显示反直觉:电动门支持或 UNKNOW 时反而隐藏(避免与电动门重复)
调光天幕是滑杆Tab 两档(LEVEL1/LEVEL5),500ms 延时校验
SUN_SHADE_CURRENT_POSN 是当前位置❌ 命名陷阱,底层是 SUNSHADE_TARGET_POSITION(目标位置)
遮阳帘行车不可调无速度保护(行车可调),仅车顶帐篷有 P 挡保护
COVER_STATE 是持续信号回弹 1000ms(脉冲式控制)
升降车顶信号少Body.POWER_LIFTING_ROOF 系列 18 个信号(之前未列出)
LockCtrl 是单一域跨 6 真实域聚合(Door/Hvac/Window/Mirror/Body/Light)
锁车折叠在 Lock UI✅ MIRROR_FOLD_WHEN_LOCK 在 LockCtrl 域,但 UI 在 VehicleBody 模块
校准一键完成必须长按校准按钮(安全保护,防卡阻损坏)

九、可信度

结论可信度
11 Category XML、40+ Controller、继承层级图🟢 代码结构 Agent
3 Ctrl 域 + 底层直引 + POWER_LIFTING_ROOF 18 信号 + 枚举🟢 信号梳理 Agent + 源码核对
5 类顶部覆盖物 + 校准流程 + 车顶密码🟢 遮阳帘 Agent + 代码结构 Agent 互证
车型矩阵 + 14 裁剪规则 + 配置字 + 不可用原因🟢 功能差异 Agent

Lock 模块 4 个 Agent 全部成功,且与 VehicleBody/Light 的跨模块信号共享(MIRROR_FOLD_WHEN_LOCK、WelcomeCarpet)三方互证,可信度整体 🟢。