Compare commits

..

5 Commits

Author SHA1 Message Date
Self Not Found
b74ad1b0de
Merge pull request #70 from darkgeem/master
Fixed latest versions of proxmark3 not working.
2026-04-06 15:02:35 +08:00
Self Not Found
c72025787f
Merge pull request #64 from Dmitry422/master
Edit instruction for MacOS users.
2026-04-06 15:00:36 +08:00
Darkgeem
784e627c0f
Fixed latest versions of proxmark3 not working. 2025-12-11 01:16:35 +01:00
Dmitry422
9b175a4a93
Update README.md 2024-11-15 12:22:09 +07:00
Dmitry422
58d2ba4eae
Update README.md 2024-11-15 12:21:38 +07:00
2 changed files with 12 additions and 4 deletions

View File

@ -82,6 +82,8 @@ open Proxmark3GUI.app
> In order for the GUI to connect to the device in macOS, you'd need to tweak the settings a little bit > In order for the GUI to connect to the device in macOS, you'd need to tweak the settings a little bit
Client Path must be path to pm3 console client like "/usr/local/bin/pm3/"
![macOS_settings](doc/README/macOS_settings.png) ![macOS_settings](doc/README/macOS_settings.png)
*** ***

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