转发/编辑Forerunner的文件系统35

时间:2018-02-01 21:24:04

标签: filesystems embedded binaryfiles ida garmin

我一直在尝试修改/添加Garmin Forerunner 35手表的内部文件系统或操作系统。到目前为止,我没有运气,而且被卡住了。

因此,手表appears as a drive(E)插入电脑时,但当我将软件更新二进制文件放入IDA时,you can see a path在字符串视图中的E驱动器中不存在。

我正在寻找一种方法来查看/转储/编辑手表的文件系统,无论是通过特制的软件更新还是其他方式。

任何帮助都将不胜感激。

编辑:添加图片

1 个答案:

答案 0 :(得分:0)

您看到E:驱动器是Garmin的内部文件系统。

使用strings类型工具在可执行文件中可以看到的路径可以是编译器放在那里的调试记录。在这种情况下,..\..\..\TSK\garmin-os\tsk_mem.c似乎是对Garmin源代码的一部分的引用,您将无法在设备上(或在线)找到它。

修改系统行为的一种方法是将.FIT个文件放入Garmin的\GARMIN\NEWFILES目录中;当它启动时,它会处理这些文件并进行修改。

例如,要仅在某些设备上启用心率变异性(HRV)跟踪 see these instructions

  

要启用HRV录制,您需要执行以下操作:

     
      
  1. 使用随附的USB连接线将手表连接到计算机
  2.   
  3. 下载enable_hrv_settings_file.fit [原始文章中的链接]
  4.   
  5. 将该文件放入此文件夹中的手表:\ GARMIN \ NEWFILES
  6.   
  7. 将手表与Garmin Express同步并断开连接
  8.   

最后,如果您想修改操作系统本身,您应该查看固件更新机制。

更新固件涉及获取.GCD文件,然后:

  
      
  1. 将文件复制到\GARMIN目录
  2.   
  3. 将其重命名为GUPDATE.GCD
  4.   
  5. 断开设备与计算机的连接
  6.   
  7. 批准设备上的更新
  8.   
  9. 等待更新完成
  10.   

关于这些文件的格式,例如gpspassion.com,在线论坛上有一些讨论,例如in this post,它给出了:

[main header] [descriptor] 080000FF data block 0xFF00 sized ...*n times (data=RAMloader) 0800xxyy last data block sized 0xyyxx. [descriptor2] BD0200FF data block *n (data=fw_all) BD02xxyy last data block sized 0xyyxx. +something last bytes...

您可以在线查找.GCD个档案的档案。