手机固件DIY详细教程【端正心态篇】在学习DIY固件之前,首先必须对刷机有所了解。当然,对电脑基本操作也要有一定的熟练度,连怎么复制、粘贴、搜索都不懂的话,还谈什么DIY固件呢?测试DIY固件手机成砖,可以说是必经阶段。只要不对固件的重要核心部分进行修改,一般都不会出现救不回的问题。如果你担心手机频繁刷机后硬件损坏的话,那么请放弃学习DIY固件。【软件准备篇】工欲善其事,必先利其器。下面这些软件都是在DIY固件中常用到的:1、NaviFirmEx_v1_5_2诺基亚固件下载器.zip(882.22KB)2、CertClear去除固件校验软件.rar(10.54KB)3、NFE(1.0r9.93_20110613).rar(1.5MB)4、NFECore2(2.0r0.23_20110801).rar(834.16KB)5、WinHex十六进制编辑器.rar(1000.94KB)6、RESEdit_RES文件编辑器.rar(44.86KB)(如果打不开,则安装.netFramework2.0)7、SisContents173_sis解包打包器.zip(875.64KB)8、NFX0630.rar(867.41KB)9、Nokia固件精简工具.rar(436.36KB)【认识固件篇】打开诺基亚固件下载器“NaviFirmEx”,下载你手机对应的机型固件。我选择的是C5-03(RM-697),版本20.0.24,CODE输入“China”进行筛选出中文的固件。我选择的CODE是059C547,然后下载文件列表里面的全部文件。一共是有7个文件:RM-697_20.0.024_prd.core.C00RM-697_20.0.024_prd.rofs2.V25RM-697_20.0.024_C01_prd.rofs3.fpsxRM697_011_U004.uda.fpsxRM697_059C547_20.0.024_001.vplRM697_059C547_20.0.024_001.dcpRM697_059C547_20.0.024_001_signature.bin文件名中含有core就是核心包,也就是第一个文件。核心包里面主要包括rom和rofs1,不要误以为核心包就是rom或者核心包就是rofs1。文件名中含有rofs2就是语言包,也就是第二个文件。V25代表着该语言包是中国语言,肯定包含中文。文件名中含有rofs3就是主题包,也就是第三个文件。凤舞霓裳版C5-03固件的凤舞霓裳主题就是在主题包里面的。文件名中含有uda就是C盘文件包,也就是第四个文件。这里面的文件在刷机后会存在手机C盘里面。vpl可以用记事本方式打开,里面记录的是每个文件对应的crc值以及一些信息。dcp以及bin文件,我们不需要理解,知道有这样的文件就行。刷机的时候,固件写入到手机的顺序先后是rom→rofs1→rofs2→rofs3→uda。rom是不能修改的,但可以通过同名文件放在rofs里面进行覆盖。uda的修改已经没有意义,写入到C盘后硬格就会消失。DIY固件主要是修改rofs1、rofs2、rofs3,修改之前必须先去除固件校验,否则刷机后不能正常开机。【去除校验篇】需要去除的固件校验有两个,一个是固件的总校验,另外一个是5D校验。固件的总校验是在核心包里面,5D校验是在语言包以及主题包里面。去检验操作不需要用到十六进制来进行编辑,只需一个去除固件校验软件CertClear即可完成。打开CertClear.exe,把核心包RM-697_20.0.024_prd.core.C00直接拖到CertClear窗口里面,或者点击“浏览”来选择核心包。然后点击“CORE去保护”,提示“所有操作完成”这样就把固件的总校验去除了。接着把语言包RM-697_20.0.024_prd.rofs2.V25拖到窗口里面点击“删首5D段”,提示“所有操作完成”,然后就多了个REP_RM-697_20.0.024_prd.rofs2.V25文件,这个是去除5D校验后的文件,不要弄错了。把原文件RM-697_20.0.024_prd.rofs2.V25删掉,然后把REP_RM-697_20.0.024_prd.rofs2.V25改名为RM-697_20.0.024_prd.rofs2.V25吧!同理,用同样的方法去除主题包RM-697_20.0.024_C01_prd.rofs3.fpsx的5D校验。【解包打包篇】去除固件检验之后,就轮到主要软件NFE以及NFECore2上场了!NFE是用于解包、打包语言包和主题包,NFECore2是用于解包、打包核心包,不要搞错了。打开NFE_Core.exe,把核心包RM-697_20.0.024_prd.core.C00直接拖到NFE_Core窗口里面。不要忘记勾上“保持CRC32”,否则改变了CRC值后凤凰刷机软件会不认该固件文件报错不让刷机。点击“解包”,会弹出窗口提示选择“是”等待解包,解包完成后NFE_Core里面是有文字说明的“成功创建rofs目录”来到NFE_Core.exe的所在目录,可以找到rofs文件夹。进入rofs文件夹,把DevIcon.fil、DevLogo.fil、feeds_view_template.html删除然后可以对里面的文件进行修改,至于怎么修改下面我会提到。修改过程中,不要关闭NFE_Core,并且要注意rofs文件夹的大小,不能超过规定的容量。容量剩余量在NFE_Core窗口下是有显示的当然,你也可以点击“ROFS容量调整”来扩大rofs的容量。修改完之后,点击“打包”来给rofs文件夹打包,如果超过了容量它就会出现提示。打包完成之后,来到NFE_Core.exe的所在目录,可以找到Repack文件夹。进入Repack文件夹,可以发现一个打包好的文件RBT_RM-697_20.0.024_prd.core.C00,把名字前面的RBT_删除,改名为RM-697_20.0.024_prd.core.C00,把文件放在固件所在的刷机可识别到的路径下刷机即可。语言包RM-697_20.0.024_prd.rofs2.V25以及主题包RM-697_20.0.024_C01_prd.rofs3.fpsx则用NokiaFirmwareEditor.exe来解包打包,跟NFE_Core的使用方法相同。注意别忘记勾上“重新打包时保持设定的CRC32”另外要注意一点,即使不对某个包进行修改都好,最好也要用相应的软件解包然后打包,以免造成不必要的麻烦。我曾经就有过这样的经历,没有对主题包进行修改。修改好语言包和核心包之后就刷机,然后就开机不了。检查了每个包,明明都去除了校验却还发生开机不了这个问题。纠结了很久,发现解包再打包没修改的主题包后再来刷机,问题就解决了。【固件优化篇】一、自启动进程优化解包核心包后,在resource文件夹下可以找到以下三个文件:Starter_Arm.rsc、starter_background_apps.rsc、starter_non_critical_1.rsc其中starter_background_apps.rsc主要包括系统后台可见进程,其他两个则是系统后台不可见进程。用RESEdit_RES文件编辑器可以打开,并对其修改。打开starter_background_apps.rsc文件之后,把z:\sys\bin\clockapp.exe等各项改为其他的不存在的名字就代表屏蔽,比如改为z:\sys\bin\clockapp.ex1。当然,也可以改为存在的其他进程名字,固化一些需要添加自启动软件,就可以在这里添加。但是要注意,文件名字不能超过本身的长度。改好之后,点击“应用”,然后点击“文件”选择“另存为”,直接在原路径保存确定替换即可。一般地,可以通过屏蔽进程实现提高手机运存。但我觉得每个系统进程的存在必然有它们的所在意义,屏蔽了系统进程后会造成BUG,所以在我的固件里面一般是不会轻易屏蔽进程的。二、10202be9优化rofs2\private\10202be9\文件夹下的txt文件修改优化,下面是我做固件时笔记所写的内容:1、禁止格机后发短息注册,默认语言选项设置为中文,欢迎画面未禁止200122A4.txt0x4stringLanguage=100;Promo=100;PAplugin=100;Switch=001;Personalisation=001;EmailSettings=000;10281c96;2001FE2F改为0x4stringLanguage=000;Promo=100;PAplugin=000;Switch=001;Personalisation=001;EmailSettings=000;10281c96;2001FE2F2、修改信息存储条数默认为999条101F87EB.txt0x1int10016777216cap_rd=alwayspasscap_wr=WriteDeviceData改为0x1int99916777216cap_rd=alwayspasscap_wr=WriteDeviceData3、修改短信默认支持全部字符101F87EF.txt0x8int116777216cap_rd=alwayspasscap_wr=WriteDeviceData改为0x8int016777216cap_rd=alwayspasscap_wr=WriteDeviceData4、修改默认关闭服务信息10008D42.txt0x1int116777216cap_rd=ReadDeviceDatacap_wr=WriteDeviceData改为0x1int016777216cap_rd=ReadDeviceDatacap_wr=WriteDeviceData5、添加网络标志开关101F877C.txt0x4int016777216cap_rd=alwayspasscap_wr=WriteDeviceData改为0x4int116777216cap_rd=alwayspasscap_wr=WriteDeviceData6、修改键盘自动锁时间默认为30秒101F877A.txt0x5int6016777216cap_rd=alwayspasscap_wr=WriteDeviceData改为0x5int3016777216cap_rd=alwayspasscap_wr=WriteDeviceData7、修改闹钟重响时间默认为5分钟101F874D.txt0x2int1516777216cap_rd=alwayspasscap_wr=WriteDeviceData改为0x2int516777216cap_rd=alwayspasscap_wr=WriteDeviceData8、禁止C盘private下的102072C4文件夹生成5M内存的reserved文件102072C6.txt0x1int50000000cap_rd=alwayspasscap_wr=alwaysfail改为0x1int00cap_rd=alwayspasscap_wr=alwaysfail9、修改缓存目录为E盘101F9775.txt0x1stringC:16777216cap_rd=alwayspasscap_wr=WriteDeviceData改为0x1stringE:16777216cap_rd=alwayspasscap_wr=WriteDeviceData10、修改音乐播放器扫描路径为内存卡Music文件夹101FFCD2.txt0x1stringC:\\DATA\\|E:\\0cap_rd=alwayspasscap_wr=alwaysfail0x4stringC:\\data\\download\\|E:\\data\\download\\|F:\\data\\download\\|C:\\data\\sounds\\digital\\|E:\\sounds\\dig