打印

[i8000] (尝试修改大小,在一楼底部)关于三星I8000之PDA.NB0的还原合成

本主题由 Oldcat 于 2009-11-6 12:43 加入精华

(尝试修改大小,在一楼底部)关于三星I8000之PDA.NB0的还原合成

                ~~~~之我见

最新更新在一楼尾部

最近部落有
DDMM们入手了这台JJ,看网评还不错,应该挺有市场。他们跟我说目前做这个rom卡在还原OS部分的PDA.NB0的还原上,想要俺一起想想办法。。。

可惜,某早已隐退,不会再玩这些现在看来较无聊的事情了,也不会再搞什么工具等等的麻烦事儿了。

前几天正好有闲,看了看这个rom,貌似还原还是比较有希望的,故发此文共同讨论,望能帮助这JJ的玩家完成定制及精简此J的愿望。

此文主要针对已经尝试过此rom的玩家,很多主要步骤要以手工x作完成,因没有很多时间,恕不对初学者详解了,且文中所提的一些软件请自行寻找下载,望见谅!

一  、分解
分解这个rom,想必有很多人早已经架轻就熟了,这里还是简要说一下。
1、Exe一体包的分解
对于.exe的一体升级包,这个和以前三星的exe资源结构类似,没什么难度。况且,现在有俄国高手Pako777i900_EXEcutor可以直接使用,目前貌似已经是v2.4了,诸位到modaco去下的同时,也不要忘了感谢一下此君不断更新的执著精神。

分解exe的具体过程,看了下图就明白了:(选好exe点击‘Go’即可)





    顺带说一下这JJCSC,这JJCSC镜像结构较i900已经更改,i900_EXEcutor目前尚不支持分解。其实原来俺的i900tool代码改一下即可分解和还原,可是这代码。。。哎。。不提也罢。。。现今也不会再去搞了,等Comrade-777更新吧。


2、PDA.NB0的分解
这个貌似没什么难度,大家都知道OS镜像的开头跳转指令E9 FD FF。这个NB0的偏移0x100即是。用俺的旧作osnbtool也可,如下:
Osnbtool –sp pda.nb0    得到pda.nb0.os.nb,所谓的OS-RAW-IMAGE,以及一个.PRE文件(后文合成时有用)
Osnbtool –d pda.nb0.os.nb 2 imgfs.bin –acwan  得到imgfs.bin
接下来的dump等等,貌似应该是谁都会了。。。

这里osnbtool 冒出了一个 “-acwan”的奇怪参数,那是以前ACWAN大大提议对不标准尺寸的os.nb进行强制分解imgfs分区的一个隐含参数,因为一直没用,偶自己也早已淡忘,没想到现在倒是用到了。。呵呵。
这里再说明一下,osnbtool绝没有木马,N记等杀软纯属脑残。。。


二 、合成
  这里就到了本文关键所在。
前面用OSNBTOOL分解PDA.NB0时,分解出了PDA.NB0.PRE,这个文件为0x100长度,是这个NB0的头部信息区,奥妙就在于此:
010editor把它打开,如下图:



上图中:
  •   OS.NB长度值:在偏移0x04DWORD值,黑色框内所示
(注:这就是PDA.NB0.OS.NB,也就是RAW-IMAGE的长度)
  •   Blocks值:在偏移0x08DWORD值,绿色框内所示
(这个值是指BINBlock数量,i8000Block长度是0x1F800,因此,要得到此值,只要把PDA.NB0.OS.NB的长度除以0x1F800即可)
  •   校验值:在偏移0x0CDWORD值,红色框内所示
(这个比较关键,其实说白了也简单,如何计算下文详述)
  •   另外,头尾各一个DWORD标志,表示区段起始和结束,其他,都是ASCII字串,一看就懂,不多说了。

1、合成XIPIMGFS等。。。这就不多说了。
要提一下的是这个ROMIMGFS尺寸和MBR不符,因此还原时还是尽量先不要改变尺寸,用buildimgfs.exe可以保持IMGFS尺寸,如果用imgfsfromdump的话,最好先自己把新压缩好的IMGFSHEX填充成和原来一样长度。把IMGFS插入OS.NB也因为MBR问题不被OSNBTOOL支持,自己HEX吧(大家都知道查找.os.nb中的IMGFSGUID即可,就是F8 AC。。。。什么的,找到后把之后的内容用新的IMGFS内容替换掉即可),但是XIPBOOT还是可以用OSNBTOOL正常x作的。会HEX修改MBR的倒是可以尝试改变OS.NB的尺寸,以真正达到精简和释放rom空间的目的。


2、还原PDA.NB0
这也是比较关键的步骤了:
**
在定制好了.OS.NB后,要注意一下如果变化了尺寸的.OS.NB要确保是BlockSize的整倍数,也就是.OS.NB的长度要能够被0x1F800整除。

下面开始说如何
010editor进行手工HEX还原:
a)
010editor打开先前的PDA.NB0.PRE,如下图:


b)
把新的OS.NB的长度(十六进制,下同)值填入偏移0x04处整个DWORD(上图中黑框内),(注意字节倒序排列,下同)。
c)
把新的OS.NB的长度除以0x1F800,得到的值填入偏移0x08处整个DWORD(上图中绿框内)。
d)
计算新的.OS.NB的校验值,这个校验其实是CheckSum32,即依次以DWORD取值进行模和,庆幸的是不用写程序,010editor就可直接支持。用010打开新的.OS.NB,选菜单中的Tools-->CheckSum,在窗口中如下图选择确定即可:

等一小会儿,下面就会出结果了,看看下图棕色框中的即是,把它填入上面.PRE中的偏移0x0C处整个DWORD(上图中红框内,同样也要注意字节倒序),存盘完成。



e)
有了新的.PRE.OS.NBCOPY /B .PRE + .OS.NB PDA.NEW.NB0即可开刷了。

以上言论乃一己之见,只提供参考,对一切不可预知的后果不负任何责任,敬请三思而后行!

如若能够依此方法成功定制自己的rom,也请发扬共享之精神,并希望有人能写出比较方便的程序及kitchen,所谓独乐不如众乐,呵呵。。


11.06更新
今天试了下原来支持i900的imgfsfromdump.exe还是不够内存去打包这变态的imgfs,就改了下贴出来。在二楼。
~~感谢Acwan大大提供源码。


11.07更新
这里写下如何尝试修改.os.nb的大小。

由于不一定会修改MBR,而osnbtool又不支持这个长度和mbr不符的rom,因此就要用010editor填充原来的pda.nb0.os.nb到osnbtool认为合法的尺寸。x作方法如下:
1、用010打开原来的pda.nb0.os.nb,拖动滚动条到文件末尾,记下原来的长度值,此例中为0x13576800,如下图:


2、010中选择菜单的Edit-->Set file size,在弹出框内填入1B200000(这个值是根据mbr算出来的正确长度,大于它也没问题),其他都如下图填写,然后确定存盘:(注:如果不知道文件应该设为多大值,可以尽可能大些,大于等于标准长度,osnbtool都能支持的,但也不要太大,怕PC内存吃不消。这里示例的是联通i1的rom,其他版本的rom一般在这个数量级略大基本就可以了)


3、执行osnbtool -c pda.nb0.os.nb 2 imgfe.new  (假设这个imgfe.new是新的改变了尺寸的imgfs),可以看到执行成功了,并新生成了pda.nb0.os.nb.new,这个pda.nb0.os.nb.new由于是osnbtool生成的,所以已经把MBR按新的imgfs长度修改了。

4、还原pda.nb0.os.nb.new到不标准的长度,用010打开新生成的pda.nb0.os.nb.new,重新Set file size,可以先试试原来rom的长度,在这里即是0x13576800(填入框中时不用写"0x"),也可以用010看着尽量删除文件末尾更多的FF填充段以减小文件尺寸,但是要注意这个长度要能够被0x1F800整除。

之后存盘,修改.PRE,copy/b + 即可试验刷机了。



[ 本帖最后由 weisun 于 2009-11-7 22:39 编辑 ]
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
  • Oldcat 智慧 +60 来晚了,射精加分! 2009-11-6 12:44
  • Oldcat 部落币 +100 来晚了,射精加分! 2009-11-6 12:44
  • GXQ 智慧 +50 老鸟开课 2009-11-5 13:24
  • GXQ 部落币 +96 老鸟开课 2009-11-5 13:24
  • acwan 智慧 +50 超级大牛牛 2009-11-4 21:01
  • acwan 部落币 +96 超级大牛牛 2009-11-4 21:01

TOP

沙发舒服,支持weisun大牛
尊重寨主,转帖请注明出处

顺便上个图,说明下weisun大大以我的id命名的参数-acwan,嘿嘿

再上一个由weisun大大亲自操刀,我在旁边呐喊助威,修改出来的imgfsfromdump,这下子东西可以随便塞rom里了。不然I8K那个官方就300多M的dump可不好搞呀。祝大家早日定制成功。

[ 本帖最后由 acwan 于 2009-11-6 17:10 编辑 ]
附件: 您所在的用户组无法下载或查看附件
i350 ROM定制基础教程
潜入海底10000米

TOP

hahah   板凳也行啊 嘻嘻
高手们啊  看的我云里雾里的 .....呵呵 要是能给个新手指导看看就好了 我有时间制作 ....就是 还不入门 ....等新手指导篇 呵呵   加油 各位老大

[ 本帖最后由 skyzhang 于 2009-11-8 11:02 编辑 ]

TOP

顶之

TOP

专程赶来支持weisun老大!

TOP

一头雾水,顶,希望高手看懂了能做出好的ROM

TOP

千斤顶

TOP

强贴留名,没钱换机,只能围观一下。

TOP

这个必须支持啊~~!!!!!

TOP

连weisun都出手了,相信I8000的定制时代来临了!

TOP

支持一个,i8000有望定制了~~

TOP

强帖留名,回去细看,支持weisun大大

TOP

看不懂,但顶一顶是必须的!

TOP

说实话!没看懂!

不过,估计应该有懂了的兄弟了!

另外,赞下acwan参数,嘿嘿!

期待定制精简rom的一天!!!

TOP

顶了!!!看来i8000有解放的一天了!~
等这一天已经很久了~
期待真正的精简rom出现~~~~~~~~~~~~~

TOP

期待中....

精简的纯净系统啊............

TOP

支持,讲得很详细,不过能做出程序就好了。

TOP

weisun老大,假若再有闲时,干脆直接搞个精简的ROM出来,给大家做个样板,岂不妙哉!
我看,可以移动帝国的联通I3简体ROM作为标本制作。

TOP

老鸟开课 倾情顶置
因为有了你  燃烧激情 传递爱心  世界更精彩                 超越梦想

TOP

居然还有第一页,哈哈哈

TOP