我把我知道的关于刷机方面的和有关SHX升级软件包方面的知识全部写出来,希望对比较疯狂的手机爱好者来说,有一点点的用处!我尽自己最大的能力来保证这份文档的正确性,不过还是要小心对待,根据自己的能力,要知道自己在做什么,你需要什么...
也许大家对刷机方面是最关注的,那就首先说吧。关于刷机可以说每个玩家们都已经刷过机了,不过对于极端冒险的刷机行为或者是不知情的刷机后出现的种种意外,对每个玩家来说都是不愿意看到的,所以首先来说说刷机前应该做些什么,应该怎样让自己的爱机变成不死鸟,想永远都刷不死...这也许不是不可能的,不过要你对刷机方面有些经验才行...
一.备份工具Ramldr.我认为有条件的最好在刷机前做好手机的备份工作,这是很重要的,它可以说就是你的救命稻草!请切记,切记!以前要是想从手机内部读出存储器里的资料,就难比上青天,只有专业的修手机的人,他们有能读取手机的硬件设备,如市场上很熟悉常见的UP128和最新的UP256!但是现在有了Ramldr,一切都不同了,我们也可以有自己手机的救命稻草了!还有现在刚出了Ramldr的简单版本,更加容易的对手机进行备份和使备份恢复至手机,省略了输入手机内部数据的相关程序,完全可以用来代替Ramldr!但是也一定要解释备份工具究竟是从手机什么地方开始备份,来明白备份出来的资料究竟是怎么一回事。我先把如何备份手机内部所有的资料的数据和Ramldr备份工具的使用方法公布下,然后再诼一说明下SHX文件的常识!
1,使用说明它能复制手机所有的资料,并且能够分开复制手机资料里的各个区域!恢复手机资料到手机后就是将你手机刷机前的所有资料原原本本的还原到手机,包括你的短信,通话记录等等,就好像是时光倒流到你刷机前的状态...
2,适合什么手机摩托罗拉基于P2K手机平台的手机,C380, C650, V180, V220, E398, V3, V300, V500, V600,这些手机已测试成功,如果V535,V550,V547,V620,V635想用的话就要改变下手机的Bootloaer版本,比如我已测试V620如果改变Bootloaer成为E398的07D3版本话,也可以顺利使用!或者只要Bootloaer的版本是07DD,07E0,,07D3,0820,0823,0826等等的都能用!因为只有这样,Ramldr备份工具里的ldr.bin文件才能顺利引导写入手机,读出手机里的存储资料!
3.开始备份手机全部的32M资料注意:在手机正常情况下;
(1)连接成功Ramldr后,如图所示,左上框显示是你手机现在进入了Flash模式.左下角是显示你的手机连接,如Not connect就是表示没有连接成功,"Connected"则表示连接。我在图上对各个菜单都注明了中文,希望能看懂!
(2)选择菜单中的"send Ramldr",打开里面的Ldr文件。(在下载的Ramldr里的文件夹里,看上图)
(3)在Base addr里,输入10000000.
在Entry addr里,输入12000000.(4)点击save mem.这是保存的手机全部备份的10000000文件在Ramldr文件夹里,备份成功后再注意查看下是不是32M大小!(请千万小心对待这个手机全部备份的32M资料,它就是你手机的救命稻草,不过不能给别人用,因为它是你手机全部的资料,含有手机里的一些加密部位,别人刷后不光是开不了机,也许是永远不开机的,我在后面慢慢解释)
4.备份手机里的PDS资料;
(1)确保连接成功
(2)选择 菜单中的"send Ramldr",打开里面的Ldr_pds文件。(在下载的Ramldr里的文件夹里)
(3)在Base addr里,输入10010000.
在Entry addr里,输入10020000.
(4)点击save mem.这是保存手机备份的PDS资料,是10010000文件,在Ramldr文件夹里,注意查看下是不是64K大小!
顺便说下,V535的备份PDS位置是10018000,1002800!
5.再公布下手机存储区中中各个区域的手机对应位置(可参考用来做一体包),注意是E398机型,要发送ldr文件到手机,进行各个区域的备份;不能发送ldr_pds文件到手机,那是备份PDS资料的!
BOOTLOADER(引导装入): 03FD0000 ,03FF0000
FLASH: 10080000 , 10D00000.
FLEX: 11140000 , 11FE0000
DSP: 10040000 , 10080000
LANGPACK(语言包): 10F40000 ,11140000
DRM(手机内的全部图标): 10D00000 , 10F00000
SIGNATURE(签名): 11FE0000 , 11FE0800
6,如何上传备份的二进制文件到手机,如备份32M的1000000文件上传至手机,其余以此类推;
(1)连接成功Ramldr,
(2)选择菜单中的“send Ramldr",打开里面的Ldr文件;
(3)点击Erace,即抹去你电话里的错误的混乱的FLASH资料,静静等待五分钟左右;
(4)在Base addr里,输入10000000,(注意:你要上传什么文件到手机到手机,就输入备份文件的开头数据,FLEX备份就是输入11140000;但是PDS备份就打开Ldr.pds文件,再输入10010000,)
(5)在send Binary菜单里选择你要发送的二进制文件到手机,如发送你备份的32M文件到手机;
(6)静静的等待二十分钟,完成你的全部备份到手机!然后点击Restart,关闭手机!OK啦!
7.请注意你备份的10000000文件(全部备份的32M大小),和10010000(PDS,64K大小),只能自己用,不能给别人用,因为PDS是手机FLASH里加密部位,它包括手机里的IMIE号码(即手机串号),而每个人的手机的IMEI号是不一样的,所以你用了别人的备份后是很难开机的,目前有一个解密PDS的工具,可以将你坏死的PDS解密成SEEM文件,然后根据你自己的手机IMIE号来破解!PDS也有版本之分的,已知的有20061和40011等等版本...
先说说FLASH的结构。FLASH是装载手机程序,存放用户信息,存放手机工作参数的载体,FLASH一般包括下面几个部份,如图:
*常见FLASH区域:NOR FLASH,存放手机的整个程序和字库,图形,音乐等信息。
*参数区域:存放手机的工作参数,和一些与其它部位相对应的密码。
*加密位或者隐含扇区:是独立于常规区域的一个小部份,存放的是一些加密信息,必须和FLASH参数区域对应。
*NAND FLASH:大容量的存储器,用来存储MP3,电影等等,就是等同于U盘一样.但我们的小三没有,398采用了。
*还有就是暂存器(RAM):运行手机程序,就像电脑的内存一样。
二.对于一般玩家来说,或者用这个备份工具更好!Random's FlashBackup0.5!
是Ramldr的简化更新版本,不要你那么费事了,你只要连接成功后,选择你想备份什么,是备份全部资料的BIN文件(32M),还是备份PDS(64K),备份成功后的文件存储在Random's FlashBackup文件夹里,你如果刷了不可刷的版本或者不知怎么开不了机,想恢复资料到手机的话,直接一键就搞定,很方便,适合初级玩家!我会上传汉化版本的到先锋互动,希望大家能都成为不死鸟!嘿嘿,注意下的是V系列和E398的全部备份都是32M,C380, C650, V180, V220系列的完整备份是16M!
不过对于备份工具的出现,大家也不要抱着太大的期望,想什么版本都敢刷,任意而为,有一种情况是备份工具在有时也恢复不了的,就是你升级了BOOtloader版本后,它的ldr文件(或者说它是加载器)不能引导进入手机,无法恢复资料到手机!办法是用将你备份的全部资料做成SHX格式的一体刷机包,通过大家常用的MFF刷入机内,不过升级了BOOtloader版本后,虽然能刷入机内,但是还不能开机,嘿嘿,不过成功刷入机内后,就很容易了,就是将更高版本的的BOOtloader的引导装置制成SHX格式刷入机内,就能开机了,自己可以从一些更高版本的FLASH中提取。也或者可以直接把高版本的BOOtloader加入到自己的备份资料一体包中,刷入机内,BOOT版本07DE,0810的和0823的也可以使我们的398开机,确实有需要的但是又不会做的,可以找一些高手来尽力来帮忙制作一下!(我们可以视把这个BOOTLOADER引导装置理解为驱动也可!)
还有一种最新出来的备份工具包,功能是很全面的,很简单的将备份资料转换成SHX格式,还可以备份自己的BOOTLoader版本,对常常刷机的朋友也许有点用!不过还是那句话,不要将自己的一体包上传到网站给别人刷!我不负任何责任的,嘻嘻!想做一体包,有其它的工具,不过要你对SHX文件要有足够的认识!我在文章后面会慢慢解释的,不能写太多很了,我自己都感到很累啊...
如果你真的是无可救药了的话,也还是有办法的,就是你一定要把手机刷到空白状态下,然后刷一个空白FLASH,(关于这个FLASH,我也不太明白,我在一个网站找到后欣喜若狂,他们理解为恢复性的FLASH资料,但是在刷机状态下,它用抹去FLASH的时间很长很长,在成功刷完开机后,手机变成了一片空白,但手机是成功开机了,在MFF的连接状态上也显示“连接Motorola”,所以只能把它理解为空白的FLASH资料,呵呵),接着再刷适合你的手机的一体包就OK啦!我只搞到一个这样的资料,但是对我来说它真的很有用,不过对一般人来说是不需要的。如果真的有人试尽所有办法都不开机的话,那么在中国,或许有一个人能让你起死回生,这个人就是TONY,QQ是417350097!他是专门靠刷机为生的,他像这样的资料据说有很多最新的和不同手机型号需要的版本,他一天到晚都对手机上研究,对摩托罗拉的很多手机颇有研究!我以前的V303就是他想办法只换了个字库,没有涉及主板就彻底变成了V620,现在也拥有了面板摄像!不过他也有难言之隐,他的资料是不想对外公布的,他要从事商业用的,哎!为生活奔波的人啊.......
三.SHX文件的常识,
SHX文件的通常的3种类型:
(1)Lang Pack 语言包-包括手机语言集和字体,可以使手机快速更改可用的语言而不用修改整个手机FLASH芯片,语言包不会更改用户数据,FLASH或者FLEX,只包含BOOtloader(引导区)和一个语言包,通常在2M大小左右。
(2 Flash手机的升级文件,包含引导装入(ROM),Flash,DSP,语言包,DRM(制图),和Signature(签名)。一般正常带语言包(Lang Pack),不过我们在先锋上传FLASH文件时一般会把语言包删除掉,这样我们刷机过后,原来是什么语言刷过后也还是什么语言,而没有改变语言!因为我们在外国网站上找到的FLASH包一般都是带外语的语言包。方便一般的朋友刷机时刷完FLASH后,不用再刷中文语言包了,不过有时也根据需要要带上相匹配的中文语言包,如V3的41C3R,用9CR的中文语言包在41C3R的版本中查看不了内存!所以在上传时就把相匹配的中文语言包41COR的中文语言包加上去,这样就省去了很多朋友的麻烦!
(3)Monster Pacd 我们通常简称为一体包;和FLASH内容相似,但是包括FLEX在内,包括引导装入,FLASH,FLEX,DSP,Lang Pack, DRM,Signture;是手机FLASH芯片完整的升级软件包!但是注意在升级时会清除你的数据,因为带FLEX!不过也还有一种类型是很少见的,就是SHX格式的FLEX,但通常用来强刷进去的,比方说刷HS格式的FLEX刷不进机内,所以就把它转换成SHX格式,然后强刷进去!
四.文章最后要说的,就是希望能自己修改SHX文件,能做出更高版本的FLASH升级软件等等,我只能把我所知道的一切一切都写进去,见谅了!这也是面向已有比较高水平的十六制编辑经验的高级用户,如果你不知道什么是"词,字节,徧移,位,字符.乖乖那就不要浪费时间去看了,写这个东西的时候已经写了很多应该注意的地方!XV132在外国是作为很常用的SEEM文件修改工具,就像我们常用的SEEMPLAYER工具一样。但是对于修改SHX文件来说是远远不够的。HEX SWORK十六进制编辑工具大慨是目前效果很不错的编辑工具!
Random–SHX 目前有许许多多的SHX-BIN工具,但这个是最值得称赞的,在此对其它工具的作者说声抱歉.这个程序是唯一可以准确地从BIN重建SHX文件的工具,唯一不能做的是不能重新计划文件头,也就是这篇文章所要说明的东西.
SHX文件里都必须要包括一个:HEADER的开头文件;你要是做过一体包的话,就该知道,你的工具里必须带有一个“header"BIN文件,不同手机是不一样的,所以一般比较全面的做一体包工具里都带了几个不同手机的ROM,比如C650的,V系列的,E398的!
前8KB是SHX文件的文件头,用十六进制编辑工具打开看,一般第一部份都写着”P2K Superfle",接着是任意版本号,文件建立的日期,再下来是用来标记是用什么样的程序来建立这些SHX文件的。接下来的0x3b0到0x600范围是这个SHX文件的内存区的信息.你下来要修改的大部分都在这里,再接着你会发现都是0直到由0x2000开始的实际数据。这个文件清楚地切断文件的前面并用RandomSHX解至Bin格式。下一部分是数据区,我并不知道准确的格式,是从已经成功把SHX转换BIN文件的那些程序那知道的。不同的数据段是以一个S####来区分的。数据是以字符的形式来描述要被写入ROM的十六进数据,这就是SHX文件比E398的ROM大2倍的原因(43M 比32m)。
RondomSHX可以做2件事情,一可以将SHX文件转换成合法的BIN的格式,二可以将合法的BIN文件加个一个LST文件然后转换回SHX文件.LST文件保存每个BIN文件的开始地址 , 这个文件在RANDOMSHX把SHX文件合并时必需的,并且是在分割SHX文件时由RANDOMSHX自动产生。完整的一体包解压后的SHX分为0-7的一共8个BIN格式文件。
需要注意的是:
(1)不同的型号手机中的LST文件是不同的,比如, V635中语言包的LST文件和E398的语言包LST文件是不一样的,(不过V3的语言包倒是和E398的结构差不多,我试过刷V3的语言包能到398)
(2)相同手机的语言包LST是相同的
(3)相同手机的MONSTER包是相同的
(4)相同手机的FLASH的LST是相同的
(5)LST文件只能有一行来记录每个BIN文件(不能多也不能少)
(6)含有错误文件地址的BIN文件将会误导FLASH软件把数据放入手机中错误的区, 结果将会引起死机(这里的死是完全不能用的意思) , 所以在使用RANDOMSHX之前请双重检查这些文件.
BIN文件是手机内存所保存的精确映像. 大部分情况是一些随机的十六进文件. 但经由十六进编辑器打开后, 相似类型的BIN文件(如语言包,引导区,FLASH,等等),会共享模板(PATTERNS) , 模板就像一个由”1093 1074”开头0000结束的一个大段,通常在文件的某个地区会有连续3个单词所组成的短语”Motorola App Signature(moto程序签名)”. 通过这些模板你可以确定你正在查找的BIN文件.大部分情况下你不需要编辑BIN文件. 这些是经过编译的机器 ,如果试图去直接编辑那么可能会引起不稳定或者死机…甚至更糟。
同样 ,不能混合不同手机的BIN文件,下面的是例外的, 好像V3和E398可以互相交换语言包和FLEX.唯一重要的就是它们的长度. 这些长度在BIN文件的最后徧移字节中可以找到,并不是文件结束的字节而是最后的稨移,即是文件结束前的字节。下一个比较重要的是检验码,检验码就是将所有的字节累加起来,结果只取后面的4位.如果你以MFF来刷机的话将会进行相同的检查,如果检验码不匹配MFF将会报告已经损坏。好像不同的BIN文件有不同的检验码,我也不知道其中的算法. 不过我注意到一个比较通用的东西,在计算检验码之前要把字节转换成数值形式.下面是所有BIN文件的总结,每个总结是头部一个段,这涉及到BIN0文件的一个稨移.BIN0文件像SHX文件的前8KB一样保存关于SHX包的所有信息.在头部的描述中十六进制的数字你要由改为””####”的方式来显示,如果数字是一个常数的话那么就没有必要去更改了,如果改了这些数字将会引导刷机失败.也不是所有情况都是这样的,最好参见每个稨移的附加说明;
用HEX十六进制编辑工具打开:0x3B0] 0800 FD03 F7FF FE03 03FE F800 B172 0203 0100 ,1.前三个字节相同的机是一模一样的
2.这是Rom里的起始地址,
3这是最后的字节在二进制文件-DOS扩展名.
4.这是结尾地址
5.ROM里的地址
6.这些字节在标题有很多,可能与硬件有关。
7.这是0200,不能肯定为什么,我找不到任何相关关系。
8.这是引导装如过程的版本,引导比你机内的Flash的BOOT版本更高的
9.校验代码,未知运算法则。 (比方说修改成8DC是为了98R到99R版本),我只能理解这么多了,抱歉...
完整的一体包分解出来的8个BIN文件的次序是:
BIN0-HEADER (FLASH文件的文件开头部份,E398的都能通用。)
BIN1-BOOTLOADER(FLASH文件里的引导装置)
BIN2-FLASH
BIN3-FLEX
BIN4-DSP
BIN5-LANGPACK(语言包)
BIN6-DRM(对应菜单的图标,必须匹配FLASH版本)
BIN7- SIGNATURE (签名,必须匹配FLASH版本)
你能混合匹配的语言包,FLASH,FLEX创造新的一体包。如果你对SHX文件要有足够的认识,对十六进制编辑方面要能十分了解的话,你还能创造新的FLASH,和建立新的语言包。能将你手机备份的资料做成SHX格式的一体包。目前SHXCODEC也是很不错的SHX制作工具,可惜的是对于语言包部份做的不是太好,不能做出完整的语言包,只能添加和删除,或简单的修改下语言包里的菜单语言,不能够独立的添加修改语言ID列表,哎,奋斗中...
哎,写的比较乱,也不知道在说什么,希望能有点用吧!非常感谢KEMP,TONY,对此文的大力支持和帮助!也感谢狐狸和HOMELIKE!Bye...