qemu: print halt instead of silent reboot on panic
What changed, and why it matters
This commit changes how the QEMU emulator build of the Jade hardware wallet behaves when the firmware hits a critical error. Previously it would silently reboot; now it prints diagnostic information and halts. This is a developer/testing convenience change, not a fix for an exploitable security flaw in production devices.
No security action required. Treat as normal development/maintenance change improving QEMU debugging output.
Security signals we found
Changes panic handling behavior in emulator build only
No production hardware configuration modified
No cryptographic, authentication, or memory-safety code changed
No vulnerability class addressed in diff
Evidence from the diff
The patch switches the QEMU sdkconfig default from CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=y to CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y, and removes the explicit panic-mode manipulation in tools/switch_to.sh for the PSRAM/QEMU path. The result is that firmware panics under QEMU stop execution and emit a backtrace/register dump rather than restarting without output. This affects only the QEMU emulator configuration, not real Jade hardware builds.
Changed components
configs/sdkconfig_qemu.defaultstools/switch_to.shInspect captured patch +1 / −3
diff --git a/configs/sdkconfig_qemu.defaults b/configs/sdkconfig_qemu.defaults
index 80dce86..ce4c6ea 100644
--- a/configs/sdkconfig_qemu.defaults
+++ b/configs/sdkconfig_qemu.defaults
@@ -30,7 +30,7 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=n
CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=12288
CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5=y
-CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=y
+CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=n
CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=n
diff --git a/tools/switch_to.sh b/tools/switch_to.sh
index bcef9c8..8169d3a 100755
--- a/tools/switch_to.sh
+++ b/tools/switch_to.sh
@@ -261,14 +261,12 @@ if [ -n "$PSRAM" ]; then
remove_config CONFIG_ESP_ERR_TO_NAME_LOOKUP
remove_config CONFIG_ESP_INT_WDT_TIMEOUT_MS
remove_config CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5
- remove_config CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT
remove_config CONFIG_LWIP_IPV6
remove_config CONFIG_LWIP_NETIF_LOOPBACK
remove_config CONFIG_UART_ISR_IN_IRAM
# add settings
set_config CONFIG_ESP_BROWNOUT_DET n
set_config CONFIG_ESP_INT_WDT n
- set_config CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT y
set_config CONFIG_HAS_CAMERA y
set_config CONFIG_HTTPD_MAX_REQ_HDR_LEN 4096
set_config CONFIG_HTTPD_WS_SUPPORT y
Why this scored 18/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.