can_bootloader/user/Diag27code.aardio

87 lines
1.7 KiB
Plaintext
Raw Normal View History

2022-05-17 14:11:10 +08:00
var SecuretySeed = {0,0,0,0,};
var SecuretyKey = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
2022-07-06 16:55:12 +08:00
var lockstate = 0;
2022-05-14 15:57:52 +08:00
//发送
2022-05-17 14:11:10 +08:00
FuncReq27 = function(num,key){
2022-07-06 16:55:12 +08:00
if(num >= 1 && num <= 0x1C){
2022-05-17 14:11:10 +08:00
if(key == null){
var data = {0x02,0x27,num,0,0,0,0,0};
CANHw.SendMsg(DiagReqID,data);
}
else {
2022-07-06 16:55:12 +08:00
if(#key > 4){
var data = {0x10,0X12,0x27,num,key[1],key[2],key[3],key[4]};
CANHw.SendMsg(DiagReqID,data);
FuncPushPackage(DiagReqID,table.slice(key,5));
}
else {
var data = {0x06,0x27,num,key[1],key[2],key[3],key[4],0x00};
CANHw.SendMsg(DiagReqID,data);
}
2022-05-17 14:11:10 +08:00
2022-07-06 16:55:12 +08:00
}
}
else {
FuncDisplay("27长度错误");
2022-05-14 15:57:52 +08:00
}
}
2022-05-17 14:11:10 +08:00
2022-07-06 16:55:12 +08:00
//loadcodex("\user\securety.aardio");
loadcodex("\user\GeelySecurety.aardio");
2022-05-14 15:57:52 +08:00
//接收
FuncDiag27Pro = function(data){
//console.dumpJson(data);
select(data[1]) {
2022-07-06 16:55:12 +08:00
case 1,3,5,7,9,11,0x11 {
2022-05-18 10:43:03 +08:00
var str = "收到种子";
2024-10-09 09:09:01 +08:00
var str1 = "Received seeds";
2022-05-17 14:11:10 +08:00
for(i=1;4;1){
SecuretySeed[i] = data[i+1];
2022-05-18 10:43:03 +08:00
str += " " + tostring(SecuretySeed[i],16);
2024-10-09 09:09:01 +08:00
str1 += " " + tostring(SecuretySeed[i],16);
2022-07-06 16:55:12 +08:00
lockstate = 1;
2022-05-17 14:11:10 +08:00
}
FuncDisplay(str)
2024-10-09 09:09:01 +08:00
FuncDisplay(str1++"
");
2022-07-06 16:55:12 +08:00
SecuretyKey = securetyKeyCalc(SecuretySeed,data[1]);
if(#SecuretyKey >= 4){
2022-05-17 14:11:10 +08:00
FuncReq27(data[1]+1,SecuretyKey);
2024-08-31 14:18:38 +08:00
var str = "计算密钥中";
/*for(i=1;4;1){
2022-07-06 16:55:12 +08:00
str += " " + tostring(SecuretyKey[i],16);
2024-08-31 14:18:38 +08:00
}*/
2022-07-06 16:55:12 +08:00
FuncDisplay(str);
2024-10-09 09:09:01 +08:00
FuncDisplay("Calculate the key
");
2022-05-17 14:11:10 +08:00
}
else {
FuncDisplay("计算失败");
}
2022-05-14 15:57:52 +08:00
}
2022-07-06 16:55:12 +08:00
case 2,4,6,8,10,12,0x12 {
2022-05-17 14:11:10 +08:00
FuncDisplay("解锁成功");
2024-10-09 09:09:01 +08:00
FuncDisplay("Unlocked successfully
");
2022-07-06 16:55:12 +08:00
lockstate = 2;
2022-05-14 15:57:52 +08:00
}
else {
2022-05-17 14:11:10 +08:00
FuncDisplay("27服务未知子服务");
2022-05-14 15:57:52 +08:00
}
}
2022-07-06 16:55:12 +08:00
}
FuncDiag27GetState = function(){
if(lockstate == 2){
return 0;
}
else {
return 1;
}
}