APK Tool Studio {{ currentTabLabel }} • {{ userUsername }}
{{ authMessage }}
{{ toastTitle }} {{ toastMessage }}

Dashboard

Overview of your APK Tool workspace

You have reached one or more usage limits. Upgrade Plan
Decompile
{{ limits.decompile_usage || 0 }} / {{ limits.decompile_limit || 0 }}
Remaining: {{ Math.max(0, (limits.decompile_limit || 0) - (limits.decompile_usage || 0)) }}
Compile
{{ limits.compile_usage || 0 }} / {{ limits.compile_limit || 0 }}
Remaining: {{ Math.max(0, (limits.compile_limit || 0) - (limits.compile_usage || 0)) }}
Key Generation
{{ limits.generate_key_usage || 0 }} / {{ limits.generate_key_limit || 0 }}
Remaining: {{ Math.max(0, (limits.generate_key_limit || 0) - (limits.generate_key_usage || 0)) }}
Sign APK
{{ limits.sign_apk_usage || 0 }} / {{ limits.sign_apk_limit || 0 }}
Remaining: {{ Math.max(0, (limits.sign_apk_limit || 0) - (limits.sign_apk_usage || 0)) }}

My Projects

Manage your decompiled APK projects

Upload & Create New Project

Upload an APK to auto-create and decompile a new project workspace.

Drop your APK here or click to browse

Supported: .apk files
Selected: {{ uploadFile.name }}
{{ uploadStatus }}{{ uploadProgress }}%
{{ proj.project_name }}

Last updated:

{{ new Date(proj.updated_at).toLocaleString() }}

No projects found. Create a new project to get started.

Project Editor

{{ workflow.project_name }} - Edit, Build, and Sign your APK

{{ step.num }} {{ step.label }}
AI Settings

Choose your AI provider and add your own API key to unlock AI error-fixing and AI-generated launcher icons.

Get a free Gemini API key ↗ Key saved ({{ aiGeminiMaskedKey }})
Get an OpenAI API key ↗ Key saved ({{ aiOpenaiMaskedKey }})
1. Project Info
Project Decompiled & Ready: {{ workflow.project_display }}

Source APK: {{ basename(workflow.source_apk) }}

2. Edit Strings

Edit app strings, Firebase values, and upload google-services.json to auto-fill.

{{ firebaseFile.name }}
Saving strings...{{ stringSaving ? 'Saving…' : 'Saved' }}
{{ row.name }} Firebase
No matching strings found.
5. Build APK

Compile the edited project into an unsigned APK.

Built: {{ basename(workflow.unsigned_apk) }} Download
{{ buildStatus }}{{ buildProgress }}%
Build Failed

Use Gemini/OpenAI to analyze the build error{{ editorFile ? ' against the currently open file (' + basename(editorFile.path) + ')' : '' }} and suggest a fix.

Add a Gemini/OpenAI API key above first.
AI Explanation
{{ aiFix.explanation }}
6. Select or Create Keystore

Select an existing key or generate a new signing key for your APK.

Or Create New Keystore
{{ keystoreStatus }}{{ keystoreProgress }}%
Currently Selected Keystore
Alias: {{ workflow.keystore_alias }} {{ basename(workflow.keystore_path) }}
7. Sign APK

Sign the APK with your keystore to produce the final release.

Please build the APK first.
Please select or create a keystore first (Step 6).
Align
Sign
Verify
Signed: {{ basename(workflow.signed_apk) }} Download Signed APK
{{ signStatus }}{{ signProgress }}%
8. Cloud Debug Logs (recommended)

Enabled crash/error reporter into the app during build. Once enabled and rebuilt, the app reports its own crashes straight to this server over the internet from ANY Android phone it's installed on — no USB, no ADB, no network configuration, and no port forwarding required.

Cloud logging has been successfully enabled into this project. Rebuild and reinstall the APK for debugging to become active.
Step 1 — Download Debugger APK

Install the Debugger Companion APK on any Android phone. This companion application securely receives crashes, Java exceptions, native crashes, logs, stack traces, ANRs, and debugging events from every rebuilt application connected to your account.

Download Debugger APK
Backend changes detected — a newer build is available.

Reinstall the rebuilt APK or open the Debugger Companion App and tap Check for Update to receive the latest logging changes. Devices with automatic update checks enabled will notify you within a minute.

Step 2 — Scan QR Code

Open the Debugger Companion APK, tap Scan QR Code, and point the camera at the QR code below. Pairing takes only a few seconds. Once connected, every rebuilt application will automatically stream crash reports, exceptions, logs, and debugging information to this device over the internet.

Camera unavailable? Copy this pairing code and paste it into the Connect screen inside the Debugger Companion APK.

9. Developer Tools
{{ l }}
No network requests captured yet. They'll appear here once the rebuilt app makes an HTTP(S) call - this covers both Java code (HttpURLConnection / OkHttp / Retrofit) and, for WebView-based apps, the page's own fetch()/XHR calls. If this stays empty after using the app for a bit, re-check the "Cloud Debug Logs" enable step's result message - it reports whether any hookable call sites were actually found in this app's code.
{{ l }}
No device logs received yet. They'll appear here in realtime once the rebuilt app is installed somewhere and runs.

Connect an Android device via USB (with USB debugging enabled) or wireless ADB to this server/PC, install the APK directly, and watch its logs in realtime.

On the phone: Settings > Developer options > Wireless debugging > turn it on, note the IP:port shown there (both devices must be on the same Wi-Fi/network). Some Android versions require pairing first with a pairing code - if connect is refused, use "Pair device with pairing code" on the phone and pair from a terminal first, then connect here.

No devices detected yet. Use "Connect Wireless ADB" above, or (if you have shell access to this server) plug a device into USB with USB debugging enabled, then Refresh.
{{ l.text }}
No log output yet.
My Keystores

All keystores you've generated.

No keystores found.
AliasFileCreatedActions
{{ ks.key_alias }} {{ basename(ks.file_name) }} {{ new Date(ks.created_at).toLocaleDateString() }}
Registered Users
Create New User
UserEmailRoleStatusLimitsActions
{{ user.username }} {{ user.email }} {{ user.user_type }} {{ user.email_verified ? '✅ Verified' : '⏳ Pending' }} D:{{ user.decompile_usage }}/{{ user.decompile_limit }}
C:{{ user.compile_usage }}/{{ user.compile_limit }}
K:{{ user.generate_key_usage }}/{{ user.generate_key_limit }}
S:{{ user.sign_apk_usage }}/{{ user.sign_apk_limit }}
No users found.
Edit Limits for {{ editingUser.username }}
Global AI Model Configuration

Set the default models for each AI provider. Users can still choose their preferred provider.