imcsh 发表于 2018-2-28 13:58

告诉你怎样解开LetvUpgrade938.bin

本帖最后由 wuli小茶 于 2018-2-28 14:30 编辑

// ======================================
LetvUpgrade938.bin是有不同的文件拼接在一起的
最前面是脚本scripts,接着是 lzop 分段压缩过的 image文件

// ======================================
以下面帖子的网盘文件为例
https://www.znds.com/forum.php?mod=viewthread&tid=1023618

下载 root 过的 LetvUpgrade938.bin
在linux shell里面输入:head -52LetvUpgrade938.bin
可以看到下面的脚本:
# Header prefix
# Partitions
# system
mmc erase.p system
filepartload 0x20200000 $(UpgradeImage) 0x4000 0x24A2554
mmc unlzo 0x20200000 0x24A2554 system 1
filepartload 0x20200000 $(UpgradeImage) 0x24A7000 0x6304224
mmc unlzo.cont 0x20200000 0x6304224 system 1
filepartload 0x20200000 $(UpgradeImage) 0x87AC000 0x6140936
mmc unlzo.cont 0x20200000 0x6140936 system 1
filepartload 0x20200000 $(UpgradeImage) 0xE8ED000 0x6621A47
mmc unlzo.cont 0x20200000 0x6621A47 system 1
filepartload 0x20200000 $(UpgradeImage) 0x14F0F000 0x5D54045
mmc unlzo.cont 0x20200000 0x5D54045 system 1
filepartload 0x20200000 $(UpgradeImage) 0x1AC64000 0x57BC49B
mmc unlzo.cont 0x20200000 0x57BC49B system 1
filepartload 0x20200000 $(UpgradeImage) 0x20421000 0x5933AAF
mmc unlzo.cont 0x20200000 0x5933AAF system 1
filepartload 0x20200000 $(UpgradeImage) 0x25D55000 0x5452842
mmc unlzo.cont 0x20200000 0x5452842 system 1
filepartload 0x20200000 $(UpgradeImage) 0x2B1A8000 0x5DE0B60
mmc unlzo.cont 0x20200000 0x5DE0B60 system 1
filepartload 0x20200000 $(UpgradeImage) 0x30F89000 0x4C5479A
mmc unlzo.cont 0x20200000 0x4C5479A system 1
filepartload 0x20200000 $(UpgradeImage) 0x35BDE000 0x61D7CD3
mmc unlzo.cont 0x20200000 0x61D7CD3 system 1
filepartload 0x20200000 $(UpgradeImage) 0x3BDB6000 0x5CECD54
mmc unlzo.cont 0x20200000 0x5CECD54 system 1
filepartload 0x20200000 $(UpgradeImage) 0x41AA3000 0x620EE11
mmc unlzo.cont 0x20200000 0x620EE11 system 1
filepartload 0x20200000 $(UpgradeImage) 0x47CB2000 0x79E74F
mmc unlzo.cont 0x20200000 0x79E74F system 1
filepartload 0x20200000 $(UpgradeImage) 0x48451000 0x9A1D9
mmc unlzo.cont 0x20200000 0x9A1D9 system 1
filepartload 0x20200000 $(UpgradeImage) 0x484EC000 0x9A1D9
mmc unlzo.cont 0x20200000 0x9A1D9 system 1
filepartload 0x20200000 $(UpgradeImage) 0x48587000 0x9A1D9
mmc unlzo.cont 0x20200000 0x9A1D9 system 1
filepartload 0x20200000 $(UpgradeImage) 0x48622000 0xA499
mmc unlzo.cont 0x20200000 0xA499 system 1
# Header suffix
setenv str_crc 2
setenv db_table 0
setenv verify n
setenv ForcePowerOn 0
saveenv
setenv LetvUpgrade_complete 1
saveenv
printenv
% <- this is end of file symbol

// ======================================
用下面脚本就可以解压出来一个system.img文件,然后就可以修改了
function filepartload ()                                                                                                                                    
{
OFFSET=$( printf %d $3 )
OFFSET=$(( $OFFSET >> 12 ))
BLOCKS=$( printf %d $4 )
COUNTS=$(( ($BLOCKS + 4095) >> 12 ))
dd bs=4096 if=$2 skip=$OFFSET count=$COUNTS of=tmp.lzo
truncate -s $BLOCKS tmp.lzo
lzop -d tmp.lzo
cat tmp >> system.img
rm -f tmp*
}
export -f filepartload

echo -n > system.img
filepartload 0x20200000 LetvUpgrade938.bin 0x4000 0x24A2554
filepartload 0x20200000 LetvUpgrade938.bin 0x24A7000 0x6304224
filepartload 0x20200000 LetvUpgrade938.bin 0x87AC000 0x6140936
filepartload 0x20200000 LetvUpgrade938.bin 0xE8ED000 0x6621A47
filepartload 0x20200000 LetvUpgrade938.bin 0x14F0F000 0x5D54045
filepartload 0x20200000 LetvUpgrade938.bin 0x1AC64000 0x57BC49B
filepartload 0x20200000 LetvUpgrade938.bin 0x20421000 0x5933AAF
filepartload 0x20200000 LetvUpgrade938.bin 0x25D55000 0x5452842
filepartload 0x20200000 LetvUpgrade938.bin 0x2B1A8000 0x5DE0B60
filepartload 0x20200000 LetvUpgrade938.bin 0x30F89000 0x4C5479A
filepartload 0x20200000 LetvUpgrade938.bin 0x35BDE000 0x61D7CD3
filepartload 0x20200000 LetvUpgrade938.bin 0x3BDB6000 0x5CECD54
filepartload 0x20200000 LetvUpgrade938.bin 0x41AA3000 0x620EE11
filepartload 0x20200000 LetvUpgrade938.bin 0x47CB2000 0x79E74F
filepartload 0x20200000 LetvUpgrade938.bin 0x48451000 0x9A1D9
filepartload 0x20200000 LetvUpgrade938.bin 0x484EC000 0x9A1D9
filepartload 0x20200000 LetvUpgrade938.bin 0x48587000 0x9A1D9
filepartload 0x20200000 LetvUpgrade938.bin 0x48622000 0xA499




彼此的羁绊 发表于 2018-2-28 14:41

解压出system编辑后,如何重新打包回.bin文件刷回去

wuli小茶 发表于 2018-2-28 14:29

不明觉厉

hao501802766 发表于 2018-2-28 14:39

技术贴 前排支持!

singlesingle 发表于 2018-2-28 14:40

{znds6}感谢分享

山阴路的夏天 发表于 2018-2-28 14:40

必须顶啊

kingking2 发表于 2018-2-28 14:40

{znds6}{znds6}感谢楼主分享

eswgdeh 发表于 2018-2-28 14:40

一看就很厉害的样子

云中的天使 发表于 2018-2-28 14:40

实用技术贴

kingtt1994 发表于 2018-2-28 14:40

{znds8}赞一个,学习到了

萌萌的小瑞文 发表于 2018-2-28 14:41

前排围观大神
页: [1] 2 3
查看完整版本: 告诉你怎样解开LetvUpgrade938.bin