mg格式是镜像的一种。可以通过制作数据光盘或者使用虚拟光驱(如WinMount)安装IMG数据文件。
IMG是一种文件压缩格式(archiveformat),主要是为了创建软盘的镜像文件(diskimage),它可以用来压缩整个软盘(通常指软软盘,FloppyDisk或Diskette)或整片光盘的内容,使用IMG这个扩展名的文件就是利用这种文件格式来创建的。
IMG这个文件格式可视为ISO格式的一种超集合。由于ISO只能压缩使用ISO9660和UDF这两种文件系统的存储媒介,意即ISO只能拿来压缩CD或DVD,因此才发展出了IMG,它是以ISO格式为基础另外新增可压缩使用其它文件系统的存储媒介的能力,IMG可向后兼容于ISO,如果是拿来压缩CD或DVD,则使用IMG和ISO这两种格式所压缩出来的内容是一样的。
本教程其实就是制作ROM的简单流程和原理,根据本教程,可以制作一个自已三星 Galaxy S III i9300 刷机包 ROM,一起来学习吧。注:本人仅抛砖引玉提供教程,本人不负责由于刷机不当造成的任何后果。首先你需要做好以下准备:
1、一个linux环境(你的计算机水平至少能够使用VirtualBox装一个Ubuntu系统同时还能知道在哪里输入命令行)
2、完整的官方ROM包(包含cacheimg hiddenimg modembin recoveryimg systemimg这几个文件)
3、最新的Superuserapp、su程序(下载请自行Google)
4、ex4_utils工具包(下载后有三个文件:make_ext4fs mkuserimgsh simg2img,作用是linux环境下解压三星img和打包三星img的工具,下载请自行Google)
5、i9300 Odin刷机程序(下载请自行Google)制作ROM的操作需在linux环境下进行(当然应该也有windows环境下的操作方法,方法请自行Google),不要一听linux就觉得很难,其实要做到很简单,和windows的cmd差不多,制作流程为:解开官方tar的ROM包,并将三星的img格式转换成ext文件格式(你需要改动的仅仅是systemimg分区内容),完成程序替换或精简(此时加入Root),然后打包为三星img格式,最后压缩成tar的ROM刷机包。1、解开一个完整的tar刷机包,得到cacheimg hiddenimg modembin recoveryimg systemimg五个分区镜像文件:
windows下你可以使用rar直接打开tar文件解压,liunx环境下你需要这样输入相关命令:tar xvf xxxtarmd5xxxtarmd5是你下载的官方rom包,有的rom包没有经过md5校验最后的扩展名为tar;命令行中的xvf为tar命令参数详细请Google。2、官方ROM中的img文件为三星自家的分区格式,需要转换为标准的ext格式才能读取(格式转换有很多方法,windows环境也可转换,方法请自行Google)linux环境下使用前面提到的ex4_utils工具包,输入下面的命令:/simg2img systemimg newsysimgnewsysimg就是转后为标准分区格式的img文件,sim2img文件可在ex4_utils工具包中找到。3、linux环境下挂载newsysimg:
新建一个文件夹tempmkdir temp将newsysimg挂载到tempmount -o loop newsysimg temp打开temp文件夹,是不是手机system分区内的文件都在这了?现在你可以精简你认为没有必要的程序,或者将原始程序替换为你制作好的美化程序。4、将这个ROM包制作成原始Rooted的,你需要从网上下载最新的SuperUser或SuperSU程序,还有su文件。
拷贝su到xbin文件夹:cp su temp/xbin/su赋予su文件超级权限:chmod 06755 temp/xbin/su现在你进入temp/xbin/文件夹,敲入ls,su文件变成红色的就说明已经有了超级权限。
拷贝Superuserapk到app文件夹:cp Superuserapk temp/app/Superuserapk赋予Superuser文件超级权限:chmod 06755 temp/app/Superuserapk现在你进入temp/app/文件夹,敲入ls,Spueruser文件变成红色的就说明已经有了超级权限。5、将你整理好的Temp文件夹打包回三星格式的img镜像文件/mkuserimgsh -s temp systemimg ext4 tempdir 1536M6、最后制作属于你自己的完整刷机包,此时你可以组合你的Rom包,比如把modembin换成联通的基带,或者自己的cacheimg:tar cvf 给你的刷机包起个名tar cacheimg hiddenimg modembin recoveryimg systemimg也可加入校验md5sum -t 给你的刷机包起个名tar >> 给你的刷机包起个名tar7、最后解除挂载umount temp8、用odin刷入你的自定义刷机包看看吧(刷机前别忘了wipe)。
祝你成功!觉得好就加个分呗。补充:获得定制systemimg的另一种方法:
首先你已root,然后再手机上替换/system/app内的文件,直至你满意为止。
现在将你现在手机的/system分区备份,获得systemimg
Windows环境下,cmd窗口输入:(前提是你会使用adb,方法请自行Google)adb shell
exit这样你就获得了你目前手机的system分区镜像,直接跳至上面的第6步,制作刷机包。注:由于本博客没有启用代码框插件,所以写本文是代码用b-quote所框住,所以在本文中所缩进去独立成行的均为输入命令。
IMG是一种文件压缩格式(archive format),主要是为了创建软盘的镜像文件(disk
image),它可以用来压缩整个软盘(通常指软软盘,Floppy
Disk或Diskette)或整片光盘的内容,使用"IMG"这个扩展名的文件就是利用这种文件格式来创建的。
IMG这个文件格式可视为ISO格式的一种超集合。由于ISO只能压缩使用ISO9660和UDF这两种文件系统的存储媒介,意即ISO只能拿来压缩CD或DVD,因此才发展出了IMG,它是以ISO格式为基础另外新增可压缩使用其它文件系统的存储媒介的能力,IMG可向后兼容于ISO,如果是拿来压缩CD或DVD,则使用IMG和ISO这两种格式所压缩出来的内容是一样的。
其实IMG就是镜像文件。跟ISO等镜像文件相似,可以使用各种虚拟光驱软件打开,其实winrar压缩解压软件即可支持IMG镜像文件的解压打开了
先介绍一下编译核心的选项,希望能对大家消除对内核的神秘感有所帮助。
1代码成熟等级
2处理器类型和特色
3对模块的支持
4基本的选择
5即插即用支持
6块设备支持
7网络选项
8电话支持
9SCSI设备的支持
10I2O接口适配器
11网络设备支持
12配置业余无线广播
13红外支持
14ISDN的文件系统
15旧型的光驱类型(非IDE界面的光驱)
16字符设备
17USB支持
18文件系统
19控制台驱动
20声卡驱动
21Kernel hacking
第二节 内核版本
由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布
给他人使用。Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应
),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。一个树是稳
定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(developm
ent tree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所
做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同
的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发数就体现在
源程序的版本号中;源程序版本号的形式为xyz:对于稳定树来说,y是偶数;对于开
发树来说,y比相应的稳定树大一(因此,是奇数)。确定是以″ root ″的身份签入,
然后cd 到 /usr/src 。uname -r 这个指令将会显示版本。内核版本的更新可以访问<h
ttp://wwwkernelorg/>。
第三节 编译原因
Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了
旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的
系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。
通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳
定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是
Linux使用者的必要操作内容。
为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主
要有下面四个考虑:
---自己定制编译的内核运行更快(具有更少的代码)
---系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
---不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞
---将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些
以上是针对成熟的Linux套件如Redhat Linux而言,我的目的是为建造嵌入式Linux操作系
统做准备,也是必由之路。
第四节 准备工作
第一部分 新版本内核的获取和更新
Linux内核版本发布的官方网站是< http://wwwkernelorg/>,国内各大ftp上一般都可
以找到某些版本的内核。新版本的内核的发布有两种形式,一种是完整的内核版本,另
外一种是patch文件,即补丁。完整的内核版本比较大,比如linux-240-test8tarb
z2就有18M之多。完整内核版本一般是targz(tgz)文件或者是bz2文件,二者分别
是使用gzip或者bzip2进行压缩的文件,使用时需要解压缩。patch文件则比较小,一般
只有几十K到几百K,极少的会超过1M。但是patch文件是针对于特定的版本的,需要找到
自己对应的版本才能使用。
编译内核需要root权限。把需要升级的内 拷贝到/usr/src/下(下文中以2216的内核
的linux-2216targz为例),命令为
#cp linux-2216targz /usr/src
先查看当前/usr/src的内容,注意到有一个linux的符号链接,它指向一个类似于linux
-2214(对应于现在使用的内核版本号)的目录。首先删除这个链接:
#cd /usr/src
#rm -f linux
现在解压下载的源程序文件。如果所下载的是targz(tgz)文件,使用命令:
#tar -xzvf linux-2216targz
如果下载的是bz2文件,例如linux-2216tarbz2,使用命令
#bzip2 -d linux-2216tarbz2
#tar -xvf linux-2216tar
现在再来看一下/usr/src下的内容,发现现在有了一个名为linux的目录,里面就是需要
升级到的版本的内核的源程序。还记得那个名为linux的链接么?之所以使用那个链接就
是防止在升级内核的时候会不慎把原来版本内核的源程序给覆盖掉了。现在也需要同样
处理:
#mv linux linux-2216
#ln -s linux-2216 linux
如果还下载了patch文件,比如patch-2216,就可以进行patch操作(下面假设patch-
2216已经位于/usr/src目录下了,否则需要先把该文件拷贝到/usr/src下):
#patch -p0 < patch-2216
第二部分 准备主机板和相关硬件的说明手册
其实也不用太详细,只要知道您的硬件是属于哪一类型就行了。例如:有一张SCSI卡,
那就要知道这张卡的名字,有一台cd-rom,就要知道这台光驱是哪一种牌子的,是否为标
准的IDE/ATAPI界面,还是另有专属接口卡呢?或者,主机版是否有支持Triton芯片(通
常586以上的电脑常有),这些信息能帮助我们,使得设定变得清楚且容易。
因此,不管您有什么使用手册,准备好吧。即使现在不用,将来还是会用到的(设X-w
indow system时要显示卡的手册)。
第三部分 检查声卡的IRQ设定和其种类
如果配有一张声卡,除了要知道卡的种类外(例如 Sound Blaster)还需要知道这张卡
的IRQ地址。一般来说,卢卡的IRQ地址是5或7而IO地址则为220。DMA则l,不过,有时不
同的声卡可能会有不同的设定。因为稍后的选项里,就会要填入这些数字。
第四部分 编译核心的硬件需求
在编译核心时,确定您的RAM最好在8MB以上, 否则可能会很慢而且问题会很多,记得查
看swap有没有打开(用free指令)。此外,最好不要超频,不然很有可能会发生signal
11的错误,使得编到一半的核心停了下来,其实编译核心就好比编译程序一样,只是因
为构成核心的程序太多了,因此我们能小心尽量小心。
欢迎分享,转载请注明来源:品搜搜测评网