Panduan APK modding

Cara Mengompilasi Ulang APK Setelah Modding (Panduan 2026)

Pelajari cara mengompilasi ulang file APK dengan APKTool setelah mengedit Smali, resource, atau manifes. Perbaiki galat, tanda tangani, dan pasang.

Daftar isi

Mengompilasi ulang APK berarti membangun kembali folder decode yang telah diedit menjadi paket terpasang, biasanya dengan apktool b, diikuti penandatanganan dengan kunci Anda sendiri. Decode dengan APKTool, ubah satu file, rebuild, perbaiki galat apa pun yang disebutnya, tanda tangani, lalu pasang di perangkat uji. Kompilasi ulang hanya salinan aplikasi milik Anda, dan rahasiakan setiap hasilnya.

Bagian dari hub modding: Cara Mod APK · Baca dulu: Decompile APK · Selanjutnya tanda tangan: Tanda Tangani APK.

Oleh Abdul Emam, penguji APK di ApkZena. Rebuild pertama saya gagal karena satu string terhapus: manifes masih mereferensikannya, aapt menyebut tepat entri yang hilang, dan mengembalikan satu baris memperbaiki build. Pesan galat adalah debugger. Bacalah terlebih dahulu.

Panduan ini membahas apa arti kompilasi ulang, pemeriksaan sebelum build, jalur APKTool dan Android Studio, empat keluarga galat, penandatanganan, pemasangan, dan paket yang menolak rebuild. Setiap perbaikan menyebut pesan persis yang perlu dicocokkan.

Apa Arti Mengompilasi Ulang APK?

Mengompilasi ulang merakit Smali, resource, dan file manifes yang telah diedit menjadi APK rebuild, membalik langkah decode tanpa memulihkan tanda tangan pengembang; tanda tangani hasilnya secara terpisah, dan perhitungkan ketidakcocokan tanda tangan sebelum memasangnya menimpa aplikasi yang ada di perangkat Anda.

Kapan Anda Membutuhkannya

Setelah siklus decode-dan-edit apa pun: Smali yang diubah, resource yang diganti, atau manifes yang dimodifikasi semuanya berakhir di sini. Membaca dengan JADX tidak pernah butuh langkah ini, karena JADX tidak menghasilkan output yang bisa dibangun. Jika Anda mengedit file, kompilasi ulang; jika hanya membaca, berhentilah.

Sebelum Mengompilasi Ulang

Sebelum membangun, pastikan folder decode sudah lengkap, setiap edit tersimpan, dan Anda tahu file mana yang berubah; pemeriksaan ini menangkap resource hilang dan edit basi lebih awal, sementara diff terhadap hasil decode yang belum disentuh membantu mengisolasi masalah sebelum kompilasi.

Periksa Struktur Folder

Pastikan smali/, res/, AndroidManifest.xml, dan apktool.yml semuanya ada dari alur decompile. Folder tanpa apktool.yml dibangun ulang dengan pengaturan pengemasan yang salah, dan folder tanpa res/ gagal pada referensi resource pertama.

Simpan Setiap Edit

Tutup atau simpan setiap file yang diedit di editor Anda sebelum menjalankan build. Perubahan Smali yang belum disimpan sederhananya tidak ada bagi kompiler, dan kebingungan yang dihasilkan, ketika build mengabaikan perbaikan Anda, membuang lebih banyak waktu daripada menyimpan.

Ketahui Perubahan Terakhir Anda

Catat apa yang Anda ubah sejak build terakhir yang berhasil. Saat kompiler menyebut sebuah file, Anda langsung tahu apakah itu milik Anda atau kerusakan bawaan, yang menentukan antara memperbaiki atau memulai dari awal.

Cara Mengompilasi Ulang dengan APKTool

Jalankan perintah build APKTool pada proyek hasil decode, lalu baca output-nya dan tangani file atau resource yang dilaporkan; ulangi setelah setiap koreksi agar Anda bisa mengisolasi kegagalan alih-alih mengubah banyak bagian proyek sekaligus selama build. Referensi CLI APKTool mendokumentasikan opsi build.

Langkah 1: Jalankan apktool b

apktool b app-decode

Perintah ini membaca apktool.yml untuk aturan pengemasan dan merakit Smali kembali menjadi DEX. Referensi flag lengkap ada di panduan APKTool, termasuk jalur output dan opsi timpa.

Langkah 2: Temukan Output

Build bersih menulis app-decode/dist/app.apk. Jika dist/ kosong atau hilang, build gagal sekalipun baris terakhir tampak jinak, jadi anggap file yang hilang sebagai sinyal galat dan gulir ke atas untuk mencari penyebab yang disebut.

Langkah 3: Baca Galat Build

APKTool melaporkan kegagalan pertama lalu berhenti, menyebut file dan sering kali barisnya. Perbaiki satu masalah itu lalu rebuild: galat berikutnya mungkin akibat dari yang pertama, dan memperbaikinya tidak berurutan melipatgandakan pekerjaan.

Langkah 4: Konfirmasi Build Bersih

Build ulang hingga file output muncul dengan stempel waktu baru dan tanpa baris galat di atasnya. Baru lanjut ke penandatanganan. Build dengan peringatan tetapi tanpa galat bisa diterima; build dengan galat tidak pernah bisa dipasang.

Cara Mengompilasi Ulang dengan Android Studio

Android Studio membangun dari proyek sumber alih-alih folder APK hasil decode, jadi gunakan jalur ini bila Anda memegang proyek Gradle asli atau rekonstruksi yang bisa dibangun; konfigurasikan penandatanganan rilis sebelum menghasilkan artefak terpasang untuk pengujian atau distribusi pada perangkat target.

Merakit Build Rilis

./gradlew assembleRelease

Output mendarat di bawah app/build/outputs/apk/release/. Konfigurasikan signingConfigs dengan keystore Anda terlebih dahulu, atau tugas ini menghasilkan artefak belum ditandatangani yang tetap butuh apksigner setelahnya.

Kapan Jalur Ini Cocok

Anda memelihara aplikasi, Anda merekonstruksi proyek yang bisa dibangun, atau output decode diimpor sebagai titik awal. Untuk modding APK murni dari paket toko, APKTool tetap jalur langsung dan jalur ini jarang berlaku.

Cara Memperbaiki Galat Recompile Umum

Resource hilang, galat sintaksis Smali, masalah manifes, dan ID resource berkonflik adalah penyebab umum build gagal; cocokkan pesan kompiler dengan file yang disebut, lalu perbaiki masalah itu sebelum menjalankan ulang build dari folder proyek hasil decode di komputer Anda.

Resource Hilang

Galat aapt menyebut drawable, string, atau layout yang tidak ada. Kembalikan dari folder decode murni Anda, atau hapus referensi yang menunjuk ke sana jika penghapusan memang disengaja. Simpan salinan murni tepat agar pemulihan ini memakan waktu hitungan detik.

Galat Sintaksis Smali

Instruksi salah ketik, nama register buruk, atau direktif tak seimbang menghentikan assembler pada baris yang disebut. Buka file, bandingkan dengan versi murni, dan betulkan tepat barisnya. Jangan pernah menulis ulang kode sekitar saat memperbaiki sintaksis.

Galat Manifes

Tag tak tertutup, atribut duplikat, atau activity yang diganti namanya dan tak lagi ada menggagalkan build atau membuat aplikasi crash saat dibuka. Validasi dulu struktur XML-nya, lalu periksa bahwa setiap komponen yang direferensikan masih ada di paket.

Resource Berkonflik

Dua entri mengklaim satu ID, biasanya setelah menggabungkan file dari build berbeda atau menduplikasi blok nilai. Hapus duplikatnya dan pertahankan yang asli, lalu rebuild dari decode baru jika konflik berasal dari edit yang tak bisa Anda lacak.

Kebiasaan Decode Murni

Simpan satu folder decode yang belum disentuh di samping setiap folder kerja. Saat galat menyebut file yang nyaris tak Anda ingat pernah mengeditnya, diff kedua folder dan jawabannya muncul dalam hitungan detik. Kebiasaan ini terbayar lunas saat pertama build gagal di Jumat malam.

Daftar Periksa Recompile Sebelum Penandatanganan

Setelah build bersih, periksa jalur output, stempel waktu, ukuran file, file yang diubah, dan kunci tanda tangan sebelum memasang; pemeriksaan ini menangkap output yang tak lengkap atau tak disengaja selagi decode murni tetap tersedia untuk perbandingan dengan APK rebuild yang tersimpan di disk.

Lima Konfirmasi Cepat

  • File output ada di bawah dist/ dengan stempel waktu baru.
  • Tidak ada baris galat di atas pesan sukses.
  • Ukuran file mendekati paket asli, bukan mendekati nol.
  • Hanya file yang memang Anda niatkan yang berbeda dari decode murni.
  • Keystore Anda sama dengan yang lalu, siap menandatangani.

Cara Menandatangani APK Hasil Recompile

Output APKTool butuh langkah penandatanganan terpisah sebelum Android bisa memasangnya; gunakan apksigner dengan keystore yang Anda kuasai, verifikasi sertifikatnya, dan pertahankan kunci yang sama bila build uji berikutnya ingin saling memperbarui di perangkat.

Penyiapan keystore lengkap, pemilihan skema, dan katalog galat ada di panduan penandatanganan. Tanda tangani dan verifikasi dalam satu gerakan agar tanda tangan yang terlewat diam-diam langsung ketahuan.

Cara Memasang APK Hasil Recompile

Jika paket rebuild Anda membawa tanda tangan berbeda dari aplikasi terpasang, Android akan menolaknya sebagai pembaruan; cadangkan data lokal sebelum menghapus instalan, pasang output yang telah ditandatangani, dan uji perubahan yang dimaksud sebelum mengandalkan aplikasi untuk pemakaian sehari-hari.

Panduan instalasi kami membahas prompt sumber tak dikenal dan galat yang paling mungkin pada langkah ini. Konfirmasikan sinkronisasi cloud sebelum menghapus instalan apa pun yang menyimpan progres yang Anda pedulikan.

Mengapa Sebagian APK Tidak Bisa Direcompile

Sebagian APK menolak rebuild yang berguna karena pemeriksaan anti-utak-atik, resource terenkripsi, atau dependensi kode native; kenali batasan itu selama inspeksi, karena decode yang berhasil saja tidak berarti paket yang diedit akan berjalan seperti diharapkan di perangkat asli.

Proteksi Anti-Utak-Atik

Pemeriksaan tanda tangan saat startup dan verifikasi integritas mendeteksi sertifikat baru Anda dan menolak berjalan. Mengalahkan pemeriksaan ini adalah proyek terpisah yang lebih dalam, dan bagi kebanyakan pembelajar respons yang benar adalah mempelajari aplikasi dan membiarkannya tak dimodifikasi.

Resource Terenkripsi

Aset yang terdecode sebagai ciphertext butuh kunci yang hidup di kode atau pustaka native. Tanpanya rebuild membawa konten rusak, dan dengannya Anda memulai misi sampingan kriptanalisis. Anggap wilayah terenkripsi sebagai batas, bukan target.

Dependensi Kode Native

Fitur yang diimplementasikan dalam file lib/*.so dibangun ulang identik byte karena Anda tak bisa mengeditnya, yang baik-baik saja sampai perubahan Smali Anda bertentangan dengan yang diharapkan sisi native. Antarmuka yang tak cocok crash di perbatasan dengan galat yang menyebut tak satu pun sisi dengan jelas.

Mulailah dari decode bersih dengan panduan decompile, ubah satu file, dan rebuild sebelum menyentuh apa pun. Saat build kembali bersih, panduan penandatanganan menyelesaikan pekerjaan.

Poin penting

  • Mengompilasi ulang mengubah folder decode yang telah diedit kembali menjadi APK terpasang dengan apktool b.
  • Perbaiki file persis yang disebut setiap galat build, satu edit per siklus, dan jangan pernah menandatangani build yang gagal.
  • Tanda tangani setiap rebuild, hapus instalan aslinya, dan uji luring di perangkat kedua.

Pertanyaan umum

Bagaimana cara mengompilasi ulang APK?

Jalankan apktool b pada folder hasil decode APKTool, lalu temukan paket rebuild di dalam folder itu pada dist/. Perbaiki setiap galat build yang dilaporkannya sebelum menandatangani, karena build yang rusak atau belum ditandatangani tidak akan pernah terpasang. Tanda tangani output yang bersih dan uji di perangkat kedua.

Apa fungsi apktool b?

Ia membangun ulang folder hasil decode menjadi APK terpasang, membaca instruksi pengemasan dari apktool.yml. Perintah ini menerima nama folder sebagai argumennya dan menulis hasilnya ke dist/. Eksekusi yang berhasil mencetak jalur output; yang gagal menyebut file pemicunya.

Mengapa kompilasi ulang gagal?

Kebanyakan kegagalan adalah selip sintaksis Smali, resource hilang yang terhapus oleh edit Anda, XML manifes yang tak lagi terurai, atau dua nilai yang mengklaim satu ID resource. Galat menyebut file dan baris pelanggarnya, jadi perbaiki tepat di situ, build ulang, dan ubah satu hal per siklus.

Bagaimana memperbaiki resource hilang setelah mengedit?

Bandingkan folder edit Anda dengan hasil decode murni lalu kembalikan entri yang terhapus, atau hapus referensi yang menunjuk ke sana. Drawable, string, dan file layout yang hilang masing-masing menghasilkan galat aapt berbeda yang menyebut file yang tidak ada. Jangan pernah membuat pengganti manual selagi yang asli masih ada.

Apakah saya perlu menandatangani setelah mengompilasi ulang?

Ya. APKTool membiarkan output rebuild-nya belum ditandatangani, jadi tanda tangani dengan apksigner dan keystore sebelum pemasangan. Verifikasi sertifikatnya, lalu periksa apakah aplikasi terpasang memakai kunci berbeda; jika ya, Android akan menolak pembaruan dan Anda mungkin perlu menghapus instalan dulu.

Bisakah saya mengompilasi ulang APK apa pun?

Hampir semua paket bisa didecode dan dibangun ulang, tetapi pemeriksaan anti-utak-atik, resource terenkripsi, dan dependensi kode native bisa membuat hasilnya crash atau menolak berjalan. Game online menambah validasi sisi server. Anggap keberhasilan rebuild sebagai langkah satu dan uji perangkat yang lolos sebagai vonis sebenarnya.

Apa itu Smali dalam kompilasi ulang?

Smali adalah bentuk setingkat rakitan dari bytecode Dalvik yang dihasilkan APKTool saat mendecode classes.dex. Anda mengeditnya sebagai teks, dan apktool b merakitnya kembali menjadi file DEX selama rebuild. Jaga jumlah register tetap utuh atau metode hasil rebuild akan crash.

Bagaimana menguji APK hasil kompilasi ulang?

Tanda tangani, hapus instalan aslinya, pasang build Anda di perangkat kedua, dan luncurkan luring terlebih dahulu. Periksa tepat perilaku yang Anda ubah, mulai ulang aplikasi, dan pastikan edit bertahan. Jika crash saat dibuka, perubahan Anda ada di kode startup dan perlu dikembalikan.

Bagian dari panduan lengkap

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

Juga dalam APK modding: