切换新版>>

昊锐论坛 >  RNS510 1570 0890 固件安装文件分析

发表于 2012-04-10 15:59    IP属地:未知

查看 96.2W | 回复 44
RNS510 1570 0890 固件安装文件分析

网上已经有人可以将1570安装到昊锐的机头上了(网页链接),
是通过修改硬件信息来达到目的的,但其实如果能跟踪调试安装程序,可以将硬件判断这一步跳过,就可以安装了,本人只是感兴趣,再次研究了一些1570和0890的文件结构和配置信息,但是没有调试机器和相关的软件,只能分析分析,下面将分析的结果共享给大家看看,仅在此做个笔记,如有错误,欢迎更正。



目录中大家基本会看到很多熟悉的缩写,通过多个文件的对比,找到了答案:


缩写表
PQ     PQ35_46
TO     Touareg
SK     Skoda
PH     Phaeton
T5     T5

frg文件:
该文件是安装包片段,是多个具体程序的包,同时还包含了语音提示内容,固件安装光盘应该是通过配置文件找到对应的偏移量来拆解程序,直接写到硬盘。


拿 LANG_CN.FRG 举例,里面全是中文语音提示,大家听到的女生就是念的这里面的文字。


我摘取了一段unicode编码,这些都是内部定义好的
u6b63u5728u663eu793a u8be6u60c5u3002 u60a8u8981u7ee7u7eedu5417uff1f
t4148_concat_t1364=u7ee7u7eedu3002 u8bf7u7ed9u51fa u89c6u9891u6587u5b57u9875u9762u7684u53f7u7801uff01 u8bf7u5206u522bu8f93u5165u6bcfu4e00u4f4du6570u5b57u3002u59821-2-3u3002
t600543=u56deu5bb6
t33_concat_t600209=u7b2c4u90e8u5206 - u6307u4ee4u5e2eu52a9u3002 u60a8u53efu4ee5u547du4ee4uff1a u5e2eu52a9u6765u83b7u5f97u8bf4u660euff0c u5e76u4e14u4e86u89e3u8bedu97f3u5bf9u8bddu7684u91cdu8981u6307u4ee4u3002 u8981u83b7u5f97u66f4u591au7684u6307u4ee4u548cu8bf4u660euff0c u53efu4ee5u547du4ee4uff1a u5176u5b83u9009u9879u3002 u5982u679cu60a8u60f3u8981u4e86u89e3u66f4u591au7684u901au7528u6307u4ee4u4fe1u606fuff0c u60a8u53efu4ee5u547du4ee4uff1a u4e3bu83dcu5355u5e2eu52a9u3002 u60a8u8981u7ee7u7eedu5417uff1f



通过用工具解码,可以得到
*****
正在显示 详情。 您要继续吗?
t4148_concat_t1364=继续。 请给出 视频文字页面的号码! 请分别输入每一位数字。-2-3。
t600543=回家
t33_concat_t600209=第4部分 - 指令帮助。 您可以命令: 帮助来获得说明, 并且了解语音对话的重要指令。 要获得更多的指令和说明, 可以命令: 其它选项。 如果您想要了解更多的通用指令信息, 您可以命令: 主菜单帮助。 您要继续吗?



当然,大家不能随便修改这个文件,第一是文件有校验,第二是长度不能发生变化,否则内部的文件结构,偏移量会错误,你可以修改某一个词,即一个字一个字的修改。




安装包的工作原理
整体流程由ECUorder.txt这个文件决定,并且该目录下的 CRC.16也是这个文件的16位CRC文件校验值,可以看出这个文件的重要性.


文件内容如下:(双斜杠后面是我加的注释)


SHOW_SCREEN 1 1 SWL_SCREEN_VERSION     //显示版本
RUN_SHELL_SCRIPT 0 DEL_FOLD /cddos/WA/DEL_FOLD.WSH     //跑批处理指令,这里应该是删除老文件目录
SWL     [url=]//进入到SWL目录[/url]
HOST   [url=]//进入到HOST[/url]目录
APPS    //进入到APPS目录
HDD    [url=]//进入到HDD目录[/url]

[url=]//以上目录都会有关键的[/url] HwIdMap.txt,DlScript.txt 和 PrjctMap.txt 且都会有crc16校验,通过这些文件,安装程序会知道如何去安装
////////////////////////////////////
DIScript.txt
////////////////////////////////////
COPY 0 3694665 /cddos/SWL/SILVER_1/RNSMIDEC/SWL/SWL.FLI
//不懂数字是什么意思,有可能是偏移量,也有可能是磁盘具体的写入地址,例如磁道
SHOW_SCREEN 1 16 SWL_SCREEN_PROGRESS
STRATA_UPDATE 13 32768 /cddos/TSW/SILVER_1/RNSMIDEC/PROG/testscrn.fli
STRATA_UPDATE 01 761648 /cddos/TSW/SILVER_1/RNSMIDEC/PROG/TSWL_CP2.fli
DELETE_TFFS
RUN_SHELL_SCRIPT 0 28 /cddos/WA/DEL_WTIL.WSH
INIT_SYS_CONFIG
RUN_SHELL_SCRIPT 0 593 /cddos/WA/DEL_ERRL.wsh
RUN_SHELL_SCRIPT 0 381 /cddos/WA/DEL_CSTM.WSH
LOAD_LIBRARY 0 89576 /cddos/WA/CTEST.OUT
RUN_SHELL_SCRIPT 0 214 /cddos/WA/RECOG_ON.WSH
RUN_SHELL_SCRIPT 0 682 /cddos/WA/CHNPQTO.WSH
FINISHED_ECU

////////////////////////////////////
RESTART_SYSTEM //重启系统
RADIO //处理收音机
RUN_SHELL_SCRIPT 0 DEL_FOLD /cddos/WA/DEL_FOLD.WSH
MPEG
RUN_SHELL_SCRIPT 0 DEL_FOLD /cddos/WA/DEL_FOLD.WSH
VUCI
RUN_SHELL_SCRIPT 0 DEL_FOLD /cddos/WA/DEL_FOLD.WSH
RESTART_SYSTEM
FINISHED_DOWNLOAD  //完成

对这个文件分析结束


对比了0890和1570的目录结构,很显然没有skoda特定的配置信息在里面
wa目录下的CTEST.OUT两个文件是一致的,这个文件貌似是一个安装前的检测程序


根目录下的BIScript是很重要的,bootloader启动的时候会先加载这个配置文件,安装界面显示成怎样,也是这个文件决定的,比如按钮是什么颜色的,安装进度如何,等等


摘抄一段:
[0x000201XX.0x00010002.0x00000000.0xFFFFFFFF] //应该是跟颜色有关
BAR 0 0 640 240 0xFFFF //和屏幕尺寸有关
TEXT 2 2 1234 0xFFFF 2 "Setup Software Loading Application"
TEXT 10 16 1234 0xFFFF 1 <Version.txt;"#CD:">  [url=]//10[/url] 16应该是横纵坐标,从version.txt里获取相关的版本信息
TEXT 40 16 1234 0xFFFF 1 <Version.txt;"#DATE:">
PROGRESS_BAR 50 110 590 130 1687 2884 0968 9389 9863
LOAD_FLASH_IMAGE [url=]//cddos/SWL/SILVER_1/RNSMIDEC/SWL/SWL.FLI[/url]  //不知道是动画还是程序镜像,头疼。。。
SET_BOOT_MODE 0x12
SET_BOOT_MODE 0x12
REBOOT





version.txt
--------------------------------------------
Software Loading CD for CP2 based units
(c) CONTINENTAL Wetzlar
CdTreeBuilder version 3.06 is used.
--------------------------------------------
#CD 0 0 5 . 4 7 0 . 9 0 1
#DATE:2011-11-25
#Project: VWRNS
#Author: RoNe
#Steckbrief: C_CHN_13.570_t1 C10/C12/C6
#CommentStart:
This is a SWL CD for VW delivery.
#CommentEnd:
#Integrationphase: Delivery cw22/12 C10/C12/C6-samples
#VwSwPartNumber:3CD035682B/56D035682A/7E0035682A         
#VwSwIndex:1570/1570/1570
#AppsBuild:C_CHN_13.570_t1 C10/C12/C6
#CRC16:eac1  //非常气愤这里,不知道对应的是哪个文件的crc16.......



不过发现,这个文件基本被舍弃。。。只供参观,不过上面那个crc...


INFO 目录


user.cfg
0890
        HARDWARE_B   = 0
        HARDWARE_B1  = 0
        HARDWARE_B2  = 0
        HARDWARE_C   = 0
        HARDWARE_C3  = 0
        HARDWARE_C4A = 0
        HARDWARE_C4B = 0
        HARDWARE_C6  = 1
     HARDWARE_C10 = 1
     HARDWARE_C12 = 1

1570:
        HARDWARE_B = 0
        HARDWARE_B1 = 0
        HARDWARE_B2 = 0
        HARDWARE_C = 0
        HARDWARE_C3 = 0
        HARDWARE_C4A = 1
        HARDWARE_C4B = 1
        HARDWARE_C6 = 1
     HARDWARE_C10 = 1



CdStruct.cfg
都是关键信息,不知道修改这里的版本信息,是否可以将1570安装到昊锐上




VUCIB101RNSMIDECPROGGWBOOTL.FLI 是bootloader文件,对于crc16的验证都在这里做,如果有条件用程序跟踪,我们可以把校验部分直接改成全部通过,这样修改任何文件都不用考虑到校验码了




分析自此,收笔~~




[每日热点]:【酷车实拍】家里又添新车了 提哪吒L...

回复本楼 | 评分 | 举报

发表于 2012-04-10 16:08    IP属地:未知

原帖由 hzexcel 于 12-04-10 16:07 发表
LOAD_FLASH_IMAGE //cddos/SWL/SILVER_1/RNSMIDEC/SWL/SWL.FLI  //不知道是动画还是程序镜像,头疼。。。
这一行中的SWL.FLI是程序镜像(应该是压缩的文件),FLI不是FLASH动画文件。
是的,现在通过硬件的方式能够安装,就说明修改程序也能安装,哪位同学实验实验,呵呵。

[每日热点]:【旅行游记】人说山西好风光之黄河篇...

回复本楼 | 评分 | 举报

发表于 2012-04-10 16:12    IP属地:未知

原帖由 hzexcel 于 12-04-10 16:09 发表
VUCIB101RNSMIDECPROGGWBOOTL.FLI 是bootloader文件,对于crc16的验证都在这里做,如果有条件用程序跟踪,我们可以把校验部分直接改成全部通过,这样修改任何文件都不用考虑到校验码了
如果能解压这个 ...
貌似这个文件不是压缩的,好像就是一个编译好的程序,不知道可以用什么进行反编译。

[每日热点]:【保养维护】逍客烧机油难题被PNF技术完美解决...

回复本楼 | 评分 | 举报

发表于 2012-04-10 16:17    IP属地:未知

研究一下 *****

[每日热点]:【休闲生活】丰宁坝上百里天路草原之巅...

回复本楼 | 评分 | 举报

发表于 2012-04-10 17:47    IP属地:未知

貌似netdata修改version.txt中的
#Steckbrief:
#AppsBuild:
并不影响crc
netdata描述的是只要不修改
#CD:
#DATE:
crc是不会变的,估计是拿这两个值算出来的
[ 本帖最后由 zealczg 于 2012-4-10 18:38 编辑 ]

[每日热点]:【旅行游记】禅国囊谦 1000多个佛寺...

回复本楼 | 评分 | 举报

发表于 2012-04-10 22:29    IP属地:未知

原帖由 hzexcel 于 12-04-10 19:44 发表
现在有CRC计算程序, 这些问题好办多了,晚上准备先试一下能不能进入到互动界面!
测试结果如何?

[每日热点]:【旅行游记】打卡妈屿岛...

回复本楼 | 评分 | 举报

发表于 2012-04-10 23:23    IP属地:未知

原帖由 hzexcel 于 12-04-10 22:37 发表
今天晚上不弄了,明天准备再把1570INFOuser.cfg里的
#VwSwPartNumber:3CD035682B/56D035682A/7E0035682A
改成#VwSwPartNumber:3TD035682/56D035682A/7E0035682A  
试试看能不能进入到互动界面
请注意 netdata 说的这句话
In the image header we have identified the following data:
  • car type (VW and skoda have different headers) [bytes 4-5]
  • image width [bytes 8-11]
  • image height [bytes 12-15]
  • data length [bytes 28-31]
  • data checksum (crc16-CCITT of the data) [bytes 18-19]
In the file header we have found the following data:
  • magic number AA55 AA55 [byte 0-3]
  • car type (VW and skoda have different headers)
  • data length (this includes the image header) [byte 8-11]
  • data checksum (this includes the image header) [byte 18-19]
无法载入进去,是不是和cartype有关如 swl.fli


1570 和 0890 swl 目录下,1570没有

CHNSK35


对比,即配置

RUN_SHELL_SCRIPT 0 709 /cddos/WA/CHNSK35.WSH 是 709,同时wa目录下也得放入

CHNSK35.WSH 文件,


祝你明天成功哈。


[每日热点]:【自驾游记】中原游之须弥福寿之庙...

回复本楼 | 评分 | 举报

发表于 2012-04-11 11:10    IP属地:未知

这个导航用的操作系统是  vxworks
*****

[每日热点]:【自驾游记】神农架-白帝城-三峡-宜昌...

回复本楼 | 评分 | 举报

发表于 2012-04-11 17:58    IP属地:未知

原帖由 hzexcel 于 12-04-11 11:26 发表
知道了操作系统,那对了RNS510的动作方式会了解的更直接,更便于分析!谢谢你的信息




user.cfg:1570
CHINA = 1
PROJMAP_CHN_PQ = 1
PROJMAP_CHN_TO = 0
PROJMAP_CHN_SK35 = 0
//0890的配置是都是1

PROJMAP_CHN_SB = 0

PROJMAP_CHN_PH = 0
PROJMAP_CHN_BY = 0
PROJMAP_CHN_NMS = 1
PROJMAP_CHN_ECAR = 0
PROJMAP_CHN_T5_TO = 1
而cdstruct.cfg为根据这些配置来执行对应的代码
      #ifdef PROJMAP_CHN_SK35
        00050137 APSCHNSK
      #endif


      #ifdef PROJMAP_CHN_SK35
        //PROJECT APSCHNSK
        BOOTMODE_SWL
        SHOW_SCREEN 1 16 SWL_SCREEN_PROGRESS


        #ifdef SHOW_EXPECTED_TIME
          EXPECTED_TIME 20
        #endif


        #ifdef DEL_LANG
              RUN_SHELL_SCRIPT 0 DEL_LANG /cddos/WA/DEL_LANG.WSH
        #endif
user.cfg貌似是一个非常值得研究的地方,1570的CdStruct.cfg是支持skoda的,他会根据swl目录结构来升级对应的rns,有可能在1570SWLSILVER_1 目录下存放 CHNSK35 并修改PrjctMap.txt应该就可以了


同时  
1570swlhwIdMap.txt 内容为
000100020044 SILVER_1
000100020045 SILVER_1
000100020046 SILVER_1

对应1570cdstruct.cfg配置为
#ifdef HARDWARE_C4A
    ;C4A-sample
    000100020042 SILVER_1
  #endif
  #ifdef HARDWARE_C4B
    ;C4B-sample
    000100020043 SILVER_1
  #endif
  #ifdef HARDWARE_C6
    ;C6-sample
    000100020044 SILVER_1
  #endif
  #ifdef HARDWARE_C10
    ;C10-sample
    000100020045 SILVER_1
  #endif
  #ifdef HARDWARE_C12
    ;C12-sample
    000100020046 SILVER_1
  #endif




0890swlhwIdMap.txt的内容为
000100020042 SILVER_1
000100020043 SILVER_1
000100020044 SILVER_1
000100020045 SILVER_1


对应cfg为
#ifdef HARDWARE_C4A
    ;C4A-sample
    000100020042 SILVER_1
  #endif
  #ifdef HARDWARE_C4B
    ;C4B-sample
    000100020043 SILVER_1
  #endif
  #ifdef HARDWARE_C6
    ;C6-sample
    ;070831-AKr: Adapted for NAR C4C/C6 radio problem
    ;080513-MaRu: Moved to the ECU APPL
    000100020044 SILVER_1
  #endif
  #ifdef HARDWARE_C10
    ;C10-sample
    ;Roxana Neculita: new HW Mapping: 45
    000100020045 SILVER_1
   #endif
;  #ifdef HARDWARE_CAAA
;    ;C6-sample
;    000100020045 SILVER_1
;  #endif
;  #ifdef HARDWARE_CBBB
;    ;C6-sample
;    000100020046 SILVER_1
;  #endif

所以,一定要让hwIdMap里有相关硬件的配置信息
总结一下:
hwIdMap、CdStruct.cfg、PrjctMap、user.cfg是关键文件,且注意修正crc
[ 本帖最后由 zealczg 于 2012-4-11 18:05 编辑 ]

[每日热点]:【旅行游记】巴马世界之乡长寿村...

回复本楼 | 评分 | 举报

发表于 2012-04-11 21:23    IP属地:未知

原帖由 hzexcel 于 12-04-11 20:36 发表
现在的问题是:version.txt里的CRC16校验码如何更新?根据netdate的说法 version.txt里的CRC16值是光盘的校验值,如何重新计算?
Upgrade processTo change a logo the following steps must be taken:
...
netdata修改version.txt中的
#Steckbrief:
#AppsBuild:
并不影响crc
netdata描述的是只要不修改
#CD:
#DATE:
就不会影响CRC

[每日热点]:【旅行游记】夏天的乌兰察布...

回复本楼 | 评分 | 举报