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 (Gemini)

Add your own Google Gemini API key to unlock AI error-fixing and AI-generated launcher icons. Your key is only used server-side to call Gemini on your behalf.

Key saved ({{ aiMaskedKey }})
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 to analyze the build error{{ editorFile ? ' against the currently open file (' + basename(editorFile.path) + ')' : '' }} and suggest a fix.

Add a Gemini 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. Install on Device & View Logs

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 live.

No devices detected. Enable USB debugging on the phone, plug it in (or run adb connect <ip>:5555 for wireless), 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 }}