本站长期提供ROM下载,可以定制多国语言刷机包和和刷机方案。点击这里给我发消息

解包和打包i9100固件里factoryfs.img的方法

其他教程 半夏月 1472℃ 0评论

解包和打包factoryfs.img还是非常简单的,在ax918执导下整理了一下学习笔记分享出来了。希望大家能看懂学会解包和打包i9100固件里factoryfs.img的方法。
第一步:
下载ext4_utils源码包编译:
复制链接到浏览器下载:http://www.59a.cn/sfo/ext4_utils.tar
复制链接到浏览器下载:http://www.59a.cn/sfo/make_ext4fs.tar

把得到的make_ext4fs simg2img 和mkuserimg.sh放在你的工作目录下,把固件包里解压出来的factoryfs.img拷贝到工作目录。factoryfs.img没有的话就是system.img

我主文件夹下make_ext4fs.tar目录就是我的工作目录

进入该工作目录

$ cd make_ext4fs.tar

运行以下代码:
$      ./simg2img factoryfs.img shendu.img 
$      mkdir shendu 
$      sudo mount -o loop shendu.img shendu

这样你就可以对固件做修改了,可以root固件,可以精简固件。
最简单的就是实用超级权限进行修改

root权限打开文件命令 相当与RE

$ sudo nautilus

然后就可以像在win下一样操作了。
下边就是打包了,很简单,先建立一个临时文件夹temp,然后用制作脚本制作即可。
ROOT系统
1. 将准备好的su文件和superuser.apk放到home里。运行终端。输入:
cd shendu/xbin
sudo cp ~/su./
sudo chown root.2000 su
sudo chmod 06755 su
ls -l su
cd ..
cd app
sudo cp ~/superuser.apk ./
sudo chmod 0644 superuser.apk
ls -l superuser.apk

为了避免权限问题,还是还是使用了sudo

$    mkdir temp

$    sudo ./mkuserimg.sh -s shendu shendu-w.img ext4 tmp 2524M
9100的是512M。9200是800M。9300是1024M。注意大小这这个范围内,稍微大一点可以。我做的note3的 比较大 具体的自己看下system.img多大就可以了
—————————————————————————————————-
把要改的img放进simgimg目录里
$ cd simgimg
$ ./simg2img system.img system.img.ext4
$ mkdir system
$ sudo mount -t ext4 -o loop system.img.ext4 system
修改之后打包
$ sudo ./make_ext4fs -s -l 大小 -a system system-new.img system
ls -l system.img.ext4 查看大小比如是1000M
sudo ./make_ext4fs -s  -l 1000M -a system system-new.img shendu

修改cache也是一样的

$ ./simg2img cache.img cache.img.ext4
$ mkdir cache
$ sudo mount -t ext4 -o loop cahce.img.ext4 cache
打包
$ sudo ./make_ext4fs -s -l 大小 -a cache cache-new.img cache

这样一个新的syetem.img就制作成功了,替换到原包里即可。
打包命令 tar -cvf 名称.tar system.img 想打包什么后面就跟什么

比如我在打包完system.img之后,想删掉目录里之前的文件,但是shendu这个文件所带锁头的删不掉,是因为你之前挂载上 没有卸载,卸载就可以了。$ sudo umount  shendu

—————————————————————————————————————-
S5 4.4ROM打包方式变了
需要手机根目录下的 file_contexts,-S file_contexts 是根据这个文件设置selinux contexts,-a /system是指明挂载点都是必须的,命令行 : make_ext4fs -S /file_contexts -s -l 大小 -a /system system-new.img system
如果是三星自己的cpu需要用sgs4ext4fs来处理下生成的img
make_ext4fs不可以的话试试make_ext4fs_11这个工具

cache也做了手脚
接上面打包完new_cache.img之后还要
./sgs4ext4fs –bloat new_cache.img cache.img

—————————————————————————
手机端打包

adb push ax918 /data/local/tmp/ax918
adb shell chmod 777 /data/local/tmp/ax918
adb shell
su
./data/local/tmp/ax918 -s -l 1110M -a system /sdcard/system.img.ext4 /system
链接: http://pan.baidu.com/s/1mgupKLU 密码: lmm4 ax918不建议改名

S4打包手机system文件成线刷包
首先:电脑要具备ADB,附件ADB下载解压到系统windows即可,手机要具备ROOT

其次:准备好 基带 内核 REC (你需要打包文件都准备好就OK,不一定全部需要)

举例:内核boot.img copy至手机data/local/tmp目录如下:

命令:adb push Desktop/art/boot.img data/local/tmp

解析:Desktop/art/boot.img 是电脑文件所在路径,

桌面、art文件夹、boot.img 你可以根据自己目录做出改变路径。

copy内核分区:file_contexts 到data/local/tmp

命令:adb shell cp file_contexts /data/local/tmp

打包手机system文件为system.img 计算分区大小很关键,举例大陆9500分区大小为例子:HK TW 分区大小可以自己计算

打包命令:adb shell make_ext4fs -s -l 2150M -a system -S ./file_contexts /data/local/tmp/system.img /system

这样打包出来的system.img不用执行sgsext4fs即可刷机

修改system.img权限:adb shell chmod 644 /data/local/tmp/system.img

修改:基带 内核 REC等权限 不需要的可以不用录入

adb shell chmod 664 /data/local/tmp/boot.img /data/local/tmp/recovery.img /data/local/tmp/modem.bin

把所有文件打包成可刷机tar文件:打包好的文件在你手机根目录(sdcard)

adb shell tar -cvf sdcard/pda.tar data/local/tmp/system.img data/local/tmp/boot.img data/local/tmp/recovery.img data/local/tmp/modem.bin

打包完成删除data/local/tmp文件

adb shell rm data/local/tmp/system.img data/local/tmp/boot.img data/local/tmp/recovery.img data/local/tmp/modem.bin

以上步骤完成你的可刷机文件在手机根目录,你可以提取到电脑用odin3.09选择PDA刷入即可,打包方法三星其他机型都可以通用.

部分旧机型不用file_contexts (打包即为:adb shell make_ext4fs -s -l 2150M -a system /data/local/tmp/system.img /system )

 

转载请注明:半夏月 » 解包和打包i9100固件里factoryfs.img的方法

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址