{
  "generated_at": "2026-08-12T13:41:23.039512+00:00",
  "latest_stable": "3.0.0",
  "latest_beta": "3.1.0-beta1",
  "versions": [
    {
      "version": "3.1.0-beta1",
      "date": "2026-08-12",
      "type": "beta",
      "notes": "3.1.0-beta1。3.1 系列首个测试版，基于 3.0.0 正式版，新增油耗信号、点火自动重连、UDS 静默失败恢复、CAN 接口双模式与方控全皮肤推广。\n\n【新功能】\n\n◆ 油耗信号\n• 新增瞬时油耗、平均油耗、本次点火平均油耗三个信号\n• VHAL 与 AdaptAPI 双源（VHAL 优先），无效帧过滤并回退最近有效值防显示闪烁\n\n◆ 点火自动重连\n• 检测到点火上电沿时自动扫描并重连上次使用的 OBD 设备\n• 开机/点火重连延时时长改为独立设置项，可按车型启动速度调整\n\n◆ UDS 静默失败自动恢复\n• 看门狗检测订阅/拉取静默超时（判定 5 秒）：NUS 透传/WiFi 桥定向重注册，连续失败升级全量恢复\n• 拉取模式全局暂停 2 秒后优先重试\n• 数据源设置页提供总开关（默认开启）\n\n◆ ESP32 CAN 接口双模式\n• 适配固件 PT CAN / OBD 双接口模式，回退轮询补齐 ABS/ESP 信号发送模板\n• 注意：需配合支持双模式的新版 ESP32 固件使用\n\n◆ 方控切换推广全皮肤\n• 方控数据面板自 03+ 扩展至 Crimson / Cyber 皮肤，三皮肤独立分页配置\n• 关闭方控开关时设置界面自动回退切页\n\n◆ 设置\n• 滑条防误触：仅按住滑块本身可拖动，两侧命中遮罩，保住页面左右翻页手势\n• 延时类滑条步进按跨度自适应（1-2-5 阶梯，档位数不超过 30）\n\n【修复】\n• 瞬时油耗在车速为 0 时显示 --\n• OBD 扫描结果列表以 MAC/IP 地址为唯一标识，避免同名设备互相覆盖\n• 调整部分信号 displayZero 属性",
      "apk": {
        "filename": "LynkCoTrack_3.1.0-beta1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_3.1.0-beta1.apk",
        "size": 21912230,
        "sha256": "0c4abcaf6132b038168cfd6d253a67ee94fa62b503980ce225b98d3bee2a8114"
      }
    },
    {
      "version": "3.0.0",
      "date": "2026-07-19",
      "type": "stable",
      "notes": "3.0.0 正式版。\n\n【3.0 系列主要更新（自 2.5 以来）】\n\n◆ 副屏皮肤 · C·03+（新皮肤）\n• 复刻 2022 款 03+ 原厂仪表：中央大圆转速表 + 档位梯 + 四小圆表 + G 值球\n• 背景红波纹光效，跟随系统日夜切换\n• 四小圆表底部双 pod 来源可选（扭矩/机油压力、水温/刹车压力），6 组量程独立可调\n• 档位梯可选直显实际档位\n\n◆ 方控切换（03+ 专属）\n• 方向盘按键切换右侧数据页（胎压/G值/辅助/数据面板）：长按中键锁定，锁定态长按左/右键翻页，15 秒无操作自动退出\n• 未锁定显示锁形图标，锁定态显示页码圆点；数据面板页 4 个信号可自定义\n\n◆ 配置预设\n• 多套配置预设：任意命名、按类别保存/应用（信号/设置/HUD/偏好/皮肤/日志），当前预设带脏标记\n• 应用前强制预备份；恢复出厂保留预设文件\n\n◆ 设备管理（ESP32 CAN 桥）\n• App 内直接升级 ESP32 固件（WiFi）\n• 状态灯等设备设置读取/修改（自描述配置注册表）\n\n◆ 数据源 / OBD\n• WiFi OBD 自动重连，重连超时与断线重试次数可配置\n• 数值显示精度按信号单位自动判定\n\n◆ HUD / 仪表\n• HUD 底栏与副屏仪表数据插值平滑（平滑时长可调）\n• 皮肤/HUD 渲染移至独立线程，降低主线程压力\n\n◆ 设置\n• 仪表盘页签按皮肤重新归类：通用 / Crimson / Cyber / 03+ / 方控切换五个折叠分组，默认折叠\n\n◆ 稳定性与性能（测试期间累计 40+ 项修复）\n• 修复熄火退出 HUD 时竞态导致全 App 数据静默冻结、开机/点火自动重连被 BLE 错误终态永久跳过、WiFi 重连被阻断等稳定性问题\n• 修复副屏背景与 03+ 分页背景位图内存泄漏、CAN 嗅探并发写入损坏与停止丢帧\n• 修复 UDS 刹车踏板信号未归一化、brake/brake_pressure 字段别名冲突、信号阈值与广播通道配置被重置复活、导入配置错误回落出厂默认等数据准确性问题\n• 三皮肤面板静态层与文本缓存、CAN 映射 O(1) 查表、日志异步写入、RaceChrono 编码缓冲复用等热路径优化，降低高频轮询/广播卡顿\n• 修复 ESP32 固件 OTA 下载未校验 SHA-256 的问题\n\n本版与 3.0.0-beta2 内容一致，测试反馈稳定，转为正式版。",
      "apk": {
        "filename": "LynkCoTrack_3.0.0.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_3.0.0.apk",
        "size": 21859174,
        "sha256": "e392e1ff4869e9fdd40d0e2ff548e788f23a5823ad981f076e32620cb5d95298"
      }
    },
    {
      "version": "3.0.0-beta2",
      "date": "2026-07-19",
      "type": "beta",
      "notes": "本版基于 3.0.0-beta1，无新功能，本版为稳定性与性能修复版本。\n\n【修复】\n\n◆ 稳定性\n• 修复熄火退出 HUD 时的竞态条件，避免整个 App 数据静默冻结（根因：HUD 退出与信号总线重建存在时序竞争）\n• 修复开机/点火自动重连、运行期 WiFi 重连被 BLE ERROR 终态误判永久跳过/阻断的问题\n• 修复 CAN 嗅探页并发写入偶发损坏、停止时丢失最后一批帧统计的问题\n• 修复副屏背景 Bitmap、Plus03 分页背景位图的内存泄漏\n\n◆ 数据准确性\n• 修复 UDS brake_pedal(DID 2B00) 未归一化为开关值，直接使用原始字节的问题\n• 修复 brake 与 brake_pressure 字段别名冲突互相覆盖的问题\n• 修复 SignalRegistry 阈值/RC3 广播通道清空后被重启或导入复活为内置默认值的问题\n• 修复 importJson 对未提及内置信号错误回落出厂默认、applyAll 因空数组门槛导致配置不生效的问题\n• 修复设备设置写入失败且读回落为空时误显示\"已应用\"的问题\n\n◆ 性能\n• Plus03/Crimson/Cyber 皮肤面板、RpmGauge、GForce 面板改用静态层与文本测量缓存，消除逐帧堆分配\n• CAN 帧映射、信号查表、日志写入、RaceChrono/BLE 广播等热路径优化，降低高频轮询/广播的分配与卡顿风险\n\n◆ 其他\n• 修复 ESP32 固件 OTA 下载后未校验 SHA-256 的问题，避免推送损坏镜像\n• 修复设置恢复备份列目录阻塞主线程、日志轮转失败后忙循环的问题",
      "apk": {
        "filename": "LynkCoTrack_3.0.0-beta2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_3.0.0-beta2.apk",
        "size": 21859178,
        "sha256": "c20eb1b52e090b1773289f90dce47656dbaf11a5e268711aee2d5da582442378"
      }
    },
    {
      "version": "3.0.0-beta1",
      "date": "2026-07-09",
      "type": "beta",
      "notes": "3.0.0-beta1。3.0 系列首个测试版，核心新增 C·03+ 原厂复刻皮肤与方控切换，邀请测试反馈。\n\n【新功能】\n\n◆ 副屏皮肤 · C·03+（新皮肤）\n• 复刻 2022 款 03+ 原厂仪表：中央大圆转速表 + 档位梯 + 四小圆表 + G 值球\n• 背景红波纹光效，跟随系统日夜切换\n• 四小圆表底部双 pod 来源可选（扭矩/机油压力、水温/刹车压力），6 组量程独立可调\n• 档位梯可选直显实际档位\n\n◆ 方控切换（03+ 专属）\n• 方向盘按键切换右侧数据页（胎压/G值/辅助/数据面板）：长按中键锁定，锁定态长按左/右键翻页，15 秒无操作自动退出\n• 未锁定显示锁形图标，锁定态显示页码圆点；数据面板页 4 个信号可自定义\n\n◆ 配置预设\n• 多套配置预设：任意命名、按类别保存/应用（信号/设置/HUD/偏好/皮肤/日志），当前预设带脏标记\n• 应用前强制预备份；恢复出厂保留预设文件\n\n◆ 设备管理（ESP32 CAN 桥）\n• App 内直接升级 ESP32 固件（WiFi）\n• 状态灯等设备设置读取/修改（自描述配置注册表）\n\n◆ 数据源 / OBD\n• WiFi OBD 自动重连，重连超时与断线重试次数可配置\n• 数值显示精度按信号单位自动判定\n\n◆ HUD / 仪表\n• HUD 底栏与副屏仪表数据插值平滑（平滑时长可调）\n• 皮肤/HUD 渲染移至独立线程，降低主线程压力\n\n◆ 设置\n• 仪表盘页签按皮肤重新归类：通用 / Crimson / Cyber / 03+ / 方控切换五个折叠分组，默认折叠\n\n【修复】\n• WiFi OBD 重连稳定性系列修复（catch 吞取消不复位连接态、注册 NACK 误当 ACK、超时静默丢弃、重连后部分信号冻结）\n• 设备设置（状态灯）读取失败修复（LIST 补 NACK 处理 + 精确错误文案）\n• 多轮代码审查累计修复数十项：内存泄漏 / 并发竞态 / 错误处理加固（含 SignalBus 单流异常防护、重连代数守卫）\n• VHAL 回调合帧降频、反射方法缓存、G 值面板空转等性能修复\n• 含 2.5.x 系列全部已发布修复",
      "apk": {
        "filename": "LynkCoTrack_3.0.0-beta1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_3.0.0-beta1.apk",
        "size": 21844478,
        "sha256": "1ee3a470f71b081be60f6c31db6c4897edfd02293388a801044953eb8bfc9d7b"
      }
    },
    {
      "version": "2.5.0",
      "date": "2026-07-01",
      "type": "stable",
      "notes": "2.5.0 正式版。\n\n【2.5 系列主要更新（自 2.4 以来）】\n\n◆ 主屏显示风格系统（全新）\n• 主屏新增「标准 / 霓虹」两种显示风格，可自由切换\n• 4 套布局预设（赛道 / 数据 / 极简 / 平衡），按预设路由独立布局：数据=多列网格、极简=速度主导、底栏固定 TPMS/G 三行\n• 转速表多变体（弧形 / 数值 / 彩虹条）、G 力球多变体、逐元素上下移微调、全局字体 5 档缩放\n• 新增独立「主界面」设置页签，纳入导出导入与恢复出厂\n\n◆ 副屏皮肤（Crimson / Cyber）\n• 渲染改为纯原生 View/Canvas（去 Compose）\n• Cyber 转速弧带新增填充模式开关（跟随指针 / 满填充）\n• 副屏渲染限频，刷新率可选 10/15/20/30/60（默认 30）\n• 风格按观感更名、浅色灯格提亮、背景对齐、TPMS 四角对称并标注 FL/FR/RL/RR\n\n◆ 仪表车速来源\n• 仪表车速可选来源：仪表车速 / 真实车速\n\n◆ 点火联动与开机自启\n• 投影 / HUD 点火联动改用 UsgMod 电源档位驱动显隐\n• 开机自启多重兜底 + AlarmManager 系统投递（绕过后台启动限制）+ 拉起重试\n• HUD / 投影开机自启依赖 App 自启（UI 门控 + 级联关闭）\n\n◆ OBD\n• 新增配置告警：TCU-UDS × Mode01 冲突、轮询过速（数据源页可关卡片）\n• WiFi 数据接收看门狗（10s 无数据探测，失败即断开）\n• 设置页签加宽、弃用横向滚动\n\n◆ HUD\n• 转速数值取整到 10、全局字体 5 档比例缩放\n\n◆ 日志与诊断\n• 上传日志附带当前设置快照\n• 开机崩溃可见：E 级即时刷盘 / startForeground 失败记录 / 全局未捕获异常写文件\n\n◆ 应用内更新\n• 安装权限检测 + 弹窗引导 + 自动重试\n\n◆ 性能\n• 主屏 / 副屏 / HUD 全面降卡顿：统一刷新率节流、静态 chrome 层缓存、去软件层改预渲染位图硬件 blit、数据卡 dirty 门控、G 力球尾迹跳过不可见点、图标全局缓存\n\n【本版修复（自 beta3）】\n• 修复上传日志后重启采集被自动关闭：uploadLogs 持久化了 setCollecting(false) 且从不恢复，改用非持久化的暂停/恢复写入器。",
      "apk": {
        "filename": "LynkCoTrack_2.5.0.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.5.0.apk",
        "size": 21043957,
        "sha256": "a82c40859f23cb03dd7cd7d72ae97917c439c51f5ed546b42cc63edced9755b1"
      }
    },
    {
      "version": "2.5.0-beta3",
      "date": "2026-06-26",
      "type": "beta",
      "notes": "本版基于 2.5.0-beta2，新增应用内更新的安装权限引导与自动重试。\n\n【新功能】\n\n◆ 应用内更新\n• 下载更新前检测「安装未知应用」权限，缺失时弹窗引导前往系统设置授权，授权后经页面恢复（ON_RESUME）自动重试安装。\n• 权限重试终态保留「前往设置」入口：首次从系统设置返回时若忘记授权，不再被永久挡住而需重走检查→下载，授权后自动重试。",
      "apk": {
        "filename": "LynkCoTrack_2.5.0-beta3.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.5.0-beta3.apk",
        "size": 21043677,
        "sha256": "efd7380f960b3ef2cc4b4f9524bdd91beb932f3a8c1a6d92f1fecbe0f524c215"
      }
    },
    {
      "version": "2.5.0-beta2",
      "date": "2026-06-23",
      "type": "beta",
      "notes": "本版基于 2.5.0-beta1，增强开机自启可靠性（多重兜底触发 + 拉起结果校验重试 + AlarmManager BAL 豁免投递）。\n\n【新功能】\n\n◆ 开机自启\n• 多重兜底触发：在 BOOT_COMPLETED 主路径之外，新增 USER_PRESENT、com.android.launcher3.startup 动态广播兜底，覆盖系统原生桌面 / U盘直装等环境下主路径被后台启动限制（BAL）拦截或拉起时机过早的失败场景\n• 拉起结果校验 + 失败重试：拉起 MainActivity 后延迟校验是否真正进入前台，未成功最多重试 5 次；整个开机周期自启只消费一次（episode 一次性，防止 launcher3.startup 每次回桌面反复触发把正在使用的 App 强退后台）\n• 自启拉起改走 AlarmManager 系统投递：经 PendingIntent.getActivity 由系统投递的 Activity 启动在 BAL 豁免名单内，比 BroadcastReceiver 直接 startActivity 在严格 ROM 上更可靠\n• 自启延时软限制：兜底 / 重试路径相对首次 BOOT_COMPLETED 基准应用 auto_start_delay，延时过后不再额外等待（不再每条路径各自硬延时）",
      "apk": {
        "filename": "LynkCoTrack_2.5.0-beta2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.5.0-beta2.apk",
        "size": 21037829,
        "sha256": "ded38954628d7c01035e0f220a71d22d85f8cc5126aac45f643782d07243f1d0"
      }
    },
    {
      "version": "2.5.0-beta1",
      "date": "2026-06-19",
      "type": "beta",
      "notes": "2.5.0-beta1。2.5 系列首个测试版，自 2.4.x 起累积大量主屏/副屏/数据源更新，邀请测试反馈。\n\n【新功能】\n\n◆ 主屏显示\n• 多套显示风格：标准 / 霓虹 / DESIGN，可逐项微调\n• 预设布局：Track / Data / Minimal / Balanced，按预设独立排布（DATA 多列网格、MINIMAL 速度主导、底栏图标化）\n• 全局字体 5 档缩放；主界面元素可逐项排序/显隐\n• 仪表车速来源可选（仪表车速 / 真实车速）\n\n◆ 副屏皮肤\n• 渲染重构为纯原生 View；支持限频（可选刷新率 10/15/20/30/60）+ 多项绘制性能优化\n\n◆ HUD\n• 转速取整到 10；全局字体 5 档\n\n◆ 数据源 / OBD\n• mock 升级为 VehicleSignalBus 同级独立数据源\n• OBD 配置告警（TCU/UDS 冲突、轮询过速）\n\n◆ 设置 / 系统\n• 温度/压力单位统一重构\n• 自启动门控：开机自启 HUD/投影需先开启「自动启动 App」（含即时引导与级联）\n• 日志上传附带当前设置快照\n• 应用内自动更新\n\n【修复】\n• 含 2.4.x 全部已发布修复，另有大量主屏/副屏渲染、OBD、HUD 相关修复（详见提交历史）\n\n【测试重点（实车）】\n• 副屏皮肤显示与背景对齐\n• 8195 平台主屏 DESIGN 风格帧率\n• 副屏 Display2 投屏（density/错位）",
      "apk": {
        "filename": "LynkCoTrack_2.5.0-beta1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.5.0-beta1.apk",
        "size": 21035317,
        "sha256": "dbab5ce2f88591ec24abcf38ccff686f4b42008150b00d23d776975757067e72"
      }
    },
    {
      "version": "2.4.3",
      "date": "2026-06-26",
      "type": "stable",
      "notes": "2.4.3 补丁版。\n\n【新功能】\n\n◆ 应用内更新\n• 下载更新前检测「安装未知应用」权限，缺失时弹窗引导前往系统设置授权，授权后经页面恢复（ON_RESUME）自动重试安装。\n• 权限重试终态保留「前往设置」入口：首次从系统设置返回时若忘记授权，不再被永久挡住而需重走检查→下载，授权后自动重试。",
      "apk": {
        "filename": "LynkCoTrack_2.4.3.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.4.3.apk",
        "size": 20773197,
        "sha256": "b698c4c6629e8d2496d9b9507dbacf4ce9667cc8baba0f2fe75ae19823b9df84"
      }
    },
    {
      "version": "2.4.2",
      "date": "2026-06-19",
      "type": "stable",
      "notes": "2.4.2 补丁版。\n\n【修复】\n\n◆ HUD\n• HUD 设置（样式/字号/阈值/投影区域/顶底比/网格）改动即时生效，修复车辆数据静止时需重新开关 HUD 才生效的回归（根因：数据条性能重构后设置重读由每帧无条件改为数据驱动，数据静止时停跑）。\n\n◆ OBD\n• 修复设备断开后切换被动模式 / 重置 OBD 导致进度弹窗永久卡死。\n\n◆ 性能\n• ECarX 传感器（AdaptApi）回调移至独立 HandlerThread 并移除高频回调日志，降低主线程负载。",
      "apk": {
        "filename": "LynkCoTrack_2.4.2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.4.2.apk",
        "size": 20767373,
        "sha256": "8ee6cf6157fe401a6a9d3e8a9a29f573c5adb7ba94986f278243fb19e320097a"
      }
    },
    {
      "version": "2.4.1",
      "date": "2026-06-16",
      "type": "stable",
      "notes": "本版基于 2.4.0，增强「开机自启动失败 / 崩溃」的日志可见性，便于上传日志后定位根因。仅提升诊断能力，不改变任何运行行为。\n\n【改进 · 日志诊断】\n\n◆ 错误日志即时落盘\n• 开机自启动失败或崩溃时，进程常在定时刷盘（每 2 秒一次）前就被系统杀掉，导致最后一条错误日志丢失。现错误级（E）日志写入后立即刷盘，关闭丢失窗口。\n\n◆ 前台服务启动失败可见\n• 仪表盘皮肤 / HUD 服务在开机后台拉起时，若被系统限制（FGS 受限）或 5 秒超时启动失败，原为未捕获异常、只进系统日志、上传日志里看不到；现显式记录到日志文件（保持原崩溃行为不变，仅补可见性）。\n\n◆ 全局崩溃堆栈落盘\n• 应用任何未捕获崩溃的完整堆栈，原本只在系统 logcat、随重启即失；现写入日志文件，开机崩溃也能通过上传日志定位根因。\n\n说明：以上日志需在「设置 → 通用 → 日志收集」开启收集后，才会随日志上传一并采集；建议排查开机问题前先打开收集开关，再复现一次。",
      "apk": {
        "filename": "LynkCoTrack_2.4.1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.4.1.apk",
        "size": 20765457,
        "sha256": "554fdef77c6a60966efd001896b4a522b1d9fbb26c7d64c1a4507608104f6c16"
      }
    },
    {
      "version": "2.4.0",
      "date": "2026-06-16",
      "type": "stable",
      "notes": "2.4.0 正式版。\n\n【2.4 系列主要更新（自 2.3 以来）】\n\n◆ 设置模块重构\n• 设置页改为左侧 7 页签 NavigationRail（通用 / 数据源 / 信号 / 广播 / HUD / 仪表盘 / CAN-DEBUG）\n• 恢复出厂改为全量 7 域重置（前置强制备份，失败即中止）\n• 内部存储域更名迁移（lynktrack_debug → lynktrack_app，一次性自动迁移）\n\n◆ 单位转换\n• 温度 / 压力单位可在设置中切换，贯穿仪表盘、HUD、Crimson / Cyber 双皮肤与纯文本显示点\n• 量程配置 UI 跟随当前显示单位（展示换算 + 输入反转）\n\n◆ 广播\n• BLE 与 WiFi 双通道独立开关，支持并行广播\n\n◆ 仪表盘投影\n• 投影与点火联动开关，底栏显示真实投影三态状态；开机自启后延时恢复投屏\n\n◆ 仪表量程\n• Crimson / Cyber 皮肤温度 / BOOST 量程改为可配置\n\n◆ 稳定性与正确性\n• OBD：BLE↔WiFi 切换前先互断、NUS 繁忙状态计数、UDS 改 ATFC SM0 自动流控（修多 ECU 流控头锁死）、UDS 重发现整集替换有效 DID、CAN 嗅探清理移入 finally+NonCancellable 并限长 512\n• HUD：转速灯条左右对称点亮与红线统一闪烁修复、行 / 槽位运行时即时重建、单位变更经 combine 透传\n• 信号 / 传感器：brake 由 VHAL 占位改为 COMPUTED 安全源、signalMap 加 @Volatile、加速度计 stop() 回归修复、gear_actual 默认来源改 VHAL\n• 副屏皮肤：背景 PNG 解码缩放移至 IO 线程、修 native 堆泄漏与 use-after-free 崩溃\n\n◆ 性能\n• 仪表盘 / HUD 热路径去分配：缓存命中短路、O(1) 信号查找、CyberRpmArc 预计算指针坐标、零 ICU 数字格式化、皮肤配置走 Flow 消除每帧 prefs 直读\n\n【本版修复（自 beta3）】\n• 日志上传地址改由构建期注入（LYNK_LOG_UPLOAD_URL），移除运行时第二来源，使 CI/CD 成为上传地址唯一来源；未配置时运行时拒绝上传而非崩溃。\n• CI 正式发布默认改为 publishLog 版（带日志上传功能，applicationId 同 com.migu.miguplay，可无缝覆盖升级）。\n\n说明：应用内自动更新自 2.3.0 / 2.2.2 起具备，本版同样支持。",
      "apk": {
        "filename": "LynkCoTrack_2.4.0.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.4.0.apk",
        "size": 20765461,
        "sha256": "821ee02108e5071f3ae11229fb1c124733879bf898d2e3f18a9233df64c03ccd"
      }
    },
    {
      "version": "2.4.0-beta3",
      "date": "2026-06-16",
      "type": "beta",
      "notes": "本版基于 2.4.0-beta2，修复 HUD 转速换挡灯条红灯不亮问题。\n\n【修复】\n\n◆ HUD 转速换挡灯条\n• 修复转速灯条红灯恒不亮：BTC 模式全部红灯、CTS 模式左右最外侧灯、LTR 模式最后一颗红灯在满量程也点不亮；改为留 1 灯头距，到达量程顶点时整条灯带含红灯完整点亮，左右对称、怠速全灭不变。\n• 修复红线闪烁时未填满的红灯不参与闪烁：原逻辑在闪烁「亮」相位仍按填充比例判定，从未点亮的红灯在红线也不闪；改为红线时所有灯珠统一闪烁。",
      "apk": {
        "filename": "LynkCoTrack_2.4.0-beta3.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.4.0-beta3.apk",
        "size": 20765749,
        "sha256": "f09e3ea69a42b1425bafc2c08fe012f940ccc6223c9d978e556f010ad3dad6ea"
      }
    },
    {
      "version": "2.4.0-beta2",
      "date": "2026-06-15",
      "type": "beta",
      "notes": "本版基于 2.4.0-beta1，回合主线第二轮稳定性、正确性与性能修复（与 2.2.3 / 2.3.1 同批，2.4 因架构最全收录最完整）。\n\n【修复】\n\n◆ OBD\n• connectTo 切换 BLE↔WiFi 前先断开对方 OBD 源，避免两路采集并存\n• NUS 连续 NACK 计数并暴露繁忙状态，避免无效重试\n• UDS 流控改用 ATFC SM0 自动流控，修复多 ECU 场景下流控头互相锁死的隐患\n• UDS 重发现后整集替换有效 DID，剔除已失效项（不再累加）\n• CAN 嗅探取消清理移入 finally + NonCancellable，确保 ATMA 监听被正确停止\n• CAN 嗅探 headers 集合限长 512，防止长时间嗅探内存无界增长\n• GATT onCharacteristicChanged 改用 trySend，避免回调线程协程开销与潜在丢帧\n\n◆ HUD\n• 修复 BTC/CTS 转速灯条右侧黄色半侧不亮，并按左右偶数对称点亮\n• rowConfig 仅返回 slotCount 个槽位，修复缩减数据项数后旧槽位越界渲染\n• 运行时行 / 槽位配置变化即时重建数据条\n• 红线闪烁改 30Hz postInvalidateDelayed，与 HUD 数据更新速率一致\n• 单位变更经 combine 透传，无车辆数据时也能即时生效\n• 缓存 HUD 显示配置，避免 30Hz 频率下重复读 prefs\n\n◆ 信号 / 传感器\n• brake 数据源由 VHAL 占位改为 COMPUTED 安全源\n• signalMap 加 @Volatile，修复 IO 线程导入对主线程 HUD 不可见\n• AccelerometerSource 新增 stop()；release() 不再调用，避免加速度计被永久禁用\n\n◆ 仪表盘 / 数据\n• buildSlotValues 缓存键加入 signalCacheVersion，修复信号重定义后标签 / 告警级别 stale\n• buildSlotValues 缓存命中时跳过装箱分配\n• SignalRegistry.getById 改 O(1) 哈希缓存\n\n◆ 副屏皮肤 / 性能\n• Crimson / Cyber 背景 PNG 解码缩放移至 IO 线程，消除主线程卡顿\n• 退出皮肤回收背景位图修复 native 堆泄漏；回收前先清背景，防 use-after-free 崩溃\n• CyberValueView 缓存 measureText、拆分颜色与字体重建、缓存 boostTicks；CrimsonRpmBarView 预构建画笔与高度、CyberTyrePanelView 增量重建\n\n◆ 启动 / 设置\n• 保存 screenOnReceiver 引用以便 onTerminate 反注册\n• 刷新率标签改「主屏刷新率」消除歧义",
      "apk": {
        "filename": "LynkCoTrack_2.4.0-beta2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.4.0-beta2.apk",
        "size": 20765749,
        "sha256": "224a8d8b9727e5550f57815baa97747bc6ec8212adc7295123bee7b8b9d124ed"
      }
    },
    {
      "version": "2.4.0-beta1",
      "date": "2026-06-14",
      "type": "beta",
      "notes": "2.4.0-beta1 —— 2.4 系列首个测试版（自 2.3.0）。\n\n本版从 main 切出 release/2.4.x，集中带来一批此前仅在主线的功能；请协助验证设置重构与单位转换在车机上的实际表现。\n\n【新功能】\n\n◆ 设置模块重构\n• 设置页改为左侧 7 页签（通用 / 数据源 / 信号 / 广播 / HUD / 仪表盘 / CAN-DEBUG）的 NavigationRail 布局\n• 恢复出厂改为全量 7 域重置（前置强制备份，失败即中止）\n• 内部存储域更名迁移（lynktrack_debug → lynktrack_app，一次性自动迁移）\n\n◆ 单位转换\n• 温度 / 压力单位可在设置中切换，贯穿仪表盘、HUD、Crimson / Cyber 双皮肤与纯文本显示点\n• 量程配置 UI 跟随当前显示单位（展示换算 + 输入反转）\n\n◆ 广播\n• BLE 与 WiFi 双通道独立开关，支持并行广播\n\n◆ 仪表盘投影\n• 投影与点火联动开关，底栏显示真实投影三态状态\n• 开机自启后延时恢复投屏\n\n◆ 仪表量程\n• Crimson / Cyber 皮肤的温度 / BOOST 量程改为可配置\n\n【其他】\n\n◆ 构建\n• publish 版本号解析将 alpha / rc 一并视为预发布，避免预发布 tag 抢占正式版版本名（与发布脚本口径对齐）\n\n◆ 信号\n• 实际档位（gear_actual）默认来源由 OBD 改为 VHAL\n\n说明：应用内自动更新已随 2.3.0 / 2.2.2 发布，本系列同样具备。",
      "apk": {
        "filename": "LynkCoTrack_2.4.0-beta1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.4.0-beta1.apk",
        "size": 20763201,
        "sha256": "c8786feb844fcc32a536c1c6a893f70fec1d1e10964886a46d0c9a1e8b9c6e62"
      }
    },
    {
      "version": "2.3.3",
      "date": "2026-06-16",
      "type": "stable",
      "notes": "本版基于 2.3.2，回带日志上传地址构建期注入修复。\n\n【修复】\n\n◆ 日志上传\n• 上传地址改由构建期注入（LYNK_LOG_UPLOAD_URL），移除运行时第二来源，使 CI/CD 成为上传地址唯一来源；未配置时运行时拒绝上传而非崩溃。\n\n◆ 构建\n• CI 正式发布默认改为 publishLog 版（带日志上传功能，applicationId 同 com.migu.miguplay，可无缝覆盖升级）。",
      "apk": {
        "filename": "LynkCoTrack_2.3.3.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.3.3.apk",
        "size": 20735133,
        "sha256": "2c11455e937ad5333357d3aa401972726d9b5fe0907190e586716739ce0dba7b"
      }
    },
    {
      "version": "2.3.2",
      "date": "2026-06-16",
      "type": "stable",
      "notes": "本版基于 2.3.1，修复 HUD 转速换挡灯条红灯不亮问题。\n\n【修复】\n\n◆ HUD 转速换挡灯条\n• 修复转速灯条红灯恒不亮：BTC 模式全部红灯、CTS 模式左右最外侧灯、LTR 模式最后一颗红灯在满量程也点不亮；改为留 1 灯头距，到达量程顶点时整条灯带含红灯完整点亮，左右对称、怠速全灭不变。\n• 修复红线闪烁时未填满的红灯不参与闪烁：原逻辑在闪烁「亮」相位仍按填充比例判定，从未点亮的红灯在红线也不闪；改为红线时所有灯珠统一闪烁。",
      "apk": {
        "filename": "LynkCoTrack_2.3.2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.3.2.apk",
        "size": 20735341,
        "sha256": "5fe1fd2b4bc0822aa91edba60e59af6387d8e9b86156136bd5603f15abb6f9b1"
      }
    },
    {
      "version": "2.3.1",
      "date": "2026-06-15",
      "type": "stable",
      "notes": "本版基于 2.3.0，回合多项稳定性、正确性与性能修复。\n\n【修复】\n\n◆ OBD\n• connectTo 切换 BLE↔WiFi 前先断开对方 OBD 源，避免两路采集并存\n• NUS 连续 NACK 计数并暴露繁忙状态，避免无效重试\n• UDS 流控改用 ATFC SM0 自动流控，修复多 ECU 场景下流控头互相锁死的隐患\n• UDS 重发现后整集替换有效 DID，剔除已失效项（不再累加）\n• CAN 嗅探取消清理移入 finally 并用 NonCancellable，确保 ATMA 监听被正确停止\n• CAN 嗅探 headers 集合限长 512（LinkedHashSet），防止长时间嗅探内存无界增长\n• GATT onCharacteristicChanged 改用 trySend 投递，避免回调线程协程开销与潜在丢帧\n\n◆ 传感器\n• AccelerometerSource 新增 stop()；修复回归：release() 不再调用 stop()，避免加速度计被永久禁用\n\n◆ HUD\n• 修复 BTC/CTS 转速灯条右侧黄色半侧不亮，并按左右偶数对称点亮\n• rowConfig 仅返回 slotCount 个槽位，修复缩减数据项数后旧槽位越界渲染\n• 红线闪烁改 30Hz postInvalidateDelayed，与 HUD 数据更新速率一致\n\n◆ 信号\n• brake 数据源由 VHAL 占位改为 COMPUTED 安全源\n\n◆ 副屏皮肤 / 性能\n• Crimson / Cyber 背景 PNG 解码缩放移至 IO 线程，消除主线程卡顿\n• 退出皮肤时回收背景位图修复 native 堆泄漏；回收前先清背景，防 use-after-free 崩溃\n• CyberValueView 缓存 measureText、拆分颜色与字体重建；CrimsonRpmBarView 预构建画笔与高度，减少绘制热路径分配",
      "apk": {
        "filename": "LynkCoTrack_2.3.1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.3.1.apk",
        "size": 20735337,
        "sha256": "002354426534b1c0e9d6d96edac61a4d4c323fa06fc794c513ac38dc70fd6c1f"
      }
    },
    {
      "version": "2.3.0",
      "date": "2026-06-14",
      "type": "stable",
      "notes": "2.3.0 正式版。\n\n【2.3 系列主要更新（自 2.2 以来）】\n\n◆ 副屏仪表盘皮肤\n• 全新副屏仪表盘皮肤系统：Crimson / Cyber 两套皮肤，副屏全屏投影\n• 跟随系统日夜自动切换深色 / 浅色\n• 1920×720 全视图重构与双皮肤元素重设计（LED 灯条 / BOOST·OIL 半环 / 温度·胎压面板 / Cyber 变半径转速曲线·锥形指针）\n• RPM 表黄线 / 红线 / 满量程阈值绘制，换挡灯区间与量程可配置\n• 底栏投影按钮（三态皮肤循环）、投影状态双向同步、开机自启延时恢复投屏\n• 仪表盘投影独立为「仪表盘」设置页签\n\n◆ 应用内自动更新\n• 设置 - 通用页新增「应用更新」：可检查、下载并安装新版本\n• 支持稳定版 / 测试版通道，可锁定版本系列只收同系列补丁\n• App 进入前台时自动检查（24 小时内最多一次），仅发布版生效\n\n◆ 数据源与信号\n• AdaptAPI 升为一等数据源（燃油百分比 / 精准升数、环境温度等）\n• 拆分仪表车速 / 真实车速（DIMCarSpeed / CarSpeed），新增电瓶电压信号\n• App 启动后自动重连上次 OBD 设备（蓝牙 / WiFi）\n\n◆ HUD\n• 开机自启 HUD（延时后台拉起），App 自启后自动退后台\n• 投影长按切换皮肤\n\n◆ 日志\n• 日志收集与加密上传（developLog / publishLog 构建变体）\n\n【本版新增与修复（自 2.3.0-beta3）】\n\n◆ 新功能\n• 应用内自动更新（见上）\n\n◆ 正确性\n• 方向盘角度符号统一处理 0x8000；UdsInt16Div 对 0x8000 的符号扩展修正（−32768）\n• 多处仪表取整显示改四舍五入，防止数值被截断\n\n◆ 并发 / 泄漏 / ANR\n• 用线程安全的 DateTimeFormatter 替换 ThreadLocal<SimpleDateFormat>\n• HUD 模式恢复竞态修复，onDestroy 加 2 秒超时兜底防 ANR\n• 修复响应通道无界累积、蓝牙发现接收器泄漏、扫描超时协程堆积；扫描结果原子更新\n\n◆ 性能\n• 仪表盘背景 RenderNode 缓存，消除全屏重绘瓶颈\n• 信号查找 O(1) 化；皮肤绘制热路径缓存（字体 / 灯珠色 / 静态层回收）\n\n◆ 数据安全\n• 导入前自动备份失败即中止，避免在无快照状态下变更设置\n\n◆ 信号\n• 实际档位（gear_actual）默认来源由 OBD 改为 VHAL",
      "apk": {
        "filename": "LynkCoTrack_2.3.0.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.3.0.apk",
        "size": 20733757,
        "sha256": "5ec3f240fa1a73a3f9d34979706581a8bbb295ea78beed1d3c01c643bf28ef40"
      }
    },
    {
      "version": "2.3.0-beta3",
      "date": "2026-06-13",
      "type": "beta",
      "notes": "本版基于 2.3.0-beta2，集中修复稳定性与数据正确性问题，无新功能。\n\n【修复】\n\n◆ 数据采集（VHAL / CAN / OBD / WiFi / BLE）\n• VHAL：CarSignalManager 注册失败时真正降级到轮询；退化轮询值经回调通道送达数据流；修正 HudModeSource 运算符优先级逻辑错误\n• CAN：ISO-TP 重组实现 CF 序列号校验并清理超时接线；CanFrameMapper 改用 ConcurrentHashMap 消除并发崩溃\n• OBD：移除 UDS 轮询中错误的消费端过滤；OBDLinkBle 数据源资源释放与内存泄漏修复\n• WiFi：修复 batch 解析 TCP 分片错位与重复处理；修复设备发现并发集合竞态；修正 RFC 1918 私有地址判断\n• BLE：补全权限防护，消除 MissingPermission 告警\n\n◆ 仪表盘 / HUD / 皮肤\n• DashboardViewModel 资源安全加固与 fieldStats 状态清理\n• 皮肤与 HUD 渲染热路径优化（Bitmap 回收、rpm 字符串缓存、避免每帧分配）\n• 修复 savedHudMode 跨线程可见性\n\n◆ 设置 / 日志\n• 信号导入加入快照回滚，保留现有自定义信号\n• 修复 LogCollector 并发竞态；上传完成改由服务真实回报，去除文件消失误判\n\n◆ 系统\n• BootReceiver 延迟自启动权限降级；清除残余 lint 错误",
      "apk": {
        "filename": "LynkCoTrack_2.3.0-beta3.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.3.0-beta3.apk",
        "size": 20684761,
        "sha256": "267d9100667947ec3a8a56c7e4217932f5adccc7156228feca28229f74c7b351"
      }
    },
    {
      "version": "2.3.0-beta2",
      "date": "2026-06-12",
      "type": "beta",
      "notes": "本版基于 2.3.0-beta1，新增 BLE 修复与 Crimson 皮肤调优。\n\n【修复】\n\n◆ BLE / 蓝牙\n• 修复 GATT 连接建立时未主动发起 LE 配对，导致经典蓝牙共存时 ~1.3s 后断链（reason=0x13）\n• 默认不修改车机蓝牙设备名（领克车机改 LE 名会同步改掉经典蓝牙名），默认关闭 RC 广播\n\n◆ 系统\n• 修复 BootReceiver SCREEN_ON 静态注册无效（registered-only 广播），改为进程存活时动态注册\n\n◆ Crimson 皮肤视觉\n• OIL 环右侧补留白，防止 3 位数刻度被裁切\n• 油温量程从 40~160 调整为 60~150（更贴近实际工作区间）\n• 胎温胎压字号加大并下移 RL/RR 行，改善可读性\n• BOOST 环右移 20px，与 OIL 环关于屏幕中线完全对称",
      "apk": {
        "filename": "LynkCoTrack_2.3.0-beta2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.3.0-beta2.apk",
        "size": 20672885,
        "sha256": "cf597ee83ca0bb86b80648400b28382137136a69cae21094fe258226cb50b806"
      }
    },
    {
      "version": "2.3.0-beta1",
      "date": "2026-06-12",
      "type": "beta",
      "notes": "【修复】\n\n◆ 仪表盘投屏 • 修复副屏投屏窗口越界铺满副屏物理区域、黑色背景遮住下方 HUD（换挡指示器 / 数据条）的问题——投屏窗口与画布锁定 1920×720 并顶部对齐，副屏下方区域完整留给 HUD，两者互不遮挡\n\n> 本版基于 2.3.0-alpha1，仅新增上述修复。",
      "apk": {
        "filename": "LynkCoTrack_2.3.0-beta1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.3.0-beta1.apk",
        "size": 20672025,
        "sha256": "661d0266545f8510e044a33d40b02526a60f83f4baa908d112299e5a67703f1d"
      }
    },
    {
      "version": "2.3.0-alpha1",
      "date": "2026-06-11",
      "type": "beta",
      "notes": "【新功能】\n\n◆ 副屏仪表盘皮肤\n• 全新副屏仪表盘皮肤系统：Crimson / Cyber 两套皮肤，副屏全屏投影显示\n• 皮肤跟随系统日夜自动切换深色 / 浅色模式\n• 1920×720 全视图重构 + 双皮肤元素重设计：Crimson LED 灯条 / BOOST·OIL 半环 / 温度面板 / 胎压面板；Cyber 代码弧轨变半径转速曲线 / 发光灯珠 / 锥形指针\n• RPM 表接入黄线 / 红线 / 满量程阈值绘制，换挡灯区间与量程可配置\n• 底栏新增投影按钮（三态皮肤循环），投影状态双向同步，开机自启延时恢复投屏\n• 仪表盘投影设置独立为「仪表盘」设置页签\n\n◆ 数据源与信号\n• AdaptAPI 升为一等数据源：燃油（百分比 / 精准升数）、环境温度等\n• 拆分仪表车速 / 真实车速（DIMCarSpeed / CarSpeed）\n• 新增电瓶电压信号（ECarX VehBattUSysU）\n\n◆ HUD\n• 开机自启 HUD（延时后台拉起），App 自启后自动退后台\n• 投影长按切换皮肤\n\n◆ OBD\n• App 启动后自动重连上次 OBD 设备（蓝牙 / WiFi）\n\n◆ 日志\n• 日志收集与加密上传（developLog / publishLog 构建变体）\n\n【修复】\n\n• 车速 AdaptAPI 源补 ×3.6 缩放（m/s→km/h）\n• 修复 AdaptAPI 油量 / 温度信号无数据（SENSOR_RATE 30→16）\n• 仪表盘涡轮压 kPa→bar 换算，修复指示条永远顶满\n• 补 VehicleSnapshot rangeKm 字段映射\n• HUD 开机自启状态同步\n• 亮屏兜底恢复仪表盘皮肤投屏\n• 修复 Cyber 转速表实车错位（锁定 1920×720 设计画布）\n\n【性能】\n\n• 皮肤静态层缓存、热点数字下沉自定义 View、Cyber 弧硬件化消除全屏软件层\n• HUD 数据条按槽位变更门控重绘，与 RPM 解耦\n\n【其他】\n\n• 清理赛道记录 / 赛道图 / 回放遗留代码",
      "apk": {
        "filename": "LynkCoTrack_2.3.0-alpha1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.3.0-alpha1.apk",
        "size": 20671997,
        "sha256": "cddf531656b87cf6c81069b1bcf4f86951d2f74b9c171f5ac382e900714d5aed"
      }
    },
    {
      "version": "2.2.4",
      "date": "2026-06-16",
      "type": "stable",
      "notes": "本版基于 2.2.3，修复 HUD 转速换挡灯条红灯不亮问题。\n\n【修复】\n\n◆ HUD 转速换挡灯条\n• 修复转速灯条红灯恒不亮：BTC 模式全部红灯、CTS 模式左右最外侧灯、LTR 模式最后一颗红灯在满量程也点不亮；改为留 1 灯头距，到达量程顶点时整条灯带含红灯完整点亮，左右对称、怠速全灭不变。\n• 修复红线闪烁时未填满的红灯不参与闪烁：原逻辑在闪烁「亮」相位仍按填充比例判定，从未点亮的红灯在红线也不闪；改为红线时所有灯珠统一闪烁。",
      "apk": {
        "filename": "LynkCoTrack_2.2.4.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.2.4.apk",
        "size": 18062926,
        "sha256": "0f729772a2068712b263782e7dec0d33ec79a828a46874c7488e80747e773601"
      }
    },
    {
      "version": "2.2.3",
      "date": "2026-06-15",
      "type": "stable",
      "notes": "本版基于 2.2.2，回合多项稳定性、正确性与性能修复。\n\n【修复】\n\n◆ OBD\n• connectTo 切换 BLE↔WiFi 前先断开对方 OBD 源，避免两路采集并存\n• CAN 嗅探 headers 集合限长 512（LinkedHashSet），防止长时间嗅探内存无界增长\n\n◆ 信号 / 数据正确性\n• gear_actual 默认数据来源由 OBD_UDS 改为 VHAL，无 OBD 连接时也能正确显示档位\n\n◆ BLE\n• GATT onCharacteristicChanged 改用 trySend 投递，避免在回调线程启动协程的开销与潜在丢帧\n\n◆ 传感器\n• AccelerometerSource 新增 stop()；修复回归：release() 不再调用 stop()，避免加速度计被永久禁用\n\n◆ HUD\n• 修复 BTC/CTS 转速灯条右侧黄色半侧不亮，并按左右偶数对称点亮\n• 红线闪烁改 30Hz postInvalidateDelayed，与 HUD 数据更新速率一致，消除闪烁不均\n\n◆ 性能\n• 共享车辆快照流至 Default 线程，合并逻辑只跑一份，降低多订阅者场景下的 CPU 开销",
      "apk": {
        "filename": "LynkCoTrack_2.2.3.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.2.3.apk",
        "size": 18062918,
        "sha256": "c4b598d5c13da6f1435836b419643c8c09d34f60d49c633ed444c0a8e8327596"
      }
    },
    {
      "version": "2.2.2",
      "date": "2026-06-14",
      "type": "stable",
      "notes": "本版基于 2.2.1，新增应用内自动更新，并回合多项稳定性与正确性修复。\n\n【新功能】\n\n◆ 应用内自动更新（spec 029）\n• 设置 - 通用页新增「应用更新」：可检查、下载并安装新版本\n• 支持稳定版 / 测试版通道，可锁定版本系列只收同系列补丁\n• App 进入前台时自动检查（24 小时内最多一次），仅发布版生效\n\n【稳定性与正确性修复】\n\n◆ OBD\n• 修正 UDS 轮询中错误的消费端过滤条件\n• 修正 UdsInt16Div 对 0x8000 的符号扩展（−32768）\n• 删除遮蔽 class field 的死写局部变量；热路径优化\n\n◆ VHAL / 传感器\n• 方向盘角度符号修正，统一处理 0x8000（toShort）\n• CarSignalManager 缓存反射 Method，降低回调开销\n• AccelerometerSource 字段加 @Volatile，修复跨线程可见性\n\n◆ WiFi / BLE\n• 修正 RFC 1918 私有地址范围判断\n• WiFi 发现 startScan 先 cancelAndJoin 旧轮、结束改 cancelAndJoin，消除共享资源与跨轮竞态\n• 远端断开后取消轮询，停止空转 / 写死 socket\n• BLE 扫描结果原子更新、断开时反注册广播接收器防泄漏、disconnect 清空响应通道\n\n◆ HUD\n• 补全多行底栏配置的导出 / 导入\n• HUD 模式恢复竞态修复，onDestroy 加 2 秒超时兜底防 ANR\n• savedHudMode 跨线程可见性修复；转速字符串缓存减少每帧分配\n\n◆ 信号 / 设置\n• 信号导入保留现有自定义信号，不再丢弃\n• 导入前自动备份失败即中止，避免在无快照状态下变更设置\n• SignalInterpolator 读锁下不再删除过期项，消除并发结构竞态\n\n◆ 仪表 / 嗅探\n• GForceDisplay 画笔移出绘制热路径，减少每帧分配\n• CAN 嗅探停止改 cancelAndJoin 去除重复清理；帧发射限频\n\n◆ 启动\n• 开机精确闹钟被拒（Android 12+ 新装默认拒绝）时降级为立即启动",
      "apk": {
        "filename": "LynkCoTrack_2.2.2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.2.2.apk",
        "size": 18063750,
        "sha256": "f486dc474715f8fddc2ff2f45d1662be8ce59a97880dbe99ee67ac7b5da67826"
      }
    },
    {
      "version": "2.2.1",
      "date": "2026-06-12",
      "type": "stable",
      "notes": "2.2.1 正式版。本版聚焦稳定性与数据正确性，共修复 9 项问题。\n\n【修复】\n\n◆ 数据采集 / VHAL\n• CarSignalManager 注册失败时真正降级到轮询，避免 VHAL 回调流结束后数据永久终止\n• 退化轮询值经回调通道发出，使其真正到达数据流（此前退化信号被静默丢弃）\n• 修正 HudModeSource readCurrentMode 的运算符优先级逻辑错误\n\n◆ CAN / OBD\n• ISO-TP 重组实现 CF 序列号校验并清理超时接线，乱序/重复帧直接丢弃，避免拼出错误数据\n• CanFrameMapper 重组缓冲改用 ConcurrentHashMap，消除并发导致的崩溃（ConcurrentModificationException）\n• OBDLinkBle 数据源资源释放与内存泄漏修复\n\n◆ WiFi / BLE\n• 修复 WiFi 设备发现与 BLE GATT 服务的并发集合竞态（崩溃风险）\n• 修复 WiFi batch 解析时 TCP 分片错位与重复处理导致的数据错乱\n\n◆ 仪表盘\n• DashboardViewModel 资源安全加固与 fieldStats 状态清理",
      "apk": {
        "filename": "LynkCoTrack_2.2.1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.2.1.apk",
        "size": 18011094,
        "sha256": "3715090e34c7c9d9e74b74a31f8eb989e495cfdf29fdb77c5bb392f702833572"
      }
    },
    {
      "version": "2.2.0",
      "date": "2026-06-12",
      "type": "stable",
      "notes": "2.2.0 正式版。\n\n【2.2 系列主要更新（自 2.1 以来）】\n\n◆ HUD 转速灯条\n• 浮动灯条宽度可配、LED 起始转速阈值可设，HUD 设置项重新组织\n• G 值球轴向颜色接入信号阈值（alertLevel）\n\n◆ 数据源\n• 全局 RaceChrono BLE 广播开关（高级设置）\n• 可配置 UI 刷新率\n\n◆ OBD / CI\n• 接入 GitLab CI 发布管道：推 tag 自动构建并发布\n\n【本版修复（自 beta2）】\n• 修复 BLE GATT 连接建立时未主动发起 LE 配对，导致经典蓝牙共存时 ~1.3s 后断链（reason=0x13）\n• 默认不修改车机蓝牙设备名（领克车机改 LE 名会同步改掉经典蓝牙名），默认关闭 RC 广播\n• 修复 BootReceiver SCREEN_ON 静态注册无效（registered-only 广播），改为进程存活时动态注册\n• 修复 publish 版本号解析未将 alpha/rc 识别为预发布版本",
      "apk": {
        "filename": "LynkCoTrack_2.2.0.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.2.0.apk",
        "size": 18006274,
        "sha256": "44d0570d3ffeef0d402739f30e69ded52713525d8875158222c9c14cb3e5a6bf"
      }
    },
    {
      "version": "2.2.0-beta2",
      "date": "2026-06-11",
      "type": "beta",
      "notes": "【新功能】\n• 接入 GitLab CI 发布管道：推 tag 自动构建签名 APK 并发布到 CDN\n\n【修复】\n• 修复 ViewModel onCleared 中 vehicleSignalBus.release() 永不执行的资源泄漏\n• 修复连接 WiFi OBD 后\"转圈\"与\"已连接\"状态并存的显示问题",
      "apk": {
        "filename": "LynkCoTrack_2.2.0-beta2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.2.0-beta2.apk",
        "size": 18005346,
        "sha256": "d280e6b8af206a23fdb81490b75b0c5e09636005056373ebd828ccd41c8dc549"
      }
    },
    {
      "version": "2.2.0-beta1",
      "date": "2026-06-01",
      "type": "beta",
      "notes": "2.2 首个测试版。\n\n【新功能】\n• 可配置 UI 刷新率（高级设置）\n• HUD 转速灯条增强：浮动条宽度可配、LED 起始转速阈值，HUD 设置项重新组织\n• 全局 RaceChrono 广播开关（高级设置）\n• VHAL 订阅频率分离（spec 022）：高/低优先级信号独立订阅频率\n\n【性能优化】\n• DashboardScreen 拆分独立重组域，减少整屏重组\n• fieldStats 降至 10–20Hz 采样，G 值轨迹尾迹 50 → 20 点\n\n【修复】\n• VHAL 订阅回调注册与 PropertyId 映射修复\n• 速度信号默认启用；移除 speed_actual 信号\n• release 构建禁用 HUD 网格调试覆盖层\n• 设置页点击空白处清除输入框焦点\n• 浮动条宽度公式与灯条两侧边距统一\n• 弃用 API 清理与 callbackFlow 部分映射问题修复",
      "apk": {
        "filename": "LynkCoTrack_2.2.0-beta1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.2.0-beta1.apk",
        "size": 18005606,
        "sha256": "bfed6fccbed3538e21422f2c69b7d5828d5fbd8a73d948c5459ac592ef0be6d3"
      }
    },
    {
      "version": "2.1.0",
      "date": "2026-06-01",
      "type": "stable",
      "notes": "2.1.0 正式版。\n\n【2.1 系列主要更新（自 2.0 以来）】\n• 设置导入/导出：SAF 文档导出/导入全部配置，含自动备份与预览\n• HUD 底栏多行数据：0–2 行，每行独立配置 1–6 槽位\n• 混合 Mode01/UDS：按信号选择查询源，移除全局协议开关与 STPX 路径\n• 开机自启：车机开机自启 + 点火自动开启 HUD（RPM 检测）\n• UDS 信号扩展：两级 ECU 分组、ECU 1DD01601 信号组、透传模式（SUB_TYPE_UDS_DID_DIRECT）\n• G 值球轴向颜色接入阈值；OBD 活跃时性能优化\n\n【本版修复（自 beta3）】\n• publish 版本号解析：优先稳定 tag、限定当前 release 分支\n• 移除 speed_actual 信号及仪表速度优先级逻辑\n• 阈值总开关持久化\n• 数值输入框改为失焦时钳制，改善编辑体验\n• HUD 槽位过滤已禁用信号并保持槽位位置\n• BluetoothAdapter 空指针检查；HUD 区域默认高度 190",
      "apk": {
        "filename": "LynkCoTrack_2.1.0.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.1.0.apk",
        "size": 17992214,
        "sha256": "c86476b3d114bbcf0a18c751ec3f62670f67b659ccd6c86303b9e925c5366642"
      }
    },
    {
      "version": "2.1.0-beta3",
      "date": "2026-05-27",
      "type": "beta",
      "notes": "【新功能】\n• G 值球轴向数值颜色接入信号阈值（alertLevel），默认 0.5G 警告 / 1.0G 危险\n\n【修复与优化】\n• 修复 G 值轴数值不随数据更新的问题（derivedStateOf 误用）\n• 修复 Paint 缓存重构后丢失的 TPMS / G 值文字颜色与字号\n• 降低 OBD 活跃时的主线程卡顿：插值器锁竞争与 UI 重组开销优化",
      "apk": {
        "filename": "LynkCoTrack_2.1.0-beta3.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.1.0-beta3.apk",
        "size": 40390073,
        "sha256": "11d222c8ba27073b222937629c7cbd230415a7731698d331f322b24ca1cf762d"
      }
    },
    {
      "version": "2.1.0-beta2",
      "date": "2026-05-23",
      "type": "beta",
      "notes": "【修复】\n• release 构建隐藏 CAN 嗅探页签\n• OBD 连接状态合并 BLE 与 WiFi 两路（修复仅看 BLE 的问题）\n• 修复辅助数据面板拖动重排时崩溃\n• OBD 断连时所有 OBD-only 信号统一显示 \"--\"",
      "apk": {
        "filename": "LynkCoTrack_2.1.0-beta2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.1.0-beta2.apk",
        "size": 40373037,
        "sha256": "c61914ab637500a64de292035afc41eddd41cb364c23e8ba54450f568dc804f5"
      }
    },
    {
      "version": "2.1.0-beta1",
      "date": "2026-05-18",
      "type": "beta",
      "notes": "2.1 首个测试版。\n\n【新功能】\n• 设置导入/导出：SAF 文档导出/导入全部配置，含自动备份与导入预览\n• HUD 底栏多行数据：支持 0–2 行，每行独立配置 1–6 槽位，行高在底栏内等分\n• 混合 Mode01/UDS 模式：移除全局协议开关与 STPX/STN 路径，改为按信号选择查询源（ObdQuerySource）\n• 开机自启：BootReceiver 车机开机自启 + 点火自动开启 HUD（RPM 检测触发），延迟可配置，手动操作可取消挂起的自动任务\n• UDS 信号扩展：两级 ECU 分组浏览，新增 ECU 1DD01601 信号组、ignition_timing（F40E）等，OBD 扫描补充 9 个 Mode01 信号定义\n• 透传模式：BLE NUS 与 WiFi 路径升级为 SUB_TYPE_UDS_DID_DIRECT 直传原始 DID，解耦固件映射表；ESP32 固件 v2 支持 Mode01 PID 订阅与 CACHED_DATA\n• 数据源设置 UI：字体放大、阈值总开关、隐藏 sourceKey/ECU 细节\n\n【修复】\n• 无数据源连接时仪表显示 \"--\" 而非 0.0（含按信号粒度判断）\n• WiFi Auto 模式默认 UDS；ESP32 混合订阅注册与 CAN 帧数据偏移修复\n• 设置导出改用 CreateDocument，修复目录选择流程\n• VehicleSnapshot 补齐 23 个缺失的 UDS 信号映射",
      "apk": {
        "filename": "LynkCoTrack_2.1.0-beta1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.1.0-beta1.apk",
        "size": 40367565,
        "sha256": "8bfb3333df7a7ad39d31898afab2beb853da9a190c56d482d25d864334db4159"
      }
    },
    {
      "version": "2.0.3",
      "date": "2026-05-31",
      "type": "stable",
      "notes": "【修复】\n• 调用 isEnabled 前检查 BluetoothAdapter 是否为 null（无蓝牙环境崩溃）\n• HUD 区域默认高度 180 → 190\n• 插值器锁竞争与 UI 重组开销优化\n• 无数据源连接时仪表显示 \"--\" 而非 0.0",
      "apk": {
        "filename": "LynkCoTrack_2.0.3.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.0.3.apk",
        "size": 40191169,
        "sha256": "28d5f3802cd834c496302d1532aa12bb88224ff48ef8c11c38041cf83b4e0471"
      }
    },
    {
      "version": "2.0.2",
      "date": "2026-05-27",
      "type": "stable",
      "notes": "【修复】\n• OBD 连接状态合并 BLE 与 WiFi 两路（修复仅看 BLE 的问题）\n• HUD 槽位下拉列表与渲染过滤已禁用的信号",
      "apk": {
        "filename": "LynkCoTrack_2.0.2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.0.2.apk",
        "size": 40185805,
        "sha256": "a16bc10fd5c7cbec256e27cdb7a21e0b5cc1d40fad10ee413c05155ccb7515b4"
      }
    },
    {
      "version": "2.0.1",
      "date": "2026-05-23",
      "type": "stable",
      "notes": "【修复】\n• release 构建隐藏 CAN 嗅探页签",
      "apk": {
        "filename": "LynkCoTrack_2.0.1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.0.1.apk",
        "size": 40186161,
        "sha256": "10505c753d93243749ef3acf6bc7d8229a438a27e5a854ff867d11da5c91655d"
      }
    },
    {
      "version": "2.0.0",
      "date": "2026-05-23",
      "type": "stable",
      "notes": "2.0.0 正式版。自 1.2.2 以来的主要更新：\n\n【新功能】\n• WiFi RaceChrono 广播：RC3 协议 over TCP，20Hz 推送，信号到 RC3 通道映射可配置\n• WiFi OBD Bridge（ESP32）：WiFi OBD 数据源 + CAN 帧映射引擎，支持订阅模式\n• HUD 转速灯条多样式：方形/圆形/条形 × 渐变 × 方向，灯珠颜色可配置\n• HUD 默认模式：极简/SR/AR/导航可配置并立即应用\n• 数据源设置优化：UDS 可用性过滤、首选信号源、协议同步\n\n【修复（beta1–beta4 累计）】\n• 方向盘转角公式实车重新标定（×0.056 − 1.232）\n• engine_torque 偏移修正、UDS 解析公式修正\n• ELM327 断连状态复位、Mode01-only 设备信号可见性\n• HUD 冷启动应用失败、默认顶部比例 18%\n• VHAL 订阅频率从设置读取（替代硬编码 20Hz/5Hz）",
      "apk": {
        "filename": "LynkCoTrack_2.0.0.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.0.0.apk",
        "size": 40183549,
        "sha256": "3538844a6b11c9d37d1d88e82d6a203e28b4325e62d27938f5cac7deeb62b546"
      }
    },
    {
      "version": "2.0.0-beta4",
      "date": "2026-05-17",
      "type": "beta",
      "notes": "【修复】\n• 方向盘转角公式重新标定：有符号处理后 ×0.056 − 1.232（VHAL/UDS 实车 4 点校准）\n• engine_torque 偏移量修正（5120 → 512），并同步 sources map、断连时清理插值器\n• UdsUint16ScaleOffset 公式修正：(val − offset) × scale → val × scale − offset",
      "apk": {
        "filename": "LynkCoTrack_2.0.0-beta4.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.0.0-beta4.apk",
        "size": 17882234,
        "sha256": "53fabe68d2f06f2581882dc6e5e57475625cd2910ef9088495f89ef2c6954bb1"
      }
    },
    {
      "version": "2.0.0-beta3",
      "date": "2026-05-16",
      "type": "beta",
      "notes": "【调整】\n• HUD 顶部区域默认高度比例改为 18%\n• 数据源默认值由模拟（Mock）改为真实（Real）",
      "apk": {
        "filename": "LynkCoTrack_2.0.0-beta3.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.0.0-beta3.apk",
        "size": 17882158,
        "sha256": "a7df749195a0cbbeb4152960d746925f37598ffa16704279843cd7d751f5d579"
      }
    },
    {
      "version": "2.0.0-beta2",
      "date": "2026-05-15",
      "type": "beta",
      "notes": "【修复】\n• 断开连接后复位 ELM327 状态标记\n• Mode01-only 设备上双源信号在 OBD/UDS 分组中保持可见\n• ELM327 设备连接前即显示 UDS 协议选项\n• HUD 冷启动时先触发 ECarX 连接再立即应用模式，修复首次应用失败",
      "apk": {
        "filename": "LynkCoTrack_2.0.0-beta2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.0.0-beta2.apk",
        "size": 17882138,
        "sha256": "df3bf63905b15ea5b7ff3502f7a8ac6996d7e57d77e63d4cca24526f2c6382c4"
      }
    },
    {
      "version": "2.0.0-beta1",
      "date": "2026-05-14",
      "type": "beta",
      "notes": "2.0 大版本首个测试版。\n\n【新功能】\n• WiFi RaceChrono 广播：RC3 协议 over TCP，20Hz 推送，支持信号到 RC3 通道映射配置，BLE/WiFi 广播模式切换对话框\n• WiFi OBD Bridge（ESP32）：全新 WiFi OBD 数据源 + CAN 帧映射引擎，支持 ESP32 订阅模式自主轮询与批量协议\n• HUD 转速灯条多样式：方形/圆形/条形 × 渐变 × 方向组合，灯珠颜色可配置\n• HUD 默认模式：车内 HUD 显示模式（极简/SR/AR/导航）可配置默认值并立即应用\n• 数据源设置优化：UDS 可用性过滤、首选信号源、协议模式与 UI 同步\n\n【修复】\n• WiFi 设备发现适配车机热点 AP 模式，新增 TCP 子网扫描\n• BLE 通知循环在切换 WiFi 广播时产生僵尸任务\n• Rc3Encoder 使用 Locale.US 避免区域设置影响数字格式",
      "apk": {
        "filename": "LynkCoTrack_2.0.0-beta1.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_2.0.0-beta1.apk",
        "size": 17880458,
        "sha256": "d2bb290b576cdda086f78cd2b0ee535e1e5d3bb9faaf514dee8cf1849de458e7"
      }
    },
    {
      "version": "1.2.2",
      "date": "2026-05-14",
      "type": "stable",
      "notes": "【修复】\n• OBD 设备列表过滤重复的已配对设备，断开连接时移除配对\n• iCarPro 兼容性：UDS 不可用时优雅降级，正确处理 STOPPED 响应\n• 设备类型改为在 STN 探测完成后判定，避免误判\n• 新增经典蓝牙设备发现、按 MAC 记忆设备类型、SPP 连接回退",
      "apk": {
        "filename": "LynkCoTrack_1.2.2.apk",
        "url": "https://dl.cdn.rayfalling.com/apk/LynkCoTrack_1.2.2.apk",
        "size": 17772690,
        "sha256": "083db1d046e09496b41873110cad588c4c208fe066ce5437fc0c386af9498385"
      }
    }
  ]
}