Xteink-X4-crosspoint-reader/src
Daniel e55fe71145 feat(extensions): implement partition-based extension system v1
Add complete extension system for CrossPoint Reader with the following components:

Extension Apps (src/apps/hello-world/):
- HelloWorldActivity with e-ink display support
- Manual partition swap return mechanism (NOT rollback - bootloader disabled)
- RTC boot counter watchdog (auto-return after 3 failed boots)
- Uses esp_ota_set_boot_partition() + esp_restart() for safe return

AppLoader Utility (src/extension/):
- scanApps() - reads /.crosspoint/apps/*/app.json manifests
- parseManifest() - JSON parsing with ArduinoJson
- flashApp() - OTA flashing with ESP-IDF APIs
- Safety checks: battery >20%, magic byte 0xE9, partition validation
- Progress callback support for UI updates

AppsActivity UI (src/activities/apps/):
- List apps from SD card with selection highlight
- Progress bar during flashing operation
- Button hints (Back, Launch, Up, Down)
- Error handling for missing/corrupt files

HomeActivity Integration:
- Added 'Apps' menu item after File Transfer
- onGoToApps() callback for navigation
- Proper activity lifecycle management

Documentation:
- TESTING_GUIDE.md - Comprehensive testing procedures
- IMPLEMENTATION_SUMMARY.md - Technical overview

Safety Features:
- Battery check before flashing (>20%)
- Magic byte validation (0xE9)
- Partition size validation
- RTC watchdog prevents soft-brick
- Dynamic partition APIs (no hardcoded indices)

Build:
- Added [env:hello-world] to platformio.ini
- src_filter excludes main CrossPoint sources
- Standalone extension builds to firmware.bin

Closes extension system Phase 1 implementation.
2026-01-30 17:05:22 -08:00
..
activities feat(extensions): implement partition-based extension system v1 2026-01-30 17:05:22 -08:00
apps/hello-world feat(extensions): implement partition-based extension system v1 2026-01-30 17:05:22 -08:00
extension feat(extensions): implement partition-based extension system v1 2026-01-30 17:05:22 -08:00
images Move to SDK EInkDisplay and enable anti-aliased 2-bit text (#5) 2025-12-08 19:48:49 +11:00
network refactor: Re-work for OTA feature (#509) 2026-01-28 01:30:27 +11:00
util feat: invalidate cache on web uploads and opds downloads and add Clear Cache action (#393) 2026-01-22 00:06:07 +11:00
Battery.h Public release 2025-12-03 22:06:45 +11:00
CrossPointSettings.cpp feat: Add support to B&W filters to image covers (#476) 2026-01-28 00:21:59 +11:00
CrossPointSettings.h feat: Add support to B&W filters to image covers (#476) 2026-01-28 00:21:59 +11:00
CrossPointState.cpp Ensure new custom sleep image every time (#300) 2026-01-14 21:05:08 +11:00
CrossPointState.h Ensure new custom sleep image every time (#300) 2026-01-14 21:05:08 +11:00
fontIds.h feat: Include superscripts and subscripts in fonts (#463) 2026-01-21 22:42:41 +11:00
main.cpp feat(extensions): implement partition-based extension system v1 2026-01-30 17:05:22 -08:00
MappedInputManager.cpp feat: add HalDisplay and HalGPIO (#522) 2026-01-28 04:50:15 +11:00
MappedInputManager.h feat: add HalDisplay and HalGPIO (#522) 2026-01-28 04:50:15 +11:00
RecentBooksStore.cpp feat: Display epub metadata on Recents (#511) 2026-01-28 04:25:42 +11:00
RecentBooksStore.h feat: Display epub metadata on Recents (#511) 2026-01-28 04:25:42 +11:00
ScreenComponents.cpp feat: Add status bar option "Full w/ Progress Bar" (#438) 2026-01-27 23:25:44 +11:00
ScreenComponents.h feat: Add status bar option "Full w/ Progress Bar" (#438) 2026-01-27 23:25:44 +11:00
WifiCredentialStore.cpp Add exFAT support (#150) 2025-12-30 16:09:30 +11:00
WifiCredentialStore.h Add connect to Wifi and File Manager Webserver (#41) 2025-12-20 01:05:43 +11:00