MSIVST/fuji-v410-patcher

GitHub: MSIVST/fuji-v410-patcher

Suzuki Garmin Fuji v4.10 车载导航固件的非官方补丁工具,用于修复启动警告自动跳过、MP3 播放截断和地图提醒间隔过频等体验问题。

Stars: 0 | Forks: 0

# Suzuki Garmin Fuji v4.10 Patcher 用于官方 Suzuki Garmin Fuji v4.10 `GUPDATE.GCD` 文件的非官方补丁工具。 ## 为什么需要? 该补丁工具旨在进行三处微小且针对性的人性化改进,同时保持官方 Suzuki Garmin Fuji v4.10 固件结构完整无损。 - **启动[警告](https://i.imgur.com/ZlZu8yr.jpeg):** 出厂警告页面在每次启动时都需要手动按下 `Agree`。此补丁会自动执行现有的启动流程,使设备直接进入正常的[上次使用](https://streamable.com/b7gfsn)屏幕。 - **MP3 截断:** 全新 MP3 播放可能会在播放后端处理完最后的音频尾部之前就前进到下一首。这会切掉当前播放文件末尾大约 ~250ms 的音频,然后才前进到下一首曲目。 “拖动进度条 (Seek)”或“恢复 (resume)”播放则没有出现同样的截断现象。 此补丁使全新打开的 MP3 使用现有的 `0 ms` 后端 seek 路径,从而与 Seek/Resume 的行为保持一致。 - **地图提醒:** 出厂的地图更新提醒每 28 天就会出现一次。此补丁保持该提醒处于启用状态,但将间隔时间更改为 365 天,并将可见的选项文本更新为 `1 Year`。 此工具**不**包含 Garmin 或 Suzuki 固件。它需要用户提供官方的 Suzuki Garmin Fuji v4.10 `GUPDATE.GCD`,对该文件进行验证,在本地应用微小的字节补丁,修复可见的 GCD 校验和块,并输出打过补丁的文件。 ## 补丁集 该补丁工具在 `0x02BD` 主机固件 payload 内应用了四处微小的更改: | 补丁 | `fw_all` 偏移量 | 用途 | |---|---:|---| | `startup_warning_autonext` | `0x0027102E` | 使用现有的启动调度路径,自动跳过启动警告。 | | `mp3_open_seek0` | `0x00778300` | 强制全新 MP3 播放使用带有 `0 ms` 的现有后端 seek 路径,与能正确处理音频尾部的 seek/resume 路径保持一致。 | | `map_reminder_interval_365d` | `0x00175C6C` | 将地图提醒的稍后提醒间隔从 28 天更改为 365 天。 | | `map_reminder_text_1_year` | `0x00DBDC7C` | 将可见的提醒选项从 `28 Days` 更改为 `1 Year`。 | ## 更新路径 当前版本仅专注于启动警告、MP3 截断和地图提醒间隔。未来的工作,例如 WMA 稳定性修复或蓝牙重连消息行为,应作为单独的、有文档说明的补丁模块添加,而不是悄悄混入此版本中。 有关未来 WMA/BT/媒体修复的拟议更新流程、版本控制规则和测试清单,请参阅 [docs/UPDATE_POLICY.md](docs/UPDATE_POLICY.md)。 ## 系统要求 对于独立的 Windows EXE 版本: - 尽最大努力支持 Windows 7/8/8.1/10/11。 - 使用 Python 3.8.10 和 PyInstaller 6.20.0 构建为 32 位 Windows 可执行文件。无需安装 Python。 - 该 32 位可执行文件应能在 32 位 Windows 和普通的 64 位 Windows 上运行。 - 本地化的 Windows 安装应该没问题;CLI 已使用包含西里尔字母和天城文字符的 Unicode 路径进行了测试。 - 一个官方的 Suzuki Garmin Fuji v4.10 `GUPDATE.GCD`。 - 已在标记为 `39920-61M80` 的北美 Suzuki Garmin Fuji 设备上经过测试。与 `39920-61MR1` 的兼容性**未知**。 对于 Python 源码版本: - Python 3.8 或更高版本。 - 一个官方的 Suzuki Garmin Fuji v4.10 `GUPDATE.GCD`。 - 一个兼容的 Suzuki Garmin Fuji 设备。 - 在测试前拥有已知良好的出厂恢复/更新流程。 不需要任何第三方 Python 包。 ## 支持的官方 v4.10 输入 该工具可识别以下出厂完整文件的 SHA-256 哈希值: | 地区 | 出厂文件大小 | 出厂 SHA-256 | |---|---:|---| | NA | `105,662,960` | `257990A6CBA54FDBF428C23ED07AE5A610B5C341B55005948C6F016028176756` | | AU | `43,815,422` | `56FE3F19D74E314527613881E5AC81D102988672D3EB0A9DE5CAEC74A7E626BE` | | EU | `111,065,404` | `31BC511F31AAF99B39BC56A6DB0528FB40AF693A25908AF71830C9E70CDC5360` | | IN | `61,527,878` | `48ED8CFC4E76643A1A017E8787E232522006C58029326CE243DD3EAF7E6B8E89` | | RU | `79,275,178` | `15930479B7BFE69CB730976F3596A856AEB9B7AE1815898FC790F2A18DCC7D5A` | 在已测试的 AU/EU/IN/RU v4.10 文件中,`0x02BD` 主机固件 payload 是完全相同的: ``` F566A42E1EA7A2CACD243E884A721209C024FB370635194F3C27B8B66928D3B6 ``` ## 官方固件链接 此补丁工具不包含固件。用户必须提供自己的官方 Suzuki Garmin Fuji v4.10 `GUPDATE.GCD`。 已知的 Garmin 官方托管的 v4.10 链接: | 地区 | 官方固件 URL | |---|---| | AU | | | EU | | | IN | | | NA | | | RU | | ## Windows GUI 使用说明 独立 EXE 版本: 1. 解压 zip 压缩包。 2. 双击 `FujiV410Patcher.exe`。 3. 选择官方的 `GUPDATE.GCD` 输入文件。 4. 选择输出文件。 5. 首先点击 `Dry-run / Analyze`。 6. 如果验证成功,请点击 `Patch Firmware`。 独立的 EXE 被构建为 Windows GUI 应用程序,因此双击它不应打开单独的命令行窗口。如果从 PowerShell 或命令提示符启动且不带任何参数,它将打印命令行用法,而不是打开 GUI。 Python 源码版本: 要获得简单的 Windows 应用程序体验: 1. 解压 zip 压缩包。 2. 双击 `Launch Fuji Patcher GUI.cmd`。 3. 选择官方的 `GUPDATE.GCD`。 4. 首先点击 `Dry-run / Analyze`。 5. 如果验证成功,请点击 `Patch Firmware`。 GUI 会写入打过补丁的 GCD。JSON 报告输出是可选的,默认情况下处于关闭状态。 如果 `.cmd` 启动失败,请从 python.org 安装 Python 3 for Windows,并确保可以使用 `py` 启动器或 `python.exe`。 ## 详细的固件更新 / 强制更新步骤 这些步骤描述了在北美 `39920-61M80` Suzuki Garmin Fuji 设备上测试的更新方法。其他 Fuji 设备可能会有所不同。 ### 1. 刷写前准备 1. 确保车辆已安全停放。切勿在驾驶时进行固件操作。 2. 使用稳定的电源。避免在车辆电瓶电量不足时进行刷写。 3. 准备好未修改的官方出厂 v4.10 `GUPDATE.GCD` 以备恢复之用。 4. 除非您有意了解更改地区的风险,否则请使用原本适合您设备的同一地区固件。 5. 在开始之前请阅读整个流程。 ### 2. 创建打过补丁的固件文件 1. 从上面的链接下载适合您所在地区的官方 v4.10 `GUPDATE.GCD`。 2. 在 Windows PC 上解压此补丁工具包。 3. 双击 `FujiV410Patcher.exe`。 4. 选择官方的 `GUPDATE.GCD` 输入文件。 5. 选择输出文件。 6. 首先点击 `Dry-run / Analyze`。 7. 如果验证成功,请点击 `Patch Firmware`。 8. 如果补丁程序报告错误或拒绝该文件,请不要继续。 ### 3. 准备更新媒体 1. 使用一张容量小且可靠的 SD 卡。在某些设备上 USB 媒体可能可用,但经过测试的方法使用的是 SD。 2. 如果可能,将其格式化为 `FAT32`。 3. 删除媒体上的任何旧更新文件。 4. 在 SD 卡的根目录下创建一个完全命名为 `Garmin` 的文件夹。 5. 将打过补丁的文件复制到 `Garmin` 文件夹中。 6. 将打过补丁的文件完全重命名为 `GUPDATE.GCD`。 7. 确认 SD 卡上的最终路径为 `\Garmin\GUPDATE.GCD`。 8. 从 Windows 中安全弹出媒体。 ### 4. 强制固件更新方法 由于出厂固件和打过补丁的固件都保留了 'v4.10' 字符串,我们需要在设备上强制进行固件更新。 (插入 SD 卡时,设备会忽略该文件,或者提示 GCD “不比当前软件新”)。 经过测试的强制更新方法如下: 1. 关闭车辆/设备的电源。 2. 插入包含 `\Garmin\GUPDATE.GCD` 的准备好的 SD 卡。 3. 按住实体的 `Voice` 按钮。 4. 在按住 `Voice` 的同时,按住[触摸屏](https://i.imgur.com/oTFXC3r.jpeg)的左上角。 5. 在继续按住 `Voice` 按钮和触摸屏左上角的同时,打开设备电源。 6. 一直按住两者,直到设备上显示 `LOADER`。 7. 允许更新运行,然后等待设备完全重启。 8. 更新完成后,移除 SD 卡或删除/重命名 `\Garmin\GUPDATE.GCD`。 ### 6. 恢复至出厂固件 如果更新失败、设备死机,或者您想恢复到出厂状态: 1. 移除更新媒体。 2. 重启设备电源。 3. 如果设备仍然无法正常启动,请准备一个包含未修改的出厂 v4.10 `GUPDATE.GCD` 的媒体设备。 4. 使用出厂固件重复强制/恢复更新方法。 5. 如果设备似乎卡在休眠状态,请在重试之前完全切断收音机/导航设备的电源。仅在您对此操作有把握的情况下,才使用断开车辆电瓶或适当的收音机/导航保险丝的方法。 ### 7. 更新注意事项 - `GUPDATE.GCD` 的命名在此设备上可能很重要。请使用上述大写的文件名。 - 更新文件必须位于 `Garmin` 文件夹内,而不能直接放在 SD 卡的根目录下。 - 一次只能使用一个更新文件。 - 打过补丁的文件应从您打算安装的同一地区固件生成。 - 除非您了解地图、语言、收音机和资源方面的差异,否则请勿跨地区刷写固件。 ## 命令行使用方法 独立 EXE 版本: 从 PowerShell 或命令提示符显示帮助: ``` FujiV410Patcher.exe ``` 首先进行试运行: ``` FujiV410Patcher.exe GUPDATE.GCD --dry-run ``` 给文件打补丁: ``` FujiV410Patcher.exe GUPDATE.GCD -o GUPDATE_patched.gcd ``` 可选的 JSON 报告: ``` FujiV410Patcher.exe GUPDATE.GCD -o GUPDATE_patched.gcd --report patch_report.json ``` 注意:该 EXE 被特意构建为 Windows GUI 应用程序,因此双击它不会打开命令行窗口。从 PowerShell 或命令提示符使用时,它可以打印用法并运行命令行补丁操作,但 shell 可能会在长时间的补丁操作完全结束之前就返回到提示符。如果您想要完全阻塞的控制台行为,请使用下文的 Python 源码命令行模式。 Python 源码版本: 首先进行试运行: ``` python fuji_v410_patcher.py GUPDATE.GCD --dry-run ``` 给文件打补丁:
标签:Garmin, GCD文件, TLS配置检查, 二进制修改, 固件补丁, 嵌入式系统, 漏洞挖掘, 逆向工具