Dev bridge

Koder Bridge

  • *rea:*Developer Platform
  • *ath:*dev/bridge
  • *ind:*Android app — privileged daemon + Flutter SDK
  • *ersion:*13.6.0
  • *tatus:*Play Store submission ready

Role in the stack

dev/bridge is the privilege broker for the Koder Stack on Android. It enables client apps (Koder Hub, Koder Pass) to install and uninstall APKs silently — without root — by keeping a privileged shell process active after a one-time ADB activation.

The companion Flutter SDK (engines/sdk/bridge/dart) wraps the Binder IPC in a clean Dart API so any Koder Flutter app can call KoderBridge.installPackage() without knowing about AIDL.

Primary couplings

Module Relationship
engines/sdk/bridge/dart Flutter plugin — Dart API surface for Bridge
platform/id (Koder ID) OAuth2 PKCE sign-in; grants linked to user account
dev/store (Koder Hub) Primary client — uses Bridge to install APKs silently
foundation/pass (Koder Pass) Secondary client — uses Bridge for credential-based install

Interfaces

Binder IPC (AIDL)

  • IBridgeService.installPackage(apkPath, installerPkg)int
  • IBridgeService.uninstallPackage(packageName, flags, userId)int

Grant Server HTTP (localhost:14400)

  • GET /bridge/grants — read grant list (unauthenticated, loopback-only)
  • DELETE /bridge/grants/{pkg} — revoke grant (requires Authorization: Bearer <secret>)

Flutter SDK (engines/sdk/bridge/dart)

  • KoderBridge.isAvailable, isGranted, requestPermission()
  • KoderBridge.installPackage(apkPath), uninstallPackage(packageName)

Security model

  • Grant store encrypted with AES256-GCM via Android Keystore.
  • DELETE endpoint requires a 256bit CSPRNG server secret shared with Koder ID at signin.
  • PKCE S256 OAuth2 with id.koder.dev — no client secret stored.
  • Daemon bound to loopback only; no external network exposure.

Backlog

Status Tickets
Done BRIDGE1–BRIDGE9
Pending

Play Store assets

  • *astlane

Source: ../home/koder/dev/koder/meta/docs/stack/modules/dev-bridge.md