Cyandroemu
Android Automation Framework for Python on emulators (BlissOs, BlueStacks, LDPlayer, Memu, Mumu, Android Studio ...) and rooted devices WITHOUT ADB!
Install / Use
/learn @hansalemaos/CyandroemuREADME
📱 CyAndroEmu: Advanced Android Automation Library
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/hansalemaos/cyandroemu"> <img src="https://github.com/hansalemaos/cyandroemu/blob/main/images/logo.png?raw=true" alt="Logo" width="400" height="400"> </a> <h3 align="center">Python / Cython Automation for Android Emulators</h3> <p align="center"> Android automations without ADB - directly on emulators </p> </div>About The Project
CyAndroEmu is a powerful Python library designed for advanced Android automation. For performance reasons, it’s primarily written in C++ and Cython (Line count - C++: 20229 lines / Python: 2960 lines / Cython: 9397 lines), providing multiple backends for interacting with UI elements, handling input events, and efficiently extracting screen data.
Unlike any other Android automation library, CyAndroEmu is designed to run directly and independently on the emulator or rooted device without relying on ADB. This architecture offers significant performance and reliability advantages.
🚀 Why Choose CyAndroEmu?
✅ Key Advantages:
-
No Broken Connections: Since it operates independently of ADB, you’ll never face issues with unstable or dropped connections.
-
Blazing Fast Automation: No need for slow ADB screenshot transmissions—screen data is processed directly on the device.
-
Unlimited Device Scalability: Run as many emulators as your hardware can handle without hitting ADB’s device limits.
-
Natural Mouse Movements: Supports smooth, human-like mouse movements, making it perfect for bypassing CAPTCHA and anti-bot detection systems.
-
Fingerprint Avoidance: Eliminate the risk of device fingerprinting. Curious about how easy it is to fingerprint your device? 👉 Check it here
-
Direct Botting Mode with Magisk/KernelSU: With Magisk or KernelSU, you can start your device and go straight into botting mode—no manual intervention needed.
-
Easy Device-Wide Proxying: Effortlessly proxy all network traffic using tools like Proxifier or SocksDroid for enhanced privacy and IP rotation.
⚡ Additional Highlights:
-
Low-Level Performance: Thanks to its C++ core, CyAndroEmu achieves unparalleled speed and efficiency, even in resource-intensive environments.
-
Multi-Backend Support: Choose from various parsers and input methods tailored to different Android environments (real devices, emulators, custom ROMs).
-
Seamless Emulator Integration: Designed to work flawlessly with popular emulators like BlissOS, BlueStacks, VMware, and more.
-
Root-Friendly: Full support for rooted devices, enabling deep system-level automation capabilities.
-
Magisk / KernelSU Plugins: Start your Python automation automatically when the emulator or device boots—no human interaction needed.
Getting Started
Installation
1. Download and install your favorite Android emulator, and ensure it has root access. CyAndroEmu should also work on any rooted smartphone (not tested yet). A non-root version is available here. CyAndroEmu has been tested with the following:
- BlueStacks 5
- BlissOs 14, 15, 16 Go (on ProxMox, Virtual Box - Windows and VMWare - Windows)
- LDPlayer
- MeMuPlay
- MuMuPlayer
- GenyMotion
- Nox Player
- Android Studio - Magisk Patched PlayStore API 30 - Android 11
Although neither Magisk nor KernelSU is required, using them can significantly simplify tasks such as running Python scripts at Android startup and automatically adding the Termux folder to the PATH when accessing the ADB shell . They also assist in hiding root access and automating actions - writing your own Plugins is really simple. Here are some of my tutorials in Portuguese/English that teach you how to install them:
| How to install Python on an emulator | |
|-----------|-----------|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Install Termux and TermuxBoot - optional
3. Use the following command to install the required packages (Python, Pandas, NumPy and some other stuff):
-
Open a ADB shell, and Termux on your emulator and copy and paste this command to the ADB shell to save some typing:
- necessary packages:
input text 'yes | pkg up;pkg install -y openssh;pkg install -y git;pkg install -y openssl;pkg install -y python;pkg install -y python-numpy;pkg install -y python-pip;pkg install -y clang;pkg install -y cmake;pkg install -y coreutils;pkg install -y termux-tools;pkg install -y root-repo;pkg install -y cpulimit;pkg install -y tur-repo;pkg install -y python-pandas;pkg install -y tesseract;pkg install -y imagemagick; pkg install -y imagemagick-static;yes | python -m pip install ptpython;yes | python -m pip install cyandroemu;yes | python -m pip install regex;yes | python -m pip install ptpython;yes | python -m pip install setuptools;yes | python -m pip install Cython;yes | python -m pip install requests';input keyevent KEYCODE_ENTER;input keyevent KEYCODE_ENTER- recommended packages:
input text 'yes | pkg up;yes | pkg install -y openssh;yes | pkg install -y ripgrep;yes | pkg rei libexpat;pkg install -y git;pkg install -y openssl;pkg install -y python;pkg install -y cloneit;pkg install -y python-lxml;pkg install -y python-numpy;pkg install -y python-pillow;pkg install -y python-pip;pkg install -y python-scipy;pkg install -y vim-python;pkg install -y clang;pkg install -y cmake;pkg install -y coreutils;pkg install -y termux-exec;pkg install -y termux-tools;pkg install -y root-repo;pkg install -y matplotlib;pkg install -y cpulimit;pkg install -y tur-repo;pkg install -y python-pandas;pkg install -y tmux;pkg install -y opencv-python;pkg install -y boost;pkg install -y boost-headers;pkg install -y boost-static;pkg install -y tesseract; pkg install -y tor; pkg install -y torsocks; pkg install -y fzf; pkg install -y imagemagick; pkg install -y imagemagick-static;pkg install -y python-scikit-image; pkg install -y python-polars; pkg install -y nodejs-20; pkg install -y gcc-14; pkg install -y ffmpeg7;yes | python -m pip install ptpython;yes | python -m pip install cyandroemu;yes | python -m pip install regex;yes | python -m pip install ptpython;yes | python -m pip install setuptools;yes | python -m pip install Cython;yes | python -m pip install requests';input keyevent KEYCODE_ENTER;input keyevent KEYCODE_ENTER
4. Accessing Python from the ADB shell. Choose one of the 3 solutions:
-
Recommended: Install the Magisk/KernelSU plugin to automatically add the Termux bin folder to the PATH
-
Add
export PATH="$PATH:/data/data/com.termux/files/usr/bin"to/system/etc/mkshrc(don't forget to set the correct owner/group ... afterwards) -
Manually type
export PATH="$PATH:/data/data/com.termux/files/usr/bin"each time you enter the ADB su shell.
Writing Python scripts
Cyandroemu will be compiled the first time you import it! Since this process is very CPU- and memory-intensive, I recommend setting the memory to 8 GB of RAM. Later on, you can reduce it. The SO files can be copied to other instances of your chosen emulator, but be careful: the CPU must be the same, as the C++ files are compiled with the flags -march=native and -mtune=native to ensure the highest possible performance."
Cyandroemu is primarily written in C++ (6 out of 7 parsers, modified sendevent, etc.) and Cython (1 parser and the Python interface), but all automation is handled using the Python class TermuxAutomation.
Related Skills
imsg
335.9kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
node-connect
335.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
335.9kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
lobster
335.9kLobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (s
