Skip to main content
This guide will walk you through extracting your first APK file using APK Extractor. We’ll cover both the web interface and CLI approaches.

Prerequisites

Before you begin, ensure you have:
  • APK Extractor installed (see Installation)
  • ADB configured (automatic or manual setup)
  • Android device with USB debugging enabled
  • Device connected via USB cable

Using the Web Interface

The web interface provides the most user-friendly experience with real-time updates and visual feedback.
1

Launch the Web Interface

Double-click start-web.bat or run from Command Prompt:
start-web.bat
The script will:
  • Install dependencies if needed
  • Start the server in the background
  • Create a system tray icon
  • Open your browser to http://localhost:3000
Look for the APK Extractor icon in your system tray (near the Windows clock). Right-click it to reopen the interface or shut down the server.
2

Select Your Device

Once the interface loads, you’ll see the device management screen.
  1. Your connected device should appear automatically in the device list
  2. The interface shows:
    • Device brand and model (e.g., “Samsung Galaxy S21”)
    • Serial number or IP:port for wireless devices
    • Connection status
  3. Click on your device to select it
The web interface polls for device changes every 4 seconds when active, automatically detecting connections and disconnections.
Don’t see your device?
  • Check that USB debugging is enabled
  • Ensure the device is properly connected
  • Authorize the computer on your device if prompted
  • Try the “Refresh” button or reconnect the cable
3

Browse Installed Applications

After selecting your device, you’ll see the application list.Filter applications:
  • User Apps (default) - Apps you installed from app stores
  • System Apps - Pre-installed system applications
  • All Apps - Everything on the device
Search for apps:
  • Use the search box to filter by app name or package name
  • Results update instantly as you type
Each app displays:
  • App name - Real application name (e.g., “WhatsApp”)
  • Package name - Java package identifier (e.g., com.whatsapp)
  • Format - APK (single file) or Split APK (multiple files)
  • Size - Total size in MB or KB
The first time you view the list, format and size information loads asynchronously in the background. You’ll see a progress indicator showing “Loading details (X / Y apps)”.
4

Extract an APK

Click on any application to view details and extraction options.

For Standard APK (Single File)

  1. Click the app you want to extract
  2. Review the app details:
    • Version name and code
    • Installation date
    • APK file path on device
    • Size and format
  3. Click “Extract APK”
  4. The APK downloads directly to your browser’s download folder
  5. File is named <package-name>.apk
Example:
com.whatsapp.apk

For Split APK / XAPK (Multiple Files)

Modern apps often use Split APK format (separate files for different architectures, languages, etc.).
  1. Click the app you want to extract
  2. You’ll see a message: “Split APK detected - X files”
  3. The interface lists all APK file paths on the device
  4. Click “Compile XAPK”
  5. Watch the real-time progress:
    • Extracting APK files from device
    • Creating manifest.json
    • Packaging into XAPK
  6. The .xapk file downloads automatically when complete
Split APKs cannot be extracted as a single .apk file. They must be compiled into .xapk format, which packages all files together.
Installing XAPK files:

Using the Command-Line Interface

The CLI provides a powerful terminal-based interface with no Node.js requirement.
1

Launch the CLI

Double-click apk-downloader.bat or run from Command Prompt:
apk-downloader.bat
The CLI will:
  • Check for ADB configuration
  • Display the main menu with color-coded options
  • Show the current ADB path
The CLI supports full ANSI color output on Windows 10+ for enhanced readability (cyan, green, yellow, red).
2

List Connected Devices

From the main menu:
  1. Press 1 to select “List connected devices”
  2. The tool searches for all connected devices (USB and WiFi)
  3. You’ll see a numbered list of devices with:
    • Serial number or IP:port
    • Custom name (if assigned)
    • Device brand and model
Example output:
Devices found: 2

[1] Samsung Galaxy S21 (ABC123DEF456)
[2] 192.168.1.100:37891

[0] Return to main menu

Select a device [0-2]:
Enter the number of your device and press Enter.
3

Browse Applications

After selecting a device, you’ll see the device menu showing:
  • Device serial
  • Brand and model
  • Android version and API level
  1. Press 1 to select “List installed applications”
  2. Choose application type:
    • 1 - User apps only (recommended)
    • 2 - All apps (including system)
  3. The CLI loads all applications and calculates exact sizes using du -b
Format and size detection may take 10-30 seconds depending on the number of apps. System apps typically take longer to process.
Applications are displayed in a paginated table (15 per page):
Num  Package                                   Format      Size
───  ────────────────────────────────────────  ──────────  ──────────

[1]  com.whatsapp                              APK         45 MB
[2]  com.android.chrome                        Split-APK   120 MB
[3]  com.spotify.music                         Split-APK   85 MB
...

Page 1 of 5

Enter app number for details.
[A] Previous page
[S] Next page
[0] Back
Navigation:
  • Enter a number to view app details
  • Press A for previous page
  • Press S for next page
  • Press 0 to return
4

Extract an APK or XAPK

Enter the number of the app you want to extract.

For Standard APK

The CLI shows app details:
Package     : com.whatsapp
Version     : 2.23.10.75  (Code: 231075)
Files       : 1

Path on device:
  /data/app/~~abc123==/com.whatsapp-xyz789==/base.apk

[1] Extract APK to this PC
[0] Back to app list
  1. Press 1 to extract
  2. Enter destination folder or press Enter for Desktop:
    Folder destination (Enter for desktop):
    >
    
  3. The APK is copied from device to your PC
  4. Success message shows the file path
  5. The destination folder opens automatically

For Split APK / XAPK

The CLI detects multiple APK files:
[!]  SPLIT APK / XAPK detected

This app contains 5 separate APK files.
Files:
  - /data/app/.../base.apk
  - /data/app/.../split_config.arm64_v8a.apk
  - /data/app/.../split_config.en.apk
  - /data/app/.../split_config.xxhdpi.apk
  - /data/app/.../split_config.xxxhdpi.apk

[1] Compile the 5 APKs into an XAPK file
[0] Back to list
  1. Press 1 to compile XAPK
  2. Enter destination folder or press Enter for Desktop
  3. The CLI performs three steps:
    • Step 1/3: Extracting APKs from device (with progress)
    • Step 2/3: Creating manifest.json with version info
    • Step 3/3: Packaging into XAPK using PowerShell compression
  4. Success message shows the .xapk file path
  5. Installation instructions are displayed
Example manifest.json structure:
{
  "xapk_version": 2,
  "package_name": "com.example.app",
  "version_code": "123",
  "version_name": "1.2.3",
  "min_sdk_version": "21",
  "split_apks": [
    {"file": "base.apk", "id": "base"},
    {"file": "split_config.arm64_v8a.apk", "id": "split_config.arm64_v8a"}
  ]
}

Advanced Features

Assign friendly names to your devices for easier identification.Web Interface:
  • Click the device settings icon
  • Enter a custom name (e.g., “My Phone”, “Work Tablet”)
  • Name is saved instantly
CLI:
  • From the device menu, press 2 (“Assign name to device”)
  • Enter the new name or leave empty to remove
  • Name is stored in device-names.json
Custom names appear in both interfaces and persist across sessions.
Connect to devices over WiFi (Android 11+).Pairing Process:
1

Enable on Device

Settings → Developer options → Wireless debugging → Pair device with pairing code
2

Pair in APK Extractor

  • Web: Click “Connect WiFi Device” → Enter IP, pairing port, and 6-digit code
  • CLI: Main menu → Option 2 → Enter IP, pairing port, and code
3

Connect

  • Enter the connection port (different from pairing port)
  • Device is saved automatically
WiFi debugging ports change after device reboot. Use the “Saved Devices” menu to rebind with updated ports.
The web interface supports efficient batch operations using the REST API.Batch Info Endpoint:
// Example: Get format and size for multiple packages
POST /api/devices/:serial/apps/batch-info
{
  "packages": ["com.whatsapp", "com.android.chrome", ...]
}
Response includes format, size, and app name for all packages, processed in parallel.See server.js:350-402 for implementation details.
Connect to devices over the internet using Tailscale VPN.Setup:
  1. Install Tailscale on both PC and Android device
  2. Sign in with the same account on both devices
  3. Enable wireless debugging on Android
  4. Use the device’s Tailscale IP (100.x.y.z) when pairing in APK Extractor
This creates a secure P2P connection without exposing your devices to the public internet.

Common Tasks

Copy Package Name

Web: Click the copy icon next to any package nameCLI: Package names are shown in the app list - copy manually from terminal

View Server Logs

Web: Click the console icon in the corner to open the integrated log viewerCLI: All output is shown directly in the terminal with color coding

Reconnect Saved WiFi Device

Web: Click “Saved Devices” → Select device → Click “Connect”CLI: Main menu → Option 3 → Press C → Enter device number

Shut Down Web Server

System Tray: Right-click APK Extractor icon → “Shut Down Server”Web Interface: Click the red “Shut Down Server” buttonManual: Find process on port 3000 and kill it

Troubleshooting

Cause: Some system apps or protected apps cannot be extracted without root access.Solution:
  • Only extract user-installed apps (filter: “User apps only”)
  • System apps may require root permissions
  • Try a different app to verify ADB is working correctly
Cause: PowerShell compression error or insufficient disk space.Solution:
  • Ensure you have enough disk space in %TEMP% and destination folder
  • Run PowerShell as administrator
  • Check that all APK files were extracted successfully (see progress output)
  • Try compiling to a different destination folder
USB devices:
  • Use a high-quality data cable
  • Try a different USB port (preferably USB 3.0)
  • Disable USB selective suspend in Windows power settings
WiFi devices:
  • Keep device screen on during extraction
  • Disable battery optimization for wireless debugging
  • Ensure stable WiFi connection on both PC and device
Cause: The app’s label could not be retrieved from dumpsys package.Behavior:
  • APK Extractor attempts to extract the real name from nonLocalizedLabel or label fields
  • If unavailable, it formats the package name (e.g., com.example.app → “App”)
  • This is normal for some system apps or apps without proper metadata
See server.js:380-388 for the name extraction logic.

Next Steps

Now that you’ve extracted your first APK, explore more advanced features:

API Reference

Explore the REST API endpoints for custom integrations

CLI Commands

Learn all available CLI commands and options

Build docs developers (and LLMs) love