[图文]菜鸟DIYROM零起点入门

倘文库
当前位置:首页 » 菜鸟DIYROM零起点入门 » 正文

[图文]菜鸟DIYROM零起点入门

顺丰打脸菜鸟,对方封杀在先?
顺丰打脸菜鸟,对方封杀在先?

菜鸟 DIY ROM 零起点入门第一章 基础知识刷机相关基础知识名词解释 1, ROM,RAM,Flash Memory ROM(Read Only Memory)的全名为只读记忆体,是 PPC 上的硬盘部分用来存储和保存数据.ROM 数 据不能随意更新,但是在任何时候都可以读取.即使是断电,ROM 也能够保留数据.但是资料一但写入后只能 用特殊方法或根本无法更改,因此 ROM 常在嵌入式系统中担任存放作业系统的用途 RAM(Random Access Memory)的全名为随机存储记忆体,是 PPC 上的移动存储部分,用来存储和保 存数据的.它在任何时候都可以读写,RAM 通常是作为操作系统或其他正在运行程序的临时存储介质(可称作 系统内存)Flash Memory, 由于 ROM 不易更改的特性让更新资料变得相当麻烦, 因此就有了 Flash Memory 的发展 , Flash Memory 具有 ROM 不需电力维持资料的好处,又可以在需要的时候任意更改资料,我们常见的 FLASH Memory 有 TF 卡(全名:TransFLash 卡),SD 卡(全名:Secure Digital Memory Card),CF 卡(全名:C ompact Flash 卡)等.2, XIP,IPL,SPL,RADIO XIP(Execute In Place)中文意:立即执行.XIP 所起到的作用是让操作系统内核直接在 Flash 中运行, 不需要拷贝到 RAM,即指操作系统或应用程序直接从非易失性存储器中执行,这样减少了内核从闪速存储器拷 贝到 RAM 的时间,其采用的非压缩映像也减少了内核自解压的时间,换句话说,XIP 直接决定了 PPC 系统运行 和加载程序的时间,也就是直接决定了 PPC 系统的运行速度. IPL(全称:InitialProgramLoader)中文意:首次装载系统,其负责主板,电源,硬件初始化程序,并把 S PL 装入 RAM,如果 IPL 损坏,由于不能加载 SPL,所以机器将不能装载任何由 SPL 完成装载的 OS 系统. SPL(全称:SecondProgramLoader)中文意:第二次装系统,就是负责装载 OS 操作系统到 RAM 中,S PL 损坏了我们可以烧录机这样的设备来重新写入,或者还可以通过刷入初始的 ROM 版本来实现重写 SPL,我 们俗称"寻找原厂 ROM 救砖" RADIO,字面理解:无线电通讯,其负责着 PPC 作为手机功能的通讯功能方面,包括它的电话和上网功能, 事实上,RADIO 硬件模块已经在手机出厂时已经内置,我们所刷入的不过是作为软件应用层面的东西,因为软 件层面的东西决定了 RADIO 硬件模块接收和传递信号的频段分配, 所以硬件 RADIO 的称谓已经被弱化, 我们把 这种 RADIO 软件层面的东东一律称为 RADIO.3,刷 ROM,刷 RADIO,解锁,永久解锁 刷 ROM,意指将新的 ROM 刷入 PPC,ROM 部分包含:IPL,SPL,OS,EXTROM,RADIO,STORAG E 等,目前来说,我们刷入的 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%都可行)从而将新的 RO M 写入机器. 永久解锁,江湖又称 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 重启手机,至于其他关于三色屏的内 容留到后面再讲. ROM 制作工具介绍 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(Operating System ) 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 环境识别 衔接动态数据库 映射文件地址 嵌入功能模块 封包文件 等 上面的这些我们可以不用去管它到底是怎么意思以及怎么在现实,我们只需要了解下定制工具这个大概的功 能就行了.D,ROM 定制包的应用 很多机友曾经也看过很多教程, 但是在常试定制 ROM 上依然未取得较大的进展 (当然使用傻瓜工具的除外) , 鉴于这种情况,我们不妨采取化整为零的方式来一步步地解决问题.要知道心急是吃不了热豆腐滴! 通过了解其中一种操作的方式来举一反三地对其他操作实现无师自通,比方说,你会解包,那么应该就会打 包,你会增加应该也会删减,你会转换过来当然也该能转换过去,无非是点点鼠标,挪挪文件而已,如果你连 P C 上的基本操作都应付不了,那说这么多算我的错.第二章 工具集正所谓"工欲善其事,必先利其器" 没有好的工具,再厉害的高手也瞎孩子了(土话,意思是白搭没用,但是语气是开玩笑的)

1 OSnbtool 把原始镜像解包,还能把解包后的东西打包的工具 可以解包成三部分 boot 部分 xip 部分 imgfs 部分(貌似也叫 OS 部分) 后缀名为 bin 这个教程只涉及 imgfs 部分 osnbtool.7z (126.41 KB)2 ImgfsTools 把 imgfs.bin 再解包为一个 dump 文件夹.还能把 dump 文件夹打包为 imgfs.bin 这个文件夹里面包含了你在 PPC Windows mobile 中的 Windows 文件夹中的所有东西 我们的定制就是围绕这个文件夹展开! ImgfsTools.7z (90.1 KB)3 CeRegEditor 官网下载地址,英文的,但是很容易用, 汉化的没发现新版本,旧版本不能直接编辑 hv 文件 http://ceregeditor.mdsoft.pl/index.php?id=3&;lang=en 这个是一个注册表编辑器,可以直接编辑 dump 文件夹中的 user.hv 与 default.hv 文件 这两个文件就是 PPC wm 系统中的注册表文件,这个教程中只编辑 user.hv,另外一个我们不涉及. 至于两个文件的区别,参见下帖: http://bbs.xbeta.cn/thread-18254-1-1.html 4 notepad2 这个用来修改 dump 目录下 initflashfiles.dat 文件 其他软件好像打开要么是乱码要么每个字符中间有空格. 下载我就不写了,网上一搜一大把 啊?你问我什么是 initflashfiles.dat? 好问题! 这个要解释!不过不是现在,后面有解释.第三章动手 第一部分第一步,先得到最原始的刷机文件,刷机文件有很多格式,网上大部分以 nb*这个系列的来说的 这里换一个用 dip 来说明,其实大同小异,只是解包的时候方法不一样,到了真正编辑的时候都一样. 再一个原因就是我的琦基 i9 的刷机文件就是这个......第二步,把下载来的 dip 文件命名为 flash.dip(只是个名字,无所谓的,这里为了方便统一一下) 放到 osnbtool 文件夹下,然后用以下命令 OSnbtool.exe -sp flash.dip 这一步 为的是查看你的刷机文件可以分为几部分一般来说为三部分

如图三部分第三步,分解之!!! 用一下命令 osnbtool -d flash.dip 2 imgfs.bin 这个命令的意思是吧 flash.dip 文件中的 imgfs 部分单独搞出来 其他部分我们就不管了,只用这一个就够了.这个部分的体积最大呵呵.第四步,再分解之!!! 把得到的 imgfs.bin 放到 ImgfsTools(上面提到的工具,没忘吧) 然后用以下命令:ImgfsToDump imgfs.bin 得到 dump 文件夹!!!这个文件夹才是我们想要的东西! 未完待续!!!!!!好累,剩下的晚上或者明天早上再写......趁现在还有精神,再写点吧,不等晚上了.第三章 动手 第二部分有了 dump 文件夹就该大干一场了!首先介绍怎么向里面添加绿色软件.这个很简单,把软件的每个文件全部放到 dump 中 但是记住,不要往 dump 里面放文件夹. 这就行了,但是还有点要说,

因为单单这样的话,刷机之后这个软件就在 Windows 目录中,调用不方便, 那我们就应该给他弄个快捷方式放到显眼的地方. 至于怎么弄,后面有说明.然后是非绿色软件所谓非绿色,就是要往注册表里写东西的软件 这类软件的集成就有点麻烦 不过你往下看,肯定能学会. ............ 我老婆在飞信上老是骚扰我,要是分神写错了.........大家谅解啊 ............ 这里以 QuickMenu 为例这个软件我非常喜欢,是一个替代自带开始菜单的软件 还能实现任务管理器,电视检测,重起关机等等很多很多功能! 所以我要集成进去! 但是如果按上面的绿色软件集成办法,当你刷机之后还要运行一下 QuickMenu 才能用 有没有办法刷机之后第一次开机就让它运行? 当然可以!首先,先把这 QuickMenu 的这几个文件复制到 dump 文件夹然后,修改注册表 用上面提到的 CeRegEditor 打开 dump 文件夹下的 user.hv 文件 然后往里面添加以下几项 [HKEY_CURRENT_USER\Software\AlenSoft\QuickMenu\MenuItems] "CustomProgramFolder"="" "CustomProgramMenu"=dword:00000000 "SubItems"=hex:1A,04,01,01,24,04,01,01,2E,04,01,01 "TopItems"=hex:00,04,01,00,00,00,01,00,D0,07,01,00,00,00,01,00,FD,03,01,01,FC,03,00,\

00,F2,03,01,00,00,00,01,00,01,04,01,01,06,04,01,01,02,04,01,00,00,00,00,00[HKEY_CURRENT_USER\Software\AlenSoft\QuickMenu\General] "AutoEndSyncTask"=dword:00000001 "TEditWhenEditing"=dword:00000001 "LongPressAppIconFunc"=dword:000003F9 "EnableXButton"=dword:00000001 "OkKeyEndTask"=dword:00000001 "RightArrowEndTask"=dword:00000001 "RegisterHomeKey"=dword:00000001 "ReplaceStartMenu"=dword:00000001 "CacheImageIndex"=dword:00000001 "AutoStart"=dword:00000001这里还要感谢 cjh4312 朋友!是他提供的 QuickMenu 注册表信息! 然后保存,记住要去掉 user.hv 的只读属性,要不无法保存. 关于修改注册表的更多信息,可以稍微参考一下这个帖子 http://bbs.xbeta.cn/thread-18254-2-1.html这时还没有完,要想要软件自动运行,我们要把 QuickMenu.exe 的快捷方式放到 startup 文件夹中才可以. 首先新建一个文本文档 写入以下内容"\windows\QuickMenu.exe" 然后保存为 QuickMenu.lnk 其他名字也行,不过后缀名 lnk 不可变! 把这个文件放在 dump 目录中. 还要说明一点 有人这么写 2#\Windows\*****.exe至于为什么,参考如下帖子 http://bbs.xbeta.cn/thread-18281-1-1.html还有一步骤很重要! 用 notepad2 打开 dump 目录下的 initflashfile.dat 文件 然后搜索 Startup Folder 在下面写这么一句话

Directory("\Windows\StartUp"):-File("QuickMenu.lnk","\Windows\QuickMenu.lnk"); 然后保存 这样就好了!这时有朋友就问了,这个initflashfile.dat 是什么东西啊?问得好!这个文件里面的内容决定了 dump 文件夹中的文件应该在刷机时怎么排放在你的手机内存中. dump 文件夹中的文件很多,有些刷机后留在 windows 目录中,有些会被复制到别的地方. 哪些留下,哪些复制到什么地方,都是靠initflashfile.dat 文件中的内容来决定.接下来呀,就要介绍一下怎么修改开机画面, 开机画面分三个(我的机器上) 第一是个 PPC 厂商的画面 第二个是一个 GIF 动画 第三个是静态图片 我只会修改后面两个 这里就说一说先是第二个 找一个对应尺寸的 gif 动画 我的是 800*480 的,屏幕大了就是爽!!哈哈......别拍我..... 命名为 startup.gif 放进 dump 目录中替换原文件 这里提供一个索爱 x1 的 挺好看 800*480 的 别的尺寸可以改一改 startup.7z (368.37 KB)然后是第三个 找一个对应尺寸的 png 文件 命名为 welcomehead.192.png 覆盖原文件

这样就好了!第四章 封装现在得到了我们已经修改完毕的 dump 目录 这时,我们需要把这个 dump 目录封装起来,重新组合成我们需要的 dip 文件进行刷机. 分为以下几步,按部就班的来吧! 1ImgfsTools 再度上场 用命令:ImgfsFromDump.exe imgfs.bin imgfs_new.bin 这个命令的详细意思是:把当前文件夹下的 dump 目录,按原始 imgfs.bin 的编排格式,封装为新的 imgfs_new.bin 这个 imgfs.bin 就是当初我们 dump 目录的来源 而新的 imgfs_new.bin 就是把 dump 重新封装后的产物. 2 OSnbtool 再度上场 用命令 osnbtool.exe -c flash.dip 2 imgfs_new.bin 这句话的意思是,把 imgfs_new.bin 放进 flash.dip 的第三部分(0 为第一部分,1 为第二部分,2 为第三部分) 然后会生成 flash.dip.NEW. 把它放到别的地方,把后面的".NEW"去掉, 就是我们得到的刷机文件了!!! 然后刷机就行了!!!教程到此完毕,举的例子较少,大家可以举一反三哦如果有需要,我会不时更新这个教程, 使之日臻完善,方便各位要入门但苦于 没有门道的朋友. 这里算是提供一点指南了.