04 · 功能差异与对抗验证

一、完整功能清单(25 项,XML 顺序)

外部灯组(pk_settings_quickctrl_light_category,11 项)

功能Controller配置/差异控制
外灯模式(OFF/位置灯/近光/AUTO)ExteriorLightsTabLay默认;按 reason 置灰/二次确认
后雾灯FogLightButton默认
大灯延时(15/30/60s)HeadLightsDelay默认
近光高度(低/中/标准/高)HeadLightsHeightisHeadlampHeightEnable
A2 位置灯(白天十字灯)PositionA2LAMP外灯=AUTO + isFrontPosLampConfigVariable
自适应远光HighBeamAutoAdjusthiddenFeatures=lemans_eceisAHBHighBeamConfig 切文案
转向灯自动取消LightAutoCancelTurnhiddenFeatures=lemans_ece + License
迎宾灯(昆仑 Switch)KunLunWelcomeLightDeviceUtil.isKunLun 二选一
迎宾灯(通用 Tab)WelcomeLightTab非 KunLun 二选一
迎宾光毯WelcomeCarpet(在 micarLockSettings)getWelcomeCarpetConfig==STATIC
迎宾尾翼随动WelcomeWithTailSwing(在 micarLockSettings)isCfgARSEnabled

氛围灯组(pk_settings_display_atmosphere_lights_category

功能Controller配置/差异控制
氛围灯总开关(OFF/ON/AUTO)AtmosphereLightTab默认(父信号)
模式(常亮/呼吸/音乐)AtmosphereModedependKey=总开关
亮度(1-100)AtmosphereBrightness仅常亮模式
呼吸(慢/快)LightBreathState仅呼吸模式
律动(保持色/跟随封面)MusicRhythm仅音乐模式
[非26A] 主题(6 圆形)+ 取色板DisplayAtmosphereTheme + ColorPick!isDualLayerAtmosphereLightEnable
[26A] 颜色模式 + 单色 + 双色 + 双层取色板ColorMode + Single + Double + DoubleColorPickisDualLayerAtmosphereLightEnable
上下车迎宾联动WelcomeLightSwitchdependKey=总开关
夜间减弱AmbientLightDimmingDownisContourLightsOffEnabled
照脚灯FootLight!isWattDevice && !isHertzDevice

更多组(pk_lights_more_category

功能Controller信号
阅读灯(OFF/ON/AUTO)ReadingLampREADING_LEAM
按键背光亮度KeyBgLightLevelKEY_BG_LEVEL

二、getPreferenceKeyResIdsToRemove 八条规则

1. !isHeadlampHeightEnable()           → 近光高度
2. !isCfgARSEnabled()                  → 迎宾尾翼随动
3. !LicenseControlMgr.isLicenseFeatureVisible(LCS_ID_LIGHT_AUTO_CANCEL_TURN)
                                       → 转向灯自动取消
4. getWelcomeCarpetConfig() != STATIC  → 迎宾光毯
5. isKunLun()  → 通用迎宾灯 Tab ; else → 昆仑迎宾灯 Switch   (二选一)
6. isDualLayerAtmosphereLightEnable()  → 非26A组 ; else → 26A组  (二选一)
7. !isContourLightsOffEnabled()        → 夜间减弱
8. isWattDevice() || isHertzDevice()   → 照脚灯   (反向:Modena 系列反而移除)

三、12 项车型/配置差异汇总

功能差异判定来源
迎宾灯形态DeviceUtil.isKunLun()KunLun→Switch / 其他→Tab
照脚灯isWattDevice() || isHertzDevice()Modena/Modena-U 移除
氛围灯主题组isDualLayerAtmosphereLightEnable()26A(Modena-26A)→双层 / 其他→单层
夜间减弱isContourLightsOffEnabled()配置字
近光高度isHeadlampHeightEnable()CONFIG_HEADLAMP_HEIGHT==MANUAL
迎宾尾翼isCfgARSEnabled()CONFIG_ARS==电动升降
迎宾光毯getWelcomeCarpetConfig()==STATICCONFIG_WELCOME_CARPET_LAMP
A2 位置灯外灯=AUTO + isFrontPosLampConfigVariableccp123
自适应远光文案isAHBHighBeamConfig()智能远光配置字
右栏布局isCfgWHudEnable()W-HUD 配置字
自适应远光/转向灯(ECE)hiddenFeatures=lemans_ece + isEce()ROM_BUILD_REGION==ECE
转向灯(License)LicenseControlMgr.isLicenseFeatureVisible远程 license

四、CarConfigManager 4 个方法

方法配置字控制
isAHBHighBeamConfig()IntelligentHighBeamConfig.AUTO_HIGH_BEAM远光文案切换
isDualLayerAtmosphereLightEnable()ZONE_2_UPPER_LOWER_TUNING26A 双层氛围灯
isContourLightsOffEnabled()CONTOUR_LIGHTS_OFF夜间减弱
isFrontPosLampConfigVariable()VARIABLE_LIGHT_INTENSITYA2 位置灯显隐

五、hiddenFeatures 机制(仅 2 处)

XML 中 settings:hiddenFeatures="@string/micar_common_settings_lemans_ece"(字面量=“lemans_ece”):

  • 自适应远光灯(pk_settings_high_beam_auto_adjust_entry
  • 转向灯自动关闭(pk_settings_light_auto_turn_entry

机制(HiddenFeaturesKeyListHelper):isHidden = "lemans_ece".equals(hiddenFeatures) && MiCarSettings.isEce()isEce()SystemProperties.get("rom.build.region")==ECE_REGION

⚠️ AmbientLightDimmingDown 没有 hiddenFeatures 标记(线索有误),它靠 isContourLightsOffEnabled 裁剪。

六、3 套不可用原因机制

① A2 位置灯(A2_POSITION_LAMP_NOT_AVAILABLE_REASON

禁用点击 → EXTREME_ECONOMY_NOT_AVAILABLE → Toast「车辆处于超级省电模式」。

② 转向灯(LIGHT_AUTO_CANCEL_TURN_UNAVL_RSN

ReasonToast
DEFAULT系统启动中,请稍后再试
PRIVACY_MODE请先关闭一键隐私模式
LOW_POWER_MODE辅助驾驶休眠中
ERROR_DETECTED功能故障,联系服务中心

③ 外部灯功能组(EXTERIOR_LIGHT_FUNCTION_SET_NOT_AVAILABLE_REASON,CAN 0x6140211b,最复杂)

ReasonOFF Tab位置灯 Tab点击行为
AVAILABLE(0)可用可用直接切换
OFF_POPUP_NOT_IN_PARK_DAY…(4)二次确认二次确认弹 AlertDialog
OFF_NOT_AVAILABLE_NOT_IN_PARK_NIGHT…(1)置灰二次确认OFF→Toast 行驶中;位置灯→Dialog
_ADAS_LEVEL2(2)置灰置灰辅助驾驶无法操作
_ADAS_LEVEL3(3)置灰置灰同上

近光/AUTO Tab 不受影响。Dialog 是内联 AlertDialog.MiCarBuilder(非 FrontHoodCloseRemind),取消时 refreshTabSelectedStatus 回滚 Tab 选中态。

七、对抗验证记录(Light 模块发现)

#常见误解 / 偏差源码真相
车型差异靠 sourceSet 分目录✅ Light 无 dcddif/xcddif/global 目录BuildConfig.FLAVOR 0 次使用,差异完全靠运行时配置字(同 VehicleBody)
26A 是随机代号✅ 26A = Modena-26A 双层氛围灯车型(DEVICE_KEPLER,isDualLayerAtmosphereLightEnable
音乐律动 app 监听音频✅ app 无 AudioManager/MediaController,车端做音频分析上报 MUSIC_RHYTHM_STATE+ATMOSPHERE_COLOR_IN_RHYTHM(专辑色),app 仅消费
灯光状态用实际灯泡信号✅ 右栏用仪表 Warning 域信号(单泡故障不影响设置项展示)
「迎宾灯」是一个功能三态歧义:WELCOME_LIGHT(外灯,Tab/昆仑Switch) + WELCOME_LIGHT_SWITCH(氛围灯迎宾联动)
AmbientLightDimmingDown 有 lemans_ece 标记❌ hiddenFeatures 只在自适应远光+转向灯 2 处;DimmingDown 靠 isContourLightsOffEnabled
READING_LEAM 正确❌ 拼写错误(LAMP);BEAM_AUTOADJUST 命名误导(值=氛围灯模式,未用)
车型代号不可知破译:KunLun=昆仑/Watt=Modena/Hertz=Modena-U/Kepler=Modena-26A/Faraday=Modena-27B/Suiren=Lemans
FrontHoodCloseRemind 在 Light❌ 它在 VehicleBodyControl 模块;Light 的外灯弹窗是内联 AlertDialog

八、可信度

结论可信度
45 个 LightCtrl 信号、Controller→信号映射、枚举值🟢 信号梳理 Agent + 源码核对
25 功能、XML 结构、16 Controller🟢 代码结构 Agent + 功能差异 Agent 互证
12 车型差异、8 条裁剪规则、3 套不可用原因🟢 功能差异 Agent + 源码 grep
车型代号映射(Kepler=Modena-26A 等)🟢 DeviceUtil.java 源码
氛围灯双拼色同步、256 色色盘、律动真相🟢 氛围灯 Agent + 源码核对

Light 模块 4 个 Agent 全部成功,结论高度互证,可信度整体 🟢。