IM-A820L第一屏与第二屏已破(非开机动画)(应该泛泰机型通用)

IM-A820L第一屏与第二屏已破(非开机动画)(应该泛泰机型通用)_第1张图片

第一屏是以raw图片格式存于emmc_appsboot.mbn中,也就是mmcblk0p7中

所以可以直接使用Image Search Editor来打开查找编辑

图片名称 偏移地址 分辨率 图片模式 所在文件
开机图片 0002FEDC 444x174 24 emmc_appsboot.mbn
S/W刷机模式图片 00068834 168x399 24 emmc_appsboot.mbn
S/W刷机失败模式 00099CBC 168x399 24 emmc_appsboot.mbn
不同版本的偏移地址可能不同,不过分辨率和图片模式应该是一样的

需要注意的是:必须要找到对的偏移地址和分辨率

警告:由此引起的变砖行为与本人无关




IM-A820L第一屏与第二屏已破(非开机动画)(应该泛泰机型通用)_第2张图片

rle转raw图片的python脚本

import sys
from struct import *
f = open(sys.argv[1], "rb")
o = open(sys.argv[2], "wb")
while True:
	count = f.read(4)
	if count == "":
		break
	counts = int("%i"%unpack("i", count))
	data = f.read(4)
	while counts > 0:
		o.write(data)
		counts -= 1
f.close()
o.close()

使用方法rle2raw.py rle.rle raw.raw,可以配合bat脚本

rle2raw.py %1 %1.raw

raw转rle的python脚本

import sys
from struct import *
f = open(sys.argv[1], "rb")
o = open(sys.argv[2], "wb")
a = f.read(4)
while True:
	data = a
	b = f.read(4)
	if b == "":
		break
	count = 1
	while a == b:
		b = f.read(4)
		count += 1
		if count == 65535:
			o.write(pack("i", count))
			o.write(data)
			count = 0
	a = b
	o.write(pack("i", count))
	o.write(data)
o.close()
f.close()

使用方法raw2rle.py raw.raw rle.rle,可以配合bat脚本

raw2rle.py %1 %1.rle

raw图片可以通过很多软件查看转换

这里以ImageMagick里面的convert命令为例

将普通图片转换为raw图片的bat脚本

convert -depth 8 %1 rgba:%1.raw

将raw转为普通图片需要根据图片指定分辨率

block_image.rle,block_image1.rle,block_image2.rle的分辨率分别为1920x1080,1280x720,720x480

initlogo.rle,logo2.rle,reboot.rle的分辨率都为800x1280

bat转换脚本范例如下

convert -size 800x1280 -depth 8 rgba:%1.raw %1.jpg


你可能感兴趣的:(IM-A820L第一屏与第二屏已破(非开机动画)(应该泛泰机型通用))