How ravindu644/virtualap works
VirtualAP is a rooted-Android Wi-Fi access-point controller. Users configure a routed or container-managed hotspot, start it from the app or Quick Settings, and monitor status and backend logs. The graph follows the app’s documented control path into its shell backend and includes the README’s major networking capabilities. Backend internals and several integrations are documented but not present in the sampled source, so those links are limited to documented behavior.
Main entry points: APViewModel.kt Hotspot viewmodel · Backend.kt AP and routing · Hotspot.kt Session coordinator · APManager.kt Backend command manager
Components 23
App and setup
- App entry
Android/app/src/main/java/com/virtualap/app/MainActivity.kt - Screen navigation
Android/app/src/main/java/com/virtualap/app/ui/navigation/VAPNavigation.kt - Root and setup
Android/app/src/main/java/com/virtualap/app/ui/screen/SetupScreen.kt - Backend installer
Android/app/src/main/java/com/virtualap/app/util/VirtualAPInstaller.kt - Root checker
Android/app/src/main/java/com/virtualap/app/util/RootChecker.kt
Hotspot control
- Hotspot screen
Android/app/src/main/java/com/virtualap/app/ui/screen/MainScreen.kt - Settings screen
Android/app/src/main/java/com/virtualap/app/ui/screen/SettingsScreen.kt - Quick Settings tile
Android/app/src/main/java/com/virtualap/app/HotspotTileService.kt - Hotspot viewmodel
Android/app/src/main/java/com/virtualap/app/ui/viewmodel/APViewModel.kt - AP configuration
Android/app/src/main/java/com/virtualap/app/util/APConfig.kt - Session coordinator
Android/app/src/main/java/com/virtualap/app/util/Hotspot.kt - Live terminal
Android/app/src/main/java/com/virtualap/app/ui/component/TerminalConsole.kt
AP networking
- Backend command manager
Android/app/src/main/java/com/virtualap/app/util/APManager.kt - Shell backend
Android/app/src/main/java/com/virtualap/app/util/Backend.kt - AP and routing
Android/app/src/main/java/com/virtualap/app/util/Backend.kt - Backend log stream
Android/app/src/main/java/com/virtualap/app/util/BackendLogger.kt
State and integrations
- Saved preferences
Android/app/src/main/java/com/virtualap/app/util/PreferencesManager.kt - App status and logs
Android/app/src/main/java/com/virtualap/app/util/Hotspot.kt
Other components
- Phone user
- Rooted Android
- Selected upstream
- Wi-Fi clients
- Droidspaces container
Connections 28
- Phone user → App entry: opens
- App entry → Screen navigation: hosts
- Screen navigation → Root and setup: routes
- Screen navigation → Hotspot screen: routes
- Root and setup → Root checker: checks root
- Root and setup → Backend installer: deploys backend
- Root checker → Rooted Android: checks access
- Backend installer → Rooted Android: installs binaries
- Hotspot screen → Hotspot viewmodel: edits and starts
- Settings screen → Saved preferences: saves options
- Hotspot viewmodel → AP configuration: loads config
- AP configuration → Saved preferences: reads and writes
- Quick Settings tile → Saved preferences: reads config
- Quick Settings tile → Session coordinator: starts or stops
- Hotspot viewmodel → Session coordinator: starts or stops
- Hotspot viewmodel → Backend command manager: fetches interfaces and containers
- Session coordinator → Backend command manager: requests status and actions
- Backend command manager → Shell backend: dispatches commands
- Shell backend → AP and routing: controls AP backend
- AP and routing → Wi-Fi clients: serves hotspot
- AP and routing → Selected upstream: routes client traffic
- AP and routing → Droidspaces container: bridges managed LAN
- Backend command manager → Backend log stream: captures output
- Backend log stream → App status and logs: streams logs
- Session coordinator → App status and logs: publishes session state
- Hotspot screen → Live terminal: shows logs
- Live terminal → App status and logs: renders stream
- Quick Settings tile → App status and logs: reads session state