---
url: /en/android.md
description: >-
  Run AzurPilot natively on Android via Kotlin host, PRoot Linux runtime, and
  virtual displays, or connect remotely as a client.
---

# AzurPilot for Android

The Android version is not a stripped-down mobile client—it packages the **complete core program** (including Python 3.14, dependencies, OCR models, and frontend assets) into an APK, executes rootless via PRoot, and runs the game in a background virtual display.

![AzurPilot for Android Home Screen](/img/android-home.jpg)

## &#x20;Two Distinct Operating Modes

| Mode | Where Game Runs | Local Runtime | Privileges | Best For |
| --- | --- | --- | --- | --- |
| **Local Host** | On this phone | Required | Requires built-in ADB or Root | Dedicated mobile automation without a PC |
| **Remote Client** | On another machine | Not required | None required | Controlling remote desktop instances from mobile |

::: warning Do Not Confuse the Two Modes
Remote client mode does not launch the local Runtime or require Shizuku. It points `AzurPilotGateway` to an external instance's tunnel endpoint, reusing the native console interface. See [Using as Remote Client](/en/android/user/remote-client).
:::

## &#x20;Architectural Layers

| Layer | Technology | Responsibility |
| --- | --- | --- |
| App Shell | Kotlin + Compose (Material / Miuix) | Interface, Runtime provisioning, gateway subscriptions, overlay panel |
| PRoot | jniLibs bundle | Rootless system call translation |
| Runtime | Ubuntu 24.04 + Python 3.14 | Upstream core program and WebUI |
| Privileged Service | app_process + AIDL + JNI | Virtual display, screenshot capture, touch injection |
| OCR Worker | `:ocr` isolated process | Inference API (`127.0.0.1:22302`) |

Three distinct process boundaries:

* &#x20;**Main Process**: Compose UI, settings, and gateway WebSocket.
* &#x20;**`:ocr`**: Hosts LiteRT / MNN inference libraries; crashes do not destabilize the primary UI.
* &#x20;**Privileged Process**: Spawned via built-in ADB, Shizuku, or Root; manages virtual displays and native bridge bindings.

## &#x20;Feature Highlights

| Capability | Description |
| --- | --- |
| Background Virtual Display | Game executes on an independent Virtual Display, keeping physical screen free |
| Global Overlay Panel | Controls tasks, monitors queues, and streams live logs from any screen |
| Embedded Console | Full on-device WebUI management without a computer |
| Hardware-Accelerated OCR | Supports Qualcomm QNN, MediaTek NeuroPilot, HiSilicon HiAI; CPU fallback |
| High-Speed Frame Channel | Anonymous SharedMemory + SCM_RIGHTS benchmarked at 15.6 ms (TCP: 47.2 ms) |
| OLED Screensaver | Ultra-low brightness black screen drifting 16dp every 10s to prevent burn-in |
| Dual-Track Updates | APK and rootfs Runtime update independently with transactional script hot-updates |
| Diagnostic Log Export | Host and core logs separated, 7-day rotation, single-tap archive export |

## &#x20;Prerequisites

| Dimension | Minimum | Recommended |
| --- | --- | --- |
| Android Version | Android 9.0 (API 28) | Android 12–15 |
| Architecture | ARM64-v8a / x86_64 | Same |
| Storage | 2.5 GB available | 5 GB available |
| RAM | 4 GB | 6 GB+ |
| Privileges | Built-in ADB pairing / Root / Shizuku | Built-in ADB pairing |

32-bit devices are unsupported. x86_64 targets emulators; physical hardware runs ARM64.

## &#x20;Choosing the Right Package

| Package Type | Embedded Runtime | First Launch | Best For |
| --- | --- | --- | --- |
| Full APK | Yes | Unpacks locally in 1–3 minutes offline | Initial setup (Recommended) |
| Thin APK | No | Downloads ~1 GB Runtime on boot | Updating host app on existing setups |

Installing thin APK updates over full installations preserves the unpacked Runtime, configurations, and instances.

## &#x20;User Interface

![AzurPilot for Android Overview](/img/android-overview.jpg)

| View | Contents |
| --- | --- |
| Home | Runtime status, download/extract controls, start/stop switches |
| Automation | Virtual display stream, active instance, task start/stop controls |
| Console | Embedded WebUI dashboard |
| Logs | Host and worker execution logs with zip export |
| Settings | Themes, download mirrors, keep-alive, OCR backends, screensaver, remote access |

Supports both Material 3 and Miuix visual styles alongside dark themes. Screenshots and details are available in [Console, Floating Window & Screensaver](/en/android/user/console).

## &#x20;Continue Reading
