Skip to content

device_reset_state

One-shot preflight: revoke/reset permissions, clear MMKV storage keys, force-stop the app, then relaunch + reconnect CDP. Composes device_permission + cdp_mmkv + simctl/adb terminate+launch in one atomic call. Best-effort with per-step status — never silently rolls back. Sequence: permission → storage → terminate → launch → reconnect → helpers (→ optional nav_ready). On iOS, permission state is not queryable post-revoke (simctl limitation) — ok: true only means the shell-out exited 0. Returns { summary: {ok, failed, skipped}, steps: […], reconnected, helpersInjected }.

NameTypeRequiredDefaultConstraintsDescription
appIdstringYesApp bundle ID, e.g. “com.example.app”.
platform`enum: iosandroid`No
permissionsarrayNoPermissions to revoke/reset before relaunch. String shorthand defaults to revoke. Each entry is processed via device_permission.
storageKeysarrayNoMMKV keys to delete before terminate (so the app reads cleared values on next launch). Skipped if CDP is not connected.
mmkvInstanceIdstringNoForwarded to cdp_mmkv. Defaults to mmkv.default.
relaunchbooleanNoLaunch the app after terminate. Default true.
waitForReadybooleanNoAfter relaunch, wait for CDP reconnect + helpers injection. Default true. Set false to return immediately and let the caller poll.
waitForNavReadybooleanNoAfter helpers, also wait for globalThis.NAV_REF to expose a non-empty navigation state. Default false.
device_reset_state(appId: <string>)