三星I8000 ROM 有望合成?

2009/11 04 22:11

I8000作为一代强机,从开始到现在,一直无人能合成其ROM,导致诸多人使用繁体官方ROM。今日我在逛论坛,看到weisun大大似乎提了一些关于合成I8000ROM的参考意见,看来I8000的ROM Kitchen出现指日可待了。

下面转一下Weisun在PDA Clan网的提出的见解,忘I8000的机油努力做出ROM呵呵。

关于三星I8000之PDA.NB0的还原合成

~~~~之我见

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

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

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

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

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

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

顺带说一下这JJ的CSC,这JJ的CSC镜像结构较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长度值:在偏移0x04取DWORD值,黑色框内所示
(注:这就是PDA.NB0.OS.NB,也就是RAW-IMAGE的长度)
Blocks值:在偏移0x08取DWORD值,绿色框内所示
(这个值是指BIN的Block数量,i8000的Block长度是0x1F800,因此,要得到此值,只要把PDA.NB0.OS.NB的长度除以0x1F800即可)
校验值:在偏移0x0C取DWORD值,红色框内所示
(这个比较关键,其实说白了也简单,如何计算下文详述)
另外,头尾各一个DWORD标志,表示区段起始和结束,其他,都是ASCII字串,一看就懂,不多说了。

1、合成XIP,IMGFS等。。。这就不多说了。
要提一下的是这个ROM的IMGFS尺寸和MBR不符,因此还原时还是尽量先不要改变尺寸,用buildimgfs.exe可以保持IMGFS尺寸,如果用imgfsfromdump的话,最好先自己把新压缩好的IMGFS用HEX填充成和原来一样长度。把IMGFS插入OS.NB也因为MBR问题不被OSNBTOOL支持,自己HEX吧(大家都知道查找.os.nb中的IMGFS的GUID即可,就是F8 AC。。。。什么的,找到后把之后的内容用新的IMGFS内容替换掉即可),但是XIP和BOOT还是可以用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.NB,COPY /B .PRE + .OS.NB PDA.NEW.NB0即可开刷了。

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

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

原帖地址:http://www.pdaclan.com/thread-30396-1-1.html

--转载请注明: Do It Yourself » 三星I8000 ROM 有望合成?

10 个回复

  1. #-49

    854148 386847Thank you for your extremely very good info and feedback from you. car dealers in san jose 282670

  2. @雨夜观月, 残念,那要修好就得再买个来拆配件了吧

  3. @hchua,
    这个机子的字库很少。。。几乎搞不到。。。

  4. #-48

    再麻烦一下雨夜兄,我的机子经过师傅查测说是字库坏了。现在换不到字库,你知道哪有这机子的字库IC买吗

  5. @hchua,

    送到三星在汕头的售后中心10天,师傅没检测出是哪里的问题,又寄到深圳去了3天,至今没消息。
    也许要告别I780了。雨夜兄你下个要换什么?

  6. #-47

    谢谢雨夜兄这么快回复,我刚才用橡皮擦过了。现在正在用那个盒子充电。
    老天保佑,不要叫我再破财,保佑保佑。再次谢谢雨夜兄热心

  7. @hchua,
    我医不了。
    只能给你些参考意见
    你试着把电池拿下来,用酒精把机背的电池触电清洗下?
    然后电池用盒充充满电,在放进去看看。

  8. @雨夜观月, 今天下午手机的电池用到快完了就关机换块电池,结果就开不了机了,按了开机后红灯就亮着,但就停在那里出不来开机画面黑屏着,再接开机键也关不了红灯,就一直停在那里。
    请问雨夜兄可以医吗?

  9. @newpower,
    兄弟,我这个帖子可是11月3号的呢。。。
    不过恭喜啊。I8000的机油有福了

  10. #-46

    打包问题早就解决了,blog.sina.com.cn/i8000h 都已经有定制的ROM出来了

  11. 发表回复