05 · 功能差异与对抗验证
一、车型功能矩阵(核心)
| 功能 | SU7(Watt) | SU7 Ultra(Hertz/MS11P) | LeMans-GT(Mach) | KunLun | MX11(Lemans) | Lux/Mann |
|---|---|---|---|---|---|---|
| Battle/赛道 app | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ |
| 安全考试入口 | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ |
| 直线竞速 CCP164 | CCP | 强制 true | CCP | CCP | CCP | CCP |
| 车内+车外声浪 | CCP | 强制 ✓ | CCP | CCP | CCP | CCP |
| 声浪风格屏蔽(逃生方案) | ✗ | ✗ | ✓(Mach) | ✗ | ✗ | ✗ |
| 双风格声浪(电音/轰鸣) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗(仅 Kepler) |
| 赛道文案 “_u” 变体 | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ |
| 扭矩分配自定义(AWD) | AWD | ✓ | ✓ | ✗(四驱也隐藏) | AWD | AWD |
| 定制能量回收+制动踏板感+阻尼经济挡 | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
| 转向手感大类 | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| 后视影像+自动后视 | ✗ | ✗ | ✗ | ✓(后排电视/投影) | ✗ | ✗ |
| Lemans 转向辅助 | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ |
| AVM 延迟关闭(一级页) | ✓ | ✓ | ✓ | ✗(移入子页) | ✓ | ✓ |
| SPORT_PLUS 主模式 | AWD | ✓(特化) | CCP | AWD | AWD | AWD |
| 地形模式 | ✗ | ✗ | ✗ | CCP | ✗ | ✗ |
| 弹射/大师/赛道/eLSD/ARS/ARD/防侧倾 | CCP | CCP | CCP | CCP | CCP | CCP |
Battle app 入口:
DeviceUtil.isBattleSettingsValid()=isMachDevice || isHertzDevice(仅 SU7 Ultra + LeMans-GT)。
二、CarConfigManager 17 方法
| 方法 | 控制 |
|---|---|
getPropulsionTypeConfig() | 能量模式(!=EXTENDED_RANGE_ELECTRIC 隐藏) |
isDragRacingEnable() | 直线竞速(MS11P 兜底 true) |
isLaunchModeEnable()/isBoostModeEnable() | 弹射/Boost 动效 |
isESEEnable() | 运动声浪全部 |
isEseInteriorAndExteriorEnable() | 车内+车外声浪(MS11P 强制) |
isDualStyleTypes() | 双风格声浪(仅 Kepler) |
isShieldMotionWave() | 声浪风格屏蔽(Kepler/Mach) |
isAntiRollEnabled() | 防侧倾(FULL_ACTIVE 悬架) |
isELSDEnable() | eLSD(ELSD_TYPE_CONFIG==WITH) |
isSupportSimulatedGearShift() | 模拟换挡(PADDLE_SHIFT==EQUIPPED) |
isSafeDrivingProtectionModeEnable() | 车主管理模式 |
isSupportTowMode() | 拖挂(CCP228==FULL_ELECTRIC_TOW_BAR) |
isSupportWadingMode() | 涉水(CCP!=NONE) |
isTransparencyModeEnabled() | 倒车通透(外部麦 EXTERIOR_3/4) |
getDamperTypeConfig() | 悬架阻尼(CDC/FULL_ACTIVE/DUAL_VALUE) |
isOwnerModeActive() | 车主模式实时(skipCache) |
getOwnerModeLimitBoost/Launch/BattleStatus | 车主模式限制(skipCache) |
三、MiCarSettings.isXxx 判断(30+ 方法)
车型:isMX11/isKunLun/isMS11P/isLeMansGT/isModena26A/isLuxOrMann
悬架:isSuspensionEnabled/isSuspensionHighGear/isSuspensionDampingEnable/isSuspensionDampingEconomicEnabled
配置:isCfgARSEnabled/isCfgARDEnable/isCfgPHudEnable/isBlindZoneWHudEnable
模式:isTerrainModeEnable/isOffRoadModeEnable/isHDCEnable/isMotionSicknessEnable/isEcoModeEnable/isWetEnable/isCarbRowEnable
动力:isContainSportPlusMode/getMainDrivingModeConfigs/isTransmissionDrivelineAllWheel/getTransmissionDriveline
赛道:isMasterSettingsEnable/isTrackSettingsEnable/getRacingModeConfigType
其他:isCustomEnergyRecoveryEnabled/isBrakePedalFeelEnabled/isRearTvConfigEnable/isProjectorEnable/isNarrowRoadWHudEnable/isEce
DeviceUtil 仅用 isKunLun() + isOverseasRegion()。
四、getPreferenceKeyResIdsToRemove 裁剪规则
DrivingSettingsFragment(74-273 行):车型三选一互斥(MS11P/Kunlun·LeMansGT/其他)、安全考试(仅 Ultra/GT)、制动踏板感(仅 Lux/Mann)、转向手感(仅 Kunlun)、弹射教程、能量模式(增程)、ARS/ARD(CCP)、声浪(4 段)、障碍物预警(license)、盲区(PHUD/WHUD)、DMS(海外/国内+license)、驾驶安全保护、后视影像(Kunlun)、模拟换挡(拨片)、AVM 延迟(Kunlun)。
CustomSteeringModeFragment(194-274 行):18 维度各自显隐(见《04》)。
五、hiddenFeatures=lemans_ece(ECE 隐藏)
| 隐藏项 |
|---|
| 悬架自动升高开关 |
| AVM 大类整体(延迟关闭/通透/窄路/障碍预警/后视/盲区) |
| DMS 大类整体(疲劳/分心,国内+海外) |
| 车速过高提醒 + 车主管理模式 + 内链 |
机制:"lemans_ece".equals(hiddenFeatures) && MiCarSettings.isEce()(rom.build.region==ECE_REGION)。
六、License 控制(仅 DMS + 泊车预警)
⚠️ 不用 LicenseControlMgr,用 MiCarLcsControlHelper + LicenseMaster。
| License ID | 控制 |
|---|---|
LICENSE_ID_SHORT_RANGE_OBSTACLE_WARNING(45) / LICENSE_ID_PAS_GLOBAL(45) | 近距离障碍物预警(OR) |
LICENSE_ID_FATIGUE_GLOBAL(49) | 海外疲劳检测 |
LICENSE_ID_DISTRACTION_GLOBAL(50) | 海外分心检测 |
LICENSE_ID_L2(55) | DMS L2 强标关闭二次确认 |
高性能功能(Battle/Track/Master/Drag/Launch/eLSD/ARS/ARD/AntiRoll)完全不受 License 控制,只受车型+CCP 控制。
七、不用 VehicleStageUtils(与 Lock 不同)
⚠️ Driving 模块 0 处使用 VehicleStageUtils/E4U3/阶段判断(与 Lock 模块不同!Lock 大量用 isBeforeKunlunVehicleStage(E4U3))。Driving 差异全靠车型+配置字,无阶段判断。
八、不可用原因 toast 文案变体
涉及 Battle 模式的不可用 toast,统一调 ConfigStringUtils.getTrackModeStringOrOrigin(origResId, uResId):根据是否 SU7 Ultra(Modena-U)选择原始文案还是 “_u” 变体。出现于 DriveModeUnavailableNotifyHelper(4 处)、SuspensionHeight(3 处)、RampAssist、CreepSpeed、SteeringMode、BrakingStrength、EnergyRecoveryModeHelper。
九、对抗验证记录(Driving 模块,最完整)
| # | 常见误解 / 偏差 | 源码真相 |
|---|---|---|
| ① | STEERING_MODE 是转向模式 | ❌ = Driving.DRIVE_MODE 驾驶模式总开关(90 次,命名陷阱) |
| ② | BRAKING_MODE 是制动模式 | ❌ = Energy.REGENERATION_MODE 能量回收(命名陷阱) |
| ③ | Driving 用 VehicleStageUtils/E4U3 | ❌ 0 处使用(与 Lock 不同!) |
| ④ | Driving 用 LicenseControlMgr | ❌ 用 MiCarLcsControlHelper;高性能功能完全不受 License |
| ⑤ | Driving 有 flavor 差异代码 | ❌ dcddif/xcddif/global 三目录全空,BuildConfig.FLAVOR 0 处用 |
| ⑥ | SpecialSteeringMode 是核心 Controller | ❌ 0 字节空文件!生效是 DriveModePreferenceController/DriveModeButtonIcon |
| ⑦ | BATTLE 是 toggle | ❌ BATTLE 是主驾驶模式的一个值,四驱支持扭矩分配 |
| ⑧ | LAUNCH 弹射有软件开关 | ❌ 仅教程(物理踏板触发) |
| ⑨ | Wade(地形)=WADING(涉水场景) | ❌ 两套独立机制 |
| ⑩ | MotionWave 是防晕车 | ❌ 模拟引擎声浪(走 AudioSettings 非 CarProperty),防晕车是 ANT_MTNSICK_MODE |
| ⑪ | 四驱就能自定义扭矩分配 | ❌ isTransmissionDrivelineAllWheel && !isKunLun(昆仑即使四驱也隐藏) |
| ⑫ | LeMans-GT 是 Lemans 基础版 | ✅ LeMans-GT = Mach = Lemans-9 顶级性能版(!= MX11 Lemans-Base) |
| ⑬ | SU7 Ultra = MS11 | ❌ SU7 Ultra = Hertz = MS11_P(MS11 是普通 SU7) |
| ⑭ | 直线竞速只需车型支持 | ❌ 四重门:账号+CTA+安全考试+车主模式 |
| ⑮ | 高性能功能受 License 控制 | ❌ 仅 DMS+泊车预警受 License,高性能全靠车型+CCP |
| ⑯ | DamperSetting 用户可见 | ❌ XML 注释掉(工程模式专属) |
| ⑰ | ESC/TC 是开关 | ❌ 多档位自由度(稳定→中性→灵活,VDC 0-4/TCS 0-7) |
| ⑱ | DrivingCtrl 信号域不大 | ✅ 363 常量(项目最大域)+ BattleCtrl 赛道子域 |
| ⑲ | 拖车钩 = 拖挂模式 | ❌ TowBar(物理球头执行器) vs TowMode(动力学) 耦合但不同 |
| ⑳ | 标题点击只是 UI | ❌ 暗门:标题暗门点击→强制关闭驾驶安全保护 |
十、可信度
| 结论 | 可信度 |
|---|---|
| 363 DrivingCtrl 信号、25 子域、不可用矩阵 | 🟢 信号梳理 Agent |
| 10 场景模式 + 赛道 BATTLE/DRAG/LAUNCH + 四重门 | 🟢 驾驶模式 Agent |
| 18 自定义维度 + M1/M2 + 分享 + 对比表 | 🟢 自定义模式 Agent |
| 车型矩阵 + 17 CarConfigManager + License + ECE | 🟢 功能差异 Agent |
| 11 Category XML + 80 Controller + 继承图 | 🟢 作者自补(代码结构 Agent 失败) |
Driving 模块 5 个 Agent 中 4 个成功(代码结构 Agent 连接中断,作者读 XML 补位),4 个成功 Agent 高度互证,可信度整体 🟢。