- Notifications
You must be signed in to change notification settings - Fork2
A Dockerized Android emulator supporting multiple CPU architectures (x86 and arm64) with native performance and seamless ADB access.
License
Shmayro/dockerify-android
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Dockerify Android is a Dockerized Android emulator supporting multiple CPU architectures (x86 andarm64 in the near future ...) with native performance and seamless ADB access. It allows developers to run Android virtual devices (AVDs) efficiently within Docker containers, facilitating scalable testing and development environments.
- Root and Magisk Preinstalled: Comes with root access and Magisk preinstalled for advanced modifications.
- PICO GAPPS Preinstalled: Includes PICO GAPPS for essential Google services.
- Seamless ADB Access: Connect to the emulator via ADB from the host and other networked devices.
- scrcpy Support: Mirror the emulator screen using scrcpy for a seamless user experience.
- Optimized Performance: Utilizes native CPU capabilities for efficient emulation.
- Multi-Architecture Support: Runs natively on bothx86 andarm64 CPU architectures.
- Docker Integration: Easily deploy the Android emulator within a Docker container.
- Easy Setup: Simple Docker commands to build and run the emulator.
- Supervisor Management: Manages emulator processes with Supervisor for reliability.
Before you begin, ensure you have met the following requirements:
- Docker: Installed on your system.Installation Guide
- Docker Compose: For managing multi-container setups.Installation Guide
- KVM Support: Ensure your system supports KVM (Kernel-based Virtual Machine) for hardware acceleration.
Check KVM Support:
egrep -c'(vmx|svm)' /proc/cpuinfo
A non-zero output indicates KVM support.
To simplify the setup process, you can use the provideddocker-compose.yml file.
Clone the Repository:
git clone https://github.com/shmayro/dockerify-android.gitcd dockerify-android
Run Docker Compose:
docker-compose up -d
Note: This command runs the container in detached mode, grants necessary privileges for KVM, and shares the host's network stack for seamless ADB access.
Connect via ADB:
adb connect localhost:5555adb devices
Expected Output:
connected to localhost:5555List of devices attachedlocalhost:5555device
Use scrcpy to Mirror the Emulator Screen:
scrcpy -s localhost:5555
Note: Ensure
scrcpy
is installed on your host machine.Installation Guide
- Support for additional Android versions
- Integration with CI/CD pipelines
- Support ARM64 CPU architecture
- Preinstall PICO GAPPS
- Support Magisk
ADB Connection Refused:
Ensure ADB Server is Running:
adb start-server -a
Verify Firewall Settings: Ensure that port
5555
is open on your server.Check Emulator Status: Ensure the emulator has fully booted by checking logs.
docker logs android-emulator
Emulator Not Starting:
Check Supervisor Logs:
dockerexec -it android-emulator bashcat /var/log/supervisor/emulator.out.logcat /var/log/supervisor/emulator.err.log
KVM Not Accessible:
Verify KVM Installation:
lsmod| grep kvm
Check Permissions: Ensure your user has access to
/dev/kvm
.
Contributions are welcome! To contribute:
Fork the Repository
Create a Feature Branch:
git checkout -b feature/YourFeature
Commit Your Changes:
git commit -m"Add Your Feature"
Push to the Branch:
git push origin feature/YourFeature
Open a Pull Request
Please ensure your contributions adhere to the project's coding standards and include relevant tests.
This project is licensed under theMIT License.
- Haroun EL ALAMI
- Email:haroun.dev@gmail.com
- GitHub:shmayro
- Twitter:@HarounDev