fix:修复 ota 选择错误文件没有提示

This commit is contained in:
anfe 2024-04-29 17:24:58 +08:00
parent 606cbc76c7
commit c40a95641a

View File

@ -161,24 +161,52 @@ class LockEscalationLogic extends BaseGetXController {
//
Future<Map?> getHeadFile(Uint8List data) async {
if (data.length <= 16) {
showToast('错误D固件请选择正确的文件');
return null;
}
//
String header = utf8.decode(data.sublist(0, 12));
String header;
try {
header = utf8.decode(data.sublist(0, 12));
} catch (e) {
showToast('非SYD固件请选择正确的文件');
return null;
}
if (header != 'SYD-BIN-DATA') {
showToast('非SYD固件请选择正确的文件');
return null;
}
//
Uint8List metaLenList = data.sublist(12, 16);
int metaLen = ByteData.sublistView(metaLenList).getUint32(0);
Uint8List metaLenList;
int metaLen;
try {
metaLenList = data.sublist(12, 16);
metaLen = ByteData.sublistView(metaLenList).getUint32(0);
} catch (e) {
showToast('文件校验失败 0x01');
return null;
}
if (metaLen < 2 || metaLen > 10240) {
showToast('文件校验失败 0x01');
return null;
}
//
Uint8List metaStrList = data.sublist(16, 16 + metaLen);
String metaStr = utf8.decode(metaStrList);
Uint8List metaStrList;
String metaStr;
try {
metaStrList = data.sublist(16, 16 + metaLen);
metaStr = utf8.decode(metaStrList);
} catch (e) {
showToast('解析元数据失败,请选择正确的文件');
return null;
}
AppLog.log(metaStr);
var meta = jsonDecode(metaStr);
if (meta is! Map) {
showToast('解析元数据失败,请选择正确的文件');
return null;
}
return meta..['metaLen'] = metaLen;
}