制作一个已经root了的属于自己的I9300 ROM刷机包

教你怎样制作一个已经root了的属于自己的I9300 ROM刷机包。

有时候很难找到一个适合自己的i9300 Rom,比如想在刷机前的就把Rom里的自带程序精简一下,或者喜欢某某的Rom程序但想把基带换成联通官方的,阅读本文后你都可以实现。本教程其实就是制作ROM的简单流程和原理。
ps,本人仅抛砖引玉提供教程,本人不负责由于刷机不当造成的任何后果。

首先你需要做好以下准备:
1、一个linux环境(你的计算机水平至少能够使用VirtualBox装一个Ubuntu系统同时还能知道在哪里输入命令行)
2、完整的官方ROM包(包含cache.img hidden.img modem.bin recovery.img system.img这几个文件)
3、最新的Superuser.app、su程序(下载请自行Google)
4、ex4_utils工具包(下载后有三个文件:make_ext4fs mkuserimg.sh simg2img,作用是linux环境下解压三星*.img和打包三星*.img的工具,下载请自行Google)
5、i9300 Odin刷机程序(下载请自行Google)

制作ROM的操作需在linux环境下进行(当然应该也有windows环境下的操作方法,方法请自行Google),不要一听linux就觉得很难,其实要做到很简单,和windows的cmd差不多,制作流程为:解开官方.tar的ROM包,并将三星的.img格式转换成ext文件格式(你需要改动的仅仅是system.img分区内容),完成程序替换或精简(此时加入Root),然后打包为三星.img格式,最后压缩成.tar的ROM刷机包。

1、解开一个完整的.tar刷机包,得到cache.img hidden.img modem.bin recovery.img system.img五个分区镜像文件:
windows下你可以使用rar直接打开.tar文件解压,liunx环境下你需要这样:

  1. tar xvf xxx.tar.md5

复制代码

xxx.tar.md5是你下载的官方rom包,有的rom包没有经过md5校验最后的扩展名为.tar;命令行中的xvf为tar命令参数详细请Google。

2、官方ROM中的.img文件为三星自家的分区格式,需要转换为标准的ext格式才能读取(格式转换有很多方法,windows环境也可转换,方法请自行Google)linux环境下使用前面提到的ex4_utils工具包,输入下面的命令:

  1. ./simg2img system.img newsys.img

复制代码

newsys.img就是转后为标准分区格式的.img文件,sim2img文件可在ex4_utils工具包中找到。

3、linux环境下挂载newsys.img:
新建一个文件夹temp

  1. mkdir temp

复制代码

将newsys.img挂载到temp

  1. mount -o loop newsys.img temp

复制代码

打开temp文件夹,是不是手机system分区内的文件都在这了?现在你可以精简你认为没有必要的程序,或者将原始程序替换为你制作好的美化程序。

4、将这个ROM包制作成原始Rooted的,你需要从网上下载最新的SuperUser或SuperSU程序,还有su文件。
拷贝su到xbin文件夹:

  1. cp su temp/xbin/su

复制代码

赋予su文件超级权限:

  1. chmod 06755 temp/xbin/su

复制代码

现在你进入temp/xbin/文件夹,敲入ls,su文件变成红色的就说明已经有了超级权限。
拷贝Superuser.apk到app文件夹:

  1. cp Superuser.apk temp/app/Superuser.apk

复制代码

赋予Superuser文件超级权限:

  1. chmod 06755 temp/app/Superuser.apk

复制代码

现在你进入temp/app/文件夹,敲入ls,Spueruser文件变成红色的就说明已经有了超级权限。

5、将你整理好的Temp文件夹打包回三星格式的.img镜像文件

  1. ./mkuserimg.sh -s temp system.img ext4 tempdir 1536M

复制代码

6、最后制作属于你自己的完整刷机包,此时你可以组合你的Rom包,比如把modem.bin换成联通的基带,或者自己的cache.img:

  1. tar cvf 给你的刷机包起个名.tar cache.img hidden.img modem.bin recovery.img system.img

复制代码

也可加入校验

  1. md5sum -t 给你的刷机包起个名.tar >> 给你的刷机包起个名.tar

复制代码

7、最后解除挂载

  1. umount temp

复制代码

8、用odin刷入你的自定义刷机包看看吧(刷机前别忘了wipe)。
祝你成功!
觉得好就加个分呗。

补充:获得定制system.img的另一种方法:
首先你已root,然后再手机上替换/system/app内的文件,直至你满意为止。
现在将你现在手机的/system分区备份,获得system.img
Windows环境下,cmd窗口输入:(前提是你会使用adb,方法请自行Google)

  1. adb shell

复制代码

  1. dd if=/dev/block/mmcblk0p9 of=/sdcard/system.img bs=4096

复制代码

  1. exit

复制代码

这样你就获得了你目前手机的system分区镜像,直接跳至上面的第6步,制作刷机包。

 

 

1、先装好linux,不会装?请度娘,下面默认是root用户登陆linux,当前目录为/root

 

2、下载最新的官方ROM包,下载地址如下

http://pan.baidu.com/share/link?shareid=500364&uk=3305417907

把里面的CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar.md5文件拷贝到当前目录

root.tar拷贝到当前目录,下载地址如下

http://pan.baidu.com/share/link?shareid=1589241390&uk=3305417907

make_ext4fs.tar拷贝到当前目录,下载地址如下

http://pan.baidu.com/share/link?shareid=1526186983&uk=3305417907

 

3、开始把相关文件解出来,解到当前目录/root

#cd /root

#tar -xvf   CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar.md5

#tar -xvf   root.tar

#tar -xvf  make_ext4fs.tar

#mv CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar.md5    CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar.md5.old

#mv system.img system.img.old

这两个文件留着备用,一个原版PDA刷机包,一个是system分区镜像文件,实在不行可以重来嘛

 

#chmod 777 make_ext4fs

#chmod 777  mkuserimg.sh

#chmod 777 simg2img

img.ext4文件解包打包工具可执行权限

 

#./simg2img system.img.old system.img.ext4

#mkdir system

#mount -o loop system.img.ext4 system

system分区镜像文件挂载到system目录

 

4、开始往system分区里加root

#cd /root/system/bin

#cp /root/root/bin/su ./

#chown root.2000 su

#chmod 06755 su

#ll su

看下su文件是不是红色的,红色表示授权成功

#cd /root/system/xbin

#ln -s ../bin/su su

#chown root.2000 su

#chmod 06755 su

 

#cd /root/system/app

#cp /root/root/app/Superuser.apk ./

#chown root.root Superuser.apk

#chmod 0644 Superuser.apk

 

#cd /rooot

#./make_ext4fs -l 1200M -s -a system system.img ./system

打包img文件,这里的1200M我没搞明白,有人说是system分区挂载后大小,但我用df命令看了下是1180M,我用system.img.ext4文件的大小换算出来是1200M

#umount /root/system

 

5、完成,打包刷机文件

#tar -cf CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar boot.img loke_pxa988.bin NVM.img param.lfs PBL.bin recovery.img system.img userdata.img

#md5sum -t CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar >> CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar

#mv CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar.md5

 

6、CODE_I8268ZMAME1_1114026_REV00_user_low_ship.tar.md5这个文件我就改了这么一点点,其他几个文件我也不会改;当然,如果有大神,也可以修改那个Recovery包,做一个卡刷包出来。

 

 

supersu安装包

http://forum.xda-developers.com/showthread.php?t=1538053

CWM / TWRP / MobileODIN installable ZIP: http://download.chainfire.eu/supersu