Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

AdbAutoPlayer

AdbAutoPlayer is a tool that helps you bot Android games. It can do boring or daily tasks for you—like collecting rewards, tapping buttons, or repeating stages—automatically.

It works by using ADB (Android Debug Bridge), which lets your computer control an Android phone, tablet, or emulator.

important

This tool only works with Android apps. You must use:

It does not work with:

  • iOS devices (iPhone, iPad)
  • Official PC or cloud versions of games

Features

  • Bots for some mobile games included
  • Easy to set up and run
  • Can handle daily quests, farming, and other repetitive actions

app.png


Compatibility


Download

important

Please check the user guides on the left before using the tool.


Contact

AFK Journey

Discord: Yaphalla
Channel: adb-auto-player

General

Discord Presence Discord Presence

Emulator Settings

important

Cloud Emulators like BlueStacks X cannot be used


MuMuPlayer (Windows) ← Best

note

MuMuPlayer does not require enabling ADB in settings.

Emulator Settings

  • Display:
    • Resolution Setting: Select Mobile Mode (1080 × 1920).

AdbAutoPlayer General Settings

Device ID: 127.0.0.1:7555


BlueStacks 5 (Windows) & BlueStacks Air (MacOS)

Emulator Settings

  • Display:
    • Display Resolution: Select Portrait (1080 × 1920).
  • Advanced:
    • Android Debug Bridge (ADB): Enable this.

LDPlayer (Windows)

Emulator Settings

  • Display:
    • Resolution: Select Phone (1080 × 1920).
  • Others:
    • ADB Debugging: Enable Local Connection.

AdbAutoPlayer General Settings

Device ID: emulator-5554


MuMuPlayer Pro (MacOS)

warning

I suggest using BlueStacks Air instead because it's free.

Emulator Settings

  • DisplayDisplay Size Phone:
    • Set Device Display to 1080 × 1920.
  • Other:
    • Enable ADB: Select Try to use the default port (5555).

Real Phone USB Debugging Setup Guide

A comprehensive guide to enable USB debugging on popular Android phone brands for AdbAutoPlayer.


Table of Contents


AdbAutoPlayer Configuration

device-config.png

Device Settings in AdbAutoPlayer

SettingDescription
"Resize Display"Enable this - Changes your display size to 1080x1920 when the bot starts
ResolutionSet to 1080x1920 for optimal compatibility

Important Considerations

warning

Security Notes:

  • USB debugging grants full control over your device
  • Always use trusted computers and quality USB cables
  • Consider disabling USB debugging when not actively using automation
  • Some banking and security apps may detect developer mode
  • Always revoke USB debugging authorizations from untrusted computers
  • Consider security implications before enabling OEM unlocking

caution

Device Health Notes:

  • Avoid using the bot when your device temperature is too high
  • High temperatures can cause permanent damage to battery and components

Prerequisites

Before starting, ensure you have:

RequirementDetails
USB CableMust support data transfer (most modern cables do, but some old ones are charge-only)
Admin RightsAdministrative privileges on your computer
Android VersionAndroid 4.2 (API level 17) or higher

Universal Steps

These steps apply to ALL Android devices, regardless of brand:

Step 1: Enable Developer Options

  1. Open Settings on your Android device
  2. Scroll down and tap "About phone" or "About device"
  3. Find "Build number" (location varies by brand - see brand-specific sections below)
  4. Tap "Build number" 7 times rapidly
    • You'll see countdown: "You are now X steps away from being a developer"
    • After 7 taps: "You are now a developer!" or "Developer mode has been enabled"
  5. Go back to the main Settings menu
  6. Look for "Developer options" (usually under System, Additional settings, or directly in Settings)

Step 2: Enable USB Debugging

  1. Open "Developer options"
  2. Toggle "Developer options" ON (if there's a master switch at the top and it's off)
  3. Scroll down and find "USB debugging"
  4. Toggle "USB debugging" ON
  5. Confirm when prompted with "Allow USB debugging?"
  6. Check if there are more options that start with USB debugging like "USB debugging (Security settings)" if yes Toggle ON

While in Developer options, consider enabling these for better automation:

SettingPurpose
"Stay awake"Keeps screen on while charging
"Disable adb authorization timeout"Prevents repeated authorization prompts (Android 11+)

Brand-Specific Instructions

Samsung

Build Number Location:

  • Samsung One UI 4.x and Samsung One UI 5.0+:
    Settings → About phone → Software information → Build number
    
  • Older Samsung:
    Settings → About device → Build number
    

Additional Samsung Steps:

  • After enabling Developer options, you may need to restart your phone
  • In Developer options, look for "USB debugging" under the Debugging section
  • Samsung devices may show additional security warnings - tap "OK" to proceed
  • Some Samsung devices have "Developer options" under Settings → Developer options directly

Knox Security Note:

  • Samsung Knox may interfere with automation
  • If you encounter issues, try disabling Knox security features (this may void warranty)

Google Pixel

Build Number Location:

  • Android 12+:
    Settings → About phone → Build number
    
  • Android 8-11:
    Settings → System → About phone → Build number
    
  • Android 7 and below:
    Settings → About phone → Build number
    

Additional Pixel Steps:

  • "Developer options" appears under Settings → System → Developer options
  • Pixel devices typically have the cleanest Android experience with minimal restrictions

OnePlus

Build Number Location:

  • OxygenOS 12+:
    Settings → About device → Version → Build number
    
  • OxygenOS 11:
    Settings → About phone → Version → Build number
    
  • Older OxygenOS:
    Settings → About phone → Build number
    

Additional OnePlus Steps:

  • OnePlus devices may require you to restart after enabling Developer options
  • "Developer options" appears under Settings → System → Developer options
  • Some OnePlus devices have additional security prompts

Xiaomi/MIUI

Build Number Location:

  • MIUI 12+:
    Settings → About phone → All specs → Build number
    
  • MIUI 11:
    Settings → About phone → MIUI version (tap 7 times instead of build number)
    
  • Older MIUI:
    Settings → About phone → MIUI version
    

Optional Xiaomi Steps:

  • Disable MIUI Optimizations (for better ADB functionality):
    • In Developer options, find "Turn off MIUI optimization"
    • Toggle it OFF and restart your device

Huawei/Honor

Build Number Location:

  • EMUI 10+:
    Settings → About phone → Build number
    
  • EMUI 9:
    Settings → System → About phone → Build number
    
  • Older EMUI:
    Settings → About phone → Build number
    

Additional Huawei/Honor Steps:

  • Huawei devices usually have strict security measures
  • After enabling Developer options:
    • "Developer options" appears under Settings → System → Developer options

Oppo

Build Number Location:

  • ColorOS 12+:
    Settings → About device → Version → Build number
    
  • ColorOS 11:
    Settings → About phone → Version → Build number
    
  • Older ColorOS:
    Settings → About phone → Build number
    

Additional Oppo Steps:

  • Oppo devices require additional verification steps
  • After enabling Developer options:
    • "Developer options" appears under Settings → Additional settings → Developer options
    • Enable "USB debugging"

Oppo-Specific Requirements:

  • You may need to be logged into your Oppo account
  • Some features require account verification similar to Xiaomi

Vivo

Build Number Location:

  • Funtouch OS 12+:
    Settings → About phone → Software version → Build number
    
  • Funtouch OS 11:
    Settings → About phone → More parameters → Build number
    
  • Older Funtouch:
    Settings → About phone → Build number
    

Additional Vivo Steps:

  • Vivo devices have similar restrictions to Oppo
  • After enabling Developer options:
    • "Developer options" appears under Settings → System → Developer options

Vivo-Specific Requirements:

  • Vivo Account Verification:
    • Login to your Vivo account may be required
    • Some security features require account verification

Sony

Build Number Location:

  • Android 10+:
    Settings → About phone → Build number
    
  • Android 8-9:
    Settings → System → About phone → Build number
    
  • Older Android:
    Settings → About phone → Build number
    

Additional Sony Steps:

  • Sony devices typically follow stock Android closely
  • "Developer options" appears under Settings → System → Developer options
  • Sony devices generally have fewer manufacturer restrictions

LG

Build Number Location:

  • LG UX 9+:
    Settings → General → About phone → Software info → Build number
    
  • LG UX 8:
    Settings → About phone → Software info → Build number
    
  • Older LG UX:
    Settings → About phone → Build number
    

Additional LG Steps:

  • LG devices may require restart after enabling Developer options
  • "Developer options" appears under Settings → General → Developer options
  • Some LG devices have additional security prompts

Motorola

Build Number Location:

  • Android 10+:
    Settings → About phone → Build number
    
  • Android 8-9:
    Settings → System → About phone → Build number
    
  • Older Android:
    Settings → About phone → Build number
    

Additional Motorola Steps:

  • Motorola devices typically follow stock Android
  • "Developer options" appears under Settings → System → Developer options
  • Minimal manufacturer restrictions typically apply

Troubleshooting

Common Issues and Solutions

IssueSolution
"Developer options" doesn't appearTry restarting your phone, then check Settings again
Look under "System", "Additional settings", or "Advanced"
Computer doesn't recognize deviceInstall manufacturer-specific USB drivers
Try different USB cables and ports
Google: "[device name] USB drivers"

Advanced Troubleshooting

For Huawei/Honor devices:

  • Disable protected apps feature
  • Check if HMS Core is interfering

For Oppo/Vivo devices:

  • Verify account login status
  • Disable aggressive battery optimization
  • Check auto-start management settings

Windows Setup Guide

This guide will walk you through setting up AdbAutoPlayer on Windows.

important

Check Emulator Settings if you haven't already!


Installation

  1. Download the App
    • Get the latest release of AdbAutoPlayer: AdbAutoPlayer_Windows.zip
    • Extract the contents of the .zip file to a folder on your computer.

Starting AdbAutoPlayer

When launching AdbAutoPlayer, Windows Defender SmartScreen may block the application. To proceed:

  1. Click the More info link.
  2. Click the Run anyway button that appears.
  3. Wait for the application to start.

Windows Protected Your PC


Windows Security pop up

If this pop up appears simply click Allow. If you want more info read here: ADB (Android Debug Bridge)

windows_security_adb.png

Continue to the Troubleshooting Guide

macOS Setup Guide

We are not publishing a macOS build because of a lack of Apple Developer Certificate. If anybody wants to share theirs to sign the .app bundle with please reach out.
Discord Presence

You can follow the steps in the Dev & Build page to build the app locally.

Linux Setup Guide

important

Linux is not officially supported.
None of the maintainers use Linux, and we do not provide Linux builds, troubleshooting, or assistance.

If You Still Want to Try:

  1. Build It Yourself

    • You can try following the Dev & Build guide.
    • No support will be provided—you’re on your own.
    • Functionality is not guaranteed, and you may encounter Linux-specific issues.
  2. Contribute Proper Support

    • If you’re willing to maintain Linux builds, fix issues, and document setup, contact us.
    • Without an active Linux maintainer, official support will never happen.

We will not answer questions about Linux builds. Check back if community contributions change this in the future.

Contact

Discord Presence

Troubleshooting

General try disabling Device Stream

If Device Streaming is active try unchecking it and see if your problem goes away.
If your problem does NOT go away activate it again.
device-stream.png

Emulator

note

Test both MumuPlayer and BlueStacks 5

[ERROR] Device: 127.0.0.1:5555 not found

If you have multiple BlueStacks instances only the first one uses Port 5555.
You can try updating the Device ID 1 at a time depending on how many instances you have:

  • 127.0.0.1:5555
  • 127.0.0.1:5556
  • 127.0.0.1:5557
  • ...

This bot only works in Portrait mode

  1. Please double-check your Emulator Settings.
  2. If the game automatically switches to Landscape on start, use the Rotate Menu and select Portrait.
    rotate.png

Missing files

This issue usually occurs due to one of the following reasons:

  1. Windows Security or another Antivirus software flagged a false positive and deleted/quarantined one or more files. Learn more about false positives.
  2. An error occurred during the update process, preventing all files from being properly installed.
  3. You didn’t extract all files from the .zip or moved the .exe to a different directory, causing missing dependencies.

Make sure to extract all files and check your antivirus settings to prevent accidental deletions.

File contains a virus or potentially unwanted software

  1. Search Windows Security
    search-windows-security.png
  2. Select Virus & threat protection
    select-virus-and-threat-protection.png
  3. Click allowed threats
    click-allowed-threats.png
  4. Search for a Threat that has AdbAutoPlayer or adb_auto_player in the file name or path then click Actions and Restore
    click-actions-restore.png
  5. If you have no Threats click Protection history and check there then do the same as step 4.
    no-allowed-threats.png

Tap to restart this app for a better view

tap-to-restart.png
Some games will not automatically scale when the resolution changes. You simply have to press the button and the bot will work.

AFK Journey

Support Game Languages:

  • English

Supported Resolutions:

  • 1080x1920

Features

important

Work in Progress section will be added later

To improve performance and reduce lag, adjust the following in-game settings:

  • Set Graphics to Minimum while keeping high-performance Power Mode.
  • Disable Battle Texts: Go to Battle > Combat Text > Off. This prevents excessive on-screen text, reducing emulator lag.
  • Disable Battle Logs: Under Combat Text, turning off battle logs minimizes post-battle processing and improves overall game performance.

Guitar Girl

app.png

Supported Resolutions:

  • 1080x1920

Dev & Build

CLI

Set the python directory as the root of your project if you are using PyCharm.
The python/.idea contains run configurations and other things that make setting up PyCharm easier for you.

Setup

important

Execute these commands in the python directory

Windows

  1. Install uv.
  2. Install Python.
    uv python install
    
  3. Install dev dependencies.
    uv sync --dev
    
  4. Install pre-commit.
    uvx pre-commit install
    
  5. Verify the player runs on CLI by showing the help.
    uv run adb-auto-player -h
    

MacOS

  1. Install uv.
  2. Install Python.
    uv python install
    
  3. Install ADB
  4. Install Tesseract
  5. Verify the player runs on CLI by showing the help.
    uv run adb-auto-player -h
    

Note:

UV creates a standard python virtual environment by default. Standard Unix command:

source .venv/bin/activate

More examples in UV Docs.

GUI

  1. Follow all the steps in the CLI section
  2. Install everything required for Wails. You can ignore the Optional Dependencies section.
  3. Run the dev command from the root directory
    wails dev
    

Build scripts

Windows build_zip.ps1

$env:GITHUB_WORKSPACE = "C:\Users\$env:USERNAME\GolandProjects\AdbAutoPlayer"; .github\scripts\build_zip.ps1

Translations Guide

This guide explains how to add new languages, update translations, and maintain the internationalization system for AdbAutoPlayer.

📁 File Structure

frontend/src/lib/i18n/
├── README.md          # This guide
├── i18n.ts           # Translation system core
├── locales.ts        # Language configuration
├── jp.json           # Japanese translations
└── vn.json           # Vietnamese translations

🌐 Currently Supported Languages

  • English (en) - Default language
  • Japanese (jp) - Partially translated
  • Vietnamese (vn) - Partially translated

🚀 Quick Start

Adding a New Language

  1. Create translation file: frontend/src/lib/i18n/[language-code].json
  2. Update locales.ts: Add language to enum and import
  3. Update backend constraint: Add language option to Go backend
  4. Test the implementation

Updating Existing Translations

  1. Edit the JSON file: Modify translations in existing language files
  2. Test in application: Build and verify changes
  3. Commit changes: Submit via pull request

📋 Detailed Instructions

1. Adding a New Language

Step 1: Create Translation File

Create a new JSON file: frontend/src/lib/i18n/[language-code].json

{
  "Stop Action": "Your Translation",
  "General Settings": "Your Translation",
  "Language": "Your Translation",
  "Device": "Your Translation",
  "Update": "Your Translation",
  "User Interface": "Your Translation"
}

Step 2: Update Frontend Configuration

Edit frontend/src/lib/i18n/locales.ts:

// Add import
import newLang from "./[language-code].json";

// Add to enum
export enum SupportedLocale {
  EN = "en",
  JP = "jp", 
  VN = "vn",
  NEW_LANG = "[language-code]", // Add this line
}

// Add to locales object
const locales: LocaleDictionary = {
  [SupportedLocale.EN]: {},
  [SupportedLocale.JP]: jp,
  [SupportedLocale.VN]: vn,
  [SupportedLocale.NEW_LANG]: newLang, // Add this line
};

Step 3: Update Backend Configuration

Edit internal/ipc/constraint.go:

"Language": NewSelectConstraint([]string{
    "en",
    "jp", 
    "vn",
    "[language-code]", // Add your language code
}, "en"),

2. Updating Existing Translations

Edit Translation Files

Open the appropriate JSON file and modify translations:

{
  "Old Key": "Updated Translation",
  "New Key": "New Translation"
}

3. Adding More Translations

Find Untranslated Text

  1. Run the application in your target language
  2. Look for English text that should be translated
  3. Check the source code for text strings used with $t() function

Add Missing Translations

Add new key-value pairs to the JSON file:

{
  "Existing Translation": "Existing Value",
  "New English Text": "New Translated Text"
}

🔍 Finding Text to Translate

Common Locations

note

Check any of the existing translation files!

  • Button labels: Look for buttons still showing English text
  • Error messages: Check error dialogs and notifications
  • Configuration labels: Settings form field names
  • Menu categories: Section headers and groupings
  • Tooltips: Hover text on buttons and controls

Search in Code

Look for these patterns in the codebase:

// Direct translation calls
$t("Text to translate")

// Template usage
{$t("Text to translate")}

// With interpolation
$t("{{game}} Settings", { game: gameName })

🧪 Testing Your Changes

Verification Checklist

  • Language appears in dropdown
  • All buttons are translated
  • Application builds successfully
  • Language switching works smoothly

📝 Example: Complete Translation File (Vietnamese)

{
  "Stop Action": "Dừng Hành Động",
  "General Settings": "Cài Đặt Chung", 
  "Language": "Ngôn Ngữ",
  "Device": "Thiết Bị",
  "Update": "Cập Nhật",
  "User Interface": "Giao Diện Người Dùng",
  "Failed to Save General Settings": "Không thể lưu Cài Đặt Chung",
  "Something went wrong": "Đã xảy ra lỗi"
}

Happy translating! 🌍

Frontend README

Node

Install the latest version here: https://nodejs.org/en/download/

Svelte with SvelteKit and Skeleton

This project is built using Svelte with SvelteKit.
We also use Skeleton, a UI toolkit for Svelte, to help with styling and components.

Setup

Follow Dev & Build

Contributing

Nothing here yet—PRs are welcome. I do insist on using Svelte, as this is the only frontend framework that I have even the tiniest amount of success with and feel comfortable maintaining.

At the moment, I (Yules) am the only person maintaining the frontend, so contributions—big or small—are very welcome. Other than that, if you are interested in helping out, you can do whatever you want, and you have my full support.

Contact

Discord Presence

Writing Bots

important

Work in Progress.

Check out Dev & Build if you need help with setting up the project in general.

📝 Contribution Opportunities

Interested in contributing? Below are available tasks across different areas of the project. Feel free to reach out to @yulesxoxo for questions or guidance.

Discord Presence


🔧 Backend Development

Device Abstraction Layer for ADB retry mechanism

  1. Implement a ADBDevice class and remove all adbutils specific code from game.py
  2. Create some general retry logic or wrapper for anything that uses adbutils

Rough idea with a decorator:

def adb_retry(retry_attempts=2, retry_attempts_after_restart=3, sleep_time=5):
    def decorator(func):
        @wraps(func)
        def wrapper(self, *args, **kwargs):
            last_exception = None
            
            # First phase try again but wait before next try.
            for attempt in range(1, retry_attempts + 2):
                try:
                    return func(self, *args, **kwargs)
                except Exception as e:
                    last_exception = e
                    if attempt <= retry_attempts:
                        logging.warning(f"Attempt {attempt} failed for {func.__name__}, retrying in {sleep_time} seconds...")
                        time.sleep(sleep_time)
            
            # Second phase: Restart ADB server and rebuild the connection
            # Kill ADB process
            # Restart adb server
            # reinitialize ADBDevice

            for attempt in range(1, retry_attempts_after_restart + 2):
                ...
            
            # If we get here, all attempts failed
            raise ADBUnrecoverableError(str(last_exception))
        return wrapper
    return decorator

Usage:

@adb_retry
def press_back_button(self) -> None:
    """Presses the back button."""
    with self.device.shell("input keyevent 4", stream=True) as connection:
        logging.debug("pressed back button")
        connection.read_until_close()

Android Multi-Touch Gesture Implementation (PoC)

Library: uiautomator2

Challenge:
ADB lacks native multi-touch gesture support. uiautomator2 offers:

  • Coordinate-based tapping (d.click(x, y))
  • Screenshot capture (d.screenshot())
  • Advanced gestures (swipe, pinch, etc.)

Goals:

  • Develop PoC for multi-touch gestures
  • Prioritize pinch-to-zoom for game automation

Extended Opportunities:

  1. Explore additional uiautomator2 game automation features
  2. Performance comparison: uiautomator2 vs standard ADB
  3. Benchmark tests for shared functionality (tap, screenshot, swipe)

Desktop Client Support Investigation

Current Understanding:

  1. Mouse click simulation limitations (requires actual cursor movement)
  2. Screenshot challenges with display scaling/multi-monitor setups
  3. Higher detection risk compared to ADB (if Lilith starts to care about botting)

Implementation Needs:

  1. Device abstraction layer (Android vs Desktop)
  2. Unified input mapping system
    # The actual bot code should not end up looking like this.
    if device.platform == "Android":
    device.press_back_button()
    elif device.platform == "DesktopApp":
    device.keyboard.press("ESC")
    
  3. Complete desktop interaction logic

🖥️ Frontend Development

Global Hotkey Config Component

Create a Svelte Component to edit a single Global Hotkey in the config.
You can decide what format it should be stored in, in the config too.


📖 Documentation

Emulator Setup Guides

Format: Individual .md files per emulator

Needed Guides:

  • MuMu Player
  • BlueStacks
  • LDPlayer
  • MuMu Pro (Mac)
  • BlueStacks Air (Mac)

Guide Requirements:

  • Default device ID setup
  • ADB enabling steps
  • Recommended configuration
  • Multi-instance device identification

Physical Device Setup

Topics Needed:

  • Wireless debugging setup

Custom Routine Documentation

Content Needed:

  • Feature explanation and workflow
  • Practical examples (AFK Journey reference)

🎮 AFK Journey Specific

Arcane Labyrinth Optimization (Difficulty 15+)

Goal: Consistent Floor 16 clears

Suggestions:

  • Coordinate with Arcane Lab channel for team comps
  • Develop rune/crest priority system

Fishing Mechanic

Technical Notes:

  • Template matching likely insufficient
  • Potential heatmap approach
  • Input delay considerations (see debug info)

Feature Documentation

Scope:

  • Complete feature catalog
  • Usage instructions
  • Configuration options
  • Visual examples

🚧 In Progress

  • GFL2 Daily Automation - @valextr
  • Backend Refactor (Second Pass) - @valextr

💬 Getting Help

  • Discord: Use the badge above
  • GitHub: Create issues for bugs/feature requests