Skip to content

Android-x86 environment via QEMU and VirGL with libhoudini support, r/w system partition and adb support

Notifications You must be signed in to change notification settings

Gamesmes90/qemu-android-x86

Repository files navigation

qemu-android-x86

This is a modified version of https://aur.archlinux.org/packages/qemu-android-x86

Using android-x86-7.1-r5.i686.rpm by default

Features:

  • Easy install any Android version
  • libhoudini support (arm64, arm) guaranteed with android 7.1 32-bit only
  • Read + Write system
  • ADB connection out of the box (adb connect localhost:47000)

Please take a look at the configuration file before starting the machine for the first time.

To launch GUI set this variable in the config file

From qemu 6.0

VGALINE="-device virtio-vga-gl -display sdl,gl=on"

Before qemu 6.0

VGALINE="-vga virtio -display sdl,gl=on"

Change android system

You can change the source file downloaded by editing PKGBUILD source and .SRCINFO, or simply add a local file. If you chose to use a local file remember that the rpm package must be in the same directory as the PKBUILD file.

Remember to copy the sha256sum

sha256sum local_package.rpm
source=("local_package.rpm::URL"
    ...
    )
sha256sums=('SUM'
    ...
    ')
source = local_package.rpm::URL
sha256sums = SUM

Note

Keep the order source/sha256sum.

Read/Write Filesystem

From this comment on the same aur repository:

To remount the filesystem as read/write run

mount -o rw,remount /system

Use initrd to automatically remount the filesystem as read/write

  • run mount -o rw,remount /system
  • create these two files:
    • /system/etc/init/remount-system.rc
      on property:sys.boot_completed=1
          start remount-system
      service remount-system /system/bin/remount-system
          user root
      oneshot
      
    • /system/bin/remount-system
      #!/system/bin/sh
      mount -o rw,remount /system
      
  • run chmod +x /system/bin/remount-system now /system should be read-writeable.

If you need to use arm native bridge add /system/bin/enable_nativebridge to /system/bin/remount-system since from my observations it has to be re-enabled on each reboot.

Arm NativeBridge

For details see Arm-NativeBridge and libhoudini or this file

  • Enable Native Bridge in settings
  • Download houdini.sfs (7_z recommended)
  • Copy it to /system/etc/
  • run the script /system/bin/enable_nativebridge

Other functions

Things like pinch zoom don't work directly, as a workaround you can connect the VM to scrcpy

Connect via ADB

adb connect localhost:47000

Connect via scrcpy

scrcpy -b20M --render-driver=opengl

To zoom press ctrl+left_click

All shortcuts

Dependencies

  • rxvt-unicode
  • zenity
  • qemu
  • hicolor-icon-theme
  • inkscape (For application icon)

About

Android-x86 environment via QEMU and VirGL with libhoudini support, r/w system partition and adb support

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages