Lock 锁车门窗模块 · 知识库
本知识库由 4 个 Explore Agent 并行调研 + 源码对抗验证产出(2026-07-12),4 个 Agent 全部成功,结论高度互证。 Lock 是 5 个车控模块中 Controller 最多(40+)、信号最多的,遮阳帘天幕系统 + 车顶安全锁密码 + DoorUnLockActivity 单独成篇(03)。
模块定位
Lock 模块(settingsPage/micarLockSettings)是「门窗锁」设置页,入口 VehicleLockSettingsFragment(⚠️在 miauto.vehicle 包,不在 lock)。
9 大子系统:①电动门(模式/开启角度/4门开合/吸合/把手)②童锁+车窗锁 ③锁车关窗 ④鸣笛/个性音效 ⑤迎宾(光毯/尾翼/灯效入口)⑥盖板(前备箱/后备箱/油箱盖)⑦遮阳帘天幕(5 类)⑧升降车顶+安全锁密码 ⑨门锁逻辑(离车/P挡/接近/解锁模式/通风)。
关键认知(对抗验证纠正)
| 常见误解 | 源码真相 |
|---|---|
| 入口 Fragment 在 lock 包 | ✅ VehicleLockSettingsFragment + 3 核心 Toggle/Tab Controller 在 miauto.vehicle 包 |
| 迎宾光毯/尾翼在 Lock 模块的 XML | ✅ WelcomeCarpetController/WelcomeWithTailSwingController 定义在 Lock,但被 Light 模块 XML 引用(跨模块复用) |
| 升降车顶安全锁是车信号 | ✅ RoofSafetyLockController 用 Settings.Global(非车信号)+ MIS 安全服务联动 |
| DoorUnLockActivity 由用户点击触发 | ✅ 由 android.settings.DOOR_UNLOCK Intent 拉起(外部系统在车门解锁失败时弹),8 秒倒计时,独立于 Controller |
DoorAndWindowLockRightFragmentController 有逻辑 | ✅ 空壳(仅 TAG,逻辑在 Fragment) |
| 童锁 Controller 和车门 Controller 一类 | ✅ VehicleLockToggleCtrl(童锁+车窗锁状态) vs VehicleDoorToggleCtrl(4 门电动开合动作),同基类不同业务 |
| 调光天幕是连续滑杆 | ✅ Tab 两档(LEVEL1 遮光/LEVEL5 透明),500ms 延时校验防中间态闪动 |
SUN_SHADE_CURRENT_POSN 是当前位置 | ❌ 命名陷阱,底层是 SUNSHADE_TARGET_POSITION(目标位置) |
| 遮阳帘行车不可调(速度保护) | ✅ 遮阳帘无速度保护(行车可调),仅车顶帐篷有 P 挡保护 |
| 锁车折叠后视镜在 Lock 模块 | ✅ MIRROR_FOLD_WHEN_LOCK 在 LockCtrl 域,但 UI 入口在 VehicleBody 模块(跨模块信号共享) |
| 盖板开关是持续信号 | ✅ COVER_STATE 回弹 1000ms(脉冲式控制,下发后 1 秒回中性态) |
信号域结构(重要)
Lock 涉及 3 个封装 Ctrl 域 + 大量底层直引:
- LockCtrl(13 个):逻辑聚合域,跨 Door/Hvac/Window/MirrorControl/Body/Light 6 个真实域(把”锁车相关”归集)
- DoorCtrl(17 个):门锁/盖板/加油口/高度
- WindowCtrl(12 个):车窗锁/调光天幕/遮阳帘
- 底层直引
mi.car.config.*:很多 Controller 绕过封装直引,特别是Body.POWER_LIFTING_ROOF_*(升降车顶 18 信号)、Door.POWER_OPERATED_DOOR_*(电动门)
车型代号(同 Light,来自 DeviceUtil)
| 常量 | 平台 | Lock 相关 |
|---|---|---|
DEVICE_KUNLUN | KunLun | 童锁自定义、车顶帐篷、升降车顶、E4U3 分水岭 |
DEVICE_MX11(TYPE_MX11) | MX11 | 电动前后备箱高度限值 |
DEVICE_WATT | Modena | — |
DEVICE_KEPLER | Modena-26A | — |
关键阶段:Kunlun E4U3(天窗遮阳帘→后排遮阳帘、车顶帐篷→升降车顶大组件);26RC11(童锁自定义透出)。
文档导航
| 文档 | 内容 |
|---|---|
| 01-代码结构与子系统 | 入口 Fragment、11 Category XML、40+ Controller 逐解、继承层级图 |
| 02-信号梳理 | 3 Ctrl 域全量 + 底层直引 + Body.POWER_LIFTING_ROOF + 枚举值 + 中间态 |
| 03-遮阳帘天幕与车顶密码专题 | 5 类顶部覆盖物 + 校准流程 + 车顶安全锁密码 + DoorUnLockActivity |
| 04-功能差异与对抗验证 | 30+ 功能、车型差异矩阵、配置字编号、不可用原因、对抗记录 |
关键文件索引
| 类型 | 路径 |
|---|---|
| 入口 Fragment | micarLockSettings/.../vehicle/VehicleLockSettingsFragment.java |
| 主 XML | .../res/xml/miauto_vehicle_lock_ctrl_settings_fragment.xml |
| 右栏 | .../lock/DoorAndWindowLockRightFragment.kt(静态车模 + 升降顶显示态信号) |
| 车门解锁弹窗 | .../activity/DoorUnLockActivity.java(Intent 拉起) |
| 车顶密码 | .../roof/password/(RoofSafetyLock/RoofPassword/RoofPasswordFragment) |
| MIS 安全服务 | .../mis/RoofSecurityNotifier.kt + RoofSecurityHandler.kt |
| 信号映射 | .../miauto/{Door,Lock,ElectricReleaseHeadGate}VehiclePropertysMap.java |
| 信号域定义 | base/settingsBaseLib/.../vehicle/MiCarPropertyIds.java(LockCtrl:875 / DoorCtrl:160 / WindowCtrl:124) |