Skip to content

Releases: Mutantcat-Working-Group/AndroidBox

AndroidBox v1.0.20261007

Choose a tag to compare

@github-actions github-actions released this 02 Oct 14:17

AndroidBox 1.0.20261007

The host webcam reaches the guest again. The guest camera bridge asked its
frame queue for a method the queue never had, so the encoder thread died the
moment it started and the loopback camera device received nothing while the
host believed it was streaming. The host now also keeps the webcam switched
off until the guest bridge answers: QEMU accepts a connection to a forwarded
port long before anything in the guest listens on it, so a link that opens
and closes again is a guest that is still booting, not a failing bridge, and
only a bridge that answered is held to the reconnect budget. The picture is
served over HTTP on the Ubuntu support layer as well, because the bundled
Android image provides no camera HAL and no Android camera app can enumerate
a device: a guest browser watching the preview page sees the webcam live,
and hosts without a webcam get the test pattern there.

AndroidBox 1.0.20261004

The host webcam feeds the Android camera app again on macOS. Qt's FFmpeg
media backend only pushes frames to a video sink while the capture session
has a recorder attached, so the camera claimed to be active while delivering
zero frames and the guest bridge kept dropping the connection. The capture
session now keeps a dormant recorder attached, and the guest's vivid fallback
hands the guest camera bridge a video node that exists instead of leaving the
bridge service disabled.

AndroidBox Desktop Preview

AndroidBox 1.0.20261003

macOS camera startup errors now release capture resources cleanly and explain
how to grant AndroidBox camera access in System Settings when permission is
denied. Startup status no longer claims the camera is streaming before capture
has produced frames.

AndroidBox 1.0.20261002

Android reports a working internet connection on first boot now. The Ethernet
link stayed at partial connectivity on many user networks because Android's
default validation endpoints are unreachable there, which made apps show no
internet even though DNS and traffic worked. The guest now answers the
captive-portal probe itself on the AndroidBox bridge, points Android's
connectivity checks at that local endpoint, and revalidates once so the link
comes up validated.

AndroidBox 1.0.20261001

When QEMU cannot start because the guest disk is already in use, the client now
says so plainly: after a failed start it reads the runtime log, recognizes the
image lock, and reports which kind of program holds the disk, instead of
surfacing a bare "QEMU exited during startup (1)". Close the other virtual
machine, for example a second AndroidBox or QEMU started from the terminal, and
start again.

AndroidBox 1.0.20260930

The guest now has sound, a microphone and a working camera. QEMU attaches an
Intel HDA audio device with an output and an input, so Android app media and
system sounds reach the host speakers, and Android recording, calls and voice
apps hear the host input device. The guest Ubuntu loads the emulated HDA driver
and the session joins the audio group, which gives its PulseAudio, already
forwarded into the Android container, a real sound card to play through. Three
settings, Audio output, Microphone and Camera, switch each device off when it is
not wanted, and a host whose sound backend refuses to start QEMU loses first the
microphone and then all sound, rather than losing the guest altogether.

The host webcam is encoded as MJPEG on the host, forwarded through a new QEMU
port mapping and decoded inside the guest by a camera bridge that writes to a
v4l2loopback device at 15 frames per second and 640 pixels on the longest
edge. The bundled Android image provides no camera HAL, so no Android camera
app can enumerate a device; the picture is watched in a guest browser on the
preview page the bridge serves on the support layer. Hosts without a webcam,
or with the webcam already in use, fall back to a still test pattern there.
The bridge service is only enabled when a loopback camera device exists;
otherwise the guest keeps the vivid test pattern device as its camera. On
macOS the first camera or microphone use asks for system permission, so
Android audio and a live preview need AndroidBox to be allowed under Privacy
& Security.

AndroidBox 1.0.20260929

This release makes the guest reach the network on first boot and cuts input
latency. The NoCloud seed now carries a network-config that matches the QEMU
virtio NIC (e*) and takes a DHCP lease, so the Android container inside the
Ubuntu support layer has an uplink without any manual step; the first boot
script also checks for a default route and warns on screen when one is
missing. A new Display quality setting (responsive, balanced, sharp) maps to
the noVNC quality level, so hosts that felt laggy can trade image sharpness
for input that keeps up with the mouse. The toolbar is now a single icon-only
row: brand, Start, Shut down and Install APK on the left, Settings, Logs and
Full screen on the right, with no divider and one uniform icon size drawn in
code for every platform. The log pane stays collapsed until the Logs button
opens it.

AndroidBox 1.0.20260928

This release ships the Android system inside every installer, so an installed
AndroidBox reaches the Android launcher without downloading anything on first
boot. Preparing a guest disk still writes a NoCloud cidata seed beside the
QCOW2 overlay: the first boot creates the ubuntu account with the documented
default password androidbox, enables virtual-console autologin, builds the
in-guest gbinder stack from vendored sources (Ubuntu noble publishes no
python3-gbinder package), persists the binder device names through
/etc/modprobe.d, unpacks the bundled system and vendor images, and runs
the guest provisioner before rebooting into the Android session. Existing
managed disks get the same seed when the app starts.

The images ride on a read-only ext4 disk labelled androidbox-img, attached to
the guest after the system disk and the seed. The client falls back to the
Waydroid OTA channels only when that disk is missing or fails verification, so
first boot no longer depends on the host TLS chain reaching SourceForge.

The Android container survives reboots now: binder_linux keeps its device
names across restarts, so /dev/binder exists again and the container starts
unattended instead of dying with Can't open /dev/binder.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS. Installers are around 1 GiB each
because they carry the Android images.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.

AndroidBox v1.0.20261006

Choose a tag to compare

@github-actions github-actions released this 02 Oct 07:47

AndroidBox 1.0.20261004

The host webcam feeds the Android camera app again on macOS. Qt's FFmpeg
media backend only pushes frames to a video sink while the capture session
has a recorder attached, so the camera claimed to be active while delivering
zero frames and the guest bridge kept dropping the connection. The capture
session now keeps a dormant recorder attached, and the guest's vivid fallback
hands the guest camera bridge a video node that exists instead of leaving the
bridge service disabled.

AndroidBox Desktop Preview

AndroidBox 1.0.20261003

macOS camera startup errors now release capture resources cleanly and explain
how to grant AndroidBox camera access in System Settings when permission is
denied. Startup status no longer claims the camera is streaming before capture
has produced frames.

AndroidBox 1.0.20261002

Android reports a working internet connection on first boot now. The Ethernet
link stayed at partial connectivity on many user networks because Android's
default validation endpoints are unreachable there, which made apps show no
internet even though DNS and traffic worked. The guest now answers the
captive-portal probe itself on the AndroidBox bridge, points Android's
connectivity checks at that local endpoint, and revalidates once so the link
comes up validated.

AndroidBox 1.0.20261001

When QEMU cannot start because the guest disk is already in use, the client now
says so plainly: after a failed start it reads the runtime log, recognizes the
image lock, and reports which kind of program holds the disk, instead of
surfacing a bare "QEMU exited during startup (1)". Close the other virtual
machine, for example a second AndroidBox or QEMU started from the terminal, and
start again.

AndroidBox 1.0.20260930

The guest now has sound, a microphone and a working camera. QEMU attaches an
Intel HDA audio device with an output and an input, so Android app media and
system sounds reach the host speakers, and Android recording, calls and voice
apps hear the host input device. The guest Ubuntu loads the emulated HDA driver
and the session joins the audio group, which gives its PulseAudio, already
forwarded into the Android container, a real sound card to play through. Three
settings, Audio output, Microphone and Camera, switch each device off when it is
not wanted, and a host whose sound backend refuses to start QEMU loses first the
microphone and then all sound, rather than losing the guest altogether.

The host webcam is encoded as MJPEG on the host, forwarded through a new QEMU
port mapping and decoded inside the guest by a camera bridge that writes to a
v4l2loopback device, which the Android camera app reads at 15 frames per second
and 640 pixels on the longest edge. Hosts without a webcam, or with the webcam
already in use, fall back to a still test pattern, so the camera app still opens
instead of failing. The bridge service is only enabled when a loopback camera
device exists; otherwise the guest keeps the vivid test pattern device as its
camera. On macOS the first camera or microphone use asks for system permission,
so Android audio and a live preview need AndroidBox to be allowed under
Privacy & Security.

AndroidBox 1.0.20260929

This release makes the guest reach the network on first boot and cuts input
latency. The NoCloud seed now carries a network-config that matches the QEMU
virtio NIC (e*) and takes a DHCP lease, so the Android container inside the
Ubuntu support layer has an uplink without any manual step; the first boot
script also checks for a default route and warns on screen when one is
missing. A new Display quality setting (responsive, balanced, sharp) maps to
the noVNC quality level, so hosts that felt laggy can trade image sharpness
for input that keeps up with the mouse. The toolbar is now a single icon-only
row: brand, Start, Shut down and Install APK on the left, Settings, Logs and
Full screen on the right, with no divider and one uniform icon size drawn in
code for every platform. The log pane stays collapsed until the Logs button
opens it.

AndroidBox 1.0.20260928

This release ships the Android system inside every installer, so an installed
AndroidBox reaches the Android launcher without downloading anything on first
boot. Preparing a guest disk still writes a NoCloud cidata seed beside the
QCOW2 overlay: the first boot creates the ubuntu account with the documented
default password androidbox, enables virtual-console autologin, builds the
in-guest gbinder stack from vendored sources (Ubuntu noble publishes no
python3-gbinder package), persists the binder device names through
/etc/modprobe.d, unpacks the bundled system and vendor images, and runs
the guest provisioner before rebooting into the Android session. Existing
managed disks get the same seed when the app starts.

The images ride on a read-only ext4 disk labelled androidbox-img, attached to
the guest after the system disk and the seed. The client falls back to the
Waydroid OTA channels only when that disk is missing or fails verification, so
first boot no longer depends on the host TLS chain reaching SourceForge.

The Android container survives reboots now: binder_linux keeps its device
names across restarts, so /dev/binder exists again and the container starts
unattended instead of dying with Can't open /dev/binder.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS. Installers are around 1 GiB each
because they carry the Android images.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.

AndroidBox v1.0.20261003

Choose a tag to compare

@github-actions github-actions released this 23 Sep 05:34

AndroidBox Desktop Preview

AndroidBox 1.0.20261003

macOS camera startup errors now release capture resources cleanly and explain
how to grant AndroidBox camera access in System Settings when permission is
denied. Startup status no longer claims the camera is streaming before capture
has produced frames.

AndroidBox 1.0.20261002

Android reports a working internet connection on first boot now. The Ethernet
link stayed at partial connectivity on many user networks because Android's
default validation endpoints are unreachable there, which made apps show no
internet even though DNS and traffic worked. The guest now answers the
captive-portal probe itself on the AndroidBox bridge, points Android's
connectivity checks at that local endpoint, and revalidates once so the link
comes up validated.

AndroidBox 1.0.20261001

When QEMU cannot start because the guest disk is already in use, the client now
says so plainly: after a failed start it reads the runtime log, recognizes the
image lock, and reports which kind of program holds the disk, instead of
surfacing a bare "QEMU exited during startup (1)". Close the other virtual
machine, for example a second AndroidBox or QEMU started from the terminal, and
start again.

AndroidBox 1.0.20260930

The guest now has sound, a microphone and a working camera. QEMU attaches an
Intel HDA audio device with an output and an input, so Android app media and
system sounds reach the host speakers, and Android recording, calls and voice
apps hear the host input device. The guest Ubuntu loads the emulated HDA driver
and the session joins the audio group, which gives its PulseAudio, already
forwarded into the Android container, a real sound card to play through. Three
settings, Audio output, Microphone and Camera, switch each device off when it is
not wanted, and a host whose sound backend refuses to start QEMU loses first the
microphone and then all sound, rather than losing the guest altogether.

The host webcam is encoded as MJPEG on the host, forwarded through a new QEMU
port mapping and decoded inside the guest by a camera bridge that writes to a
v4l2loopback device, which the Android camera app reads at 15 frames per second
and 640 pixels on the longest edge. Hosts without a webcam, or with the webcam
already in use, fall back to a still test pattern, so the camera app still opens
instead of failing. The bridge service is only enabled when a loopback camera
device exists; otherwise the guest keeps the vivid test pattern device as its
camera. On macOS the first camera or microphone use asks for system permission,
so Android audio and a live preview need AndroidBox to be allowed under
Privacy & Security.

AndroidBox 1.0.20260929

This release makes the guest reach the network on first boot and cuts input
latency. The NoCloud seed now carries a network-config that matches the QEMU
virtio NIC (e*) and takes a DHCP lease, so the Android container inside the
Ubuntu support layer has an uplink without any manual step; the first boot
script also checks for a default route and warns on screen when one is
missing. A new Display quality setting (responsive, balanced, sharp) maps to
the noVNC quality level, so hosts that felt laggy can trade image sharpness
for input that keeps up with the mouse. The toolbar is now a single icon-only
row: brand, Start, Shut down and Install APK on the left, Settings, Logs and
Full screen on the right, with no divider and one uniform icon size drawn in
code for every platform. The log pane stays collapsed until the Logs button
opens it.

AndroidBox 1.0.20260928

This release ships the Android system inside every installer, so an installed
AndroidBox reaches the Android launcher without downloading anything on first
boot. Preparing a guest disk still writes a NoCloud cidata seed beside the
QCOW2 overlay: the first boot creates the ubuntu account with the documented
default password androidbox, enables virtual-console autologin, builds the
in-guest gbinder stack from vendored sources (Ubuntu noble publishes no
python3-gbinder package), persists the binder device names through
/etc/modprobe.d, unpacks the bundled system and vendor images, and runs
the guest provisioner before rebooting into the Android session. Existing
managed disks get the same seed when the app starts.

The images ride on a read-only ext4 disk labelled androidbox-img, attached to
the guest after the system disk and the seed. The client falls back to the
Waydroid OTA channels only when that disk is missing or fails verification, so
first boot no longer depends on the host TLS chain reaching SourceForge.

The Android container survives reboots now: binder_linux keeps its device
names across restarts, so /dev/binder exists again and the container starts
unattended instead of dying with Can't open /dev/binder.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS. Installers are around 1 GiB each
because they carry the Android images.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.

AndroidBox v1.0.20261002

Choose a tag to compare

@github-actions github-actions released this 23 Sep 02:14

AndroidBox Desktop Preview

AndroidBox 1.0.20261002

Android reports a working internet connection on first boot now. The Ethernet
link stayed at partial connectivity on many user networks because Android's
default validation endpoints are unreachable there, which made apps show no
internet even though DNS and traffic worked. The guest now answers the
captive-portal probe itself on the AndroidBox bridge, points Android's
connectivity checks at that local endpoint, and revalidates once so the link
comes up validated.

AndroidBox 1.0.20261001

When QEMU cannot start because the guest disk is already in use, the client now
says so plainly: after a failed start it reads the runtime log, recognizes the
image lock, and reports which kind of program holds the disk, instead of
surfacing a bare "QEMU exited during startup (1)". Close the other virtual
machine, for example a second AndroidBox or QEMU started from the terminal, and
start again.

AndroidBox 1.0.20260930

The guest now has sound, a microphone and a working camera. QEMU attaches an
Intel HDA audio device with an output and an input, so Android app media and
system sounds reach the host speakers, and Android recording, calls and voice
apps hear the host input device. The guest Ubuntu loads the emulated HDA driver
and the session joins the audio group, which gives its PulseAudio, already
forwarded into the Android container, a real sound card to play through. Three
settings, Audio output, Microphone and Camera, switch each device off when it is
not wanted, and a host whose sound backend refuses to start QEMU loses first the
microphone and then all sound, rather than losing the guest altogether.

The host webcam is encoded as MJPEG on the host, forwarded through a new QEMU
port mapping and decoded inside the guest by a camera bridge that writes to a
v4l2loopback device, which the Android camera app reads at 15 frames per second
and 640 pixels on the longest edge. Hosts without a webcam, or with the webcam
already in use, fall back to a still test pattern, so the camera app still opens
instead of failing. The bridge service is only enabled when a loopback camera
device exists; otherwise the guest keeps the vivid test pattern device as its
camera. On macOS the first camera or microphone use asks for system permission,
so Android audio and a live preview need AndroidBox to be allowed under
Privacy & Security.

AndroidBox 1.0.20260929

This release makes the guest reach the network on first boot and cuts input
latency. The NoCloud seed now carries a network-config that matches the QEMU
virtio NIC (e*) and takes a DHCP lease, so the Android container inside the
Ubuntu support layer has an uplink without any manual step; the first boot
script also checks for a default route and warns on screen when one is
missing. A new Display quality setting (responsive, balanced, sharp) maps to
the noVNC quality level, so hosts that felt laggy can trade image sharpness
for input that keeps up with the mouse. The toolbar is now a single icon-only
row: brand, Start, Shut down and Install APK on the left, Settings, Logs and
Full screen on the right, with no divider and one uniform icon size drawn in
code for every platform. The log pane stays collapsed until the Logs button
opens it.

AndroidBox 1.0.20260928

This release ships the Android system inside every installer, so an installed
AndroidBox reaches the Android launcher without downloading anything on first
boot. Preparing a guest disk still writes a NoCloud cidata seed beside the
QCOW2 overlay: the first boot creates the ubuntu account with the documented
default password androidbox, enables virtual-console autologin, builds the
in-guest gbinder stack from vendored sources (Ubuntu noble publishes no
python3-gbinder package), persists the binder device names through
/etc/modprobe.d, unpacks the bundled system and vendor images, and runs
the guest provisioner before rebooting into the Android session. Existing
managed disks get the same seed when the app starts.

The images ride on a read-only ext4 disk labelled androidbox-img, attached to
the guest after the system disk and the seed. The client falls back to the
Waydroid OTA channels only when that disk is missing or fails verification, so
first boot no longer depends on the host TLS chain reaching SourceForge.

The Android container survives reboots now: binder_linux keeps its device
names across restarts, so /dev/binder exists again and the container starts
unattended instead of dying with Can't open /dev/binder.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS. Installers are around 1 GiB each
because they carry the Android images.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.

AndroidBox v1.0.20261001

Choose a tag to compare

@github-actions github-actions released this 22 Sep 12:43

AndroidBox Desktop Preview

AndroidBox 1.0.20261001

When QEMU cannot start because the guest disk is already in use, the client now
says so plainly: after a failed start it reads the runtime log, recognizes the
image lock, and reports which kind of program holds the disk, instead of
surfacing a bare "QEMU exited during startup (1)". Close the other virtual
machine, for example a second AndroidBox or QEMU started from the terminal, and
start again.

AndroidBox 1.0.20260930

The guest now has sound, a microphone and a working camera. QEMU attaches an
Intel HDA audio device with an output and an input, so Android app media and
system sounds reach the host speakers, and Android recording, calls and voice
apps hear the host input device. The guest Ubuntu loads the emulated HDA driver
and the session joins the audio group, which gives its PulseAudio, already
forwarded into the Android container, a real sound card to play through. Three
settings, Audio output, Microphone and Camera, switch each device off when it is
not wanted, and a host whose sound backend refuses to start QEMU loses first the
microphone and then all sound, rather than losing the guest altogether.

The host webcam is encoded as MJPEG on the host, forwarded through a new QEMU
port mapping and decoded inside the guest by a camera bridge that writes to a
v4l2loopback device, which the Android camera app reads at 15 frames per second
and 640 pixels on the longest edge. Hosts without a webcam, or with the webcam
already in use, fall back to a still test pattern, so the camera app still opens
instead of failing. The bridge service is only enabled when a loopback camera
device exists; otherwise the guest keeps the vivid test pattern device as its
camera. On macOS the first camera or microphone use asks for system permission,
so Android audio and a live preview need AndroidBox to be allowed under
Privacy & Security.

AndroidBox 1.0.20260929

This release makes the guest reach the network on first boot and cuts input
latency. The NoCloud seed now carries a network-config that matches the QEMU
virtio NIC (e*) and takes a DHCP lease, so the Android container inside the
Ubuntu support layer has an uplink without any manual step; the first boot
script also checks for a default route and warns on screen when one is
missing. A new Display quality setting (responsive, balanced, sharp) maps to
the noVNC quality level, so hosts that felt laggy can trade image sharpness
for input that keeps up with the mouse. The toolbar is now a single icon-only
row: brand, Start, Shut down and Install APK on the left, Settings, Logs and
Full screen on the right, with no divider and one uniform icon size drawn in
code for every platform. The log pane stays collapsed until the Logs button
opens it.

AndroidBox 1.0.20260928

This release ships the Android system inside every installer, so an installed
AndroidBox reaches the Android launcher without downloading anything on first
boot. Preparing a guest disk still writes a NoCloud cidata seed beside the
QCOW2 overlay: the first boot creates the ubuntu account with the documented
default password androidbox, enables virtual-console autologin, builds the
in-guest gbinder stack from vendored sources (Ubuntu noble publishes no
python3-gbinder package), persists the binder device names through
/etc/modprobe.d, unpacks the bundled system and vendor images, and runs
the guest provisioner before rebooting into the Android session. Existing
managed disks get the same seed when the app starts.

The images ride on a read-only ext4 disk labelled androidbox-img, attached to
the guest after the system disk and the seed. The client falls back to the
Waydroid OTA channels only when that disk is missing or fails verification, so
first boot no longer depends on the host TLS chain reaching SourceForge.

The Android container survives reboots now: binder_linux keeps its device
names across restarts, so /dev/binder exists again and the container starts
unattended instead of dying with Can't open /dev/binder.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS. Installers are around 1 GiB each
because they carry the Android images.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.

AndroidBox v1.0.20260930

Choose a tag to compare

@github-actions github-actions released this 22 Sep 11:17

AndroidBox Desktop Preview

AndroidBox 1.0.20260930

The guest now has sound, a microphone and a working camera. QEMU attaches an
Intel HDA audio device with an output and an input, so Android app media and
system sounds reach the host speakers, and Android recording, calls and voice
apps hear the host input device. The guest Ubuntu loads the emulated HDA driver
and the session joins the audio group, which gives its PulseAudio, already
forwarded into the Android container, a real sound card to play through. Three
settings, Audio output, Microphone and Camera, switch each device off when it is
not wanted, and a host whose sound backend refuses to start QEMU loses first the
microphone and then all sound, rather than losing the guest altogether.

The host webcam is encoded as MJPEG on the host, forwarded through a new QEMU
port mapping and decoded inside the guest by a camera bridge that writes to a
v4l2loopback device, which the Android camera app reads at 15 frames per second
and 640 pixels on the longest edge. Hosts without a webcam, or with the webcam
already in use, fall back to a still test pattern, so the camera app still opens
instead of failing. The bridge service is only enabled when a loopback camera
device exists; otherwise the guest keeps the vivid test pattern device as its
camera. On macOS the first camera or microphone use asks for system permission,
so Android audio and a live preview need AndroidBox to be allowed under
Privacy & Security.

AndroidBox 1.0.20260929

This release makes the guest reach the network on first boot and cuts input
latency. The NoCloud seed now carries a network-config that matches the QEMU
virtio NIC (e*) and takes a DHCP lease, so the Android container inside the
Ubuntu support layer has an uplink without any manual step; the first boot
script also checks for a default route and warns on screen when one is
missing. A new Display quality setting (responsive, balanced, sharp) maps to
the noVNC quality level, so hosts that felt laggy can trade image sharpness
for input that keeps up with the mouse. The toolbar is now a single icon-only
row: brand, Start, Shut down and Install APK on the left, Settings, Logs and
Full screen on the right, with no divider and one uniform icon size drawn in
code for every platform. The log pane stays collapsed until the Logs button
opens it.

AndroidBox 1.0.20260928

This release ships the Android system inside every installer, so an installed
AndroidBox reaches the Android launcher without downloading anything on first
boot. Preparing a guest disk still writes a NoCloud cidata seed beside the
QCOW2 overlay: the first boot creates the ubuntu account with the documented
default password androidbox, enables virtual-console autologin, builds the
in-guest gbinder stack from vendored sources (Ubuntu noble publishes no
python3-gbinder package), persists the binder device names through
/etc/modprobe.d, unpacks the bundled system and vendor images, and runs
the guest provisioner before rebooting into the Android session. Existing
managed disks get the same seed when the app starts.

The images ride on a read-only ext4 disk labelled androidbox-img, attached to
the guest after the system disk and the seed. The client falls back to the
Waydroid OTA channels only when that disk is missing or fails verification, so
first boot no longer depends on the host TLS chain reaching SourceForge.

The Android container survives reboots now: binder_linux keeps its device
names across restarts, so /dev/binder exists again and the container starts
unattended instead of dying with Can't open /dev/binder.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS. Installers are around 1 GiB each
because they carry the Android images.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.

AndroidBox v1.0.20260929

Choose a tag to compare

@github-actions github-actions released this 22 Sep 07:36

AndroidBox Desktop Preview

AndroidBox 1.0.20260929

This release makes the guest reach the network on first boot and cuts input
latency. The NoCloud seed now carries a network-config that matches the QEMU
virtio NIC (e*) and takes a DHCP lease, so the Android container inside the
Ubuntu support layer has an uplink without any manual step; the first boot
script also checks for a default route and warns on screen when one is
missing. A new Display quality setting (responsive, balanced, sharp) maps to
the noVNC quality level, so hosts that felt laggy can trade image sharpness
for input that keeps up with the mouse. The toolbar is now a single icon-only
row: brand, Start, Shut down and Install APK on the left, Settings, Logs and
Full screen on the right, with no divider and one uniform icon size drawn in
code for every platform. The log pane stays collapsed until the Logs button
opens it.

AndroidBox 1.0.20260928

This release ships the Android system inside every installer, so an installed
AndroidBox reaches the Android launcher without downloading anything on first
boot. Preparing a guest disk still writes a NoCloud cidata seed beside the
QCOW2 overlay: the first boot creates the ubuntu account with the documented
default password androidbox, enables virtual-console autologin, builds the
in-guest gbinder stack from vendored sources (Ubuntu noble publishes no
python3-gbinder package), persists the binder device names through
/etc/modprobe.d, unpacks the bundled system and vendor images, and runs
the guest provisioner before rebooting into the Android session. Existing
managed disks get the same seed when the app starts.

The images ride on a read-only ext4 disk labelled androidbox-img, attached to
the guest after the system disk and the seed. The client falls back to the
Waydroid OTA channels only when that disk is missing or fails verification, so
first boot no longer depends on the host TLS chain reaching SourceForge.

The Android container survives reboots now: binder_linux keeps its device
names across restarts, so /dev/binder exists again and the container starts
unattended instead of dying with Can't open /dev/binder.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS. Installers are around 1 GiB each
because they carry the Android images.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.

AndroidBox v1.0.20260928

Choose a tag to compare

@github-actions github-actions released this 22 Sep 05:06

AndroidBox Desktop Preview

AndroidBox 1.0.20260928

This release ships the Android system inside every installer, so an installed
AndroidBox reaches the Android launcher without downloading anything on first
boot. Preparing a guest disk still writes a NoCloud cidata seed beside the
QCOW2 overlay: the first boot creates the ubuntu account with the documented
default password androidbox, enables virtual-console autologin, builds the
in-guest gbinder stack from vendored sources (Ubuntu noble publishes no
python3-gbinder package), persists the binder device names through
/etc/modprobe.d, unpacks the bundled system and vendor images, and runs
the guest provisioner before rebooting into the Android session. Existing
managed disks get the same seed when the app starts.

The images ride on a read-only ext4 disk labelled androidbox-img, attached to
the guest after the system disk and the seed. The client falls back to the
Waydroid OTA channels only when that disk is missing or fails verification, so
first boot no longer depends on the host TLS chain reaching SourceForge.

The Android container survives reboots now: binder_linux keeps its device
names across restarts, so /dev/binder exists again and the container starts
unattended instead of dying with Can't open /dev/binder.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS. Installers are around 1 GiB each
because they carry the Android images.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.

AndroidBox v1.0.20260927

Choose a tag to compare

@github-actions github-actions released this 21 Sep 23:59

AndroidBox Desktop Preview

AndroidBox 1.0.20260924

This release makes the example guest fully self-serve on first boot. Preparing
a guest disk now also writes a NoCloud cidata seed beside the QCOW2 overlay.
The first boot creates the ubuntu account with the documented default
password androidbox, enables virtual-console autologin, installs the Binder
modules, extracts the bundled provisioning payload, and runs the guest
provisioner before rebooting into the Android session. The first boot downloads
the Android images, so it can take several minutes; existing managed disks get
the same seed when the app starts.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux/Android guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.

AndroidBox v1.0.20260926

Choose a tag to compare

@github-actions github-actions released this 21 Sep 23:35

AndroidBox Desktop Preview

AndroidBox 1.0.20260924

This release makes the example guest fully self-serve on first boot. Preparing
a guest disk now also writes a NoCloud cidata seed beside the QCOW2 overlay.
The first boot creates the ubuntu account with the documented default
password androidbox, enables virtual-console autologin, installs the Binder
modules, extracts the bundled provisioning payload, and runs the guest
provisioner before rebooting into the Android session. The first boot downloads
the Android images, so it can take several minutes; existing managed disks get
the same seed when the app starts.

Logs are collapsed by default. First launch detects host architecture, CPU and
memory defaults, QEMU and ARM firmware. Select a compatible bootable guest disk
on first Start; the disk selection is saved for subsequent launches.

Artifacts: Windows x64 NSIS installer, macOS Apple Silicon and Intel DMGs,
Linux x64 and ARM64 AppImages, and SHA256SUMS.

The installers bundle the QEMU compatibility layer and Android Platform Tools.
A prepared bootable Linux/Android guest disk is still a separate prerequisite.
See the repository's guest image guide
and verification record
for guest input, storage and platform validation gaps.

macOS applications and DMGs use ad-hoc signatures, not Developer ID or Apple
notarization. Gatekeeper may block downloaded applications. Windows installers
are unsigned and may trigger SmartScreen. AppImage requires an executable bit
and a compatible Linux desktop (glibc 2.35+); FUSE2 may be required, or use
APPIMAGE_EXTRACT_AND_RUN=1. No sandbox disabling is required by the launcher.

Existing guest disks and user settings are not removed by the Windows uninstaller.