Run Android app in qemu-arm?

Active3 hr before
Viewed126 times

5 Answers


The Android emulator provides Android application developers with a convenient development environment and allows developers to develop and test applications on devices which they do not have physical access to. With the introduction of the Armv8-A architecture and Android support for 64-bit Arm platforms, this need is more important than ever because it allows developers to begin adapting their applications to an Arm 64-bit based mobile ecosystem prior to hardware being available.,Every build of Android targets a specific hardware platform, and the emulated goldfish platform is no different. A number of specific emulator features are enabled in both the Android kernel and Android userspace environment when run in an emulated environment. These features allow a smooth and complete user experience resembling using a real Android device, on laptop and desktop workstations.,A patched version of the AOSP tree (master or l-preview branch), with qemu_pipe tweak(,When the Android SDK was first made available to the world, Google used QEMU as the basis for their Android emulator. They copied the source code to a custom repository in the Android Open Source Project (AOSP) and made a number of invasive modifications to QEMU. Specifically, they added emulation of a specific board called goldfish for the purposes of emulating an Android phone.

ARCH = arm64 make ranchu_defconfig

ARCH = arm64 make CROSS_COMPILE = aarch64 - linux - gnu -
load more v

Here’s a screenshot of the “About Device” menu in Android L 64-bit ARM running in QEMU. , And build Android L for ARMv8:,The last step before running Android L is to build QEMU:,$sudo apt-get install libfdt $git submodule update –init dtc

@Jean-Luc Aufranc (CNXSoft)
I encountered the same error, i.e “adb_server_notify: Failed to establish connection to ADB server”. And my solution is to lunch an ADB server at localhost. It’s quiet simple, just type adb start-server” in the console, and it will lunch an ADB server at localhost. Once QEMU conntects to ADB server, it will boot the Android64 after few minutes. I successfully booted it and the model number showed “AOSP on Linaro arm64 Emulator”. Though the browser failed to lunch for unknown reasons.


Dynamic analysis on Android apps needs emulator instances or real devices on which it runs real world apps. There are existing solutions including:,In this article, I’ll introduce a method to create QEMU-based Android emulator instances for scalable dynamic analysis of real-world apps. The emulator has the following advantages:,Installing Google Play Services on an Android Studio Emulator,It’s quite straight forward to plug piles of Android devices onto a host machine and run analysis on them, gaining full device features. Disadvantages include cost, scalability and limited ROM code customization.

$ qemu - img create - f qcow2 android.img 8 G
load more v

Android-x86, running in VirtualBox,Android Emulator (Android Studio),Android-86, running in QEMU,I did not include Shashlik, as this project has been inactive since 2016. I evaluated each of the emulations by the following (admittedly crude and incomplete) criteria:

adb connect 127.0 .0 .1
load more v

Hopefully this guide will have enabled you build the required software and run Android on Qemu with a virtual GPU. The post was has been a part of work undertaken by my employer Collabora.,The guide below helps you compile Android and run it on top of Qemu with Mesa/Virgilrenderer supplying a virtual GPU. Because of this, the following guide is aimed at Linux hosts.,Seems like the toolchain for Android 6 isn't so readily available anymore. Any chance you are able to try it out on a newer Android version?,Virglrenderer creates a virtual 3D GPU, that allows the Qemu guest to use the graphics capabilities of the host machine.

sudo apt install autoconf gcc - aarch64 - linux - gnu libaio - dev libbluetooth - dev libbrlapi - dev libbz2 - dev libcap - dev libcap - ng - dev libcurl4 - gnutls - dev libepoxy - dev libfdt - dev libgbm - dev libgles2 - mesa - dev libglib2 .0 - dev libibverbs - dev libjpeg8 - dev liblzo2 - dev libncurses5 - dev libnuma - dev librbd - dev librdmacm - dev libsasl2 - dev libsdl1 .2 - dev libsdl2 - dev libseccomp - dev libsnappy - dev libssh2 - 1 - dev libtool libusb - 1.0 - 0 libusb - 1.0 - 0 - dev libvde - dev libvdeplug - dev libvte - 2.90 - dev libxen - dev valgrind xfslibs - dev xutils - dev zlib1g - dev
load more v

Other "android-undefined" queries related to "Run Android app in qemu-arm?"