Say that Gradle had the same hole the adb wrapper closed
Gradle's install and connected-test tasks never went through that wrapper, so they reached every attached emulator. emulator-tools now guards them with a Gradle init script; this records what that means here, and how to name a device without exporting a serial that goes stale. Also stop naming one checkout's AVD in a file that is the same in every clone -- it read as a suggestion to target ai-app-2 from ai-app.
This commit is contained in:
1 parent
93ce66c5f0
commit
1c3cfc868b
1 file changed
+16
-5
@@ -258,11 +258,12 @@ first if a remote spawn ever mangles an argument.
|
|||||||
`adb -s "$SERIAL" shell "am start -a android.intent.action.VIEW -d 'aiapp://enroll?host=10.0.2.2&port=8443&token=…'"`
|
`adb -s "$SERIAL" shell "am start -a android.intent.action.VIEW -d 'aiapp://enroll?host=10.0.2.2&port=8443&token=…'"`
|
||||||
(quote so the device shell doesn't eat the `&`s).
|
(quote so the device shell doesn't eat the `&`s).
|
||||||
- **The emulator is `~/repos/emulator-tools`' business, not this repo's.**
|
- **The emulator is `~/repos/emulator-tools`' business, not this repo's.**
|
||||||
`emu up` creates and boots the AVD named after this checkout (`ai-app-2`),
|
`emu up` creates and boots the AVD named after this checkout — whatever
|
||||||
refusing when the machine has no room for one; `emu list` says what is
|
`emu name` prints, never a name typed out here, since this file is the same
|
||||||
attached and what it costs; `emu down` stops it. `run-android.sh` is that
|
in every clone — refusing when the machine has no room for one; `emu list`
|
||||||
plus a build and an install. Run that repo's `install.sh` once if `emu` is
|
says what is attached and what it costs; `emu down` stops it.
|
||||||
missing.
|
`run-android.sh` is that plus a build and an install. Run that repo's
|
||||||
|
`install.sh` once if `emu` is missing.
|
||||||
The `adb` on `PATH` after sourcing `android-env.sh` is that repo's wrapper,
|
The `adb` on `PATH` after sourcing `android-env.sh` is that repo's wrapper,
|
||||||
which fills in `-s` from the same rule — so a bare `adb shell` reaches this
|
which fills in `-s` from the same rule — so a bare `adb shell` reaches this
|
||||||
checkout's emulator and refuses to reach another one's. That defaulting is
|
checkout's emulator and refuses to reach another one's. That defaulting is
|
||||||
@@ -270,6 +271,16 @@ first if a remote spawn ever mangles an argument.
|
|||||||
and no `-s`, a bare `adb shell pm list packages` comes back **empty**,
|
and no `-s`, a bare `adb shell pm list packages` comes back **empty**,
|
||||||
which reads as the app having been uninstalled rather than as the question
|
which reads as the app having been uninstalled rather than as the question
|
||||||
being ambiguous.
|
being ambiguous.
|
||||||
|
**Gradle does not go through that wrapper**, so it had the same hole until
|
||||||
|
2026-08-31: `installDebug`, `uninstallDebug` and `connectedAndroidTest` ask
|
||||||
|
the adb server for every attached device and act on all of them, which is
|
||||||
|
how one session's debug build landed on another's emulator. A Gradle init
|
||||||
|
script from `emulator-tools` now runs `emu check` before those tasks and
|
||||||
|
fails the build rather than fanning out. When it refuses, say which device
|
||||||
|
you mean at the moment you use it — `ANDROID_SERIAL=$(emu serial)
|
||||||
|
./gradlew …` — rather than exporting a serial into the shell, which goes
|
||||||
|
stale the next time an emulator restarts and another checkout's takes the
|
||||||
|
port.
|
||||||
|
|
||||||
## Where things run (host vs this VM)
|
## Where things run (host vs this VM)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user