国芯山机空中升级研究(中ju进阶)
浏览:777 发布日期:2014-07-15

中ju刷机进阶资料,应该可以帮助小部分朋友修改BIN,完成山机空中升级;也可以让部分朋友可以按自已的意愿个性化自已的BIN,对于高手,可以省些力气少弯路,共同研究所有山机的空中升级之可能性。

以下为部分内容摘选:完整见附件:

  下载 (38.15 KB)

2010-2-26 16:15


1、             直播星白皮书(最好仔细研读,或者遇到问题再回来查,较大,请百度下载,好象坛里也有,大家可以搜索一下。)

2、             winhex较有用的几个快捷键:
ctrl+1 选定光标位做为选择起点
ctrl+2选定光标位做为选择结束点
ctrl+shift+C 将选中区域进行十六进制复制
ctrl+ins  将剪贴板中的十六进制数据粘贴到一个新文件中
ctrl+F2  打开比较HASH值对话框(可在此处对选中区进行CRC32或CRC16的校验)

3、      国芯BIN的结构:

(1)2MBIN(见图)
启动部分:0x00000---0x10000(应该是这部分的有数据的区域,全是“FF”部分不算),机顶盒启动程序。
空中升级下载部分:0x10000—0x2fbff(应该是这部分的有数据的区域,全是“FF”部分不算),机顶盒进行空中升级时调用这部分程序,这些数据要进行CRC32校验。
机顶盒设备信息区:0x2fc00—0x2fd03,各部分含意见图,有校验。
Flash header:0x30000—0x30107, 各部分含意见图,有校验。
应用程序区:0x30400—0xfffff,机器启动自检后交给本部分,包含系统的硬件驱动等,有校验,本部分以GZ格式压缩,可使用WINRAR解压,建议大家安装7ZIP软件(支持GZ的解压缩),有修改能力的朋友改完这部分,还要压缩回GZ格式。
用户数据区:0x1c0000—0x1fffff,
0x1c0000开始为频道信息部分,想自已修改PID的修改此处,不想修改的,找个现成的替换一下就是46台,很简单。
0x1e0000 开始为密码区,0000和9999都在这里显示出来,如果把这个区域的9999全部替换成5678,那么你再开机的时候,超密就是5678了。
0x1f0000 NVROM,NVROM的结构见白皮书110页,这里的数据每一次升级会累加一组,如果把最后一组的5678后面的00改为非0的值,则在开机时直接触发空中升级。

(2)1MBIN(替换图1中相应的地址即可)
启动部分:0x00000---0x10000(应该是这部分的有数据的区域,全是“FF”部分不算),机顶盒启动程序。
空中升级下载部分:0x10000—0x1fdff(应该是这部分的有数据的区域,全是“FF”部分不算),机顶盒进行空中升级时调用这部分程序,这些数据要进行CRC32校验。本部分以GZ格式压缩。
机顶盒设备信息区:0x1fe00—0x1ff03,各部分含意见图,有校验。
Flash header:0x20000—0x20107, 各部分含意见图,有校验。
应用程序区:0x20200—0xdffff,机器启动自检后交给本部分,包含系统的硬件驱动等,有校验。本部分以GZ格式压缩。
用户数据区:0xe0000—0xffff0,
0xe0000开始为频道信息部分,想自已修改PID的修改此处,不想修改的,找个现成的替换一下就是46台,很简单。
0xf0000 开始为密码区,0000和9999都在这里显示出来,如果把这个区域的9999全部替换成2222,那么你再开机的时候,超密就是2222了。
因无须空中升级,1M固件中无NVROM数据。


4、             学会调整校验:
国芯固件中有三大校验,下面分别介绍:
WP_Flash_CRC32:写保护区中(包含了空中升级下载程序区和机顶盒设备信息区两部分)除最后四个字节的校验。傻瓜式操作法:2M的BIN,在winhex选中0X10000,按键盘ctrl+1 选定光标位做为选择起点,选中2fcef,按键盘ctrl+2选定光标位做为选择结束点。按键盘ctrl+F2  打开比较HASH值对话框,下拉框中选择CRC32,确定就可得到此区域的校验值,结果可以同0X 2fc00的值做比对,看是否正确。如果调整了机顶盒设备信息(如序列号等),就要相应的更改0X 2fc00处的校验值。1MBIN操作相同,选择区域为0x10000至1feff。
AS_CRC32:应用软件校验值。傻瓜式操作法:2M的BIN,在winhex选中0X30400,按键盘ctrl+1 选定光标位做为选择起点,选中FFFFF前非空的最后一个数据,一般都是1B00,按键盘ctrl+2选定光标位做为选择结束点。按键盘ctrl+F2  打开比较HASH值对话框,下拉框中选择CRC32,确定就可得到此区域的校验值,结果可以同0X 3005B的值做比对,看是否正确。如果更换了应用程序部分,就要相应的更改0X 3005B处的校验值。1MBIN操作相同,选择区域为0x20200至dffff前非空的最后一个数据,一般都是1B00。
Flash_header_CRC32: 傻瓜式操作法:2M的BIN,在winhex选中0X30000,按键盘ctrl+1 选定光标位做为选择起点,选中0X 30103,按键盘ctrl+2选定光标位做为选择结束点。按键盘ctrl+F2  打开比较HASH值对话框,下拉框中选择CRC32,确定就可得到此区域的校验值,结果可以同0X 30104的值做比对,看是否正确。因为此校验同AS_CRC32形成嵌套,所以,如果应用程序部分发生变化,也要相应的更改0X30104处的校验值。1MBIN操作相同,选择区域为0x20000至0X20103。
同校验相关的其他值:
应用程序长度值:2MBIN中的0X30100处或1MBIN的0X20100处,连续的四组值为应用程序长度的十六进制。例:在进行AS_CRC32校验计算时(2MBIN)发现应用程序结束字符位于0XFBE9A,那么我们就可以用0XFBE9A减去0X30400,得出0XCBA9A,那么0X30100处的值就应当是00 0C BA 9A。1MBIN就要减去0X20200,再将结果放入0X20100。应用程序长度值的变化也会引起Flash_header_CRC32的变化。
上述校验的相关说明:如果只是拿一个正版的BIN来做AS_CRC32与Flash_header_CRC32检验,大家可能会发现算出来的值与实际值并不相同,这时,我们可以使用校验工具(CRC-FIC.EXE)对选定区域另存出的文件进行校验,会发现这个媒体流的校验方式算出的结果就同实际值一样了。其实,两种方式的校验值不管用哪个,都不影响机顶盒的正常运行,效果相同。


本篇文章来源于 超的个人论坛(http://cwc206.5d6d.com) 原文出处:http://cwc206.5d6d.com/thread-4804-1-1.html

扫码下方或搜索关注公众号“卫星参数网”,独家内幕新闻!

卫星参数网公众号