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)) }}
Quick Actions
Workflow Status
No active project. Upload an APK to get started.
{{ stepLabels[key]?.num || 'β€’' }}
{{ stepLabels[key]?.label || key }}

{{ step ? 'βœ… Completed' : '⏳ Pending' }}

Project: {{ workflow.project_display }}
File: {{ basename(workflow.unsigned_apk) }}
File: {{ basename(workflow.signed_apk) }}

APK Workflow

Upload β†’ Edit β†’ Search β†’ Build β†’ Sign β†’ Download

{{ step.num }} {{ step.label }}
β€Ί
1. Upload APK & Decompile

Upload your APK to create a project and decompile it automatically.

Drop your APK here or click to browse

Supported: .apk files
Selected: {{ uploadFile.name }}
{{ uploadStatus }}{{ uploadProgress }}%
Project ready: {{ workflow.project_display }}
2. Edit Strings

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

Please upload an APK first.
{{ 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.

Please upload an APK first.
Built: {{ basename(workflow.unsigned_apk) }} Download
{{ buildStatus }}{{ buildProgress }}%
6. Select or Create Keystore

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

Please upload an APK first.
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 upload an APK first.
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 }}%
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 }}