Damru: The Open-Source Undetected ChromeDriver Alternative Built for Android (2026)
Damru is a free, open-source browser automation framework that replaces patched desktop Chrome binaries with a genuine Android runtime (Redroid + Playwright + CDP), making it a compelling undetected ChromeDriver alternative for teams that need authentic mobile fingerprints rather than desktop spoofing.
If you have landed here researching how to install undetected ChromeDriver and avoid bot-detection systems, you already know the lay of the land: undetected-chromedriver patches the ChromeDriver binary to strip WebDriver artifacts, and SeleniumBase extends that approach with additional stealth layers. Both solve real problems — on desktop. When a detection system inspects navigator.platform, the presence of touch event APIs, battery and vibration support, ARM-specific WebGL renderer strings, or Android Sec-CH-UA-Platform client hints, desktop patches have no answer.
Damru takes a fundamentally different approach. Rather than patching a desktop browser, it runs Chrome for Android inside a containerized Android instance (Redroid), then drives that real browser through Playwright and the Chrome DevTools Protocol (CDP). The fingerprint is not simulated or injected — it originates from a genuine Android operating system.
What Is Undetected ChromeDriver and Why Does It Fall Short on Mobile-Targeted Sites?
undetected-chromedriver is a Python library that patches the ChromeDriver binary to remove common WebDriver fingerprinting signals — but it targets desktop Chrome and structurally cannot produce an authentic Android fingerprint.
Even after patching, a desktop Chrome session exposes these Android-incompatible signals:
navigator.platformreturnsWin32orMacIntel, neverLinux armv8lorLinux aarch64window.ontouchstartis absent — touch is not native to desktop Chrome- Battery Status API and Vibration API are either absent or behave differently from Android
Sec-CH-UA-PlatformHTTP client hint reports"Windows"or"macOS", not"Android"- WebGL renderer strings reflect desktop GPU architecture (Intel Mesa, NVIDIA) rather than ARM Mali or Qualcomm Adreno
- Device pixel ratio and screen resolution patterns match desktop display norms, not mobile
No amount of JavaScript injection on a desktop browser eliminates these signals because they are tied to the underlying OS and hardware abstraction layer — not to the JavaScript runtime. That is the architectural gap Damru fills.
Damru vs undetected-chromedriver vs SeleniumBase: Honest Comparison
| Feature | Damru | undetected-chromedriver | SeleniumBase (UC mode) |
|---|---|---|---|
| Platform | Android (Redroid in Docker) | Desktop (Win / macOS / Linux) | Desktop (Win / macOS / Linux) |
| Driver Protocol | CDP via Playwright | Patched ChromeDriver | ChromeDriver / UC patches |
| Detection / Spoofing Layer | Native Android runtime | Binary patching + JS injection | JS injection + UC mode |
| Android Support | ✅ Native | ❌ None | ❌ None |
| Real Touch / Battery APIs | ✅ Android OS | ❌ Absent on desktop | ❌ Absent on desktop |
| ARM WebGL Renderer String | ✅ Yes (Adreno / Mali) | ❌ No (desktop GPU) | ❌ No (desktop GPU) |
| Automation API | Playwright async Python | Selenium Python API | Selenium or Playwright |
| Infrastructure Required | Docker + KVM + Linux host | Minimal (pip only) | Minimal (pip only) |
| Source-available | ✅ Yes — PolyForm NC 1.0.0 (GitHub) | ✅ Yes | ✅ Yes |
| Best For | Android fingerprint research, mobile QA | Desktop stealth scraping | Desktop stealth scraping + testing |
When Damru Is the Right Choice — and When It Is Not
Use Damru when:
- Your target checks Android-specific APIs that no desktop patch can authentically replicate
- You need reproducible Android Chrome sessions for QA or mobile regression testing
- You are researching how anti-bot systems distinguish mobile from desktop traffic
- You want to audit the mobile detection surface of a site under controlled conditions
Stick with undetected-chromedriver or SeleniumBase when:
- Your target is a desktop-oriented site where Android fingerprints add no value
- Docker and Redroid infrastructure overhead is not justified by the project scope
- Your codebase is deeply integrated with Selenium’s synchronous API
- You need a minimal-footprint stealth scraping setup with fast startup times
Both tools are legitimate, open-source research and automation instruments. The choice is determined by whether mobile fingerprint fidelity is a hard requirement for your use case.
Getting Started with Damru
Install Damru via pip:
pip install damru
Minimal async automation example with AsyncDamru:
import asyncio
from damru import AsyncDamru
async def main():
async with AsyncDamru() as browser:
page = await browser.new_page()
await page.goto("https://example.com")
title = await page.title()
print(f"Page title: {title}")
asyncio.run(main())
Damru manages the Redroid container lifecycle, CDP handshake, and Playwright browser context automatically. For advanced options — custom Android API levels, proxy routing, and device profile configuration — see the full documentation at the Damru GitHub repository.
How Damru’s Three-Layer Stack Produces Authentic Android Signals
Understanding why Damru differs from Selenium with undetected ChromeDriver requires understanding its architecture:
1. Redroid (Android-in-Docker) Redroid is an AOSP-derived Android environment that runs inside a Docker container with GPU passthrough via KVM. It exposes a complete Android system — Android framework services, Binder IPC, SurfaceFlinger display stack — making it functionally equivalent to a booted Android device.
2. Chrome for Android (real APK)
Damru installs and runs the actual Chrome for Android APK inside Redroid, not a repackaged or patched desktop binary. Every fingerprint-relevant property — navigator.platform, UA client hints, WebGL renderer strings, and platform APIs — reflects the genuine Android Chrome environment as shipped by Google.
3. Playwright + CDP Playwright connects to the running Android Chrome instance via the Chrome DevTools Protocol, providing the full modern automation surface: page navigation, DOM interaction, network request interception, screenshot capture, JavaScript evaluation, and more — all through a clean async Python API.
The result: a browser session whose fingerprint is structurally identical to a real Android device running Chrome, because architecturally, it is running on a real Android stack.
FAQ
Q: Is Damru a drop-in replacement for Selenium undetected ChromeDriver?
No — Damru uses Playwright’s async API, not Selenium’s. Migrating existing selenium-based code requires rewriting the automation layer. If your project already uses Playwright, adoption is considerably more straightforward.
Q: Does Damru need a physical Android phone or an Android Virtual Device (AVD)? No. Damru runs Chrome inside Redroid — a containerized Android environment on Linux. No physical device and no QEMU-based AVD is required; the Docker + KVM stack provides the necessary Android OS layer.
Q: Is Damru free to use for scraping research and QA testing? Yes. Damru is source-available under PolyForm Noncommercial 1.0.0 and hosted at github.com/akwin1234/damru. It is free for personal, educational, and noncommercial research, QA, and fingerprinting use; commercial use requires a separate license.
Q: What are the Linux kernel requirements for running Redroid with Damru? Redroid requires a Linux kernel with binder and ashmem module support (typically kernel 5.x or later with the relevant modules compiled in), plus KVM for hardware-assisted virtualization. Docker must be installed and running on the host.
Q: Can Damru intercept and inspect HTTPS traffic for research purposes? Yes. Playwright’s network interception API, accessible through Damru’s browser context, supports full request and response interception including HTTPS — subject to your legal and ethical obligations regarding the target site and applicable law.
Related Resources
- Best Python Web Scraping Tools (2026) — honest comparison of scraping libraries including Scrapy, Playwright, Selenium, and more
- Antidetect Browser for Android: Damru — why Android-native automation differs from desktop stealth tools
- Damru on GitHub — source code, issues, and documentation
- damru.dev — project homepage