赞助论坛
  • 17782阅读
  • 0回复

让小海尔显示准确的时间!(6.25修改,可用于3121套片6.25版的完美BIN,请下载最后一个) [复制链接]

楼层直达
byzx  

发帖
445
精华
12
金币
658
威望
178
贡献
331
好评
134
注册
2010-03-02
楼主    byzx 发表于: 2010-06-18 15:50:18 
[size=3][color=red]本帖所描述的方法适用于0301版高星原厂通刷BIN的小海尔套片之5812组合。其它组合请自行分析解决。

有网友说工具不好用,主要是因为工具适用的BIN只是5812组合的,今天改进了一下,可以适用于1108和2020组合,欢迎测试!
在解开APP后,会在信息区显示数据在APP中的位置,类似于下面这样的文字:[/color]
[color=blue]时间偏移量及时区信息已经读入。
时间调整数据位于BIN中的4BA4(16进制)处。[/color]
如果是4E02,则说明是1108组合,其它组合数值各不相同,由程序自动搜索。

从所周知,中9的时间比实际时间约慢2分钟左右,经常可以看到新闻联播开始了,但节目信息中的时间还在18:58。据本人观察,机项盒时间比节目中显示的时间慢两分钟左右(118-119秒间),比实际时间要慢2分5秒到2分6秒。

时间观念较强的人是不能满意这样的时间显示的,但长期以来,无人能拿出解决办法。本人经过几天的分析,掌握了调整时间差的方法,不敢独享,发出来让想调整时间显示的用户能够心想事成。

手工修改的步骤大约是①解开61000处的应用程序包②修改数据③压缩数据④将压缩后的应用程序包植入到BIN中61000处⑤校验数据并烧录。有BIN修改经验的一般用户在几分钟内就能完成BIN的修改,配合专业工具可以事半功倍。

要修改的地方位于APP区的04BA4处,共3个字节,分别代表要调整的小时、分和秒,正值是调快,负值是调慢。

分析还发现,BIN中有指定时区的地方,目前内置值为08,代表北京时间的时区。如果是其它时区的中9用户,可以修改这个值进行时区变换,具体地址在173F处,正值表示EST,负值表示WST,负数用补码表示。

附图一张,以方便对照修改。[/size]

稍花了一点时间,在原来的文字修改工具中加上了时间调整功能,用法比较简单,基本一看就会。
(1)打开BIN   (2)解压   (3)修改并确认 (4)保存   (5)刷机。

与本帖内容相关的反汇编代码片段:
[color=blue][code];时间调整子程序,用于将TDT表中的时间调为本地时间
;入口参数:R321指向时间日期(7DC611)

L7700D0:   MOV   DPTR, #7DC95BH   ;保存结果时间指针的地址
  LCALL   L7222D9     ;调用C?PSTXDATA
  MOV   R0, #5EH
  MOV   R4, #0C9H
  MOV   R5, #7EH
  MOV   R3, #0F3H   ;指向APP中的时间增量(3字节,时分秒)
  MOV   R2, #4BH
  MOV   R1, #0A4H
  MOV   R6, #00H
  MOV   R7, #03H
  LCALL   L722582   ;内存复制,将724BA4处的3个字节复制到7DC95E处
  MOV   DPTR, #7DC60FH
  MOVX   A, @DPTR   ;取出时区(默认值=08)
  MOV   R7, A
  CLR   C
  XRL   A, #80H
  SUBB   A, #80H
  JC   L770101     ;时区为负,转走
  MOV   DPTR, #7DC95EH
  MOV   A, R7
  MOVX   @DPTR, A   ;将时区加到偏移值上去
  SJMP   L77011B
;时区为负时的处理
L770101:   MOV   DPTR, #7DC60FH
  MOVX   A, @DPTR
  ADD   A, #18H   ;在原来的负值(补码)上加24小时
  MOV   DPTR, #7DC95EH
  MOVX   @DPTR, A
  MOV   DPTR, #7DC95BH
  LCALL   L7222B9
  MOV   R5, #01H
  LCALL   L75773F   减去一天

L77011B:   MOV   R3, #7EH
  MOV   R2, #0C9H
  MOV   R1, #5EH
  MOV   DPTR, #7DC958H   ;时间偏移值
  LCALL   L7222D9       ;保存指针(R321=7DC95E)
  MOV   DPTR, #7DC95BH   ;节目流中解出的世界标准时间UTC
  LCALL   L7222B9       ;取出指针
  LCALL   L76075C       ;时间相加
  MOV   R7, #01H     ;返回值:1=成功
  RET[/code][/color]
本帖最近评分记录: 13 条评分