fix:修复 ota 选择错误文件没有提示
This commit is contained in:
parent
606cbc76c7
commit
c40a95641a
@ -161,24 +161,52 @@ class LockEscalationLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 检查文件头
|
// 检查文件头
|
||||||
Future<Map?> getHeadFile(Uint8List data) async {
|
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') {
|
if (header != 'SYD-BIN-DATA') {
|
||||||
showToast('非SYD固件,请选择正确的文件');
|
showToast('非SYD固件,请选择正确的文件');
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// 解析元数据长度
|
// 解析元数据长度
|
||||||
Uint8List metaLenList = data.sublist(12, 16);
|
Uint8List metaLenList;
|
||||||
int metaLen = ByteData.sublistView(metaLenList).getUint32(0);
|
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) {
|
if (metaLen < 2 || metaLen > 10240) {
|
||||||
showToast('文件校验失败 0x01');
|
showToast('文件校验失败 0x01');
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// 读取和解析元数据
|
// 读取和解析元数据
|
||||||
Uint8List metaStrList = data.sublist(16, 16 + metaLen);
|
Uint8List metaStrList;
|
||||||
String metaStr = utf8.decode(metaStrList);
|
String metaStr;
|
||||||
|
try {
|
||||||
|
metaStrList = data.sublist(16, 16 + metaLen);
|
||||||
|
metaStr = utf8.decode(metaStrList);
|
||||||
|
} catch (e) {
|
||||||
|
showToast('解析元数据失败,请选择正确的文件');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
AppLog.log(metaStr);
|
AppLog.log(metaStr);
|
||||||
var meta = jsonDecode(metaStr);
|
var meta = jsonDecode(metaStr);
|
||||||
|
if (meta is! Map) {
|
||||||
|
showToast('解析元数据失败,请选择正确的文件');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return meta..['metaLen'] = metaLen;
|
return meta..['metaLen'] = metaLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user