ROM制作教程教你如何制作ROM模板制作初级教程.docx

上传人:b****5 文档编号:7715512 上传时间:2023-01-26 格式:DOCX 页数:50 大小:58.64KB
下载 相关 举报
ROM制作教程教你如何制作ROM模板制作初级教程.docx_第1页
第1页 / 共50页
ROM制作教程教你如何制作ROM模板制作初级教程.docx_第2页
第2页 / 共50页
ROM制作教程教你如何制作ROM模板制作初级教程.docx_第3页
第3页 / 共50页
ROM制作教程教你如何制作ROM模板制作初级教程.docx_第4页
第4页 / 共50页
ROM制作教程教你如何制作ROM模板制作初级教程.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

ROM制作教程教你如何制作ROM模板制作初级教程.docx

《ROM制作教程教你如何制作ROM模板制作初级教程.docx》由会员分享,可在线阅读,更多相关《ROM制作教程教你如何制作ROM模板制作初级教程.docx(50页珍藏版)》请在冰豆网上搜索。

ROM制作教程教你如何制作ROM模板制作初级教程.docx

ROM制作教程教你如何制作ROM模板制作初级教程

本人不是什么技术人员,只是一个普通的手机爱好者,自己不能琢磨出点什么,但有好的东西,就和广大的机友分享!

不谈传道,但求能够解惑!

转入正题:

原帖转自DFT版主

pcg的帖子,相对还是详细点:

本帖主要内容包括:

ROM的制作、汉化、优化、celecmd、mortscrtip、马尼拉基本修改等

相关说明:

1.此教程适合钻石以后的机型,之前的旧机型可能有部分内容有所不同,请自行研究。

2.此教程的模板工具以btxakita的BTBuildOS为例,若使用其他制作工具请参照自行研究(ROM的制作过程大同小异)。

3.难免出现错误,恳请斧正!

A.名词解释

  1.ROM,RAM,FlashMemory

ROM(ReadOnlyMemory)的全名为只读记忆体,是PPC上的硬盘部分用来存储和保存数据。

ROM数据不能随意更新,但是在任何时候都可以读取。

即使是断电,ROM也能够保留数据。

但是资料一但写入后只能用特殊方法或根本无法更改,因此ROM常在嵌入式系统中担任存放作业系统的用途

RAM(RandomAccessMemory)的全名为随机存储记忆体,是PPC上的移动存储部分,用来存储和保存数据的。

它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储介质(可称作系统内存)

      

FlashMemory,由于ROM不易更改的特性让更新资料变得相当麻烦,因此就有了FlashMemory的发展,FlashMemory具有ROM不需电力维持资料的好处,又可以在需要的时候任意更改资料,我们常见的FLASHMemory有TF卡(全名:

TransFLash卡),SD卡(全名:

SecureDigitalMemoryCard),CF卡(全名:

CompactFlash卡)等。

    2.XIP,IPL,SPL,RADIO

XIP(ExecuteInPlace)中文意:

立即执行。

XIP所起到的作用是让操作系统内核直接在Flash中运行,不需要拷贝到RAM,即指操作系统或应用程序直接从非易失性存储器中执行,这样减少了内核从闪速存储器拷贝到RAM的时间,其采用的非压缩映像也减少了内核自解压的时间,换句话说,XIP直接决定了PPC系统运行和加载程序的时间,也就是直接决定了PPC系统的运行速度。

IPL(全称:

InitialProgramLoader)中文意:

首次装载系统,其负责主板,电源、硬件初始化程序,并把SPL装入RAM,如果IPL损坏,由于不能加载SPL,所以机器将不能装载任何由SPL完成装载的OS系统。

SPL(全称:

SecondProgramLoader)中文意:

第二次装系统,就是负责装载OS操作系统到RAM中,SPL损坏了我们可以烧录机这样的设备来重新写入,或者还可以通过刷入初始的ROM版本来实现重写SPL,我们俗称“寻找原厂ROM救砖”

RADIO,字面理解:

无线电通讯,其负责着PPC作为手机功能的通讯功能方面,包括它的电话和上网功能,事实上,RADIO硬件模块已经在手机出厂时已经内置,我们所刷入的不过是作为软件应用层面的东西,因为软件层面的东西决定了RADIO硬件模块接收和传递信号的频段分配,所以硬件RADIO的称谓已经被弱化,我们把这种RADIO软件层面的东东一律称为RADIO。

    3.刷ROM,刷RADIO,解锁,永久解锁

刷ROM,意指将新的ROM刷入PPC,ROM部分包含:

IPL、SPL、OS、EXTROM、RADIO、STORAGE等,目前来说,我们刷入的ROM绝大多数只包含OS部分,OS部分包含两个东东:

XIP、IMGFS,而这两个正是影响系统层面的主要因素,鉴于其他部分,因为涉及到核心层面的重新写入,可另行重写,所以我们在此进行了抛弃,为了省事,也降低了一次性刷入的风险。

刷RADIO,简单的说就是刷入新的RADIO模块的应用软件,不同的地区不同的通讯服务网络,无线通讯基站在接收和发送无线信号上的频段各有不同,那么处于这个地区和这个通讯服务网络之内的RADIO硬件模块,在频段调整上越接近于本地基站,手机的通讯信号就会越好,信号接收和发送就会越完整越快速,信号搜索上也会越稳定,从而使我们的PPC信号强劲又省电,运营商新的RADIO是根据其基站的新的频段来调整的,所以随着时间的推移,当基站有所升级其频段有所调整的时候,新RADIO的刷入就很有必要了。

解锁,随便解释一下吧,PPC机器在出厂的时候对机器内部核心的CID地址段进行了上锁,上锁的原理是基于微软对于开放性的WM系统所提供的一种特权保护机制,该机制对应用程序能够访问的系统资源作了限制,而厂家正是利用这一点实现了对系统ROM的锁定,锁定的目的一方面是为了个不同机型间的区别和独立性,更大的原因是保障厂家对WM系统推陈出新上的独立自主权,锁定被集中在机器CID地址段上,不同CID的ROM相互之间不能进行交互性的替换,如果强行刷入CID不同的ROM,将无法通过CID校验,严重的会出现系统无法修复的现象,由此PPC玩机的"江湖大侠"们便做起了文章,衍生出一种通过CID地址段欺骗的手段来对上锁的CID进行破解,破解过的CID刷入后,再刷入其他不同CID的ROM将极大可能地通过校验(但不是100%都可行)从而将新的ROM写入机器.

永久解锁,江湖又称SuperCID,此种新破解的CID和上面的相比具备更大的优势在于新ROM作刷入操作的时候,如若操作失败,原机系统将不会受到较大损伤,就算造成损伤也很容易被修复,所以我们常称此种解锁能使PPC“拥有不坏之身”。

    4.重启,硬启,定屏,假死,死机

重启,人人都懂的问题,和PC重启的机制是一样的,ROM中的数据全部保存完好,但是RAM中的数据全部丢失,正因此,通过重启可以解决RAM中运行不正常的现象,比如系统运行中的死机,比如程序模块找不到等问题,大部分的机器都会在一定时间内做重启操作,不是因为断电,而是由于机器运行一段时间之后会有相当一部分的垃圾缓存在RAM中,这是由于我们频繁操作机器造成的,众所周知,RAM剩余得越少,机器运行可用的运行空间就越小,机器的速度也会越慢,耗电量也会增大,那么重启机器在关机的一瞬间RAM里的所有数据全部丢失,包括系统垃圾,在重新开机之后,系统会重新加载应用程序,这时候RAM是一个相对干净的空间。

重启的方式大家都知道,连我地球人也知道了,通过电源键,通过系统应用程序,通过桶PP。

硬启,和重启一样都需要重新启动机器,所不同的是硬启将丢失所有ROM和RAM中的数据,而重启只丢失RAM,硬启后系统会自动还原为初始状态,所有的设定要重新来做,所有的资料要重新拷贝进去,貌似PC上的一键还原机制;硬启的原理是利用机器自身进行了格式化,所不同的是格式化之后机器ROM里的初始数据将被重新调出,这个初值数据一直都存在于ROM之中,你无法删除,纵使你作了替换修改等操作,貌似已经修改了数据,其实不然,只是被系统暂时隐藏了,那么在实行硬启格式化ROM之后,重启机器初始数据会被调处进行加载。

硬启操作一般大家不常用,除非系统ROM里出现了无法修复的错误导致机器不能正常运行,那就只能通过硬启来修复系统,硬启的方式地球人都知道,按住挂断和接听两个硬按键桶PP,或者1234清除内存。

定屏,顾名思义,就是屏幕定住不动不理会你的操作,PPC中的定屏现象主要指的是在开机三屏(或者两屏)上,正常情况下开机之后随着系统的加载,开机屏幕会逐步跳过直到出现调整的界面,但是因为ROM制作中出现错误或者遗漏,导致新ROM刷入之后开机屏幕跳不过去了,无论你等待多长时间,手机屏幕定格在那不动了,无法进入系统,导致刷机失败,之所以解释定屏是因为在后面的解决疑难杂症里会用到这个词。

假死,又称睡死,非真正的死机现象,假死现象指的是机器表面上运行正常,但是后台的部分应用程序不能被激发,比如在待机模式下电话呼入屏幕无显示无铃声,比如在操作某项程序的时候出现激发暂时性无反应或者反应延时过长。

死机,人人都知道,这个就不说了。

  5.三色屏

三色屏,因该模式下屏幕上呈现三种色彩而得名,三色屏模式最直接的作用是用于查看机器IPL值和SPL值,以识别手机是否成功解锁,间接作用是在模式下可以进行刷机操作。

所有的刷机操作必定要在三色屏模式下实现,不论你是直刷还是卡刷;手动进入三色屏的方法是按住相机键捅PP重启手机,至于其他关于三色屏的内容留到后面再讲。

  B.系统原理

  

微软的WM系统平台和其PC系统平台有着惊人的相似性,而IPL与SPL实质为WM的Bootloader里的两大组成部份,前面说了,IPL负责主板,电源、硬件初始化程序、并把SPL装入RAM的,SPL则是负责装载OS操作系统中的,所以开机启动顺序是IPL>SPL>OS,SPL还提供检测手机硬件、寻找系统启动分区、启动操作系统为系统的基本维护提供操作界面以及检测SD卡等,像我们执行刷机操作的时候,也是SPL在发挥作用,比如连接电脑同步,进入三色等。

在SPL装载OS的时候,前面我们提到OS分区又分为XIP、IMGFS两部分,系统启动时SPL加载OS分区的XIP到RAM执行,XIP就是WINCEXIPKERNEL,是CE核心部分,XIP是为eXecuteInPlace的缩写,在微软的CE定义中,这块区域存放的是以非压缩格式存放,不需加载,由Bootloader直接调用执行。

XIP部分大约3MB,包括nk.exe、device.exe等核心程序,就像PC上的ntoskrnl.exe等。

IMGFS就像一个压缩的GHOST文件,包括了WM的所有系统文件。

CE核心启动后就可以访问IMGFS文件系统上的OS需要的所有文件了,IMGFS是XPR或LZX压缩格式,系统访问上面的文件会自动解压到RAM。

因为普通PE文件调入RAM执行要进行地址重定位,为了提高效率,IMGFS中的文件可以是重定位好的模块形式,这些程序运行就不用再重定位了,直接调入RAM中保留的PagePool(缓冲池)执行。

刷机就是重写OS分区了,用PDOCREAD可以把整个OS分区读成一个NB镜象文件,然后把镜象解开到DUMP文件夹,就是所有ROM的文件了。

文件分2种,一种是普通文件,另一种是XIP(ExecInPlace)模块,这是为了加快OS运行设计的,就是这些文件可以不调入RAM而直接在ROM执行,但因为现在都是NANDROM,所以XIP模块其实还是要调入RAM的PAGEPOOL执行。

但是由于XIP模块有很多地址信息,所以移植OS最难的就是这了。

ROM制作工具介绍..............................已熟悉的机油直接飘去3楼!

    A.ROM工具简介

ROM文件系统的架构基于WM平台,核心的系统层面的东西实质上我们是编译不了的,ROM制作其实上只是一种组件模块的重新排列组合的过程,先解包,然后添加删除或者替换,再进行打包以及转换,完全是“拿来主义”的做法,除了微软能对系统核心层做改变之外,任何第三方目前尚无能力进行实质性的改动,其中包括部分PPC厂商对基于WM系统层面的UI再造。

正因此,ROM制作的难易程度和整体性能90%取决于ROM制作工具,一个好的制作工具不仅事半功倍,还能最大可能减少制作过程产生的错误和麻烦,当然,对WM平台之下的PPC基本常识的掌握也是必不可少的;否则,只知其然而不知其所以然,在稍有低级错误出现的情况下,在ROM的制作上我们显得非常的脆弱,这也是本人为何出教程出得像教课书一样的原因。

熟手建议飘过文字阶段,文字阶段的“废话”完全是为了照顾新手而生,请别扔砖,谢谢。

PPC在发展,PPC的使用者也在进步,工具越人性化对使用者的操作要求就会越高,反之,工具越傻瓜对操作者的要求也就越低,江湖上于是出现了针对不同机型不同组件以及不同操作步骤的傻瓜式工具,乃至我们经常提到的一键定制模板。

在这里,我只想通过定制ROM组件的方式来介绍ROM定制工具,定制包实在太多,我不可能去一一枚举。

    B.ROM结构及组件模块

上面我们说了定制ROM实质上是对ROM进行解包转换然后对其组件进行添加删除和替换然后再封包转换,那么ROM定制工具包当然就是为了解决这个过程而生了。

我们首先来看看一个完整的ROM在解包后的几个组成部分:

SPL

IPL

OS(OperatingSystem)

EXTROM

RADIO

STORAGE

上面的列表是对于一个完整ROM来说的,像这样的结构一般源于官方ROM,而实际上我们所需要进行刷新写入的部分只有操作系统OS部分,其他部分已经被隔离开了。

OS组件:

XIP

SYS

OEM软件包

核心组件及驱动

由上可以看出要做出新的OS需要准备XIP,SYS,OEM软件包,核心组件及驱动这几样材料,而这几样材料都可以是现成的,我们所要做的只是想法通过定制工具将他们打包到一起,做ROM其实就这么简单!

      C.ROM定制工具包的功能

大部分的ROM采用的是NBH或者NBF文件结构,因为只有这样才能在WM平台之下被识别并刷入,但是我们的操作平台却是PC,这就造成了两个平台之间核心层面的矛盾,ROM定制工具就是解决这种矛盾而生的。

ROM工具包要完成的使命有:

转换文件格式

解包文件为PC环境识别

衔接动态数据库

映射文件地址

嵌入功能模块

封包文件等

第一部分:

模板与ROM的简略说明

我们升级手机系统,是下载一个ROM,再通过电脑刷进手机或者直接复制到手机存储卡里卡刷进去。

那么一个ROM是怎样制作出来的呢?

最方便的方法莫过于使用模板制作了。

而模板是什么呢?

又是怎样来的呢?

英文里制作ROM叫做cookrom,为什么这样叫呢?

顾名思义,就是一个ROM其实是煮出来的。

如果我们已经有了一个模板,那么制作出一个ROM对于我们来说,其实就相当于跟煮饭、炒菜一样简单,我们只需把材料(OEM包等)扔进去,然后很简单的(点击一下鼠标)就可以煮出来。

(当然煮的好不好吃是另外一回事,呵呵)

因此,模板可以看成是非常简单就能制作出ROM的软件,对于我的模板,只需点击一下BTBuildOS.exe,再勾上/去掉你所需要/不需要的OEM软件,点击开始,过几分钟就会自动做好ROM并弹出刷机软件,呵呵,够简单吧。

而模板的来源,可以利用工具将官方发布的ROM反向分解形成(或者下载别人制作好的)。

那么我们先来讲讲如何形成一个标准的模板吧。

第二部分:

将官方ROM转化成标准的模板结构

一、必要软件

1、安装.net3.5(win7可跳过)

下载:

2、安装VC2008(win7可跳过)

下载:

VCredistx86.rar(1.72MB,下载次数:

16)2011-2-621:

50:

17上传

下载次数:

16

下载积分:

包子-1

3、模板工具BTBUILD下载:

下载:

BTBuildOS.rar(2.35MB,下载次数:

21)2011-2-621:

48:

51上传

下载次数:

21

下载积分:

包子-1

二、下载官方ROM

1、可以去HTC官方网站下载,凭你的PPC机SN号下载,若没有适合的SN号可以去拜托GOOGLE大神。

2、一些论坛偶尔也会放出一些test、shiprom、chsrom。

三、ROM的最基本结构(头晕的可跳过)

从官方下载回来的ROM,是EXE格式,可以直接用winrar解压出来,其中RUU_signed.nbh是ROM,其余文件是刷机软件(注:

刷机软件一般是通用的)。

RUU_signed.nbh这个文件是由一个或多个NB文件合成的。

官方的RUU_signed.nbh通常由os.nb(系统)、ipl、spl(装载系统、CID检测等)、MainSplash(第一屏)、radio(通讯)等等组成。

而os.nb则是一个ROM主要部分,由os镜像+头部尾部组成(头部尾部不同机型不一定相同),纯os镜像由两部分组成:

xip和imgfs.bin,而imgfs.bin又可以分成两部分:

oem和sys,xip是系统首先装载的基本文件,oem是厂商定制的软件(其中除了驱动外90%以上是通用的),sys是微软的系统核心。

Nbh文件可以用NBHextract.exe这个文件来分解。

Os.nb文件可以用nbtool.exe来分离出纯os镜像,再解压出xip.bin、imgfs.bin

Imgfs.bin可以用ImgfsToDump解压出文件,再用PKGTool.exe根据里面的dsm整理成各个目录。

不过以上是旧的方法,bepe在09年末推出了新的dump工具xidump(原ImgfsToDump),可以直接从nbh等格式ROM分解出oem、sys、xip等(链接:

http:

//forum.xda-

1、简单的分解过程如下:

(1)NBH分解成各个nb。

(NBHextract.exe)

(2)os.nb分解成xip和imgfs。

(nbtool.exe)

(3)imgfs分解成oem、sys。

(imgfstodump.exe)

以上步骤现在可以直接用xidump全部代替。

2、简单的合成ROM过程如下:

(1)oem、sys、xip生成dump目录和xip.bin。

(platformrebuilder.exe)

(2)oem、sys合成imgfs.bin(imgfsformdump.exe)

(3)xip、imgfs.bin插进原来的os.nb里(imgfstonb.exe、implantxip.exe)

(4)os.nb签名成nbh。

四、将官方ROM整理成一个标准模板。

(一)BTBuildOS简略说明

1、BTBuildOS是由btxakita基于MyBuildOS(独立小桥)进行的拓展,以platformrebuilder(bepe)排序工具为核心的ROM制作工具。

2、因为BTBuildOS是以platformrebuilder来排序,因此HTC机型可以省却手工移植XIP的烦恼,并且支持原生6.5nk。

3、因为是基于MyBuildOS的拓展,所以可以读取OEM里的option.xml提供该OEM包的选择与说明等。

4、OEM目录支持分类,EXT目录支持ext格式的oem包,并且也支持分类以及可将目录名显示在buildos界面提供选择。

5、OEM、TOOLS、RUU支持自定义路径,可编辑rom\config.ini或在BTBuildOS的目录选择里选择。

6、支持自定义机型,请参考BTBuildOS\TOOLS\Devices.ini自行编写,我已经将常用机型列出来,不过未能一一测试,有错之处请反馈或自行修正。

7、xidump目录是我根据bepe的xidump.exe整理的分解ROM工具包,其中里面有三个BAT,可以把相关文件拖到那几个BAT上实现傻瓜分解。

其中Dump.bat可以解出oem+sys+xip(假如有的话),Dump_os.nb.payload.bat可以解出精简后的os.nb.payload,Dump_XIP.bat可以只解出xip。

8、BTBuildOS我设定的默认目录简略说明

BTBuildOS(这个是解压后出的目录)

      |

      |----EXT(EXT格式的OEM包扔到这里,里面还要进行分类)

      |    |----XXX1(分类目录1,会在BTBuildOS里显示出来)

      |    |  |----XXX(EXTOEM包)

      |    |

      |    |----XXX2(分类目录2,会在BTBuildOS里显示出来)

      |      |----XXX(EXTOEM包)

      |

      |----OEM(普通OEM包扔到这里,里面还要进行分类)

      |    |----XXX1(分类目录1,会在BTBuildOS里显示出来)

      |    |  |----XXX(普通OEM包)

      |    |

      |    |----XXX2(分类目录2,会在BTBuildOS里显示出来)

      |      |----XXX(普通OEM包)

      |

      |----ROM(os.nb.payload以及xip放在这里)

      |    |----os.nb.paylaod文件(相应机型的纯OS镜像)

      |    |

      |    |----XIP(XIP目录)

      |    |---OEM(XIP的不同机型专用的OEM部分放在这里)

      |    |  |---romhdr.bin文件

      |    |  |---OEMXIPKernel(XIP的OEMXIPKernel目录放在这里)

      |    |  |---WinCENLS_xxx(XIP的wincenls目录放在这里)

      |    |---XXX(XIP相应核心的目录)

      |        |---MSXIPKernel(XIP的OEMXIPKernel目录放在这里)

      |

      |----RUU(刷机软件及制作出来的ROM文件)

      |

      |----SYS(SYS核心放在这里,里面还要进行核心分类)

      |    |----XXX(以核心命名的目录)

      |

      |----TOOLS(模板制作过程所用到的工具软件)

      |

      |----xidump(分解ROM、XIP的工具包)

          |---Dump.bat(拖到上面可以分解出oem+sys+xip)

          |---Dump_os.nb.payload.bat(拖到上面可以分解出精简后的os.nb.payload)

          |---Dump_XIP.bat(拖到上面可以分解出XIP)

          |---bin(分解所用到的工具包)

(二)分解

以HD的RUU_BlackStone_hTC_Asia_TW_1.59.709.0_Radio_52.62.25.34_1.13.25.24_Ship.exe为例。

1、下载BTBuildOS.rar,解压。

将官方ROM里的除了RUU_signed.nbh以外的文件扔到RUU目录(刷机时用),将RUU_signed.nbh扔到xidump目录里,然后把nbh拖到dump.bat身上,就会自动分解xi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1