CarSettings 车控维护基础信息
1、CarSettings app仓库、分支说明 @韩国良
CarSettings app 将于25RC05阶段实现 Modena\-U\Lemans\GT\Kunlun等车型的代码共线改造,届时所有车型的release 版本都将由Settings \ MiCarSettings \ MiCarSettingsCommon三个仓库组合的方式进行打包。
📌 目前CarSettings app还未实现解耦编译(Gradle 编译)集成到ROM,依然是原生的make源码方式集成到rom中,开发中可以使用gradle方式进行打包,但是合入代码之前一定要进行make方式打包验证是否存在编译问题。
1.1 Settings代码仓库
https://gerrit.auto.mioffice.cn/admin/repos/platform/packages/apps/Car/Settings,general
📌 可支持gradle编译分支: rls-watt-s-main, rls-watt-s-25RC01, rls-watt-s-HyperOS.1.3.0, rls-watt-s-HyperOS.1.2.0, s-watt-bsp-a3; Xcd rom使用主开发分支暂不支持gradle编译;
Modena / Modena-U车型使用分支 (截止25 RC03)
📷 思维笔记图:Modena / Modena-U 车型分支策略
- For 开发分支
s-watt-bsp-a3 (已废弃,不再维护)主线开发分支,涵盖月迭代feature及所有bugfix 提交change- dcd-dev (2024-10-27启用)
- 主线开发分支, 使用该分支构建CarSettings app需连同
- For Release 分支
- rls-watt-s-HyperOS.1.2.0 Modena RC07、RC08交付分支
- rls-watt-s-HyperOS.1.3.0
- Modena RC09\RC10\RC11\RC12 交付分支
- Modena-U(国内版) E4U2交付分支
- rls-hertz-s-1.2.0E4U1 (专用分支, 修复-U E4U1bugfix使用,基于06/27 rls-watt-s-HyperOS.1.2.0拉出)
- Modena-U(国内版)E4U1 交付分支
- feature-watt-s-U-ECE
- Modena-U (海外版-赛道认证) 交付分支
Lemans/Kunlun车型使用分支
📷 思维笔记图:Lemans/Kunlun 车型分支策略
- Release分支
- rls-xcd-u-L42K3C3
- E4Ux分支, SOP版本交付使用的release分支
- rls-xcd-u-25-1.1
- 用于交付kunlun E4.x\Lemans GT等车型的release版本交付
- rls-xcd-u-L42K3C3
- 开发分支
- xcd-dev (10-27启用)
- 主线开发分支
- xcd-dev (10-27启用)
xcd-micar-dev 已废弃,原主线开发分支Xcd 主线开发分支
📌 Settings分支策略概述: 【Still in Work】 两个分支会一直维护,直到交付新阶段的版本拉出对应分支后不再维护, bugfix 该同步还得同步
- rls-watt-s-main 用于交付Modena及-U车型的25RC03
- rls-xcd-u-L42K3C3 用于交付lemansE4Ux\ Kunlun E3 \ 25C E3版本
【共线分支】: CarSettings目前在推进多车型代码共线改造,预计25 RC05阶段实现所有车型代码共线, 共线后的CarSettings App需要三个project的代码一起构建打包apk,分别是如下三个:
- packages/apps/Car/Settings 新增dcd-dev分支,用于Modena/Modena-U 主线交付, 新增xcd-dev分支,用于xcd平台主线rom交付
共线后新增project两个, 可参见下方的描述:
- packages/apps/Car/MiCarSettings 座舱迭代业务相关逻辑代码均挪到该project里, 目前维护一条开发分支 dev
- packages/apps/Car/MiCarSettingsCommon 座舱迭代基础能力相关代码均挪到该project里, 目前维护一条开发分支 dev
如需开通代码仓库权限,联系@韩国良
【废弃分支】 原来用于交付Modena和xcd主线的分支不再维护, 以下两个分支不再维护,请勿再提交代码!!!
- s-watt-bsp-a3 原modena主线分支
- xcd-micar-dev 原xcd主线分支
如对现有分支策略还有不理解,请各位和我沟通确认
1.2、MiCarSettings仓库
这个仓库包含所有CarSettings app的业务逻辑, 所有的一级页面全部拆分到独立的module维护。
https://gerrit.auto.mioffice.cn/admin/repos/platform/packages/apps/Car/MiCarSettings,general
- dev分支对应开发分支
- rls-xcd-u-L43C31K32、rls-xcd-u-25-1.1为Release分支
1.3、MiCarSettingsCommon仓库
CarSettings的基础能力仓库,包含业务基础库、三方库依赖等
https://gerrit.auto.mioffice.cn/admin/repos/platform/packages/apps/Car/MiCarSettingsCommon,general
- 分支情况同MiCarSettings
📌 新增的MiCarSettings和MiCarSettingsCommon仓库需要添加权限联系 @韩国良
1.4、CarSettings apk版本和分支对应关系
📌 Modena/Modena-U 主线以及Lemans/Kunlun/Modena 25C E4U2\E3\E3+版本的设置app拆分到了三个代码仓库,分别是Settings 、MiCarSettings以及MiCarSettingsCommon。
-
Modena/Modena-U主线版本 —— SU7/SU7 Ultra车型 —— JIra项目 MiCOCKPIT
Settings/dcd-dev + MiCarSettings/dev + MiCarSettingsCommon/dev
支持gradle编译
-
Modena/Modena-U HyperOS.1.3.0版本 (用于交付Su7 OTA版本 RC10\RC11\RC12等) JIra项目 MiCOCKPIT
Settings/rls-watt-s-HyperOS.1.3.0
支持gradle编译
-
Lemans/kunlun/Modena 25C 主线分支(用于后续E4u3\E4+\E4+版本拉分支)—— 勒芒以及后续其他车型、SU725改款车型 —— JIra项目 N801
Settings/xcd-dev + MiCarSettings/dev + MiCarSettingsCommon/dev
-
Lemans/kunlun/Modena 25C E4U2/E3/E3版本 —— JIra项目 N801
Settings/rls-xcd-u-L42K3C3
📷 白板:CarSettings apk 版本和分支对应关系
1.5、代码下载
-
需要先安装repo工具:repo使用帮助
-
XCD
- 代码下载参考: XCD SM8650 android u 说明
-
8295平台
-
代码下载: Release分支信息
-
代码编译: 8295 Xiaomi开发环境配置指导
目前CarSettings还是源码编译集成到ROM中, 如本地机器硬件无法支持make编译, 可以申请编译服务器: 座舱申请编译服务器使用指南
-
-
Grapple 构建平台目前已经支持构建CarSettings apk, 具体可参考: CarSettings Apk Grapple打包编译指南
1.6、车型 & 版本差异化控制
由于代码维护逐步向共分支方向发展,不同车型、版本的特有feature、业务逻辑需要在代码中动态的区分车型、ROM类型或者根据功能配置字来控制:
-
区分车型
- 获取车型信息有对应的配置,可以根据配置字映射的域内信号获取到对应的value
-
区分ROM类型根据构建的ROM适配不同的车型项目,system property中会写入对应的车型信息,对应的property为 ro.product.device, 其value可选的有:
watt —— MS11
hertz —— MS11-U
suiren —— MX11
//代码示例 val device = SystemProperties.get("ro.product.device") -
功能配置字
- 当前代码中使用最为广泛的再运行时控制功能是否透出的方式,如悬架、尾翼、座椅腿托、辅助驾驶各设置项、方控自定义等
- 配置字映射域内信号查询表:
-
License控制
- 目前暂只有辅助驾驶相关设置项接入了license方式动态控制显示、隐藏
1.7、车控配图适配—— MiCarSettingsRRO
Settings中有大量的车模配图展示需求, 为了适配多个车型SU7\YU7\kunlun等, 新增了RRO 工程用于打包对应rom类型的车型资源。
1.8、 CarSettings对接SDK汇总
📷 嵌入表格:CarSettings 对接 SDK 汇总
2、舒控 @涂传涛
https://gerrit.auto.mioffice.cn/admin/repos/platform/packages/apps/Car/Hvac,general
3、大师模式 @黄雪松
https://gerrit.auto.mioffice.cn/admin/repos/platform/packages/apps/Car/battleSettings,general
4、能耗曲线 @Cookies 周家忻
https://gerrit.auto.mioffice.cn/admin/repos/platform/packages/apps/Car/MiCarEnergy,general
5、赛道App(-U)@黄雪松
https://gerrit.auto.mioffice.cn/admin/repos/platform/packages/apps/Car/MiTrack,general
6、驾驶氛围 @黄雪松
https://gerrit.auto.mioffice.cn/admin/repos/atmosphere,general