From 784e627c0f119656098c4f6f6bd77bf4745608f2 Mon Sep 17 00:00:00 2001 From: Darkgeem Date: Thu, 11 Dec 2025 01:16:35 +0100 Subject: [PATCH] Fixed latest versions of proxmark3 not working. --- src/common/pm3process.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/common/pm3process.cpp b/src/common/pm3process.cpp index 76c13b8..bb102e4 100644 --- a/src/common/pm3process.cpp +++ b/src/common/pm3process.cpp @@ -22,6 +22,7 @@ void PM3Process::connectPM3(const QString& path, const QStringList args) QString result; Util::ClientType clientType; setRequiringOutput(true); + QRegularExpression osPattern("(os:\\s+|OS\\.+\\s+)"); // stash for reconnect currPath = path; @@ -44,7 +45,8 @@ void PM3Process::connectPM3(const QString& path, const QStringList args) { waitForReadyRead(200); result += *requiredOutput; - if(result.contains("os: ")) + // if(result.contains("os: ")) + if(osPattern.match(result).hasMatch()) break; } setRequiringOutput(false); @@ -53,12 +55,16 @@ void PM3Process::connectPM3(const QString& path, const QStringList args) { 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); - 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.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); } else