Panduan APK modding

Cara Membongkar APK (Panduan Pengembang 2026)

Pelajari cara membongkar berkas APK dengan JADX, APKTool, dan JEB. Baca kode DEX, sumber daya, dan manifes. Mulai dari sini.

Daftar isi

Membongkar APK berarti mengubah kode terkompilasinya kembali ke bentuk yang bisa dibaca: kode sumber Java dengan JADX, atau perakitan Smali plus sumber daya terode dengan APKTool. JADX dipakai untuk memahami apa yang dilakukan sebuah aplikasi, sementara APKTool dipakai untuk menghasilkan berkas yang bisa Anda edit dan bangun ulang. Bongkar hanya salinan aplikasi yang Anda miliki, dan simpan hasilnya di mesin Anda sendiri.

Bagian dari hub modding: Cara Memod APK · Langkah berikutnya: Membangun Ulang APK · Perintah: Panduan APKTool.

Oleh Abdul Emam, penguji APK di ApkZena. Pengodean pertama saya mengajarkan urutan tindakan: saya membuka sebuah game 92 MB di JADX, mencari teks yang terlihat dari fitur yang terkunci, dan menemukan metode penguncinya dalam waktu kurang dari dua menit. Membaca terlebih dahulu menyelamatkan saya dari menambal berkas yang salah. Baca dulu. Edit kemudian.

Panduan ini membahas arti pembongkaran, tiga alat yang layak diketahui, cara membaca manifes dan Smali, masalah-masalah yang akan Anda temui, dan batas hukumnya. Setiap bagian menunjuk ke panduan membangun ulang dan penandatanganan ketika pembacaan berubah menjadi pengeditan.

Apa Arti Membongkar APK?

Pembongkaran mengubah classes.dex yang terkompilasi menjadi kode sumber mirip Java yang bisa dibaca manusia melalui JADX, atau Smali melalui APKTool, tanpa mengubah berkas aslinya; jaga paketnya tetap utuh dan pelajari salinan yang sudah diode, karena keluaran dapat melewatkan nama serta informasi yang hilang selama kompilasi atau obfuskasi.

Definisi

Kompilasi mengubah kode sumber menjadi bytecode; pembongkaran membalik perjalanan itu sejauh formatnya memungkinkan. Keluaran Java terbaca hampir seperti program aslinya, sementara Smali mencerminkan bytecode instruksi demi instruksi. Keduanya tidak mereproduksi komentar, nama variabel asli setelah obfuskasi, atau skrip build.

Batas Hukum

Mempelajari salinan yang Anda miliki untuk belajar, tinjauan keamanan, atau interoperabilitas berada di tanah yang dapat dipertahankan di banyak yurisdiksi. Mendistribusikan keluaran hasil pengodean, melepas pemeriksaan lisensi, atau menerbitkan ulang kode pihak lain adalah pelanggaran. Aturan untuk panduan ini: dekode berkas Anda sendiri, simpan setiap hasil secara pribadi.

Kasus Penggunaan Umum

Memahami sebuah izin sebelum memberikannya, menemukan metode mana yang menegakkan timer, mengaudit apa yang dikirimkan aplikasi saat diluncurkan, dan mempelajari internal Android dari paket nyata. Semuanya dimulai dengan membaca dan berakhir sebelum modifikasi, yang menjaga pekerjaan tetap tegas dalam kategori studi.

Apa Isi di Dalam APK (Ringkasan)

Sebuah APK menyimpan kode terkompilasi di classes.dex, sumber daya di resources.arsc dan res/, AndroidManifest.xml, serta pustaka native di bawah lib/, dengan sertifikat penandatangan yang melindungi integritas paket; JADX dan APKTool dapat menyingkap beberapa komponen, sementara pustaka native memerlukan alat yang berbeda.

Alat 1: JADX (DEX ke Java)

JADX membuka sebuah APK dan menyajikan kode sumber mirip Java yang disusun ulang untuk Anda telusuri, cari, dan ekspor; ia membantu menjelaskan perilaku aplikasi sebelum pengeditan, sementara keluarannya tidak mereproduksi proyek kode sumber asli, nama variabel asli, atau konfigurasi build.

Memasang JADX

Unduh JADX dari repositori resminya dan jalankan peluncur grafis atau build baris perintah. Periksa repositori itu untuk kebutuhan runtime dan rilis terkini; hindari mirror pihak ketiga, dan gunakan dokumen resmi APKTool ketika Anda memerlukan sumber daya yang bisa diedit atau alur membangun ulang.

Membuka sebuah APK

Arahkan JADX ke salinan paket Anda dan tunggu pohonnya terisi. Game besar membutuhkan satu menit atau lebih saat dibuka pertama kali sementara setiap berkas DEX dikonversi. Simpan sesi hanya jika Anda berencana kembali ke paket yang sama berulang kali.

Membaca Java yang Sudah Dibongkar

Kelas muncul di bawah nama paketnya dengan metode dalam urutan kode sumber. Build yang diobfuskasi menampilkan nama satu huruf, tetapi alur kontrol, panggilan API, dan konstanta string terbaca dengan jelas. Ikuti apa yang dipanggil kode, bukan apa nama kode itu.

Mencari String dan Metode

Cari teks persis yang Anda lihat di antarmuka aplikasi: label tombol, pesan kesalahan, dan nama fitur membawa Anda langsung ke metode yang bertanggung jawab. Lalu gunakan referensi silang untuk melihat setiap pemanggil, yang menunjukkan seberapa luas sebuah nilai dipakai sebelum Anda mempertimbangkan untuk menyentuhnya.

Mengekspor Proyek

JADX dapat menyimpan seluruh kode sumber hasil pembongkaran ke disk untuk pencarian dengan alat lain. Ekspor ketika paketnya cukup besar sehingga pencarian di dalam aplikasi terasa lambat, atau ketika Anda ingin membandingkan dua versi aplikasi yang sama berdampingan.

Alat 2: APKTool (Sumber Daya ke XML dan Smali)

APKTool mengode sebuah APK menjadi folder berisi berkas Smali, sumber daya, dan manifes yang bisa dibaca untuk Anda edit dan bangun ulang; pilihlah ketika tugasnya memerlukan perubahan tingkat paket, sementara JADX biasanya lebih mudah untuk membaca kode mirip Java yang disusun ulang.

Mengode dengan Satu Perintah

Jalankan apktool d app.apk -o app-decode dari alur panduan APKTool. Folder yang ia buat berisi smali/, res/, AndroidManifest.xml, dan apktool.yml, dan tidak ada yang berubah di dalam paket aslinya.

Membaca AndroidManifest.xml

Izin, activity, service, dan rentang SDK muncul sebagai XML biasa. Berkas ini menjawab apakah sebuah aplikasi layak mendapat waktu Anda bahkan sebelum Anda membaca satu baris kode, jadi bukalah lebih dulu di setiap pengodean.

Membaca Kode Smali

Smali mencantumkan instruksi Dalvik satu per baris: const-string untuk teks, invoke-virtual untuk panggilan, lompatan bersyarat untuk percabangan. Tetapkan jangkar pada string yang diketahui, baca dua puluh baris di sekitarnya, dan logika keputusannya menampakkan diri.

Membaca Sumber Daya

String, warna, dan dimensi yang sudah diode berada di bawah res/values/. Tampilan teks dan nilai numerik bawaan hidup di sini alih-alih di dalam kode, yang menjadikan sumber daya tempat termurah untuk memastikan apa yang ditampilkan sebuah fitur kepada pengguna.

Alat 3: JEB (Decompiler Tingkat Lanjut)

JEB adalah alat rekayasa balik komersial dengan fitur analisis dan skrip untuk aplikasi kompleks; pertimbangkan ketika alat gratis tidak dapat menjawab pertanyaan riset tertentu, dan periksa fitur terkini, ketentuan lisensi, serta format berkas yang didukungnya sebelum memilihnya.

Kapan Menggunakan JEB

Analisis malware berbayar, aplikasi komersial yang dilindungi berat, dan pekerjaan reversing harian membenarkan lisensinya. Untuk belajar modding pada cadangan Anda sendiri, JADX plus APKTool sudah mencakup semuanya dengan biaya nol. Mulai dari yang gratis dan tinjau ulang hanya jika sebuah paket tertentu menolak keduanya.

Cara Membaca AndroidManifest.xml

Manifes mendeklarasikan identitas sebuah paket Android, kemampuan yang diminta, dan titik masuk komponen; periksa nama paket, deklarasi SDK, izin, dan komponen aplikasinya terlebih dahulu untuk memahami bagaimana aplikasi terintegrasi dengan sistem operasi dan meluncurkan activity saat awal mula.

Struktur

Nama paket di bagian atas, blok uses-sdk, deklarasi izin, lalu blok application berisi activity dan service. Pelajari urutan ini sekali dan setiap manifes yang pernah Anda buka terpindai dengan cara yang sama.

Izin

Setiap baris uses-permission memberikan satu kemampuan, dari getaran yang tidak berbahaya hingga akses SMS yang sensitif. Bandingkan daftarnya dengan apa yang sebenarnya dilakukan aplikasi: sebuah senter yang meminta kontak memberi tahu Anda lebih banyak daripada tinjauan kode mana pun.

Titik Masuk

Activity dengan filter intent peluncur adalah layar yang dilihat pengguna terlebih dahulu. Service dan receiver mengungkap perilaku latar belakang yang tidak pernah muncul di antarmuka, termasuk tugas terjadwal dan startup saat perangkat dinyalakan.

Versi SDK

minSdkVersion menetapkan Android tertua yang didukung aplikasi, sementara targetSdkVersion mendeklarasikan aturan perilaku mana yang ia ikuti. Keduanya penting ketika sebuah aplikasi hasil pengodean berperilaku berbeda di antara perangkat uji Anda.

Cara Membaca Kode Smali

Smali merepresentasikan bytecode Dalvik sebagai instruksi yang bisa dibaca, termasuk pemuatan register, panggilan metode, dan lompatan bersyarat; mempelajari bentuk-bentuk dasar itu membantu Anda mengikuti alur kontrol sebuah metode ketika Java hasil rekonstruksi tidak lengkap, diobfuskasi, atau menyesatkan selama inspeksi kode yang cermat terhadap sebuah aplikasi.

Apa Itu Smali

Smali adalah bahasa perakitan untuk bytecode Dalvik: satu instruksi per baris, register bernama v0 sampai vN, dan penanda label sebagai target lompatan. APKTool menghasilkannya, dan editor teks mana pun menampilkannya.

Instruksi Umum

const-string memuat teks, const/4 memuat angka kecil, invoke-* memanggil metode, dan lompatan bergaya if-eqz bercabang pada nilai nol atau null. Pengembalian mengakhiri metode dengan return-void atau varian yang membawa nilai. Kenali enam ini dan badan metode mulai bercerita sendiri.

Menemukan Metode

Cari string lebih dulu, nama kelas kedua, dan panggilan API ketiga. Sebuah metode yang memeriksa jam, membaca preferensi, atau membuka panggilan jaringan mengumumkan dirinya melalui API yang ia panggil, terlepas dari apa pun nama hasil obfukasi menggantinya.

Sesi Membaca Pertama

Pilih sebuah aplikasi offline kecil yang Anda miliki, dekodekannya, dan jawab tiga pertanyaan tanpa mengubah apa pun: izin apa saja yang ia deklarasikan, activity mana yang diluncurkan lebih dulu, dan di mana string fitur utamanya berada. Sesi itu mengajarkan seluruh alur kerja membaca dalam waktu sekitar lima belas menit dan menanamkan kebiasaan manifes-dulu.

Decode vs Decompile vs Disassemble

Decode berarti mengekstrak berkas dan sumber daya terstruktur dari sebuah paket; decompile berarti menyusun ulang kode mirip sumber dari bytecode; disassemble berarti menyajikan instruksi tingkat lebih rendah, dan label-label ini menggambarkan keluaran yang berbeda, jadi pilihlah alat berdasarkan apa yang perlu Anda periksa atau edit dalam sebuah proyek APK di perangkat Anda.

Mana yang Sedang Anda Lakukan

JADX mendekompilasi ke Java. APKTool mendekode ke Smali dan sumber daya, yang terbaca seperti disassembly dengan struktur. Mengetahui perbedaannya penting ketika tutorial orang lain berkata decompile tetapi langkah-langkahnya menampilkan APKTool: keluarannya berbeda, dan begitu pula apa yang bisa Anda lakukan selanjutnya.

Masalah Pembongkaran Umum

Nama yang diobfuskasi, pustaka native, sumber daya terenkripsi, dan pemeriksaan anti-tambal dapat membatasi apa yang diungkap sebuah decompiler; identifikasi rintangan mana yang berlaku sebelum mengganti alat, karena masing-masing memerlukan pendekatan yang berbeda dan beberapa perlindungan secara sengaja memblokir analisis atau modifikasi paket.

Kode Terobfuskasi

Nama satu huruf dan alur kontrol yang diratakan memperlambat pembacaan hingga merayap. Andalkan konstanta string dan panggilan API framework yang selamat, yang tidak bisa diganti nama oleh obfuscator tanpa merusak aplikasinya. Kesabaran mengalahkan alat di sini.

Pustaka Native

Kode di bawah lib/ tidak pernah menjadi Smali atau Java melalui alat-alat ini. Catat fitur mana yang melewati panggilan native, lalu putuskan apakah edit yang Anda bayangkan sama sekali dapat dijangkau dari lapisan yang bisa Anda ubah.

Sumber Daya Terenkripsi

Beberapa paket mengenkripsi string atau aset yang terdekode sebagai sampah. Kunci dekripsinya berada di dalam kode atau pustaka native, dan mengejarnya adalah proyek tersendiri. Perlakukan area terenkripsi sebagai batas hanya-baca untuk saat ini.

Perlindungan Anti-Tambal

Pemeriksaan tanda tangan saat startup, deteksi debugger, dan verifikasi integritas semuanya menghukum modifikasi, bukan pembacaan. Decompiling tetap bekerja untuk studi; membangun ulang memicu alarm. Hargai apa yang dilaporkan perlindungan itu tentang niat aplikasinya.

Aturan decompilation bervariasi menurut yurisdiksi dan tujuan, termasuk pengecualian untuk interoperabilitas atau riset keamanan; redistribusi, penghindaran lisensi, dan build yang dimodifikasi dapat menimbulkan masalah hukum dan kontrak terpisah, jadi konsultasikan hukum lokal dan ketentuan perangkat lunak yang relevan sebelum membagikan hasil secara publik.

Apa yang Tetap Aman

Dekode berkas yang Anda peroleh secara sah, simpan setiap keluaran di mesin Anda sendiri, dan gunakan temuan untuk memahami, bukan untuk menghindari kontrol pembayaran atau akses. Dokumentasikan apa yang Anda lakukan dan kapan, untuk jaga-jaga jika suatu saat ada pertanyaan.

Apa yang Melewati Batas

Menerbitkan kode sumber hasil pengodean, membagikan paket hasil rebuild, menghapus pemeriksaan pembelian, atau menjual modifikasi aplikasi pihak lain. Masing-masing ini mengubah studi menjadi pelanggaran dengan kerugian yang dapat diidentifikasi bagi pengembang.

Tarik paket Anda sendiri dengan panduan ekstraksi, buka di JADX, dan baca manifesnya sebelum apa pun lainnya. Ketika pemahaman berubah menjadi pengeditan, panduan membangun ulang dan panduan penandatanganan melanjutkan persis di titik panduan ini berhenti.

Poin penting

  • JADX mengubah DEX menjadi Java yang mudah dibaca untuk pemahaman; APKTool mengode Smali dan sumber daya untuk pengeditan.
  • Baca manifes terlebih dahulu, lalu cari string yang terlihat untuk menemukan kode yang penting.
  • Bongkar hanya salinan yang Anda miliki, simpan hasilnya secara pribadi, dan jangan pernah mendistribusikan paket hasil rebuild.

Pertanyaan umum

Bagaimana cara membongkar APK?

Buka paket di JADX untuk membaca kode Java, atau jalankan apktool d app.apk untuk mengode Smali dan sumber daya ke dalam sebuah folder. JADX menjawab apa yang dilakukan kode, sementara APKTool menghasilkan berkas yang bisa Anda edit dan bangun ulang. Pilih alat yang sesuai tujuan Anda: membaca atau mengubah.

Bisakah saya membongkar APK kembali ke Java?

Bisa, dengan JADX, yang mengubah bytecode DEX menjadi kode sumber Java yang bisa dibaca untuk sebagian besar aplikasi. Obfuskasi mengganti nama kelas dan metode, dan beberapa konstruksi tidak terbongkar dengan sempurna, jadi perlakukan keluarannya sebagai peta yang akurat, bukan kode sumber aslinya. Itu cukup untuk memahami perilaku.

Apa itu JADX?

JADX adalah decompiler gratis dan sumber terbuka yang mengubah berkas DEX Android menjadi kode sumber Java yang bisa Anda telusuri dan cari. Ia berjalan di Windows, Mac, dan Linux dengan antarmuka grafis serta mode baris perintah. Gunakannya ketika Anda ingin membaca kode sebelum memutuskan apa yang akan diubah.

Untuk apa APKTool dipakai dalam pembongkaran?

APKTool mengode APK menjadi perakitan Smali plus sumber daya yang sudah diode dan manifes, yang bisa Anda edit dan bangun ulang. Berbeda dengan JADX, keluarannya ditujukan untuk modifikasi, bukan pembacaan. Pilih APKTool ketika langkah berikutnya setelah memahami adalah mengubah sesuatu.

Apakah membongkar APK itu legal?

Membongkar salinan yang Anda miliki untuk studi pribadi, riset keamanan, atau interoperabilitas dapat dipertahankan di banyak yurisdiksi. Membobol aplikasi berbayar, melepas pemeriksaan lisensi, atau mendistribusikan paket hasil rebuild adalah pelanggaran. Simpan pekerjaan di perangkat Anda sendiri dan jangan pernah membagikan keluarannya.

Bisakah saya membongkar kode yang diobfuskasi?

Anda bisa mengodekannya, tetapi nama seperti a, b, dan c menggantikan setiap pengenal yang bermakna, yang membuat pembacaan menjadi lambat. Konstanta string dan panggilan API Android selamat dari obfuskasi, jadi carilah itu alih-alih nama metode. Aplikasi yang dilindungi berat juga bisa menolak pengodean sama sekali.

Bagaimana cara membaca kode Smali?

Bacalah sebagai perakitan dengan label: baris const-string menyimpan teks, baris invoke memanggil metode, dan lompatan bergaya if-eqz mengimplementasikan kondisi. Mulai dari string yang Anda kenali, lalu ikuti metode yang merujuknya. Dua puluh baris konteks biasanya mengungkap keputusan yang sedang dibuat.

Apa itu AndroidManifest.xml?

Manifes adalah kontrak aplikasi dengan Android: nama paket, izin, activity, service, dan versi SDK yang didukung. Manifes yang sudah diode terbaca sebagai XML biasa dan menunjukkan persis apa yang diminta aplikasi serta layar mana yang diluncurkan lebih dulu. Selalu bacalah sebelum menyentuh kode.

Bisakah saya membongkar pustaka native?

JADX dan APKTool berfokus pada kode DEX dan sumber daya APK; berkas di bawah lib/ berisi kode mesin native untuk sebuah arsitektur CPU. Alat-alat ini dapat mencantumkan pustaka native, sementara memahami instruksinya memerlukan disassembler native dan alur analisis yang berbeda.

Apa decompiler APK terbaik?

JADX terbaik untuk membaca kode sebagai Java, APKTool terbaik ketika Anda akan mengedit dan membangun ulang, dan JEB cocok untuk profesional yang membayar untuk analisis lebih dalam. Sebagian besar pembelajar hanya butuh dua yang pertama: baca dengan JADX, lalu dekode dengan APKTool ketika sebuah edit terjustifikasi.

Bagian dari panduan lengkap

Cara Memodifikasi APK (Game): Metode, Alat, dan Risiko (2026)

Juga dalam APK modding: