How matu6968/apxtool works
apxtool is experimental host-side loader, debugging, and SPI-flash tooling for the AppoTech JT5295 Action Vision camera. The main workflow begins at the CLI, communicates with the camera over SCSI to enter its loader or read RAM, then either accesses flash through a payload or launches an SDK for APXD debugging and SD-card operations. Separate branches cover forced-BootROM rescue and Silvergear bring-up/recovery. README and source-index references establish the main routes; some unsampled subsystem details are represented without speculative internal links.
Main entry points: cli.py Command interface · debug_cli.py Debug commands · rom_rescue.py BootROM rescue · flash.py Flash management
Components 23
CLI and transport
- Command interface
src/apxtool/cli.py - Debug commands
src/apxtool/debug_cli.py - SCSI transport
src/apxtool/transport.py - SCSI backend
src/apxtool/scsiio/common.py - SCSI protocol
src/apxtool/protocol.py
Loader and SDK
- Loader transition
src/apxtool/devices.py - RAM access
src/apxtool/ram.py - SDK takeover
src/apxtool/sdk.py
Flash operations
- Flash management
src/apxtool/flash.py - Loader flasher
src/apxtool/flasher.py - SDK flash access
src/apxtool/sdk_flash.py
SDK device services
- APXD client
src/apxtool/debug.py - SD and FatFs
src/apxtool/storage.py - Camera services
src/apxtool/camera.py - Audio services
src/apxtool/audio.py
Recovery and variants
- BootROM rescue
src/apxtool/rom_rescue.py - Boot trace decode
src/apxtool/trace.py - Silvergear workflow
src/apxtool/silvergear.py - Silvergear bring-up
src/apxtool/silvergear_bringup.py - Silvergear install
src/apxtool/silvergear_install.py - Silvergear recovery
src/apxtool/silvergear_recovery.py
Other components
- Operator
- JT5295 camera
Connections 25
- Operator → Command interface: runs commands
README.md - Command interface → SCSI transport: opens device
src/apxtool/cli.py - SCSI transport → SCSI backend: uses backend
src/apxtool/transport.py - Command interface → Loader transition: enters loader
README.md - Loader transition → SCSI protocol: builds commands
src/apxtool/devices.py - Command interface → RAM access: reads RAM
src/apxtool/cli.py - Command interface → Flash management: runs flash actions
src/apxtool/cli.py - Flash management → Loader flasher: uses backend
README.md - Command interface → BootROM rescue: dispatches rescue
src/apxtool/cli.py - BootROM rescue → Loader flasher: runs payload
src/apxtool/rom_rescue.py - BootROM rescue → Boot trace decode: decodes trace
src/apxtool/rom_rescue.py - Command interface → SDK takeover: launches SDK
README.md - SDK takeover → Loader transition: enters loader
src/apxtool/sdk.py - Debug commands → APXD client: sends APXD requests
src/apxtool/debug_cli.py - Debug commands → SD and FatFs: runs SD commands
README.md - Debug commands → Camera services: controls camera
src/apxtool/debug_cli.py - Debug commands → Audio services: runs audio commands
src/apxtool/debug_cli.py - Debug commands → SDK flash access: runs SDK flash
src/apxtool/debug_cli.py - SDK takeover → Debug commands: enables SDK commands
README.md - Command interface → Silvergear workflow: dispatches workflow
src/apxtool/cli.py - Silvergear workflow → Silvergear bring-up: coordinates bring-up
src/apxtool/silvergear.py - Silvergear workflow → BootROM rescue: uses rescue
src/apxtool/silvergear.py - Silvergear install → Flash management: uses flash operations
src/apxtool/silvergear_install.py - Silvergear recovery → Flash management: uses flash operations
src/apxtool/silvergear_recovery.py - SCSI transport → JT5295 camera: communicates over SCSI
README.md