How andronedev/openportal works
OpenPortal is a browser-based Meta Portal management app: the user connects a Portal over WebUSB/ADB, then manages apps or uses device tools. The README documents the broader toolset; the supplied excerpts establish some, but not all, internal call wiring, so uncertain links are omitted.
Main entry points: App.tsx App routes · app-store.ts Installed app state · AppDetailPage.tsx App detail · broker.ts Capability broker
Components 29
Browser experience
- App routes
src/App.tsx - Device dashboard
src/pages/DashboardPage.tsx
Device connection
- Connection UI
src/components/connection/ConnectPanel.tsx - Device state
src/store/device-store.ts - WebUSB ADB
src/lib/adb/connection.ts
App management
- App catalog UI
src/pages/AppsPage.tsx - App detail
src/pages/AppDetailPage.tsx - Community catalog
src/lib/catalog/index.ts - Installed app state
src/store/app-store.ts - Package operations
src/lib/adb/app-manager.ts - APK installation
src/lib/adb/install.ts - Download sources
src/lib/catalog/sources.ts
Device tools
- File browser
src/pages/FilesPage.tsx - Device files
src/lib/adb/file-system.ts - Shell terminal
src/pages/TerminalPage.tsx - ADB shell
src/lib/adb/shell.ts - Log viewer
src/pages/LogcatPage.tsx - Logcat reader
src/lib/adb/logcat.ts - Screen mirror
src/pages/ScreenPage.tsx - Scrcpy transport
src/lib/adb/scrcpy.ts - Feature flags
src/pages/FlagsPage.tsx - Device settings
src/lib/adb/settings.ts
Setup programs
- Setup panel
src/components/apps/setup/SandboxedProgramPanel.tsx - Program runtime API
src/lib/programs/index.ts - Capability broker
src/lib/programs/broker.ts - Sandbox worker
src/lib/programs/worker.ts - Catalog setup program
catalog/apps/immortal-launcher/openportal.js
Other components
- User
- Meta Portal
Connections 41
- User → App routes: opens
- App routes → Device dashboard: routes
- App routes → App catalog UI: routes
- App routes → App detail: routes
- App routes → File browser: routes
- App routes → Shell terminal: routes
- App routes → Log viewer: routes
- App routes → Screen mirror: routes
- App routes → Feature flags: routes
- User → Connection UI: connects
- Connection UI → WebUSB ADB: requests connection
- WebUSB ADB → Meta Portal: ADB over WebUSB
- WebUSB ADB → Device state: updates connection state
- Device dashboard → Device state: reads device state
- App catalog UI → Community catalog: shows catalog
- App detail → Community catalog: looks up app
- App detail → Installed app state: requests app actions
- Installed app state → Community catalog: reads app metadata
- Installed app state → Download sources: resolves updates
- Installed app state → Package operations: queries and removes packages
- Installed app state → APK installation: installs uploaded APK
- Package operations → Meta Portal: runs package commands
- APK installation → Meta Portal: installs APK
- Download sources → User: fetches APK sources
- File browser → Device files: browses device files
- Device files → Meta Portal: reads and writes files
- Shell terminal → ADB shell: runs commands
- ADB shell → Meta Portal: executes shell commands
- Log viewer → Logcat reader: reads logs
- Logcat reader → Meta Portal: streams device logs
- Screen mirror → Scrcpy transport: starts mirroring
- Scrcpy transport → Meta Portal: streams screen and input
- Feature flags → Device settings: reads and changes flags
- Device settings → Meta Portal: runs settings commands
- App detail → Setup panel: opens setup
- Setup panel → Program runtime API: loads and runs program
- Program runtime API → Capability broker: dispatches capabilities
- Capability broker → Sandbox worker: sends RPC requests
- Sandbox worker → Catalog setup program: executes setup code
- Sandbox worker → Capability broker: requests device capabilities
- Capability broker → Meta Portal: performs setup operations