【教程】 WM ROM 刷机包 DIY 教程( 二 )ROM制作工具介绍
本帖最后由 Yegat 于 2020-8-27 17:34 编辑主要参考自52dopod论坛、mikesh 所编写的资料。
第二部分:ROM制作工具介绍
https://www.dospy.wang/static/image/hrline/5.gif
A。ROM工具简介
ROM 文件系统的架构基于WM平台,核心的系统层面的东西实质上我们是编译不了的,ROM制作其实上只是一种组件模块的重新排列组合的过程,先解包,然后添加删除或者替换,再进行打包以及转换,完全是“拿来主义”的做法 ,除了微软能对系统核心层做改变之外,任何第三方目前尚无能力进行实质性的改动,其中包括部分PPC厂商对基于WM系统层面的UI再造。
正因此,ROM制作的难易程度和整体性能90%取决于ROM制作工具,一个好的制作工具不仅事半功倍,还能最大可能减少制作过程产生的错误和麻烦,当然,对WM平台之下的PPC基本常识的掌握也是必不可少的;否则,只知其然而不知其所以然,在稍有低级错误出现的情况下,在ROM的制作上我们显得非常的脆弱,这也是本人为何出教程出得像教课书一样的原因。熟手建议飘过文字阶段,文字阶段的“废话”完全是为了照顾新手而生,请别扔砖,谢谢。
PPC在发展,PPC的使用者也在进步,工具越人性化对使用者的操作要求就会越高,反之,工具越傻瓜对操作者的要求也就越低,江湖上于是出现了针对不同机型不同组件以及不同操作步骤的傻瓜式工具,乃至我们经常提到的一键定制模板。在这里,我只想通过定制ROM组件的方式来介绍ROM定制工具,定制包实在太多,我不可能去一一枚举。
https://www.dospy.wang/static/image/hrline/line6.png
B。ROM结构及组件模块
上面我们说了定制ROM实质上是对ROM进行解包转换然后对其组件进行添加删除和替换然后再封包转换,那么ROM定制工具包当然就是为了解决这个过程而生了。
我们首先来看看一个完整的ROM在解包后的几个组成部分:
SPL
IPL
OS(Operating System )
EXTROM
RADIO
STORAGE
等
上面的列表是对于一个完整ROM来说的,像这样的结构一般源于官方ROM,而实际上我们所需要进行刷新写入的部分只有操作系统OS部分,其他部分已经被隔离开了。
OS组件:
XIP
SYS
OEM软件包
核心组件及驱动
由上可以看出要做出新的OS需要准备XIP,SYS,OEM软件包,核心组件及驱动这几样材料,而这几样材料都可以是现成的,我们所要做的只是想法通过定制工具将他们打包到一起,做ROM其实就这么简单!
https://www.dospy.wang/static/image/hrline/line6.png
C。ROM定制工具包的功能
大部分的ROM采用的是NBH或者NBF文件结构,因为只有这样才能在WM平台之下被识别并刷入,但是我们的操作平台却是PC,这就造成了两个平台之间核心层面的矛盾,ROM定制工具就是解决这种矛盾而生的。
ROM工具包要完成的使命有:
转换文件格式
解包文件为PC环境识别
衔接动态数据库
映射文件地址
嵌入功能模块
封包文件
等
上面的这些我们可以不用去管它到底是怎么意思以及怎么在现实,我们只需要了解下定制工具这个大概的功能就行了。
https://www.dospy.wang/static/image/hrline/line6.png
D。ROM定制包的应用
很多机油曾经也看过很多教程,但是在常试定制ROM上依然未取得较大的进展(当然使用傻瓜工具的除外),鉴于这种情况,我们不妨采取化整为零的方式来一步步地解决问题。要知道心急是吃不了热豆腐滴!
通过了解其中一种操作的方式来举一反三地对其他操作实现无师自通,比方说,你会解包,那么应该就会打包,你会增加应该也会删减,你会转换过来当然也该能转换过去,无非是点点鼠标,挪挪文件而已,如果你连PC上的基本操作都应付不了,那说这么多算我的错。
https://www.dospy.wang/static/image/hrline/3.gif
下面我们来看看应用的例子:
NBH和NB之间的转换,使用工具:nbhtool.exe
转换NBH为NB可以使我们一目了然地看清楚.NBH的ROM文件中到底包含了哪几部分,这种转换对整个NBH文件是一种模块的拆分
[*]我们双击打开 nbhtool.exe后点一下“NBH转换为NB”,然后点一下中间的“解压NBH文件”
[*]弹出文件夹,我们选择要解包的NBH文件的正确路径
[*]找到后点中RUU_Signed.nbh文件,弹出对话框,需要我们选中解包后的文件存放路径 ,找好后点“确定”
[*]我们可以看见界面下方有文件在快速滚动,最后弹出“完成”的提示窗,说明文件解包成功!
[*]然后我们进入已经解包的文件夹看看,发现只有一个NB文件,名为Windows.nb,从文件大小上看这就是我们的OS.nb,说明这个ROM里只包含OS部分。
同理,我们要把NB文件转换为NBH文件,可以如下操作:
[*]打开 nbhtool.exe,选中“NB转换NBH”
以NBH为扩展名的ROM文件转换为NB文件是解包,而由NB文件转换为NBH文件实际上是打包,既然是打包,当然可以把很多项打包到一起啊。大 家可以看到,上面的选择框里有IPL,SPL,First Splash(开机第一屏) ,Second Splash(开机第二屏),OS,Radio等,这些文件如果要打包到ROM里,必须要全部是NB文件,并且必须要和上面的选择框一一对应,不然就会出大问题。https://www.dospy.wang/static/image/hrline/line7.png
比如我们要选择把RADIO打包进ROM,必须要在Radio那个框里选择Radio.nb(文件名不一定非要叫Radio,但是扩展名一定是.nb)文 件在PC里的正确路径载入,如果我们在别的框比如说在IPL选择框里选择载入的文件为Radio.nb文件的话,那就会出大问题,至于问题会有多大,至少刷完机死活都进不了系统。https://www.dospy.wang/static/image/hrline/line7.png
一般情况下,不推荐打包除OS之外的东西,毕竟包打得越大,危险性就越高,找对了NB文件的路径之后,我们就可以点击“生成NBH文件”了,这个时 候照样会弹出对话框,需要我们选择所生成的NBH文件的存放路径,路径找好后点“确定”,就可以看见界面下方的文件在快速滚屏,直到提示“成功”那我们的 NBH文件也就是ROM就生成了,余下的就是用刷机包把它刷入我们的PPC。https://www.dospy.wang/static/image/hrline/line7.png
这种转换最大的好处是将所有的组件进行模块化打包到ROM里的,既然是模块化那么这些NB组件是可以自行替换增减的,那我们在定制的时候就可以自由地更换这些“零部件”了。https://www.dospy.wang/static/image/hrline/line7.png
上面我们知道了NBH和NB之间的转换,但是貌似还是不能解决实际问题,ROM文件NBH是由OS转换的,但是OS如何转换为XIP,SYS,以及OEM 和相关核心组件及驱动呢,如果解决了这个问题,那我们只需要找齐XIP,SYS,OEM及其它一些材料便能做出一道“好菜”了。https://www.dospy.wang/static/image/hrline/3.gif
下面的这段是比较关键的!OS.nb要转换为我们最常见的材料一样需要再解包,我们称这种解包为DUMP(中文意:堆放,仓储),意思是将OS.nb里的文件一个个地拿出来进行重新转存,同样的,要解开OS,我们需要OSDUMP工具。DUMPOS.nb文件使用工具:ROMCMD
[*]ROMCMD是一款ROM制作的小工具,可以对ROM进行简单的解包,重组,和封包的操作,那在这里我们只利用它的DUMPOS功能。
[*]我们打开解压后的 ROMCMD文件夹,可以看到OSDUMP.bat这个自动批处理文件
[*]然后我们将刚才转换来的windows.nb文件进行改名为OS.nb,对于大多数的批处理文件,对需要进行操作的文件名已经确定好了,所以如果不改名那这个OSDUMP.bat批处理文件是不认账的,因为它只默认处理文件名为OS.bat的文件。
[*]接下来我们把改名后的OS.nb文件用鼠标拖动到这个OSDUNP.bat文件上面,电脑上就会弹出一个CMD的对话框了,紧接着我们会看到对话框里有文件在快速地滚屏,这表示OS.nb文件正在被解包,这个过程需要3到10分钟的时间,没关系,去喝杯茶或者点根烟。
[*]时间不用太长我们便会看到CMD框最后自动消失了,那代表OSDUMP已经完成了对OS.nb文件的解包了,下面我们打开原来存放OS.nb文件的文件夹察看一下,我们发现文件夹里除原来的OS.nb之外又多出了3个文件和一个dump文件夹,这4个就是由OS.nb解包而来的,其中有2个以.reg为扩展名的注册表文件,1个是.txt文本文件,还有1个是dump文件夹。
这里还是解释一下,2个reg文件是原OS的注册表文件,user.reg是对应手机注册表里的User这一大项的,用于存放用户自定义的注册表项,而 default.reg则是对应手机中的ROOT这一大项的,用于存放系统核心文件的注册表项,1个dump_MemoryMap.txt文件是用来记录 原OS文件的地址段的,最后的Dump文件夹是我们OS里的所有文件,当然这其中是不包括XIP的。https://www.dospy.wang/static/image/hrline/line7.png
从上面我们可以了解到,OS文件的原理不仅仅是将文件压缩到一起,它还把所有文件进行有机的排列组合,使各个文件之间互相衔接,以方便我们刷入机器以后能自由的调用,就像小孩在幼儿园一样,不仅仅是将小朋友(所有文件)放进去就行了,还要为他们编排座位和床位(地址段),还要记录他们的名字他们的性格以及特长等(注册表),然后才能更好地对他们进行管理。https://www.dospy.wang/static/image/hrline/line7.png
我们通过DUMP OS文件得到了这么些东西,但是如果在这个基础上对OS进行修改却不是个容易事情,如果要删除或者更改哪几个文件,那就不仅仅只能挪动文件就行,还得改动 他们的注册表,重组地址段,这个工程有点艰难,因为改动一旦出错那刷入机器之后就会出问题了。继续处理这些文件之前,我们差点忘记了还有一个重要的事没做,那就是提取XIP.
[*]下载能我们需要用到提取XIP的工具RomMaster,我们需要把OS.nb放进该文件夹:
[*]把OS.nb拖动到BuildXIP.bin.bat上,当然你也可以运行命令 “RomMaster -w 5 OS.NB-x -o xip.bin”, 程序执行后我们就会得到xip.bin
[*]下面,我们需要把得到的xip.bin文件转换为文件的形式,我们使用DUMP命令,把xip.bin拖动到dumprom.bat上滚屏后就得到XIP文件
[*]XIP部分已经出来了,接上面的工程,我们需要分解出SYS和OEM部分,上面的步骤我们已经DUMP出了OS.nb文件并得到了dump文件夹,这里面包含了SYS和OEM部分,余下的工作我们需要把它拆分为SYS和OEM。
在这里我们需要使用package_tool工具,打开 package_tool文件夹
[*]双击PKGTool.exe进入程序页面,然后我们再点“File—Open”,寻找先前的dump文件夹的路径,找到dump文件夹,再点“确定”,我们可以看到软件界面上有文件在执行,点完“确定”后,我们再点“Tools—Build Packages
[*]等处理完成之后,我们进入dump文件夹看看
[*]至此,一个完整的ROM被分解完成。
这里需要说明一下,并不是每个ROM组成部分都是相同的,分解后得到的组件也并非都是齐全的,所以过程中可能会出现无法分解或组合的问题,根据每个ROM及每个工具的不同而异。
页:
[1]