ROM的提取和RFS文件的解包打包.doc_第1页
ROM的提取和RFS文件的解包打包.doc_第2页
ROM的提取和RFS文件的解包打包.doc_第3页
ROM的提取和RFS文件的解包打包.doc_第4页
ROM的提取和RFS文件的解包打包.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ROM的提取和RFS文件的解包打包本讲的主要目的:1)简单介绍Odin刷机包ROM的结构,为文件提取和以后定制ROM做准备。2)ROM文件的提取,主要是apk文件的提取,介绍提取方法和几个常用软件。3)RFS文件的解包和打包。这是定制ROM的基础和必备的步骤。1. ROM结构介绍1) Odin刷机包ROM结构I897和I909的Odin ROM通常以压缩包形式传播。文件形式为 .rar或 .zip。不管是哪一类,都可以在Windows下用WinRAR,或WinZIP,或7-zip进行解压缩。解压后得到TAR文件包(刷机包)。在通常的ROM中,除了PIT文件外,所有刷机文件都打包在一个TAR文件中(例如:JVP-SunnyOK-CN-3.tar),也有的刷机包由三个TAR文件组成(PDA.tar,CSC.tar和PHONE.tar)。不管是哪一种,它们所包含的刷机文件内容是相同的,只是ROM打包方式不同而已。无论是哪一类TAR包,解开后都会得到下列文件:factoryfs.rfs 手机上的/system 目录下的内容cache.rfs 其它附加的内容dbdata.rfs 对应于 /dbdata 目录boot.bin 引导区的内容Sbl.bin 所谓的第二引导区param.lfs 对应 /mnt/.lfs 下的内容zImage 内核(kernel)modem 基带(PHONE)2) factoryfs.rfs与目录/system在这些刷机文件中,我们最关心的是factoryfs.rfs。这个RFS文件包含了手机上/system 目录下的内容。我曾经在机锋论坛的其它帖子中(介绍PIT文件/viewthread.php?tid=391650&page=1&extra=#pid4631210)介绍过,/system的可用空间是固定的276.3MB。所以factoryfs.rfs的大小通常都在276MB左右,是ROM的主要部分。我们在上一讲中用到的apk文件都在这个刷机文件里。用镜像解包软件MagicISO打开factoryfs.rfs文件后,看到的内容见下面截图。2011-10-21 09:18 上传下载附件 (71.04 KB)有几个文件夹是我们熟悉的:/app,/fonts,/framework,/lib和/usr。/app里就是手机的所有apk应用程序,/fonts里是各种字体的文件,/lib存放各种库文件,/framework是主题文件的文件夹,最后,我们要修改触摸键的定义就是要修改/usr/keylayout下的文件。3) 文件夹/app和/framework下面来看看两个重要的文件夹:/app和/framework。a) 文件夹/app/app对应于手机上的文件夹/system/app,里面存放的是ROM集成的所有apk应用程序(不包含三星框架文件framework-res.apk和framework-res.apk)。在MagicISO窗口点击app,进入/app目录,看到下列所有apk文件,见截图。2011-10-21 09:18 上传下载附件 (73.5 KB)b) 文件夹/ framework/framework对应于手机上的文件夹/system/framework,里面存放的是ROM与主题有关的文件,包括三星框架文件framework-res.apk和framework-res.apk。在MagicISO窗口点击framework,进入/framework目录,看到两个框架apk文件,还有java文件。见截图如下。要修改主题,进行美化,就要与这些文件打交道。2011-10-21 09:18 上传下载附件 (63.4 KB)2. ROM的提取这一节介绍如何从ROM中提取文件。最常用的就是提取apk文件。在论坛中经常看到求救帖子:“大侠,救命哇,我把XXXX.apk给删掉了,手机出错。”。我说,你完全可以自救,不必在论坛里跪求他人或在线等。出路很简单:就是自己先做备份或有手段去提取文件。另外,如果你掌握了文件的提取方法,你就可以从其它ROM中方便地移植你喜欢的应用程序和功能了。例如,移植输入法,更换主题或桌面,等等。所谓ROM的提取或从ROM中“提取”文件,实际上就是要对factoryfs.rfs文件进行解包,把里面要用的文件复制出来。factoryfs.rfs是镜像文件,用了三星自定义的格式。RFS是Robust File System的缩写。在刷机包里还有cache.rfs和dbdata.rfs,都是同类镜像文件。对它们的解包打包方法是相同的。下面来介绍几种常用解包方法。1) 直接从卡刷ROM包提取如果你的ROM是“卡刷”包,直接提取就好啦,不需要解包。卡刷包是zip格式的压缩文件。用WinRAR或WinZip直接解压ROM文件就得到所有的原文件。一个典型的ROM打开后有三个文件夹:META-INF 签名文件和刷机脚本文件system 这就是factoryfs.rfs内的所有内容updates 存放内核和基带进入/system/app目录,一切apk程序都在这里,对应于factoryfs.rfs内的内容和手机的/system目录。刷机就是把/system下的内容复制到规定的分区(见第二讲:卡刷或CWM刷机教程/viewthread.php?tid=390708&extra=page%3D1)。2) 用RE管理器从手机里提取,复制到SD卡还有一种ROM的提取方法,不需要其它软件。用RE管理器,利用它的“多选”-“全选”-“复制”功能,一次把多个文件复制到手机的SD卡上。然后,进入“大容量存储”把文件拷贝到计算机里。这也是做备份的一种常用方法。3) 利用91手机助手从手机提取还有一种不需要对ROM解包就可以提取到文件的途径。如果你是91手机助手的使用者,你一定熟悉它。打开91手机助手的文件管理,想提取那个就提取那个。把文件直接拖出来放到你的计算机里就行了。4) MagicISO/UltraISO/WinImage软件由于factoryfs.rfs是镜像文件,你可以用某些镜像解包软件来打开刷机文件factoryfs.rfs。常用的软件有MagicISO和UltraISO。论坛里有介绍和下载链接。我在上一节的例子中就是用到MagicISO。类似的软件有很多,你们可能各有利器。最近,也用过WinImage,结果相同。注意:这些软件只能用于解包提取文件之用,不能进行RFS打包操作。5) 在Linux下通过对factoryfs.rfs的解包在Linux环境下,通过对factoryfs.rfs进行解包操作是提取ROM的高级手段。在下一节详细叙述。3. RFS的解包和打包先强调一下,我们这一节讲的RFS文件的解包和打包不是为了提取文件之用。我们的目的并不仅仅停留在提取ROM文件上的层面上。更重要的是,我们不但要对factoryfs.rfs能解包,我们需要对包内的内容进行修改后还要能够再打包成RFS文件格式。其最终目的是为了定制自己的ROM刷机包。从技术上讲,RFS文件的打包只能在Linux系统下进行。我们在这一节就介绍如何在Linux系统下对RFS文件的解包和打包。1) 在计算机的Linux系统下假定计算机已经安装了Linux操作系统和配置了java环境。我个人用的是Ubuntu 10.04,目前最新版本是11.04。下面是对factoryfs.rfs的解包和RFS打包过程。在Linux下主要使用mount和umount两个命令,要求具有超级用户权限。操作步骤如下:a)先创建一个子目录:/home/sunny/Workb)把factoryfs.rfs复制到/home/sunny/Work这个子目录c)再在Work之下创建一个子目录Systemd)在用户终端/home/sunny/Work输入$ suPassword:XXXXXXXX(你的Root口令)输入“Password”后,获得超级用户权限,提示符变成rootubuntu:/home/sunny/Work#e)在超级用户终端/home/sunny/Work# 输入下列命令,挂载 RFS文件factoryfs.rfs 为一个磁盘:# mount o loop factoryfs.rfs System进入“磁盘”System目录,你就可以看到factoryfs.rfs解包后的所有内容。像对待正常文件夹一样,你可以用“文件夹”浏览器查看 System文件夹里面的内容,但是不能删除和添加文件。f)在超级用户终端,你可以用rm和cp命令任意删除和添加应用程序。你也可以把文件从System目录复制出来(提取文件)。由于/home/sunny/Work/System是factoryfs.rfs挂载的磁盘,修改System下的内容就是在修改factoryfs.rfs的内容。所有美化、修改、编辑工作都在此进行。g)修改好/System的内容后,在超级用户终端执行下面的语句卸载该“磁盘” ,这个操作等价于“打包”过程。为此,首先退到目录/home/sunny/Work,输入下列命令:# umount Systemh)卸载System“磁盘”后,我们就得到修改好了的factoryfs.rfs。/home/sunny/Work 目录下的factoryfs.rfs就是修改和打包后可用的文件了。System目录什么都没有了(空目录)。i)关于factoryfs.rfs的打包。在以上的操作过程中,好像没有“打包”操作,怎么就得到新的factoryfs.rfs文件了呢?事实上,在这个操作过程中factoryfs.rfs根本就没有被“解开”,是通过挂载磁盘完成的,修改工作也是在“磁盘”上做的。因而也就没有“打包”过程。这与制作Motorola XT502 NB0刷机包的过程不同。玩习惯了XT502的NB0刷机包,还一直想着如何打包呢。2) 利用手机操作系统我们Android手机的操作系统实际上就是Linux系统,是简化的Linux系统。你可以在该Linux系统中做很多事情,像在计算机的Linux系统中一样。我们可以利用它来实现RFS文件的“打包”,从而获得RFS文件(例如:factoryfs.rfs)。我们在上一节不是用它来“解包”提取过文件了吗?这里,我们利用手机并结合Windows系统来完成factoryfs.rfs的“打包”操作,或称提取factoryfs.rfs。要求手机获得Root权限。步骤如下:a)在Windows下安装ADB驱动(ADB工具包已经在第一讲给出)。b)用USB数据线把手机连接计算机。c)手机要在“设置”-“应用程序”-“开发”下勾“USB测试”d)在DOS下输入(假定ADB安装在C:/ADB/目录内):C:ADB adb shell$ su# dd if=dev/block/stl9 of=/sdcard/factoryfs.rfs bs=4096几分钟之后,再次出现“#”提示符。输入:# exit$ exit在SD卡上产生了打包好的factoryfs.rfs文件,大小为278M。e)把factoryf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论