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版本交付
  • 开发分支
    • 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、代码下载

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类型的车型资源。

代码仓库: https://gerrit.auto.mioffice.cn/admin/repos/cockpit/core/platform/packages/apps/Car/MiCarSettingsRRO,general

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

7、场景模式 @韩国良

SceneService 场景模式维护信息