工具:
十六进制编辑器Hex Workshop
Linux
Unyaffs源代码
原厂刷机底包tfupdate.img
1)拆解刷机底包tfupdate.img
要点:
排列顺序:
boot.img
recovery.img
system.img
userdata.img
排列方式:
无压缩无加密中间无填充
拆解方式:
boot.img和recovery.img文件头相同,
在tfupdate.img中查找字符串
“mem=464M console=ttyDCC0 androidboot.hardware=qcom”
找到后向上数行,找到最近的一个ANDROID字样,那里就是文件头。
system.img和userdata.img文件头相同
皆为十六进制字符串
“0300000001000000FFFF00000000000000000000000000000000000000000000”
各文件首地址:
boot.img:0x0146CDB6
recovery.img:0x01800D86
system.img:0x01B00D86
userdata.img:0x0BE68286
userdata.img直达文件尾。
2)关于system.img和userdata.img的解包
要点:
须将unyaffs.c中的宏定义CHUNK_SIZE改成4096,SPARE_SIZE改成128后重新编译才能解压,否则ubuntu会报段错误。
解压命令:unyaffs system.img
会将img中的所有内容解压到unyaffs所在的目录
十六进制编辑器Hex Workshop
Linux
Unyaffs源代码
原厂刷机底包tfupdate.img
1)拆解刷机底包tfupdate.img
要点:
排列顺序:
boot.img
recovery.img
system.img
userdata.img
排列方式:
无压缩无加密中间无填充
拆解方式:
boot.img和recovery.img文件头相同,
在tfupdate.img中查找字符串
“mem=464M console=ttyDCC0 androidboot.hardware=qcom”
找到后向上数行,找到最近的一个ANDROID字样,那里就是文件头。
system.img和userdata.img文件头相同
皆为十六进制字符串
“0300000001000000FFFF00000000000000000000000000000000000000000000”
各文件首地址:
boot.img:0x0146CDB6
recovery.img:0x01800D86
system.img:0x01B00D86
userdata.img:0x0BE68286
userdata.img直达文件尾。
2)关于system.img和userdata.img的解包
要点:
须将unyaffs.c中的宏定义CHUNK_SIZE改成4096,SPARE_SIZE改成128后重新编译才能解压,否则ubuntu会报段错误。
解压命令:unyaffs system.img
会将img中的所有内容解压到unyaffs所在的目录