itsutils工具dump手机ROM

2009年12月28日   智能手机   0条评论   7093人围观过  
今天研究了一下午,和xbeta的一个XD桌子请教了一下,基本学会怎么用itsutils来dump出手机上的ROM。之前在DIYPDA看过一些相关的教程,但是还是有很多的不解之处。经过一下午的研究,大概搞懂个明白。

首先到http://www.xs4all.nl/~itsme/projects/xda/tools.html下载最新的itsutils,我下载的是itsutilsbin-20091117.zip,解压开到一个目录。进入命令行模式,进入该目录。输入“pdocread -l”回车,得到如下一些信息。
E:\806\its>pdocread -l
114.88M (0x72e0000) FLASHDR
|           3.12M (0x31fc00) Part00
|           2.88M (0x2e0000) Part01
|          45.38M (0x2d60000) Part02
|          63.50M (0x3f80000) Part03
10.00M (0xa00000) EXT_FLA
|          10.00M (0xa00000) PART00
STRG handles:
handle#0 02f312aa  10.00M (0xa00000)
handle#1 83059bae  63.50M (0x3f80000)
handle#2 630594ba  45.38M (0x2d60000)
handle#3 e30592ae   2.88M (0x2e0000)
handle#4 c3059242   3.12M (0x31fc00)
disk 02f312aa
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk 83059bae
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk 630594ba
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk e30592ae
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk c3059242
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

这样就可以得到这台机器的ROM信息。我用的是多普达的E806C作为例子来操作。

有几个地方要注意,一个是“FLASHDR”,另外一个是Part01等前面的地址。地址的话每台机器都不一样,注意。4个Part基本的意思是
Part00:一般是boot区
Part01:一般是xip
Part02:一般是纯os文件,这部分可以解出dump文件夹,本例只演示这部分,其它部分应该是相同的操作方法。
Part03:一般是用户存储区,就是那128mb部分。
合成rom一般只需要前三个part,或都只有OS部分。

读出来后他们只是标准的镜像文件。一般多普达机器的扇区大小为0x200、0x400、0x800,我经过试验,得到我的机器的扇区大小是0x200。如下:
E:\806\its>pdocread -b 0x200 -w -d FLASHDR -p part02 -t
real nr of sectors: 92928  -  45.38Mbyte, 0x2d60000

E:\806\its>pdocread -b 0x400 -w -d FLASHDR -p part02 -t
real nr of sectors: 92928  -  90.75Mbyte, 0x5ac0000

E:\806\its>pdocread -b 0x800 -w -d FLASHDR -p part02 -t
real nr of sectors: 92928  - 181.50Mbyte, 0xb580000

只有当使用0x200为扇区大小时候得到的文件尺寸和地址与一开始我得到的信息相符,即“45.38Mbyte, 0x2d60000”。这个方法是今天自己试验出来的,本来等xbeta上的Skywalker给个工具来查看扇区大小的,但是他上网不方便,我在查看一个教程时候发现了一个所谓的验证的步骤,就是上面的那个操作,但是文中是使用0x800的大小,是6800的机器,一开始我就不解这个东东是什么,后来Skywalker告诉我是0x400,但是还是不对,一直试验,桌子告诉我说用0x200试试,还真别说,一试就成功了,得到了验证后的地址和一开始的信息相符,也应该说明我的机器是0x200的大小。

下面我就正式开始dump这台手机的ROM。输入“pdocread -b 0x200 -w -d FLASHDR -p Part02 0 0x2d60000 Part02.bin”,大约一分钟的等待后(不同电脑和手机等待都不一样,电脑差或者ROM大的手机会更慢些),得到:
E:\806\its>pdocread -b 0x200 -w -d FLASHDR -p Part02 0 0x2d60000 Part02.bin
CopyTFFSToFile(0x0, 0x2d60000, Part02.bin)

E:\806\its>

当出现下面这个“E:\806\its>”,即说明dump完成了。进入itsutils的目录,我的电脑上即为E:\806\its,可以找到一个名为Part02.bin的文件。这个就是dump出来的OS文件,经过一些工具的分解可以得到该机器的OEM。

实在不知道扇区大小的,可以这样输入“pdocread -w -d FLASHDR -p Part02 0 0x2d60000 Part02.bin”

继续操作,将XIP也dump出来,即Part01的部分。输入“pdocread -b 0x200 -w -d FLASHDR -p Part01 0 0x2e0000 Part01.bin”,同样等待后,在目录里得到了Part01.bin文件,这个文件就是该机器的XIP文件,可以用来移植了。同样不知道扇区大小的可以模仿上一步操作。

itsutils的操作基本到此结束,以后的文章会讲解怎么分解此次dump出来的文件。
关键字: dump,itsutils,ROM
  •  rovel
     发布于 2010-03-21 05:22:25  回复该评论
  • 老大,我按照你的方法已经提取了3个PART,一直在等你的下文,等了1个月了,还是没出,呵呵。主要是:如何把这3个PART合并成一个ROM(因为我的初衷是做ROM备份)<blockquote><div class="quote quote3"><div class="quote-title">ShunYea 于 2010-3-21 10:36:41 回复</div>呵呵,感谢你的支持,最近有些忙,还有忙着做6700的ROM,还研究Android系统,所以这个机器的破解暂时放了一下,抽时间在看看吧,呵呵。3个是不用合成的,一般只用到Part02,即OS部分,其他都是单独使用的。</div></blockquote>
  •  kam
     发布于 2010-05-25 21:44:48  回复该评论
  • pdocread -b 0×200 -w -d FLASHDR -p Part02 0 0×2d60000 Part02.bin
    这里的part02.bin 后缀必须是bin吗,我提取的时候没有输入后缀
    还有下文,怎么DUMP这个文件,和平常DUMP rom一样吗
    我想DUMP里面的radio文件
  •  ShunYea
     发布于 2010-05-26 04:33:22  回复该评论
  • <a href="#comment-410" rel="nofollow">@kam </a>
    后缀不一定,也可以是.raw,看你了。建议还是输入以下比较好。
    dump的工具是ImgfsTools 2.1.rc2 里面的ImgfsToDump.exe
    在DOS提示符输入:ImgfsToDump Part02.bin 回车
    命令行窗口会闪,稍等后得到一个DUMP文件夹,里面的就是dump出来的文件。但是这个方法应该是dump不出来Radio的。
  •  kam
     发布于 2010-05-26 21:29:10  回复该评论
  • 谢谢老者,没想到这么快就有回复!
    有没有方法能把part00 part01 part02 part03合成一个有效的nbh文件,这样我就有方法能提取出radio.nb了
  •  ShunYea
     发布于 2010-05-28 06:48:32  回复该评论
  • <a href="#comment-414" rel="nofollow">@kam </a>
    貌似这个工具不支持这样导出,或许其他工具有,但是我还没研究到那一步,呵呵。
  •  jioke
     发布于 2010-12-10 21:50:31  回复该评论
  • 老大,问一下,我想用这个东东恢复到我手机的初始ROM可以么?我的手机是HD2。我已经用pdocread读出来同事,同样的3个part。
    是否将这3个part直接再pdocwrite就可以了呢?
    •  ShunYea
       发布于 2010-12-11 18:42:27  回复该评论
    • 能够pdocwrite吗?这个没仔细研究过。不过刷机要非常小心,请再参考一下别人的经验,否则不要冒然尝试。
  •  tcy
     发布于 2013-07-20 16:38:24  回复该评论
  • 看,我出现了这样的情况,请问怎么看扇区?谢谢
    c:\itsutils&gt;Pdocread -b 0x200 -w -d SMFLASH -p part02 -t
    real nr of sectors: 1 - 512.00byte, 0x200
    c:\itsutils&gt;Pdocread -b 0x400 -w -d SMFLASH -p part02 -t
    real nr of sectors: 1 - 1024.00byte, 0x400
    c:\itsutils&gt;Pdocread -b 0*800 -w -d SMFLASH -p part02 -t
    real nr of sectors: 1 - 512.00byte, 0x200
    补充前一段
    c:\itsutils&gt;pdocread -l
    Copying c:\itsutils\itsutils.dll to WCE:\windows\itsutils.dll
    80.00M (0x5000000) SMFLASH
    | 1.25M (0x13f000) Part00
    | 2.25M (0x240000) Part01
    | 46.25M (0x2e40000) Part02
    | 30.25M (0x1e40000) Part03
    890.50M (0x37a80000) DSK2:
    | 890.50M (0x37a7f000) Part00
    STRG handles:
  •  tcy
     发布于 2013-07-20 17:05:28  回复该评论
  • 已成功,不用答案了, SMFLASH换成flashdr即可。
    •  ShunYea
       发布于 2013-08-12 05:52:40  回复该评论
    • 好久不研究了,你成高手了。还有WM机器折腾啊?

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。