Open Source Android Emulator based on Android-x86

683 views
Skip to first unread message

Guan Zhang

unread,
May 19, 2021, 1:36:39 AM5/19/21
to Android-x86
Hi there:

I apologize in advance if this topic is sensitive/controversial but I've always wondered why there are no Open Source Android Emulators available on Windows/macOS. Most, if not all of the existing Android Emulators use Android-x86 in some form or another.

Now that's out of the way, is anybody interested in starting a project...? :-)

Thanks for reading.

L3G3ND

unread,
May 19, 2021, 2:32:05 AM5/19/21
to Android-x86
All emulators use Genymotion Android images (afaik, don't hold me for this one) and run it from VirtualBox. Some have more features, some have less, but its the same. Almost all of them are Chinese, where Google has no presence or control. On top of that, VMware or VirtualBox don't have any GAs for Android, and VMWare devs state that it is in the hands of Android x86 devs to make one. Genymotion images are all closed source and have features like 3D Acceleration, Shared folders etc. While the vanilla VirtualBox is almost a mess in terms of graphics acceleration, VMWare runs Android x86 like a beauty. It is very easy to setup a VM in VMWare or QEMU. All emulators use ANGLE libs for 3D acceleration support, but idk how they hook up VirtualBox with that. The only different emulator, I found is Gameloop which idk really how it works, but it has a kernel mode driver and doesn't possibly use VirtualBox at all, since it doesn't need VT-x.

Anyways, I am going offtopic, if you have any idea for an emulator feel free to contact me. I think, Google doesn't probably want people running Android on emulators, that's why almost everything from Android x86 itself to the emulator are developed completely or predominantly in China. I currently run Android x86 pie on vmware and it possibly gives me more performance than most other emulators, which are just themed clones anyways. And I also got houdini running, so that's a big plus. I plan on making an Android x86 image for VMware with all possible goodies soon

foxtro...@gmail.com

unread,
May 19, 2021, 1:28:32 PM5/19/21
to Android-x86
Honestly there isn't really a good reason to not do so, but not a good reason to do so.

The only android emulator that stands out is MEmuplay, It seems to use some custom virtual gpu. im not sure how it works but it is far more performant than the competition. but other than that, they are just virtual machines that have arm emulation and gapps installed.

The virtual GPU from Memu is interesting though i have no idea how it works.

Also Virgl is being worked on so it can work on a windows host and virgl should be supporting vulkan soon, so it could be that will become the best route.

but the TLDR is an emulator is just a nicely packaged VM. it would be nice to see one opensource though.

L3G3ND

unread,
May 20, 2021, 5:21:50 AM5/20/21
to Android-x86
I think it uses a custom version of virglrenderer which can be compiled for Windows, virglrenderer maintainers say the linux only dependencies can be removed, but we don't have a virglrenderer for Windows yet

foxtro...@gmail.com

unread,
May 20, 2021, 12:48:32 PM5/20/21
to Android-x86
It's possible, but Im not sure that is likely. not only is it more performant, from my testing anyway, it also has a directx backend that does preform better than the OGL backend. I haven't studied it, but I wouldn't be surprised if it is a fully emulated gpu. I haven't checked for a long time what it even reports as.

In regards to virgl on windows, I wonder if it can be done via WSL? I know microsoft is working on a few things for WSL that will help that. im not sure if you can ship binaries with built in WSL, or of they can directly interface with it... No idea. I know they wanted phone apps to work on windows at one point anyway.

Guan Zhang

unread,
May 22, 2021, 1:04:01 AM5/22/21
to Android-x86
First of all, thank you for the responses. I hope the managers of this group would not consider this off-topic but if so please let us know and we will take it offline.

L3G3ND: regarding making Android-x86 image for VMware, do you think it will be possible to write a script that pulls all the bits and pieces and then upload that to GitHub? That way when user can see exactly what the script is doing and how the image is created, they will be more open to using it. I seem to recall some old discussions here regarding the best mesa/kernel/houdini versions that's the most compatible with games as well.

Some of the key things that are missing with the current Android Emulators in the market are:
- No OpenGL ES 3.1+ support for macOS (due to underlying limitation of OpenGL on macOS)
- No support for Apple M1 (limitation of VirtualBox but other VM solutions are available but probably off-topic for this group)
- Slow uptake of new Android version (Nox announced Android 9 beta end of May and that will be the newest version of Android to be ever released for emulators for a while)
- No Vulkan support
- Poor virtual resource utilization

I think most emulators write their own OpenGL ES -> OpenGL translator, and use ANGLE for OpenGL ES -> native OS rendering capability, but there should be other libraries that we can potentially look into like MoltenVK, Mesa 3D/Virgil 3D for Windows etc.

I'm not a programmer by trade but have a pretty good understanding of system level stuff and would really like to see such a project get started. Would love to hear if anybody else has any suggestions/feedback on this, thanks!

err...@gmail.com

unread,
May 22, 2021, 1:06:25 AM5/22/21
to andro...@googlegroups.com
I would be interested in contributing to this. Been thinking about i for a while now myself.

--
You received this message because you are subscribed to the Google Groups "Android-x86" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-x86...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/android-x86/e8959067-a577-415d-8138-1310d718bf5bn%40googlegroups.com.

Guan Zhang

unread,
May 22, 2021, 1:23:51 AM5/22/21
to Android-x86
Thank you for your interest! I have actually started a Discord server on Android Emulators so if interested please feel free to join there: https://discord.gg/mRpT4Qq. In the meantime we can also continue to throw some ideas around here.

foxtro...@gmail.com

unread,
May 22, 2021, 1:45:17 AM5/22/21
to Android-x86

In regards to the Key things missing

-Virgl support and M1 support are coming. but it's important to note, you would need to compile Arm images for native VM ACCEL. in Qemu, which is most likely what you would want to use for your emulator. for performance and compatibility reasons
-Slow android versions an easy fix for this with Android Generic
-Virtio-gpu Venus support should be comming to qemu soon, which means vulkan. hopefully crossplatform.

Guan Zhang

unread,
May 22, 2021, 1:56:32 AM5/22/21
to andro...@googlegroups.com
Do you know why most (if not all) of the early Android Emulators
started off with QEMU but then collectively went with VirtualBox?
> --
> You received this message because you are subscribed to a topic in the Google Groups "Android-x86" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/android-x86/euiOpsdGTF0/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to android-x86...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/android-x86/bb95269b-e5a5-4d4b-a812-8b444a015dcdn%40googlegroups.com.

utzcoz

unread,
May 22, 2021, 2:29:12 AM5/22/21
to andro...@googlegroups.com
Actually, Google's official Android Emulator is another good choice. It's open source, and ROM developers just need to create custom ROM
based on emulator target, and modify Android Emulator's UI, and then a new cross-platform x86-target Android Emulator is born.

You received this message because you are subscribed to the Google Groups "Android-x86" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-x86...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/android-x86/CA%2B8p6LRaOCFKEGj06LOY3LtTmKnn3i_4pUuRT00mqWRD1QrGmQ%40mail.gmail.com.

Guan Zhang

unread,
May 22, 2021, 2:34:28 AM5/22/21
to andro...@googlegroups.com
That's another good idea! BTW thanks for the blog post regarding
integrating houdini with emulator, it was an interesting read and very
useful :-)
> To view this discussion on the web visit https://groups.google.com/d/msgid/android-x86/CABu6A6aUiAPvivRPjeBe5xyxFDQi0Bdfo0W_PZUrQBvbd6KP4Q%40mail.gmail.com.

utzcoz

unread,
May 22, 2021, 2:45:16 AM5/22/21
to andro...@googlegroups.com
Thanks. Another advantage of the official Android Emulator is that it supports FuchsiaOS too. Currently, the FuchsiaOS' official
emulator is based on Android's one.

Christian Gagneraud

unread,
May 22, 2021, 3:24:18 AM5/22/21
to andro...@googlegroups.com
On Sat, 22 May 2021 at 18:34, Guan Zhang <gz.l...@gmail.com> wrote:
>
> That's another good idea! BTW thanks for the blog post regarding
> integrating houdini with emulator, it was an interesting read and very
> useful :-)

Which blog post are you talking about? Mind sharing the link?

Chris
> To view this discussion on the web visit https://groups.google.com/d/msgid/android-x86/CA%2B8p6LQDySSa%2BN3_RwcgQjXbCD8t%3D1f_FEidHZeAf9Sj9eG5Vg%40mail.gmail.com.

Guan Zhang

unread,
May 22, 2021, 3:38:30 AM5/22/21
to andro...@googlegroups.com

utzcoz

unread,
May 22, 2021, 4:27:04 AM5/22/21
to andro...@googlegroups.com
It is based on Roger Ye's book
Android System Programming: Porting, customizing, and debugging Android HAL
https://www.amazon.com/gp/product/178712536X/ref=dbs_a_def_rwt_bibl_vppi_i0.
It is also recommended.

Christian Gagneraud

unread,
May 22, 2021, 4:57:17 AM5/22/21
to andro...@googlegroups.com
On Sat, 22 May 2021 at 20:26, utzcoz <utz...@gmail.com> wrote:
>
> https://utzcoz.github.io/2020/03/15/Integrate-Houdini-to-emulator.html .
> It is based on Roger Ye's book
> Android System Programming: Porting, customizing, and debugging Android HAL
> https://www.amazon.com/gp/product/178712536X/ref=dbs_a_def_rwt_bibl_vppi_i0.
> It is also recommended.

Thanks for sharing.
While we're at book recommendations, I am highly impressed by this one:
http://newandroidbook.com/TOC.html

I have as well the one you mentioned, a very good book indeed, but
getting a bit old (up to Android 9 AFAIR)
> To view this discussion on the web visit https://groups.google.com/d/msgid/android-x86/CABu6A6ZbkpxMxfCtrkT0qzR0M7OcOxjR2x7GW5TjyoJqk9%2B5PQ%40mail.gmail.com.

foxtro...@gmail.com

unread,
May 22, 2021, 1:35:30 PM5/22/21
to Android-x86
I wouldn't consider android emulator a good idea. most of it is qemu, and the rest is unnecessary bloat designed specifically for testing and debugging android apps. I cannot think of a single feature that would actually matter for an android emulator that qemu doesn't offer that android emulator does.

As for why emulators generally migrate to virtualbox, is easy. virtualbox is a lot more simple than qemu. making it easier to work with. but if you want a really good android emulator, base it on qemu, as I said, with vulkan paravirt comming, it will be much more preformant.

there that and the fact that it will be easier to make an emulator for arm devices, like the M1.

L3G3ND

unread,
May 23, 2021, 4:06:35 AM5/23/21
to Android-x86
It would be very helpful if you join this Discord server https://discord.gg/mRpT4Qq OP mentioned above
Reply all
Reply to author
Forward
0 new messages