Skip to content

Require physical button authorization for OTA updates#1709

Closed
0xjc65eth wants to merge 1 commit into
bitaxeorg:masterfrom
0xjc65eth:secure-ota-button-window
Closed

Require physical button authorization for OTA updates#1709
0xjc65eth wants to merge 1 commit into
bitaxeorg:masterfrom
0xjc65eth:secure-ota-button-window

Conversation

@0xjc65eth

Copy link
Copy Markdown

Summary

  • require a recent BOOT button press before accepting firmware or AxeOS OTA uploads
  • add a 5-minute physical authorization window shared by both OTA endpoints
  • add an NVS-backed otaAuthRequired setting, enabled by default
  • require recent physical authorization before disabling the OTA button requirement
  • expose OTA authorization state in system info and show it in AxeOS update/settings screens

Why

OTA updates are powerful because they can replace device firmware. This adds a physical-presence check without forcing users to remember another password or making a default password that provides little protection. Users who deliberately trust their network can disable the requirement, but that action also requires a recent button press.

Fixes #1220.

Testing

  • npm run build
  • git diff --check

Full firmware build was not run locally because idf.py is not installed in this shell and the Docker daemon is not running.

@0xjc65eth

Copy link
Copy Markdown
Author

Closing this for now to reduce maintainer review load, per feedback from @mutatrum. I am keeping #1705 open as the single focused PR because it is small, UI-only, and already has an ack. Happy to revisit this later only if maintainers ask for it. Thanks for the feedback and for maintaining the project.

@0xjc65eth 0xjc65eth closed this May 25, 2026
@mutatrum

Copy link
Copy Markdown
Collaborator

Having an open REST API endpoint that can disable the OTA button authorisation defeats the purpose. This needs more though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

unlock OTA

2 participants