Journal

· guides

Android connected is not Android ready

An attached emulator still needs a completed Android boot before installation, settings, port reversal, or interface checks can start.

A phone emulator passes through connection and boot gates inside one deadline dial before four setup modules.

An attached Android emulator is only the first condition of readiness. Our Muniment Mobile gate waits for connection, then waits for Android to finish booting. Setup stays blocked until both checks pass.

One deadline covers both checks

The gate creates one 120-second deadline. It first waits for an emulator to appear as an ADB device.

Once the device connects, the gate polls its boot-completion property. This second check gets only the time left under the original deadline. A slow connection cannot silently start another 120-second wait.

The order matters because ADB can see an emulator before Android can support the journey that follows. Connection proves that the transport can address a device. It does not prove that Android finished its startup work.

Order Check Gate state
1 An ADB device appears Connected, still not ready
2 Android reports boot completion Ready for setup

Only the second result opens the gate. Installation, settings, port reversal, and interface flows all remain behind it.

A failed query still means not ready

The property query can fail temporarily while the emulator continues to boot. Our gate treats that failure as a not-ready result and polls again within the shared deadline.

That choice keeps uncertainty on the safe side of the boundary. A query failure supplies no affirmative boot-completion result. Letting setup proceed would turn missing evidence into permission.

An incomplete response receives the same treatment. Connection remains established, but readiness remains false until Android reports completion.

The regression tests hold the order

Stubbed regression coverage makes the boundary observable. One case returns a failed property query, then an incomplete response, before returning boot completion.

The test verifies that setup waits through those earlier results. It also verifies the order: connection comes first, boot polling follows, and setup comes last.

Another case never reports boot completion. The shared deadline expires before installation, settings, port reversal, or an interface flow starts.

These stubs test control flow rather than an emulator’s actual startup. They can prove that a temporary query failure does not bypass the gate.

This evidence comes from our Muniment Mobile note pinned to commit 8da44fbf3881992cc40077452c3345adf7456eb7.

The evidence neither validates the 120-second deadline nor benchmarks emulator startup time. It does not establish an optimal deadline across CI hosts.

A readiness gate should advance on affirmative readiness. Mere attachment, silence, and temporary query failure all belong on the waiting side.

For a device retry failure, inspect the structured test report before the console log.

Continue reading

All publications

Join the waitlist

Get desktop release updates.

We will email you about desktop releases and new features. muniment is a desktop workspace for your models, tools, and files.