budtmo/docker-android

★ 15,874⑂ 1,754

Android in docker solution with noVNC supported, video recording, mcp server and AI-agent

About budtmo/docker-android

budtmo/docker-android is an open-source project on GitHub, mainly written in Python. Android in docker solution with noVNC supported, video recording, mcp server and AI-agent It currently holds 15,874 stars and 1,754 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the Local & On-Device AI board.

GitHub Repository Details

Repository budtmo/docker-android · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

Paypal Donate PRs Welcome codecov Join the chat at https://gitter.im/budtmo/docker-android GitHub release

Docker-Android is a docker image built to be used for everything related to Android. It can be used for Application development and testing (native, web and hybrid-app).

Advantages of using this project -------------------------------- 1. Emulator with different device profile and skins, such as Samsung Galaxy S6, LG Nexus 4, HTC Nexus One and more. 2. Support vnc to be able to see what happen inside docker container 3. Support log sharing feature where all logs can be accessed from web-UI 4. Ability to control emulator from outside container by using adb connect 5. Integrated with other cloud solutions, e.g. Genymotion Cloud 6. It can be used to build Android project 7. It can be used to run unit and UI-Test with different test-frameworks, e.g. Appium, Espresso, etc. 8. It support mcp server (beta-version) 9. It support ai-agent (beta-version)

List of Docker-Images --------------------- |Android |API |Image with latest release version |Image with specific release version| |:---|:---|:---|:---| |9.0|28|budtmo/docker-android:emulator_9.0|budtmo/docker-android:emulator_9.0_<release_version>| |10.0|29|budtmo/docker-android:emulator_10.0|budtmo/docker-android:emulator_10.0_<release_version>| |11.0|30|budtmo/docker-android:emulator_11.0|budtmo/docker-android:emulator_11.0_<release_version>| |12.0|32|budtmo/docker-android:emulator_12.0|budtmo/docker-android:emulator_12.0_<release_version>| |13.0|33|budtmo/docker-android:emulator_13.0|budtmo/docker-android:emulator_13.0_<release_version>| |14.0|34|budtmo/docker-android:emulator_14.0|budtmo/docker-android:emulator_14.0_<release_version>| |-|-|budtmo/docker-android:genymotion|budtmo/docker-android:genymotion_<release_version>| |-|-|budtmo/docker-android:mcp|budtmo/docker-android:mcp_<release_version>|

List of Devices ---------------

Type | Device Name ----- | ----- Phone | Samsung Galaxy S10 Phone | Samsung Galaxy S9 Phone | Samsung Galaxy S8 Phone | Samsung Galaxy S7 Edge Phone | Samsung Galaxy S7 Phone | Samsung Galaxy S6 Phone | Nexus 4 Phone | Nexus 5 Phone | Nexus One Phone | Nexus S Tablet | Nexus 7 Tablet | Pixel C

Requirements ------------

1. Docker is installed on your system.

Quick Start -----------

1. If you use Ubuntu OS on your host machine, you can skip this step. For OSX and Windows OS user, you need to use Virtual Machine that support Virtualization with Ubuntu OS because the image can be run under Ubuntu OS only.

2. Your machine should support virtualization. To check if the virtualization is enabled is:

    sudo apt install cpu-checker
    kvm-ok
    

3. Run Docker-Android container

    docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S10" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_11.0
    

4. Open http://localhost:6080 to see inside running container.

5. To check the status of the emulator

    docker exec -it android-container cat device_status
    

Persisting data -----------

The default behaviour is to destroy the emulated device on container restart. To persist data, you need to mount a volume at /home/androidusr:

    docker run -v data:/home/androidusr budtmo/docker-android:emulator_11.0
    

WSL2 Hardware acceleration (Windows 11 only) -----------

Credit goes to Guillaume - The Parallel Interface blog

Microsoft - Advanced settings configuration in WSL

1. Add yourself to the kvm usergroup.

    sudo usermod -a -G kvm ${USER}
    

2. Add necessary flags to /etc/wsl.conf to their respective sections.

    [boot]
    command = /bin/bash -c 'chown -v root:kvm /dev/kvm && chmod 660 /dev/kvm'
    

Then, using PowerShell, open a notepad on notepad $env:USERPROFILE\.wslconfig. Inside, put these other flags:

    [wsl2]
    nestedVirtualization=true
    

4. Restart WSL2 via CMD prompt or Powershell

    wsl --shutdown
    

command = /bin/bash -c 'chown -v root:kvm /dev/kvm && chmod 660 /dev/kvm' sets /dev/kvm to kvm usergroup rather than the default root usergroup on WSL2 startup.

nestedVirtualization flag is only available to Windows 11.

If this setup does not work, you may have an old WSL version. In that case, ignore \.wslconfig and put everything on /etc/wsl.conf, including the [wsl2] flag.

Use-Cases ---------

1. Build Android project 2. UI-Test with Appium 3. Control Android emulator on host machine 4. SMS Simulation 5. Jenkins 6. Deploying on cloud (Azure, AWS, GCP)

Custom-Configurations ---------------------

This document contains information about configurations that can be used to enable some features, e.g. log-sharing, etc.

Genymotion ----------

For you who do not have ressources to maintain the simulator or to buy machines or need different device profiles, you can give a try by using Genymotion SAAS. Docker-Android is integrated with Genymotion on different cloud services, e.g. Genymotion SAAS, AWS, GCP, Alibaba Cloud. Please follow this document for more detail.

Emulator Skins -------------- The Emulator skins are taken from Android Studio IDE and Samsung Developer Website

USERS -----

https://github.com/budtmo/docker-android/blob/HEAD/docker-android-users

PRO VERSION -----------

Due to high requests for help and to be able to actively maintain the projects, the creator has decided to create docker-android-pro. Docker-Android-Pro is a sponsor based project which mean that the docker image of pro-version can be pulled only by active sponsor.

The differences between normal version and pro version are:

|Feature |Normal |Pro |Comment| |:---|:---|:---|:---| |user-behavior-analytics|Yes|No|-| |ai-agent|No|Yes|Currently supported local AI-host/AI-provider: Ollama| |proxy|No|Yes|Set up company proxy on Android emulator on fly| |language|No|Yes|Set up language on Android emulator on fly| |Newer Android version|No|Yes|Support other newer Android version e.g. Android 15, Android 16, Android 17, etc| |root-privileged|No|Yes|Able to run command with security privileged| |headless-mode|No|Yes|Save resources by using headless mode| |Selenium 4.x integration|No|Yes|Running Appium UI-Tests againt one (Selenium Hub) endpoint for Android- and iOS emulator(s) / device(s)| |multiple Android-Simulators|No|Yes (soon)|Save resources by having multiple Android-Simulators on one docker-container| |Google Play Store|No|Yes (soon)|-| |Video Recording|No|Yes (soon)|Helpful for debugging|

List pro-version images:

|Android |API |Type |Image with latest release version |Image with specific release version| |:---|:---|:---|:---|:---| |9.0|28|Normal|budtmo2/docker-android-pro:emulator_9.0|budtmo2/docker-android-pro:emulator_9.0_<release_version>| |10.0|29|Normal|budtmo2/docker-android-pro:emulator_10.0|budtmo2/docker-android-pro:emulator_10.0_<release_version>| |11.0|30|Normal|budtmo2/docker-android-pro:emulator_11.0|budtmo2/docker-android-pro:emulator_11.0_<release_version>| |12.0|32|Normal|budtmo2/docker-android-pro:emulator_12.0|budtmo2/docker-android-pro:emulator_12.0_<release_version>| |13.0|33|Normal|budtmo2/docker-android-pro:emulator_13.0|budtmo2/docker-android-pro:emulator_13.0_<release_version>| |14.0|34|Normal|budtmo2/docker-android-pro:emulator_14.0|budtmo2/docker-android-pro:emulator_14.0_<release_version>| |15.0|35|Normal|budtmo2/docker-android-pro:emulator_15.0|budtmo2/docker-android-pro:emulator_15.0_<release_version>| |16.0|36|Normal|budtmo2/docker-android-pro:emulator_16.0|budtmo2/docker-android-pro:emulator_16.0_<release_version>| |17.0|37|Normal|budtmo2/docker-android-pro:emulator_17.0|budtmo2/docker-android-pro:emulator_17.0_<release_version>| |9.0|28|Headless|budtmo2/docker-android-pro:emulator_headless_9.0|budtmo2/docker-android-pro:emulator_headless_9.0_<release_version>| |10.0|29|Headless|budtmo2/docker-android-pro:emulator_headless_10.0|budtmo2/docker-android-pro:emulator_headless_10.0_<release_version>| |11.0|30|Headless|budtmo2/docker-android-pro:emulator_headless_11.0|budtmo2/docker-android-pro:emulator_headless_11.0_<release_version>| |12.0|32|Headless|budtmo2/docker-android-pro:emulator_headless_12.0|budtmo2/docker-android-pro:emulator_headless_12.0_<release_version>| |13.0|33|Headless|budtmo2/docker-android-pro:emulator_headless_13.0|budtmo2/docker-android-pro:emulator_headless_13.0_<release_version>| |14.0|34|Headless|budtmo2/docker-android-pro:emulator_headless_14.0|budtmo2/docker-android-pro:emulator_headless_14.0_<release_version>| |15.0|35|Headless|budtmo2/docker-android-pro:emulator_headless_15.0|budtmo2/docker-android-pro:emulator_headless_15.0_<release_version>| |16.0|36|Headless|budtmo2/docker-android-pro:emulator_headless_16.0|budtmo2/docker-android-pro:emulator_headless_16.0_<release_version>| |17.0|37|Headless|budtmo2/docker-android-pro:emulator_headless_17.0|budtmo2/docker-android-pro:emulator_headless_17.0_<release_version>| |-|-|AI-Agent|budtmo2/docker-android-pro:agent|budtmo2/docker-android-pro:agent_<release_version>| |-|-|Selenium|budtmo2/docker-android-pro:selenium|budtmo2/docker-android-pro:selenium_<release_version>|

This document contains detail information about how to use docker-android-pro.

SPONSORS --------

https://github.com/budtmo/docker-android/blob/HEAD/Swiftproxy

SwiftproxySwiftproxy provides high-quality residential proxies for Android testing, automation, and location-based workflows. With 90M+ residential IPs, HTTP(S)/SOCKS5 support, flexible targeting, and non-expiring traffic, Swiftproxy helps users test apps and online services from different locations. Try Swiftproxy for free today and get 10% off with code PROXY90.

Learn more about Swiftproxy →

https://github.com/budtmo/docker-android/blob/HEAD/Rapidproxy

RapidProxyRapidProxy is a high-performance proxy provider built for automation and multi-account operations, offering clean residential proxies and native static ISP IPs. Access 90 million+ residential IPs worldwide, with intelligent rotation, sticky sessions, and support for high-concurrency requests. Ideal for web scraping, browser automation, social media account management, e-commerce, and bulk account registration. Residential proxies start at just $0.55/GB, with bandwidth that never expires. Use code RAPID10 for 10% off.

Learn more about Rapidproxy →

LICENSE ------- See License

GitHub Stars & Activity

15,874Stars
1,754Forks
0Open issues
PythonLanguage

GitHub Popularity

GitHub stars15,874
Forks1,754
Open issues0
Primary languagePython
License-
Stars gained today0
Created-
Last pushed-

Trending History

Trending statusnot on today's boards

Related AI Projects

1

open-webui / open-webui

Python★ 152,601⑂ 22,332
2

HKUDS / nanobot

Python★ 48,395⑂ 8,551
3

chatchat-space / Langchain-Chatchat

Python★ 38,648⑂ 6,265
4

1Panel-dev / MaxKB

Python★ 22,844⑂ 3,157
5

lss233 / kirara-ai

Python★ 19,027⑂ 1,836
6

AsyncFuncAI / deepwiki-open

Python★ 18,018⑂ 2,003
7

langbot-app / LangBot

Python★ 17,926⑂ 1,602
8

MODSetter / SurfSense

Python★ 16,169⑂ 1,538

More AI Rankings