Merge pull request #70 from darkgeem/master

Fixed latest versions of proxmark3 not working.
This commit is contained in:
Self Not Found 2026-04-06 15:02:35 +08:00 committed by GitHub
commit b74ad1b0de
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -22,6 +22,7 @@ void PM3Process::connectPM3(const QString& path, const QStringList args)
QString result; QString result;
Util::ClientType clientType; Util::ClientType clientType;
setRequiringOutput(true); setRequiringOutput(true);
QRegularExpression osPattern("(os:\\s+|OS\\.+\\s+)");
// stash for reconnect // stash for reconnect
currPath = path; currPath = path;
@ -44,7 +45,8 @@ void PM3Process::connectPM3(const QString& path, const QStringList args)
{ {
waitForReadyRead(200); waitForReadyRead(200);
result += *requiredOutput; result += *requiredOutput;
if(result.contains("os: ")) // if(result.contains("os: "))
if(osPattern.match(result).hasMatch())
break; break;
} }
setRequiringOutput(false); setRequiringOutput(false);
@ -53,12 +55,16 @@ void PM3Process::connectPM3(const QString& path, const QStringList args)
{ {
clientType = Util::CLIENTTYPE_OFFICIAL; clientType = Util::CLIENTTYPE_OFFICIAL;
} }
if(result.contains("os: ")) // make sure the PM3 is connected // if(result.contains("os: ")) // make sure the PM3 is connected
if(osPattern.match(result).hasMatch())
{ {
emit changeClientType(clientType); emit changeClientType(clientType);
result = result.mid(result.indexOf("os: ")); // result = result.mid(result.indexOf("os: "));
QRegularExpressionMatch osMatch = osPattern.match(result);
result = result.mid(osMatch.capturedStart());
result = result.left(result.indexOf("\n")); result = result.left(result.indexOf("\n"));
result = result.mid(4, result.indexOf(" ", 4) - 4); // result = result.mid(4, result.indexOf(" ", 4) - 4);
result = result.mid(osMatch.capturedLength(), result.indexOf(" ", osMatch.capturedLength()) - osMatch.capturedLength());
emit PM3StatedChanged(true, result); emit PM3StatedChanged(true, result);
} }
else else