Skip to content

plugin-adb

Version 2026.180.0001
Repo box/github.com/opencharly/plugin-adb:v2026.250.1429
Plugin yes — see the plugin reference

OUT-OF-TREE charly plugin owning ALL Android device interaction: the adb Android-Debug-Bridge check VERB, the deploy:android SUBSTRATE (the target: android app-install deploy, F1), AND the goadb-backed device probe the charly status collector needs — a standalone Go module (go.mod

  • main.go) that speaks the ADB wire protocol over go-plugin gRPC via the charly plugin SDK (github.com/opencharly/sdk). charly’s loader fetches this candy’s repo, go-builds the provider binary on the HOST, and serves it OUT-OF-PROCESS via LocalTransport — so the github.com/zach-klippenstein/goadb dependency + the SINGLE apk install path (apkeep + adb, R3) live HERE, out of charly’s core go.mod. Authoring is unchanged: the adb: <method> sugar desugars to plugin/plugin_input — the method + every adb-exclusive modifier ride the input map, validated against this plugin’s own #AdbInput (ResolveVerb → grpcProvider → invokeVerbProvider hands it the full desugared #Op) — and target: android resolves to this plugin’s deploy:android provider over the E3b reverse channel — THIS plugin’s own preresolve.go (F6, FINAL/K5 unit 6a; dispatched via the generalized deploy_preresolve.go:wireDeployPreresolver seam) resolves the device endpoint + the apk specs, self-loading the deploy-tree node + kind:android entity PLUGIN-SIDE (K-wave W3a A3-phase-2) and resolving Google-creds peer-to-peer via verb:credential, and ships the result in DeployVenue.Substrate; this plugin gates on boot then installs. Provides the full 13-method verb surface (devices/shell/install/install-app/uninstall/getprop/screencap/ logcat-tail/wait-for-device/wait-ui-settled/current-focus/keyevent/session) plus the deploy substrate. session = the ON-DEVICE screenrecord bracket (Cutover E, E-4): the plugin’s own binary runs in recorder mode through the runner’s generic background-session service (verb:session), starts screenrecord on the device at phase start, stops it at phase end, and pulls the MP4 via the goadb device-file GetFile path into the evidence row. The R10 consumer is the check-android-emulator-pod bed (via android-emulator-layer).

This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.

Intent Step
check the running emulator is attached to the adb server (the out-of-process plugin verb dispatches through the registry and probes the live device)
check the adb session method starts the ON-DEVICE screenrecord bracket through the runner’s generic background-session service (the detached recorder submits to verb:session over the reverse leg)
check the adb session status reports the detached recorder alive
check the adb session stop finalizes the device bracket and its evidence row (the pulled session.mp4 + row.json)