Use the node's admin password for the migration bridge AP
The Wi-Fi, LoRa first-stage and Partition Expander bridges serve an unauthenticated /update behind an AP whose password was fixed and published, so anyone in range during a migration could upload firmware while the private key is staged. Use the old node's saved admin password as the WPA2 passphrase, read from /com_prefs or /node_prefs at offset 56 as the firmware loads it. The operator already used that password to start the old updater. Fall back to the published password, with a serial warning, when the saved admin password is missing, unreadable, shorter than 8 characters or not printable ASCII, so no node becomes unreachable. The legacy filesystem is mounted without formatting and the password is never printed. Migration admission, flash sequencing, /update gating and the USB bridge are unchanged. Update both guides and the package README. Add a sanitizer-backed host test that compiles the bridge's actual Wi-Fi block against fake SPIFFS and WiFi: both boots, file precedence, WPA2 length and terminator bounds, printable characters, stock 1.10/1.11 file sizes, truncated fields, and mount, seek and partial-read failures. It fails 8 of 8 on the previous code and catches 27 of 27 code mutations. Verified 13 related host test files and the esp32_s3_4mb_partition_migrator build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0e72474f41
commit
09435b049d
6 files changed
+444
-10
No files matched your search
@@ -774,6 +774,7 @@ jobs:
|
||||
python3 -B test/test_firmware_capabilities.py
|
||||
MESHCORE_TEST_REAL_PIO_PATHS=1 python3 -B test/test_esp32_partition_migration_build_dir.py -v
|
||||
python3 -B test/test_esp32_partition_migration_usb.py -v
|
||||
python3 -B test/test_esp32_partition_migrator_ap_password.py -v
|
||||
python3 -B test/test_waveshare_partition_migration.py -v
|
||||
python3 -B test/test_usb_partition_bridge_set.py -v
|
||||
bash test/test_build_profiles.sh
|
||||
|
||||
Reference in new issue
Block a user