教你怎样制作一个已经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环境下你需要这样:
xxx.tar.md5是你下载的官方rom包,有的rom包没有经过md5校验最后的扩展名为.tar;命令行中的xvf为tar命令参数详细请Google。
2、官方ROM中的.img文件为三星自家的分区格式,需要转换为标准的ext格式才能读取(格式转换有很多方法,windows环境也可转换,方法请自行Google)linux环境下使用前面提到的ex4_utils工具包,输入下面的命令:
- ./simg2img system.img newsys.img
复制代码
newsys.img就是转后为标准分区格式的.img文件,sim2img文件可在ex4_utils工具包中找到。
3、linux环境下挂载newsys.img:
新建一个文件夹temp
将newsys.img挂载到temp
- mount -o loop newsys.img temp
复制代码
打开temp文件夹,是不是手机system分区内的文件都在这了?现在你可以精简你认为没有必要的程序,或者将原始程序替换为你制作好的美化程序。
4、将这个ROM包制作成原始Rooted的,你需要从网上下载最新的SuperUser或SuperSU程序,还有su文件。
拷贝su到xbin文件夹:
赋予su文件超级权限:
现在你进入temp/xbin/文件夹,敲入ls,su文件变成红色的就说明已经有了超级权限。
拷贝Superuser.apk到app文件夹:
- cp Superuser.apk temp/app/Superuser.apk
复制代码
赋予Superuser文件超级权限:
- chmod 06755 temp/app/Superuser.apk
复制代码
现在你进入temp/app/文件夹,敲入ls,Spueruser文件变成红色的就说明已经有了超级权限。
5、将你整理好的Temp文件夹打包回三星格式的.img镜像文件
- ./mkuserimg.sh -s temp system.img ext4 tempdir 1536M
复制代码
6、最后制作属于你自己的完整刷机包,此时你可以组合你的Rom包,比如把modem.bin换成联通的基带,或者自己的cache.img:
- tar cvf 给你的刷机包起个名.tar cache.img hidden.img modem.bin recovery.img system.img
复制代码
也可加入校验
- md5sum -t 给你的刷机包起个名.tar >> 给你的刷机包起个名.tar
复制代码
7、最后解除挂载
8、用odin刷入你的自定义刷机包看看吧(刷机前别忘了wipe)。
祝你成功!
觉得好就加个分呗。
补充:获得定制system.img的另一种方法:
首先你已root,然后再手机上替换/system/app内的文件,直至你满意为止。
现在将你现在手机的/system分区备份,获得system.img
Windows环境下,cmd窗口输入:(前提是你会使用adb,方法请自行Google)
- dd if=/dev/block/mmcblk0p9 of=/sdcard/system.img bs=4096
复制代码
这样你就获得了你目前手机的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