Fullflash
不含地址信息的、纯数据的、二进制的、完整的手机程序和数据备份,包括系统软件(bootcore+firmware)+用户文件(filesystem)+设置信息(EEPROM),65手机是32M大小,存放在A0000000h开始的地址段上,当硬件地址空间改变或者用外部软件调试时(如IDA),也可以任意存放到其他地址段上,如00000000h等
FuBu
是已经固定了存放地址的fullflash,地址信息放在文件内,后面的内容只能存放在它所指定的地址段内,65手机使用A0000000h开始的32M空间内,这也是为什么恢复fullflash时必须指定地址和长度,而恢复FuBu时则不必的原因(因为文件里面已经包含了这方面的信息)。
所以, Fullflash比FuBu的使用更灵活,FuBu是特定的Fullflash,IDA/SPC3/Smelter等软件使用的都是Fullflash 格式的文件,使用FuBu时只需引用地址的偏移量、而使用fullflash时需要提供绝对地址(完整的地址)...
IMEI
IMEI为TAC + FAC + SNR + SP
IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。
其组成为:
1、前6位数(TAC)是"型号核准号码",一般代表机型。
2、接着的2位数(FAC)是"最后装配号",一般代表产地。
3、之后的6位数(SNR)是"串号",一般代表生产顺序号。
4、最后1位数(SP)通常是"0",为检验码,目前暂备用。
IMEI码贴在手机背面的标志上,并且读写于手机内存中。它也是该手机在厂家的"档案"和"身份证号"。
附:如何获得手机的IMEI码
如果您的移动设备为手机,您可以在手机上按“*#06#”获得手机的IMEI码。
bootcore
对于嵌入式系统的处理器来说,通常内置有所谓BootRom的部分,一般是由芯片厂商烧录,而普通用户不可修改的部分。可以完成多种启动,比如从 RAM/ROM启动或从串行接口启动(一般是由CPU的某个管脚控制)。而所谓的Bootcore部分,存储于Flash芯片之中。可以称之为西门子手机的Bootloader,是从M55的新版本中开始出现的部分。在早期的机型中,可以选择从Flash或者串口启动。所以第三方软件可以通过串口启动,传送特定的咯ader来达到直接控制手机的所有设备的目的(主要是Flash芯片)。而从M55的新版开始,西门子封闭了bootrom直接从串口启动的能力,而是直接从Flash启动,进入bootcore,通过bootcore部分的软件来控制进入正常启动或者进入升级模式,由bootcore来控制升级。从而限制了第三方软件的连接和对Flash的任意读写。不过可以通过破解Bootcore部分或者获得bootkey来获得更多的能力来完成对 Flash的读写。更彻底的是可以通过改变TestPoint的信号,来恢复从串口启动的能力,从而达到对系统的完全控制。
eep
是EEPROM(Electrically Erasable Programmable Read-Only Memory)的简称,原始含义是一种电可擦编程只读存储器--一种掉电后数据不丢失的存储芯片。有的手机维修技师称之为码片的东西。在早期EEP和 Flash(手机技师称之字库)是分别存放的。但随着半导体工业的发展,通常把EEP和Flash集成在一个芯片中。在Flash的特定区域建立EEP的部分。例如在6688上使用的Intel的Flash芯片C489是32Mb,而EEP部分则置于最后的512Kb。Flash具有块擦写特性,而EEP 则具有更小的擦除单位(C489的Flash部分是512Kb,而EEP是64Kb)。在手机中,EEP部分通常存储系统和用户的配置信息,在西门子的手机中,EEP有EEFULL和EELITE两部分组成。EELITE主要是系统相关的设置,而EEFULL则是用户相关的设置。在西门子的手机中,信息在 EEP中是以Block为单位存储的,而Block是基于索引存储的。
flash
全称Flash Memory即快擦型存储器,在断电情况下仍能保持所存储的数据信息,但是数据删除不是以单个的字节为单位而是以固定的区块为单位(即block)。区块大小一般由256KB到20MB,在西门子65系列手机中,鉴于手机系统的特殊性,为提高flash的利用率,每块block被设定为128K。 FLASH这个词最初由东芝因为该芯片的瞬间清除能力而提出。闪存源于EPROM,芯片价格不高,存储容量大。闪存正在成为EPROM的替代品,因为它们很容易被升级。闪存作为一种存储介质,在很多地方被广泛应用,例如PCMCIA卡,PCMCIA闪存盘,其它形式硬盘,嵌入式控制器和SMART MEDIA,手机的存储也是其中之一。如果闪存或其它相关的衍生技术能够在一定的时间内清除一个字节,那将导致永久性的(不易失)RAM的到来。
filesystem
字面意思是手机的文件系统,主要包含了用户文件,系统cache,系统配置等东西(主要是手机0,1,2分区里的东西),升级ffs会对这些地方进行更新,用新版本的相关文件覆盖以前的文件。包括通讯录,短信等在内的用户设置都将会被全部删除。
firmware
要说firmware就要先说固件。固件在词典里的解释是具有软件功能的硬件,在早期这种器件一般都是存有软件的EROM或EPROM(电可擦除可编程只读存储器)等,后来也可以存于FLASH中。通常这些硬件内所保存的程序是无法被用户直接读出或修改的,随着技术的慢慢开放,固件发展到今天,已经有了重新的定义。而我们所说的firmware,更倾向的认为是一种软件体,他承担着一个系统最基础、最底层工作,并且以手机中的FLASH作为载体,与手机其他硬件部分同时存在,相当于手机的操作系统。保存着firmware的EPROM或FLASH即称之为固件。
Firmware 主要是MCU软件(在单片机中即为单片机的程序文件),是为了提高产品的性能而基本设置的控制程序,相当于电脑的 Windows O/S等操作系统,但它的操作方式和硬件联系紧密。需要对端口,中断和硬件结构非常熟悉。PATCHER在进行flash修改,写补丁时,多数也就是在对 firmware进行操作.
bootkey
暂且称之为联机密码,它是V-KLAY,x65flasher等软件在采用password boot方式联机的时候使用到的一个密码。bootkey由16个字节组成,是通过ESN和SKEY扩展到16字节后进行一次MD5运算得到的。
(ESN和SKEY扩展到16字节的C语言算法实现如下:
for(i=0;i<8;i++)buffer[i+8]=buffer^buffer[i+3];(bennie语))
进行password boot方式联机时,手机会将bootkey与bootcore中的hash进行配对比较,如果正确,则成功联机。
注:
1。在成功输入正确的skey的同时,bkey将在eeprom的block 52处被记录,在以后的联机中,手机不在将bkey与hash进行配对比较;
2。MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。)












