Skip to content

Architecture Overview

akwin1234 edited this page Jun 20, 2026 · 1 revision

Architecture Overview

Damru operates at the boundary of the Android OS, Docker virtualization, and the Chrome DevTools Protocol to create a highly convincing antidetect environment.


The Virtualization Layer (Redroid in Docker)

Instead of modifying a desktop Chrome browser, Damru runs a real Android instance using Redroid (Remote Android in Docker).

  • Native Binder Integration: Redroid shares the host's Linux kernel and communicates using Android's Binder driver (configured via /dev/binderfs).
  • GPU Virtualization: Damru isolates OpenGL/Vulkan rendering, using a custom library injection (libVkLayer_damru.so and libfakemem.c) to intercept GLES and Vulkan driver queries.

OS-Level Property Spoofing

Most anti-bot detection libraries read device properties through Android API wrappers. Damru modifies these directly at the OS level:

  • prop-mutation: Emulates custom values for ro.product.model, ro.product.brand, ro.build.fingerprint, and hardware specifications.
  • wrap property: Intercepts native Chrome execution using Android's per-application wrap property, forcing Chrome to run with custom preloaded libraries (libfakemem.c).

Zero JavaScript Injection Stealth

Traditional antidetect tools modify the browser window environment using prototype overwrites:

// Detectable monkey-patching!
Object.defineProperty(navigator, 'webdriver', { get: () => false });

These changes leave call-stack anomalies that modern script checkers (CreepJS, DataDome, Cloudflare) immediately catch. Damru applies zero JavaScript injection:

  • Hardware Concurrency & Memory: Emulated via native preloads that intercept Android's sysconf calls, reporting realistic values (e.g. 8 cores, 8GB RAM) directly to Chrome's C++ core.
  • Sensors: Emulates accelerometer and gyroscope events via a mock system Sensor Service, matching realistic mobile user movement.
  • WebRTC Leak Protection: Configures routing and public interfaces so WebRTC queries discover the proxy exit IP, matching a real device instead of looking disabled.

Clone this wiki locally