大型连续剧之拯救变砖黑莓KEY2之第五集—-重新分区
前景提要:之前用官方的autoloader刷入提示cache.img过大,所以还得重新处理分区问题
于是我对照note3的rom重新构造了分区信息的几个xml文件,不过手工手工处理太麻烦了,于是我写了个python脚本来帮忙
def rebuild_raw_program0(filepath):
raw_size_dict = {}
tree = ET.parse(filepath)
root = tree.getroot()
start_sector = 40
for child in root:
filename = child.get('filename')
filepath = IMG_PATH + filename
label = child.get('label')
size_in_kb = child.get('size_in_KB')
raw_size_dict[label] = str(int(float(size_in_kb)))
if len(filename) > 0 and os.path.exists(filepath):
print(filename)
file_size = os.path.getsize(filepath)
print('filesize:' + str(file_size))
num_partition_sectors = child.get('num_partition_sectors')
pre_start_sector = start_sector
start_sector = start_sector + int(num_partition_sectors)
start_byte_hex = hex(int(start_sector / 2 * 1024))
if not label.endswith('GPT'):
child.set('start_byte_hex', str(start_byte_hex))
child.set('start_sector', str(pre_start_sector))
print(child.tag, child.attrib)
tree.write('./files/rawprogram0.xml', encoding='utf-8', xml_declaration=True)
return raw_size_dict
有了这个脚本我只要填好num_partition_sectors
这个值然后重新生成rawprogram0.xml
就行了,生成好之后我再次到edl模式下刷机,尽管我对比小米的cache.img
文件大小相应扩大了三倍,但是刷入的时候还是提示空间不够,更严重的是刷完之后重启卡在了开机画面死活,无法进入9008模式,插入usb线就自动开机,这要是给维修手机的,估计判定为硬件故障了,回头检查一下刷机脚本,recovery和boot都还没刷入,做事不严谨遭重了。
fastboot %* flash system %~dp0images\system.img || @echo "Flash system error" && exit /B 1
fastboot %* flash cache %~dp0images\cache.img || @echo "Flash cache error" && exit /B 1
fastboot %* flash userdata %~dp0images\userdata.img || @echo "Flash userdata error" && exit /B 1
fastboot %* flash recovery %~dp0images\recovery.img || @echo "Flash recovery error" && exit /B 1
fastboot %* erase sec || @echo "Erase sec error" && exit /B 1
fastboot %* flash oem %~dp0images\oem.img || @echo "Flash cust error" && exit /B 1
fastboot %* flash boot %~dp0images\boot.img || @echo "Flash boot error" && exit /B 1
fastboot %* reboot || @echo "Reboot error" && exit /B 1
继续找解决办法!