Skip to content

VM boot consistently times out (150s) on non-KVM device — falls back to safe profile, blocking capture-share & losing WiFi firmware install #77

Description

@zerocool1921

Device info

  • Device: Xiaomi 24117RN76O (HyperOS/MIUI)
  • Android: 15 (arm64-v8a)
  • Chipset: MediaTek MT6789 (Helio G99)
  • Root: Not rooted (su unavailable — app correctly falls back to rootless QEMU engine)
  • App version: Stryker 6.0.1

Confirmed diagnosis

  • /dev/kvm does not exist on this device (ls -la /dev/kvm → "No such file or directory"). The VM therefore runs under full software emulation (TCG), not hardware-accelerated virtualization.
  • Guest networking is actually functional — ping 8.8.8.8 from inside the guest succeeds (39–179ms RTT), DNS resolves correctly via 10.0.2.3/8.8.8.8. This suggests the "VM is booting WITHOUT the /sdcard capture share" / no-network warnings logged during failed boots are a timing/race condition (network not yet up when the app checks), not a persistent networking failure.
  • Firmware htc_9271-1.4.0.fw / htc_7010-1.4.0.fw install failed automatically during a timed-out boot (no network yet at that point), but installs successfully via apt install firmware-ath9k-htc once the guest is manually reached through the in-app terminal.

Steps to reproduce

  1. Launch Stryker on a non-rooted, non-KVM device (MediaTek MT6789 in this case).
  2. Start the VM from the dashboard.
  3. Boot repeatedly exceeds the hardcoded 150-second timeout under TCG software emulation.

Actual behavior

[ERR] [guest] VM boot failed (Boot timed out after 150s), falling back to the safe profile (aio=threads, cache=writeback, no 9p share, no virtio-rng, no USB HC)
[ERR] [guest] VM is booting WITHOUT the /sdcard capture share — handshakes and reports written inside the guest will not be visible to the app

This repeats across every session (log excerpt spans ~2 hours, 12+ timeout events). Occasionally followed by:
[ERR] [guest] VM is not running — start it from the dashboard, then retry

And once, on first boot after a disk resize (8GB → 24GB):
[ERR] [guest] guest is missing /lib/firmware/ath9k_htc/htc_9271-1.4.0.fw — installing firmware-ath9k-htc
[ERR] [guest] could not install firmware-ath9k-htc (no network in the VM?)

Expected behavior

  • Boot timeout should be configurable (or auto-scaled) for devices without /dev/kvm, since software-emulated boot on mid-range SoCs can legitimately take longer than 150s.
  • Ideally, the app should detect KVM availability upfront (a "VM Benchmark" step already exists per the 6.0 changelog) and either warn the user or automatically extend the timeout for non-accelerated devices.
  • The firmware auto-install step should retry after boot completes (or wait for confirmed guest network readiness) rather than failing permanently on a single early attempt during a timed-out boot.

What I've already tried

  • Confirmed no config file exists in /storage/emulated/0/Stryker/ (only hs/, captured/, reports/ — output folders, no settings).
  • run-as com.zalexdev.stryker is blocked by the OS (permission denied) — cannot inspect internal app data/shared_prefs without root.
  • No visible in-app setting for boot timeout (checked VM Settings / Engine Settings).
  • Manually installed the missing WiFi firmware once inside the guest via apt install firmware-ath9k-htc — works fine when network is confirmed up.

Request

Please expose the VM boot timeout as a user-configurable value (e.g. in VM Settings), or auto-detect non-KVM devices and scale the timeout accordingly (suggest allowing up to 5–10 minutes on TCG). Happy to test a build with this change on this device.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions