同样可以使用下面的方式恢复小米助手备份的数据,不过需要把小米助手备份的数据从bak所属的文件夹里面取出来再进行操作
问题描述
自用小米10 pro经常死机,于是打算恢复出厂设置,恢复之前进行了备份,有40G的数据,并且将MIUI/back/AllBackup文件夹备份至了电脑
可是当重置手机后,发现备份文件夹中没有descript.xml
文件,所以无法将文件夹放回原有目录进行数据恢复,新建备份再替换也不行,因为没有上述配置文件,于是就想办法从单独bak文件和新建descript.xml
两种方式入手进行恢复
注意:有些软件无法恢复,比如我的Chrome就无法恢复,不知道是备份出错还是什么原因
注意:恢复的APP会覆盖当前已经安装的APP,特别是聊天记录会覆盖当前已有的,所以请恢复前再次备份!!!
批量恢复的思路是,自己重新生成descript.xml
文件
descript.xml
文件<packages>...<packages>
中添加需要恢复的app数据,数据格式如下<package>
<packageName>com.lingkou.leetcode</packageName>
<feature>-1</feature>
<bakFile>LeetCode(com.lingkou.leetcode).bak</bakFile>
<bakType>2</bakType>
<pkgSize>53026614</pkgSize>
<sdSize>0</sdSize>
<state>1</state>
<completedSize>53025792</completedSize>
<error>0</error>
<progType>0</progType>
<bakFileSize>0</bakFileSize>
<transingCompletedSize>0</transingCompletedSize>
<transingTotalSize>0</transingTotalSize>
<transingSdCompletedSize>0</transingSdCompletedSize>
<sectionSize>0</sectionSize>
<sendingIndex>0</sendingIndex>
</package>
上方代码为格式化之后的代码,请勿使用格式化后的代码进行添加,否则无法识别descript.xml
的脚本见下一部分脚本环境:Python 3.8.5
#coding:utf-8
import os
def bak_files_path(dir):
#修改一:检查下面5处是否需要修改,尤其是最后两个需要进行检查
bakVersion = "2"
brState = "3"
autoBackup = "false"
device = "cmi"
miuiVersion = "V12.5.3.0.RJACNXM"
outputFile = dir + "/descript.xml"
f = open(outputFile, 'w', encoding="utf-8")
content = ""
for root, dirs, files in os.walk(dir):
print("当前操作目录: ", root)
for file in files:
try:
content += "<package><packageName>%s</packageName><feature>-1</feature><bakFile>%s</bakFile><bakType>2</bakType><pkgSize>53026614</pkgSize><sdSize>0</sdSize><state>1</state><completedSize>53025792</completedSize><error>0</error><progType>0</progType><bakFileSize>0</bakFileSize><transingCompletedSize>0</transingCompletedSize><transingTotalSize>0</transingTotalSize><transingSdCompletedSize>0</transingSdCompletedSize><sectionSize>0</sectionSize><sendingIndex>0</sendingIndex></package>" % (file[file.index("(") + 1: file.index(")")], file)
finally:
# 跳过不规则文件
continue
template = "<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><MIUI-backup><jsonMsg></jsonMsg><bakVersion>%s</bakVersion><brState>%s</brState><autoBackup>%s</autoBackup><device>%s</device><miuiVersion>%s</miuiVersion><date>1621923274164</date><size>61445281</size><storageLeft>192279056384</storageLeft><supportReconnect>true</supportReconnect><autoRetransferCnt>0</autoRetransferCnt><transRealCompletedSize>0</transRealCompletedSize><packages>%s</packages><filesModifyTime /></MIUI-backup>"%(bakVersion, brState, autoBackup, device, miuiVersion, content)
f.write(template)
f.close()
# 只操作当前目录,不操作子目录
print("descript.xml 生成完毕 ->", outputFile)
return
# 修改二:在此处修改目录
bak_files_path("G:/djzhao/Mi10Pro/AllBackup/20210525_094444")
使用方式:
bakVersion
、brState
、autoBackup
、device
和miuiVersion
(如果不知道修改成什么,新建一个备份,查看新建备份的descript.xml
文件中这几个变量的值)descript.xml
文件的目录.bak
和descript.xml
文件)放置到MIUI/back/AllBackup/备份文件夹中小米备份太不省心了。小米助手也是,太不好用!!!
很多网友说,小米售后欠我工资,哈哈哈。