Daftar isi
APKTool mendekode resource APK dan Smali ke dalam folder proyek dan bisa membangun ulang proyek tersebut; paket hasil build perlu ditandatangani sebelum instalasi. Dokumentasi resmi APKTool menjelaskan perintah terkini dan penyiapannya untuk platform desktop yang didukung.
Bagian dari hub modding: Cara Mod APK · Alternatif ponsel: panduan MT Manager · File sumber: Ekstrak APK.
Semua di bawah ini adalah satu alur kerja: instal, decompile, pahami tata letak folder, edit, build ulang, tanda tangani, dan perbaiki empat kesalahan yang menyebabkan sebagian besar build gagal. Di titik mana pun alat ponsel lebih cepat, panduan ini menyatakannya dan menunjuk ke sana sebagai gantinya.
Apa Itu APKTool?
APKTool mendekode APK menjadi folder berisi file Smali, tabel resource, manifest yang sudah didekode, dan apktool.yml, lalu membangun ulang folder itu menjadi paket yang siap ditandatangani; ia adalah jalur baris perintah untuk memeriksa atau mengedit resource dan kode Android di komputer.
APKTool vs MT Manager
MT Manager menang untuk satu edit di ponsel, tanpa penyiapan, tanpa kabel. APKTool menang ketika Anda perlu mencari di banyak file, menyimpan salinan murni di bawah version control, menangani framework sistem, atau menjalankan perubahan yang sama lewat skrip lintas build. Pakai keduanya: MT Manager untuk menjelajah, APKTool untuk bekerja.
Cara Menginstal APKTool
Menginstal APKTool umumnya berarti mendapatkan jar-nya dan mengonfigurasi Java, dengan penyiapan yang berbeda di Windows, macOS, dan Linux; ikuti langkah untuk sistem operasi Anda dan verifikasi perintahnya berfungsi sebelum membuka APK dari sumber tepercaya di komputer Anda.
Windows
Instal runtime Java 11 atau lebih baru, unduh apktool.jar dari halaman rilis resmi GitHub, dan letakkan wrapper .bat di sebelahnya yang berisi java -jar apktool.jar %*. Ganti nama wrapper menjadi apktool.bat dan taruh keduanya di PATH Anda.
Mac dan Linux
Instal Java dari manajer paket Anda, unduh jar-nya, dan buat skrip wrapper bernama apktool dengan java -jar /path/to/apktool.jar "$@", lalu chmod +x padanya. Letakkan di suatu tempat di PATH Anda dan konfirmasi dengan apktool --version.
Persyaratan Java
Java 11 atau lebih baru. Periksa dengan java -version sebelum apa pun: runtime yang hilang atau terlalu tua adalah satu-satunya kegagalan instalasi paling umum, dan ia muncul sebagai kesalahan versi class yang membingungkan, bukan pesan yang jelas.
Perintah Dasar APKTool
Empat perintah mencakup tugas APKTool umum: mendekode paket, membangun proyek, menginstal resource framework, dan membersihkan file framework; memahami apa yang diubah tiap perintah membantu Anda memilih langkah yang tepat ketika build atau decode gagal di tengah proyek di komputer Anda.
apktool d (Decode)
apktool d app.apk -o app-folder mendekode ke folder dengan nama tertentu. Tambahkan -s untuk menjaga classes.dex asli tetap tidak didekode ketika Anda hanya memerlukan resource, yang jauh lebih cepat pada aplikasi besar.
apktool b (Build)
apktool b app-folder membangun ulang dan menulis app-folder/dist/app.apk. Build membaca apktool.yml untuk pengaturan pengemasan, sehingga keluarannya berperilaku seperti arsip asli, bukan rezip generik.
apktool if (Install Framework)
apktool if framework.apk menginstal file framework, yang diperlukan sebelum mendekode aplikasi sistem yang mereferensikan framework vendor. Tanpanya, decode paket sistem langsung gagal dengan kesalahan framework hilang.
apktool empty-framework-dir
Membersihkan file framework yang di-cache ketika sebuah decode mulai gagal setelah pembaruan APKTool. Jalankan sekali ketika kesalahan menyebut ID framework yang tidak pernah Anda instal.
Referensi Perintah Cepat
Set lengkap yang akan Anda ketikkan, dikelompokkan per tahap:
# decode
apktool d app.apk -o work # decode into ./work
apktool d app.apk -s -o res-only # resources only, faster
apktool if framework.apk # install a framework first
# build
apktool b work # build to work/dist/
apktool b work -o out/app.apk # build to a chosen path
# maintenance
apktool empty-framework-dir # clear stale frameworks
apktool --version # confirm what is installed
Simpan blok ini di riwayat shell Anda atau di file catatan. Hampir setiap sesi dengan alat ini memakai tiga dari tujuh baris ini.
Cara Membongkar dengan APKTool
Jalankan apktool d app.apk untuk membuat folder proyek berisi Smali, resource, manifest yang sudah didekode, dan apktool.yml; periksa keluaran itu dulu untuk memahami tata letak paket dan menemukan file yang relevan dengan perubahan yang Anda rencanakan sebelum mengedit apa pun.
Flag Decode yang Berguna
-o name menamai folder keluaran, -s menjaga classes.dex apa adanya ketika Anda hanya memerlukan resource, dan -f menimpa folder yang sudah ada tanpa konfirmasi. Decode resource-saja dengan -s selesai beberapa kali lebih cepat pada paket besar, dan itu penting ketika Anda iterasi.
Struktur Folder
smali/ menyimpan kode hasil decompile, satu folder per DEX ketika paketnya multidex. res/ menyimpan resource yang didekode, AndroidManifest.xml berada di tingkat atas, dan apktool.yml mencatat metadata pengemasan. original/ menyimpan bagian arsip yang tidak tersentuh.
Baca Manifest
Izin, activity, service, dan versi SDK semuanya berada dalam XML biasa di sini. Ini cara tercepat memahami apa yang dilakukan sebuah aplikasi sebelum memutuskan apakah menyentuhnya sama sekali.
Baca Smali
Smali adalah bentuk assembly yang terbaca dari bytecode Dalvik. Badan metode tampil sebagai daftar instruksi, konstanta string tampil sebagai baris const-string, dan kondisi tampil sebagai lompatan bersyarat. Cari string yang terlihat dulu: itu mengarahkan Anda ke metode yang tepat dengan cepat.
Sesi Decode Sebagai Referensi
apktool d app.apk -o app-decode
cd app-decode
grep -rn "Remove Ads" res/values/strings.xml
grep -rn "isPremium" smali*/ | head -20
Dua grep menjawab dua pertanyaan yang membuat orang membuka sebuah decode: di mana teks yang terlihat berada, dan di mana flag di baliknya diperiksa. Pada game 60 MB, seluruh pemeriksaan ini memakan waktu kurang dari satu menit setelah decode selesai.
Cara Mengedit dengan APKTool
Lakukan satu perubahan per siklus build agar kegagalan bisa ditelusuri ke editan tertentu; file Smali berupa teks dan resource berupa XML atau gambar yang sudah didekode, tetapi setiap format punya batasan yang diperiksa proses build ulang sebelum menghasilkan APK.
Edit AndroidManifest.xml
Ubah izin, activity launcher, atau label aplikasi langsung di XML. Jaga file tetap well-formed: satu tag yang nyasar gagal saat build dengan kesalahan yang menyebut barisnya, dan itu lebih murah untuk ditangkap daripada crash saat runtime.
Edit Kode Smali
Ubah sebuah perbandingan, balikkan nilai return, atau lewati satu cabang. Jaga jumlah register tetap utuh: menambahkan satu register ke sebuah metode berarti memperbaiki setiap instruksinya, dan itu persis jenis perubahan yang terlihat benar tetapi crash dalam praktiknya.
Dua edit hampir selalu aman: mengubah nilai langsung const/4, dan mengganti satu lompatan bersyarat dengan kebalikannya. Keduanya menjaga bentuk register metode tetap tidak tersentuh.
Edit Resource
res/values/strings.xml menyimpan string hasil decode, dan res/values/ menyimpan angka serta warna. Ini kategori edit paling aman: nilai yang salah terlihat salah, dan jarang menimbulkan crash pada aplikasi.
Simpan Decode yang Masih Murni
Salin folder decode sebelum edit pertama Anda. Ketika build ulang crash, diff -r pristine edited mencetak persis apa yang berubah, dan diff itu lebih cepat direviu daripada ingatan Anda tentang apa yang Anda sentuh dua puluh menit lalu.
Cara Recompile dengan APKTool
apktool b app-folder membangun ulang proyek yang sudah didekode menjadi APK, dan keluaran konsolnya mengidentifikasi apakah operasi berhasil atau berhenti pada kesalahan resource atau Smali; baca kegagalan pertama yang dilaporkan sebelum mengubah file atau menjalankan langkah penandatanganan.
Flag Build yang Berguna
-o path menulis keluaran ke lokasi tertentu, dan -f menimpa tanpa konfirmasi. Kegagalan build hanya mencetak file yang bermasalah pertama, jadi perbaiki, build ulang, dan ulangi, alih-alih mencoba menalar daftar yang berhenti di kesalahan pertama.
Kesalahan Build Umum
Kesalahan sintaks Smali menyebut file dan barisnya. Konflik resource menyebut entri duplikatnya. File yang hilang berarti editan Anda menghapus sesuatu yang masih direferensikan manifest. Perbaiki file yang disebut, build ulang, dan jangan pernah menandatangani build yang gagal.
Panduan recompile membahas setiap kesalahan secara detail lengkap dengan pesan persis yang perlu dicocokkan.
Cara Menandatangani Keluaran APKTool
APKTool membangun ulang arsip tetapi tidak menerapkan kunci penandatanganan; gunakan apksigner dari Android build tools setelahnya, lalu verifikasi tanda tangan yang dihasilkan sebelum mencoba instalasi di perangkat yang Anda kendalikan untuk menguji paket dan perubahannya dengan aman secara offline.
Satu kebiasaan yang layak dibentuk: tanda tangani dan verifikasi dalam satu tarikan napas. apksigner verify tepat setelah penandatanganan menangkap keystore yang diam-diam tidak diterapkan, yang jika tidak justru muncul sebagai kegagalan instalasi dua langkah kemudian dengan pesan yang kurang membantu.
Memakai APKTool dengan Framework
Beberapa APK sistem mereferensikan resource framework bersama yang tidak terkandung dalam paket; instal framework yang cocok dengan apktool if framework-res.apk sebelum mendekode atau membangun ulang, dan gunakan file dari build Android yang sama bila mungkin untuk menghindari ketidakcocokan resource.
File framework menumpuk antar proyek dan sesekali menjadi basi setelah peningkatan APKTool. apktool empty-framework-dir membersihkannya, dan itu hal pertama yang perlu dicoba ketika kesalahan decode mulai menyebut ID framework yang tidak pernah Anda instal secara sengaja.
Satu Putaran Penuh
Urutan perintah ini mencakup ekstraksi, decode, edit, build ulang, penandatanganan, verifikasi, dan instalasi secara berurutan; mulai dari APK yang disalin dan biarkan proyek asli tidak tersentuh agar Anda bisa membandingkan atau mengembalikannya jika sebuah edit gagal di tahap mana pun dalam alur kerja.
adb shell pm path com.example.app
adb pull /data/app/.../base.apk original.apk
apktool d original.apk -o work
# ...edit one file inside work/...
apktool b work
apksigner sign --ks my.keystore work/dist/original.apk
apksigner verify --print-certs work/dist/original.apk
adb uninstall com.example.app
adb install work/dist/original.apk
Waktu pada aplikasi berukuran sedang: decode memakan 20 hingga 60 detik, edit memakan waktu selama pencarian berlangsung, dan build ulang berjalan dalam sekitar 10 detik. Langkah instalasi adalah titik di mana aplikasi asli menghilang, itulah mengapa setiap langkah sebelumnya dijalankan terhadap salinan.
Kesalahan APKTool Umum
Kegagalan decode, referensi framework yang hilang, konflik resource, dan kesalahan sintaks Smali adalah masalah APKTool yang umum; file atau path yang dilaporkan biasanya mengidentifikasi tahap yang gagal, jadi periksa detail itu sebelum mengubah perintah atau file proyek Anda di disk untuk mencoba ulang.
Java Tidak Ditemukan atau Versi Salah
Wrapper tidak dapat menjangkau runtime Java 11+. Instal satu, konfirmasi dengan java -version, dan pastikan pemanggilan java pada wrapper menunjuk ke instalasi yang tepat jika Anda punya beberapa.
Framework Hilang
Mendekode paket sistem tanpa framework-nya terinstal. Jalankan apktool if framework.apk, atau biarkan APKTool mengambil framework dari perangkat yang tersambung, lalu decode lagi.
Build Gagal di Smali
Kesalahan sintaks pada file yang diedit. Kesalahan menyebut file dan barisnya: buka, bandingkan dengan decode murni Anda, dan perbaiki instruksi yang Anda ubah. Biner yang tidak didekode dan lolos utuh lewat editor Anda adalah penyebab umum lainnya.
Konflik ID Resource
Dua nilai mengklaim ID yang sama, biasanya setelah menggabungkan file resource dari build yang berbeda. Hapus duplikatnya, atau build ulang dari decode baru dan terapkan kembali editan Anda satu per satu.
APKTool vs Alat Lain
APKTool, JADX, MT Manager, dan APK Editor berbeda dalam platform, keterbacaan kode, dukungan build ulang, dan otomasi; bandingkan kemampuan di bawah ini dengan pekerjaan yang perlu Anda lakukan, karena setiap alat punya peran berbeda dalam alur kerja APK dari inspeksi hingga build ulang.
| Tugas | APKTool | MT Manager | APK Editor | JADX |
|---|---|---|---|---|
| Platform | Komputer | Ponsel | Ponsel | Komputer |
| Decode ke kode terbaca | Smali | Smali | Tidak | Java |
| Kemampuan build ulang | Ya | Ya | Ya | Tidak |
| Tanda tangan keluaran | Tidak | Ya | Ya | Tidak |
| Skrip dan version control | Ya | Tidak | Tidak | Tidak |
| Terbaik untuk | Proyek mendalam | Edit ponsel cepat | Formulir resource | Membaca kode |
APKTool berpasangan alami dengan JADX, yang dibahas dalam panduan decompile, untuk membaca, dan dengan MT Manager untuk pemeriksaan cepat di perangkat.
Memilih di Antara Mereka dalam Praktik
Mulai dari posisi Anda: di ponsel dengan satu nilai yang perlu diubah, MT Manager lebih dulu selesai. Di komputer dengan perubahan manifest atau string, formulir APK Editor lebih cepat daripada Smali. Ketika perubahan membentang lintas file, memerlukan diff, atau harus diulang lintas build, APKTool adalah satu-satunya dari ketiganya yang berskala.
Posisi APKTool dalam Alur Kerja yang Lebih Luas
APKTool menangani tahap decode-dan-build-ulang di antara mendapatkan APK dan menginstalnya; ekstraksi menyediakan file-nya, penandatanganan menyiapkan paket hasil build, dan instalasi menempatkannya di perangkat, jadi ikuti panduan yang ditautkan dalam urutan itu saat diperlukan.
Tarik file sumber dengan panduan ekstraksi, dekode dengan perintah di atas, lalu serahkan keluaran hasil build ke langkah penandatanganan ketika build-nya kembali bersih.
Decode paket pertama Anda dengan apktool d, buka manifest-nya, dan baca sebelum mengubah apa pun. Ketika Anda siap membangun ulang, panduan recompile dan panduan penandatanganan melanjutkan persis dari titik panduan ini berhenti.
Poin penting
- apktool d mendekode, apktool b membangun ulang, apksigner menandatangani. APKTool tidak pernah menandatangani.
- Simpan folder decode yang masih murni; diff terhadapnya adalah cara Anda men-debug crash.
- Aplikasi sistem memerlukan file framework yang diinstal dulu dengan apktool if.
Pertanyaan umum
Apa itu APKTool?
APKTool adalah alat baris perintah yang mendekode APK menjadi file Smali dan resource, membiarkan Anda mengeditnya, lalu membangun ulang paket yang berfungsi. Ia adalah standar untuk edit mendalam, framework aplikasi sistem, dan build yang bisa diulang di Windows, Mac, dan Linux.
Bagaimana cara menginstal APKTool?
Unduh jar dari halaman rilis resmi GitHub, letakkan di PATH Anda sebagai apktool.jar, dan instal runtime Java 11 atau lebih baru. Di Windows bungkus dalam file .bat kecil; di Mac dan Linux buat wrapper-nya bisa dieksekusi.
Bagaimana cara decompile dengan APKTool?
Jalankan apktool d app.apk untuk mendekode ke folder berisi Smali, resource, AndroidManifest.xml, dan apktool.yml. Edit file di folder itu, lalu build ulang dengan apktool b terhadap nama folder yang sama. Simpan decode yang masih murni untuk perbandingan.
Bagaimana cara recompile dengan APKTool?
Jalankan apktool b app-folder dan paket hasil build mendarat di app-folder/dist/. Kesalahan menyebut file yang gagal: perbaiki Smali atau resource yang dilaporkannya, build ulang lagi, dan jangan lanjut ke penandatanganan sampai build-nya bersih.
Bagaimana cara menandatangani dengan APKTool?
APKTool tidak menandatangani keluarannya. Gunakan apksigner dengan keystore Anda, misalnya apksigner sign --ks my.keystore app.apk, lalu jalankan apksigner verify sebelum instalasi. Simpan kuncinya dalam cadangan, dan jangan mendistribusikan build uji tanpa mengonfirmasi tanda tangannya.
Apa itu apktool.yml?
apktool.yml menyimpan metadata decode: versi APK, pengaturan kompresi, SDK minimum, dan referensi framework. File inilah yang memungkinkan apktool b merekonstruksi perilaku pengemasan asli, jadi jangan menghapus atau mengeditnya sembarangan. Anggap sebagai read-only.
Mengapa APKTool gagal?
Sebagian besar kegagalan adalah file framework yang hilang untuk aplikasi sistem, kesalahan sintaks pada Smali yang diedit, atau konflik resource. Kesalahan menyebut file-nya: framework butuh apktool if, Smali butuh perbaikan, resource butuh konflik yang dihapus. Perbaiki satu hal per siklus.
Apakah APKTool butuh root?
Tidak. Ia bekerja pada file di komputer Anda, dan APK yang Anda berikan bisa ditarik dari ponsel lewat ADB tanpa root. Root tidak relevan dengan siklus decode-edit-build ulang itu sendiri. Akun pengguna biasa sudah cukup untuk seluruhnya.
Apakah APKTool legal?
Aturan untuk mendekode sebuah paket berbeda menurut yurisdiksi, tujuan, dan lisensi, termasuk sejumlah pengecualian riset atau interoperabilitas. Membobol aplikasi berbayar, mendistribusikan paket hasil build ulang, atau mengubah klien live-service bisa menimbulkan isu hak cipta, kontrak, atau akun. Periksa hukum setempat dan ketentuan aplikasinya.
Apa bedanya APKTool dan MT Manager?
APKTool berjalan di komputer, mendekode proyek penuh, dan mendukung skrip serta version control. MT Manager berjalan di ponsel dan cocok untuk edit perorangan. Pilih APKTool untuk pekerjaan desktop yang bisa diulang dan MT Manager untuk tugas di perangkat; keduanya bisa berguna dalam satu alur kerja.
Bisakah APKTool memodifikasi game?
Ia bisa mengubah apa pun di file, termasuk kode gameplay dalam Smali, tetapi game online memvalidasi di sisi server dan men-ban klien yang dimodifikasi. Untuk judul offline ia bekerja baik, asalkan perubahan bertahan setelah build ulang dan uji di perangkat nyata. Uji offline dulu.
Bagaimana cara memperbarui APKTool?
Unduh jar dari halaman rilis resmi GitHub, ganti versi lama, dan bersihkan file framework yang basi dengan apktool empty-framework-dir jika decode gagal setelah pembaruan. Konfirmasi versi terinstal dengan apktool --version sebelum membuka proyek Anda.
Cara Memodifikasi APK (Game): Metode, Alat, dan Risiko (2026)