mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 21:33:47 -07:00
adapted the colors when setting and getting preference values.\nprefs set client.debug
- now toggles client side APDY logging
This commit is contained in:
parent
0b9191185b
commit
261760e903
2 changed files with 89 additions and 36 deletions
|
@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file.
|
||||||
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
||||||
|
|
||||||
## [unreleased][unreleased]
|
## [unreleased][unreleased]
|
||||||
|
- Changed `prefs set client.debug` - now also toggles the client side APDU logging (@iceman1001)
|
||||||
- Changed `hf 14b sriwrbl` - now supports --force to override block checks. Thanks @gentilkiwi for the idea! (@iceman1001)
|
- Changed `hf 14b sriwrbl` - now supports --force to override block checks. Thanks @gentilkiwi for the idea! (@iceman1001)
|
||||||
- Changed `hf 14b sriwrbl` - now tries to verify the write (@iceman1001)
|
- Changed `hf 14b sriwrbl` - now tries to verify the write (@iceman1001)
|
||||||
- Changed `hf 14b apdu` - now supports tearoff (@iceman1001)
|
- Changed `hf 14b apdu` - now supports tearoff (@iceman1001)
|
||||||
|
|
|
@ -122,7 +122,7 @@ int preferences_save(void) {
|
||||||
PrintAndLogEx(INFO, "No preferences file will be saved");
|
PrintAndLogEx(INFO, "No preferences file will be saved");
|
||||||
return PM3_SUCCESS;
|
return PM3_SUCCESS;
|
||||||
}
|
}
|
||||||
PrintAndLogEx(INFO, "Saving preferences...");
|
PrintAndLogEx(DEBUG, "Saving preferences...");
|
||||||
|
|
||||||
char *fn = prefGetFilename();
|
char *fn = prefGetFilename();
|
||||||
int fn_len = strlen(fn) + 5; // .bak\0
|
int fn_len = strlen(fn) + 5; // .bak\0
|
||||||
|
@ -279,6 +279,12 @@ void preferences_load_callback(json_t *root) {
|
||||||
if (strncmp(tempStr, "off", 3) == 0) g_session.client_debug_level = cdbOFF;
|
if (strncmp(tempStr, "off", 3) == 0) g_session.client_debug_level = cdbOFF;
|
||||||
if (strncmp(tempStr, "simple", 6) == 0) g_session.client_debug_level = cdbSIMPLE;
|
if (strncmp(tempStr, "simple", 6) == 0) g_session.client_debug_level = cdbSIMPLE;
|
||||||
if (strncmp(tempStr, "full", 4) == 0) g_session.client_debug_level = cdbFULL;
|
if (strncmp(tempStr, "full", 4) == 0) g_session.client_debug_level = cdbFULL;
|
||||||
|
|
||||||
|
if (g_session.client_debug_level == cdbOFF) {
|
||||||
|
SetAPDULogging(false);
|
||||||
|
} else {
|
||||||
|
SetAPDULogging(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// default save path
|
// default save path
|
||||||
|
@ -368,62 +374,97 @@ void preferences_load_callback(json_t *root) {
|
||||||
|
|
||||||
// Preference Processing Functions
|
// Preference Processing Functions
|
||||||
// typedef enum preferenceId {prefNONE,prefHELP,prefEMOJI,prefCOLOR,prefPLOT,prefOVERLAY,prefHINTS,prefCLIENTDEBUG} preferenceId_t;
|
// typedef enum preferenceId {prefNONE,prefHELP,prefEMOJI,prefCOLOR,prefPLOT,prefOVERLAY,prefHINTS,prefCLIENTDEBUG} preferenceId_t;
|
||||||
typedef enum prefShowOpt {prefShowNone, prefShowOLD, prefShowNEW} prefShowOpt_t;
|
typedef enum prefShowOpt {prefShowNone, prefShowOLD, prefShowNEW, prefShowOff, prefShowUnknown} prefShowOpt_t;
|
||||||
|
|
||||||
static const char *prefShowMsg(prefShowOpt_t Opt) {
|
static const char *pref_show_status_msg(prefShowOpt_t opt) {
|
||||||
switch (Opt) {
|
switch (opt) {
|
||||||
case prefShowOLD:
|
case prefShowOLD:
|
||||||
return "( " _YELLOW_("old") " )";
|
return "( " _CYAN_("old") " )";
|
||||||
case prefShowNEW:
|
case prefShowNEW:
|
||||||
return "( " _GREEN_("new") " )";
|
return "( " _GREEN_("new") " )";
|
||||||
case prefShowNone:
|
case prefShowNone:
|
||||||
|
case prefShowOff:
|
||||||
|
case prefShowUnknown:
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *pref_show_value(prefShowOpt_t opt, const char* msg) {
|
||||||
|
|
||||||
|
static char s[128] = {0};
|
||||||
|
switch (opt) {
|
||||||
|
case prefShowOLD:
|
||||||
|
sprintf(s, _CYAN_("%s"), msg);
|
||||||
|
return s;
|
||||||
|
|
||||||
|
case prefShowNEW:
|
||||||
|
sprintf(s, _GREEN_("%s"), msg);
|
||||||
|
return s;
|
||||||
|
case prefShowNone:
|
||||||
|
if ((strncmp(msg, "off", 3) == 0) || (strncmp(msg, "normal", 6) ==0)) {
|
||||||
|
sprintf(s, _WHITE_("%s"), msg);
|
||||||
|
} else {
|
||||||
|
sprintf(s, _GREEN_("%s"), msg);
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
|
||||||
|
case prefShowOff:
|
||||||
|
sprintf(s, _WHITE_("%s"), msg);
|
||||||
|
return s;
|
||||||
|
|
||||||
|
case prefShowUnknown:
|
||||||
|
sprintf(s, _RED_("%s"), msg);
|
||||||
|
return s;
|
||||||
|
|
||||||
|
default:
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
return "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void showEmojiState(prefShowOpt_t opt) {
|
static void showEmojiState(prefShowOpt_t opt) {
|
||||||
|
|
||||||
switch (g_session.emoji_mode) {
|
switch (g_session.emoji_mode) {
|
||||||
case EMO_ALIAS:
|
case EMO_ALIAS:
|
||||||
PrintAndLogEx(INFO, " %s emoji................... "_GREEN_("alias"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s emoji................... %s", pref_show_status_msg(opt), pref_show_value(opt, "alias"));
|
||||||
break;
|
break;
|
||||||
case EMO_EMOJI:
|
case EMO_EMOJI:
|
||||||
PrintAndLogEx(INFO, " %s emoji................... "_GREEN_("emoji"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s emoji................... %s", pref_show_status_msg(opt), pref_show_value(opt, "emoji"));
|
||||||
break;
|
break;
|
||||||
case EMO_ALTTEXT:
|
case EMO_ALTTEXT:
|
||||||
PrintAndLogEx(INFO, " %s emoji................... "_GREEN_("alttext"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s emoji................... %s", pref_show_status_msg(opt), pref_show_value(opt, "alttext"));
|
||||||
break;
|
break;
|
||||||
case EMO_NONE:
|
case EMO_NONE:
|
||||||
PrintAndLogEx(INFO, " %s emoji................... "_GREEN_("none"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s emoji................... %s", pref_show_status_msg(opt), pref_show_value(opt, "none"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PrintAndLogEx(INFO, " %s emoji................... "_RED_("unknown"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s emoji................... %s", pref_show_status_msg(opt), pref_show_value(prefShowUnknown, "unknown"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void showColorState(prefShowOpt_t opt) {
|
static void showColorState(prefShowOpt_t opt) {
|
||||||
|
PrintAndLogEx(INFO, " %s color................... %s "
|
||||||
if (g_session.supports_colors)
|
, pref_show_status_msg(opt)
|
||||||
PrintAndLogEx(INFO, " %s color................... "_GREEN_("ansi"), prefShowMsg(opt));
|
, (g_session.supports_colors) ? pref_show_value(opt, "ansi") : pref_show_value(opt, "off")
|
||||||
else
|
);
|
||||||
PrintAndLogEx(INFO, " %s color................... "_WHITE_("off"), prefShowMsg(opt));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void showClientDebugState(prefShowOpt_t opt) {
|
static void showClientDebugState(prefShowOpt_t opt) {
|
||||||
|
|
||||||
switch (g_session.client_debug_level) {
|
switch (g_session.client_debug_level) {
|
||||||
case cdbOFF:
|
case cdbOFF:
|
||||||
PrintAndLogEx(INFO, " %s client debug............ "_WHITE_("off"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s client debug............ %s", pref_show_status_msg(opt), pref_show_value(opt, "off"));
|
||||||
break;
|
break;
|
||||||
case cdbSIMPLE:
|
case cdbSIMPLE:
|
||||||
PrintAndLogEx(INFO, " %s client debug............ "_GREEN_("simple"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s client debug............ %s", pref_show_status_msg(opt), pref_show_value(opt, "simple"));
|
||||||
break;
|
break;
|
||||||
case cdbFULL:
|
case cdbFULL:
|
||||||
PrintAndLogEx(INFO, " %s client debug............ "_GREEN_("full"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s client debug............ %s", pref_show_status_msg(opt), pref_show_value(opt,"full"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PrintAndLogEx(INFO, " %s client debug............ "_RED_("unknown"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s client debug............ %s", pref_show_status_msg(opt), pref_show_value(prefShowUnknown, "unknown"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
@ -471,12 +512,12 @@ static void showSavePathState(savePaths_t path_index, prefShowOpt_t opt) {
|
||||||
if (path_index < spItemCount) {
|
if (path_index < spItemCount) {
|
||||||
if ((g_session.defaultPaths[path_index] == NULL) || (strcmp(g_session.defaultPaths[path_index], "") == 0)) {
|
if ((g_session.defaultPaths[path_index] == NULL) || (strcmp(g_session.defaultPaths[path_index], "") == 0)) {
|
||||||
PrintAndLogEx(INFO, " %s %s "_WHITE_("not set"),
|
PrintAndLogEx(INFO, " %s %s "_WHITE_("not set"),
|
||||||
prefShowMsg(opt),
|
pref_show_status_msg(opt),
|
||||||
s
|
s
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
PrintAndLogEx(INFO, " %s %s "_GREEN_("%s"),
|
PrintAndLogEx(INFO, " %s %s "_GREEN_("%s"),
|
||||||
prefShowMsg(opt),
|
pref_show_status_msg(opt),
|
||||||
s,
|
s,
|
||||||
g_session.defaultPaths[path_index]
|
g_session.defaultPaths[path_index]
|
||||||
);
|
);
|
||||||
|
@ -503,39 +544,41 @@ static void showOverlayPosState(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void showHintsState(prefShowOpt_t opt) {
|
static void showHintsState(prefShowOpt_t opt) {
|
||||||
if (g_session.show_hints)
|
PrintAndLogEx(INFO, " %s hints................... %s"
|
||||||
PrintAndLogEx(INFO, " %s hints................... "_GREEN_("on"), prefShowMsg(opt));
|
, pref_show_status_msg(opt)
|
||||||
else
|
, (g_session.show_hints) ? pref_show_value(opt,"on") : pref_show_value(opt,"off")
|
||||||
PrintAndLogEx(INFO, " %s hints................... "_WHITE_("off"), prefShowMsg(opt));
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void showPlotSliderState(prefShowOpt_t opt) {
|
static void showPlotSliderState(prefShowOpt_t opt) {
|
||||||
if (g_session.overlay_sliders)
|
PrintAndLogEx(INFO, " %s show plot sliders....... %s"
|
||||||
PrintAndLogEx(INFO, " %s show plot sliders....... "_GREEN_("on"), prefShowMsg(opt));
|
, pref_show_status_msg(opt)
|
||||||
else
|
, (g_session.overlay_sliders) ? pref_show_value(opt,"on") : pref_show_value(opt,"off")
|
||||||
PrintAndLogEx(INFO, " %s show plot sliders....... "_WHITE_("off"), prefShowMsg(opt));
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void showBarModeState(prefShowOpt_t opt) {
|
static void showBarModeState(prefShowOpt_t opt) {
|
||||||
|
|
||||||
switch (g_session.bar_mode) {
|
switch (g_session.bar_mode) {
|
||||||
case STYLE_BAR:
|
case STYLE_BAR:
|
||||||
PrintAndLogEx(INFO, " %s barmode................. "_GREEN_("bar"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s barmode................. %s", pref_show_status_msg(opt), pref_show_value(opt,"bar"));
|
||||||
break;
|
break;
|
||||||
case STYLE_MIXED:
|
case STYLE_MIXED:
|
||||||
PrintAndLogEx(INFO, " %s barmode................. "_GREEN_("mixed"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s barmode................. %s", pref_show_status_msg(opt), pref_show_value(opt,"mixed"));
|
||||||
break;
|
break;
|
||||||
case STYLE_VALUE:
|
case STYLE_VALUE:
|
||||||
PrintAndLogEx(INFO, " %s barmode................. "_GREEN_("value"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s barmode................. %s", pref_show_status_msg(opt), pref_show_value(opt,"value"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PrintAndLogEx(INFO, " %s barmode................ "_RED_("unknown"), prefShowMsg(opt));
|
PrintAndLogEx(INFO, " %s barmode................. %s", pref_show_status_msg(opt), pref_show_value(prefShowUnknown,"unknown"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void showOutputState(prefShowOpt_t opt) {
|
static void showOutputState(prefShowOpt_t opt) {
|
||||||
PrintAndLogEx(INFO, " %s output.................. %s", prefShowMsg(opt),
|
PrintAndLogEx(INFO, " %s output.................. %s"
|
||||||
g_session.dense_output ? _GREEN_("dense") : _WHITE_("normal"));
|
, pref_show_status_msg(opt)
|
||||||
|
, (g_session.dense_output) ? pref_show_value(opt,"dense") : pref_show_value(opt,"normal")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void showClientExeDelayState(void) {
|
static void showClientExeDelayState(void) {
|
||||||
|
@ -674,9 +717,11 @@ static int setCmdDebug(const char *Cmd) {
|
||||||
if (use_off) {
|
if (use_off) {
|
||||||
new_value = cdbOFF;
|
new_value = cdbOFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (use_simple) {
|
if (use_simple) {
|
||||||
new_value = cdbSIMPLE;
|
new_value = cdbSIMPLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (use_full) {
|
if (use_full) {
|
||||||
new_value = cdbFULL;
|
new_value = cdbFULL;
|
||||||
}
|
}
|
||||||
|
@ -685,6 +730,13 @@ static int setCmdDebug(const char *Cmd) {
|
||||||
showClientDebugState(prefShowOLD);
|
showClientDebugState(prefShowOLD);
|
||||||
g_session.client_debug_level = new_value;
|
g_session.client_debug_level = new_value;
|
||||||
g_debugMode = new_value;
|
g_debugMode = new_value;
|
||||||
|
|
||||||
|
if (new_value == cdbOFF) {
|
||||||
|
SetAPDULogging(false);
|
||||||
|
} else {
|
||||||
|
SetAPDULogging(true);
|
||||||
|
}
|
||||||
|
|
||||||
showClientDebugState(prefShowNEW);
|
showClientDebugState(prefShowNEW);
|
||||||
preferences_save();
|
preferences_save();
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue