Cara Memperbaiki File APK yang Rusak dan Mengekstrak Aset
Anda telah menghabiskan waktu berjam-jam mengunduh bundel game berukuran 2 GB, namun browser Anda mengatakan "Pengunduhan Gagal" pada tingkat 99%, atau lebih buruk lagi, Android berteriak "Kesalahan Penguraian: Ada masalah saat mengurai paket.". APK yang rusak belum tentu file mati. Karena APK dibuat berdasarkan standar kompresi ZIP, APK sering kali dapat diperbaiki, setidaknya cukup untuk mengekstrak aset berharga di dalamnya.
Di bawah ini kami membahas apa yang sebenarnya rusak di dalam APK, alat perbaikan yang layak digunakan, dan bagaimana Konverter XAPK kami dapat membantu saat Anda menangani bundel yang rusak.
Anatomi Korupsi APK
APK pada dasarnya adalah arsip ZIP dengan struktur tertentu. Korupsi biasanya terjadi di salah satu dari tiga tempat berikut ini:
- Tajuk: Byte di awal file hilang atau berubah.
- Manifes (XML): AndroidManifest.xml salah format atau menggunakan pengkodean yang tidak didukung.
- Kode DEX: Bytecode Java/Kotlin yang sebenarnya terpotong, membuat aplikasi tidak dapat dijalankan.
Metode 1: Perbaikan ZIP Tanpa Kepala (Paling Mudah)
Jika file "dapat dibaca" tetapi tidak dapat dibuka, gunakan alat seperti Perbaikan ZIP DiskInternal (Gratis) atau perintah baris perintah zip -FF di Linux/macOS. Alat-alat ini memindai file untuk mencari "tanda tangan" file dan membangun kembali direktori pusat dari awal.
Kode untuk pengguna Terminal: zip -FF corrupt_app.apk --out fixed_app.apk
Metode 2: Memperbaiki Zipalign/Alignment
Terkadang APK "rusak" hanya karena tidak selaras dengan batas 4 byte. Manajemen memori Android memerlukan ini. Anda dapat memperbaikinya menggunakan alat zipalign dari Android SDK:
zipalign -v 4 input.apk output.apk
Peringatan Busuk Sedikit
Jika file DEX (kelas.dex) itu sendiri kehilangan data, perbaikan ZIP sebanyak apa pun tidak akan membuat aplikasi berfungsi. Dalam hal ini, satu-satunya tujuan Anda adalah mengekstrak Aset/Sumber Daya dan menemukan salinan aplikasi yang baru.
Bagaimana Mengenali Apa yang Sebenarnya Salah
Sebelum Anda memilih alat perbaikan, kenali kegagalannya. Pesan kesalahan yang ditampilkan Android (atau alat arsip Anda) biasanya merupakan petunjuk:
| Gejala yang Anda lihat | Apa maksudnya biasanya | Apa yang harus dicoba terlebih dahulu |
|---|---|---|
| "Parsing paket" gagal (Android) | Direktori pusat ZIP tidak dapat dibaca, atau versi manifes tidak cocok | Perbaikan header ZIP (Metode 1) |
| "Ada masalah saat mengurai paket" + APK sedikit lebih kecil dari yang diharapkan | Unduhan terpotong: beberapa KB terakhir tidak pernah sampai | Unduh ulang dari sumber yang sama; Perbaikan ZIP jika pengunduhan ulang tidak tersedia |
| 7-Zip / WinRAR membukanya tetapi melaporkan "kesalahan CRC" pada masing-masing file | File individual di dalam ZIP rusak | Ekstrak semua kecuali member yang rusak, lalu lihat apa yang hilang |
| "Aplikasi tidak diinstal" tanpa detail lebih lanjut | Seringkali masalah ketidakcocokan atau penyelarasan tanda tangan, bukan korupsi yang nyata | zipalign + pemeriksaan ulang tanda tangan (Metode 2) |
| Crash segera setelah instalasi dengan java.lang.VerifyError | Bytecode classes.dex rusak atau versinya tidak kompatibel | Tidak dapat dipulihkan dengan perbaikan. Dapatkan kembali salinan bersih. |
Walk-Through Beton
Bayangkan Anda mendapatkan APK berukuran 320 MB yang unduhannya terhenti sekitar 99%. Ponsel Anda menolak untuk menginstalnya dengan pesan "Parsing paket gagal." Berikut ini cara menyerangnya di workstation Windows atau MacOS, sesuai urutan Anda akan mencobanya.
Langkah 1. Konfirmasikan bahwa sebagian besar file ada di sana
Periksa ukuran file terhadap apa pun yang diiklankan sumbernya. Jika file jauh lebih kecil (katakanlah, 220 MB, bukan 320 MB), unduhan akan terpotong parah dan tidak ada gunanya memperbaiki pembungkusnya: sebagian besar classes.dex atau asetnya hilang begitu saja. Jika demikian, mulai ulang pengunduhan.
Langkah 2. Uji struktur ZIP
Buka terminal di folder yang berisi APK dan jalankan, di macOS atau Linux:
unzip -t broken.apk
Alat ini akan melaporkan setiap file di dalam arsip dan kesalahan CRC apa pun. Jika hanya segelintir entri yang error dan bukan classes*.dex atau resources.arsc, Anda mempunyai peluang bagus untuk menghasilkan instalasi yang berfungsi.
Langkah 3. Bangun kembali direktori pusat
Jika unzip -t mengeluh tentang direktori pusat itu sendiri ("tanda tangan akhir direktori pusat tidak ditemukan", "1 EOCD hilang"), gunakan mode "perbaiki":
zip -FF broken.apk --out fixed.apk
Bendera -FF memberitahu zip untuk memindai file untuk tanda tangan header file lokal dan membangun kembali direktori entri demi entri. Outputnya, fixed.apk, adalah apa yang sebenarnya Anda coba instal.
Langkah 4. Sejajarkan kembali dan tandatangani kembali jika perlu
Setelah perubahan struktural apa pun, tanda tangan APK tidak lagi valid, karena memodifikasi satu byte saja akan membatalkan blok tanda tangan v2/v3. Jika Anda memiliki kunci penandatanganan sendiri (ini cocok untuk bangunan milik Anda), sejajarkan dan tanda tangani ulang:
zipalign -v 4 fixed.apk aligned.apk
apksigner sign --ks my.keystore aligned.apk
Tanpa kunci Anda sendiri, satu-satunya cara untuk menginstal file adalah melalui instalasi yang ada dengan sertifikat penandatanganan yang sama, yang berarti APK yang diperbaiki dari pihak ketiga tidak akan diinstal di atas instalasi Play Store yang sudah ada, karena rantai penandatanganan telah berubah.
Ketika Perbaikan Adalah Tujuan yang Salah
Sebaiknya jujurlah tentang apa yang bisa dan tidak bisa dilakukan "perbaikan":
- Anda tidak dapat memulihkan byte yang tidak pernah sampai. Jika unduhan terpotong, tidak ada perbaikan header yang akan merekonstruksi data yang hilang. Unduh ulang.
- Busuk kecil bersifat permanen. Jika file berada di penyimpanan yang membalik beberapa bit di dalam classes.dex, langkah verifikasi bytecode pada waktu instalasi akan menolaknya, dan tidak ada cara untuk mengetahui berapa byte aslinya.
- File yang diperbaiki memiliki tanda tangan baru. Bahkan APK yang diperbaiki dengan sempurna tidak lagi ditandatangani oleh penerbit aslinya. Itu adalah fitur, bukan bug: fitur ini mencegah penyerang memasukkan kode berbahaya ke dalam aplikasi populer dan menandatangani ulang seolah-olah mereka adalah penerbit aslinya.
Jika tujuan Anda hanyalah memainkan game yang unduhannya terhenti pada 99%, jalur yang paling sedikit hambatannya hampir selalu adalah menghapus sebagian file, mengosongkan ruang disk, dan mengunduh lagi dari koneksi yang andal. Alat perbaikan bersinar ketika pengunduhan ulang tidak mungkin dilakukan: APK lama yang diarsipkan, file yang diterima melalui transfer LAN yang tidak stabil, atau cadangan yang sumber aslinya hilang.
Pertanyaan yang Sering Diajukan (FAQ)
Bisakah saya mengekstrak ikon dan tangkapan layar dari APK yang rusak?
Biasanya ya. File ikon ada di bawah res/mipmap-* dan data tangkapan layar jarang ada di APK. Bahkan ketika direktori pusat rusak, header file individual cukup sering tetap utuh sehingga opsi "Ekstrak dengan kesalahan diabaikan" 7-Zip akan mengeluarkan sebagian besar gambar.
Akankah APK yang diperbaiki akan memperbarui aplikasi yang diinstal?
Hanya jika perbaikan mempertahankan tanda tangan aslinya, yang umumnya tidak mungkin dilakukan setelah perbaikan struktural. Perlakukan APK yang diperbaiki sebagai instalasi baru: hapus instalan versi lama terlebih dahulu (Anda akan kehilangan datanya) atau instal pada perangkat yang belum memiliki aplikasi tersebut.
Apakah ada alat online yang melakukan semua ini?
Alat berbasis browser dapat membaca struktur APK dan memberi tahu Anda apa yang rusak (Alat Info APK kami melakukan hal tersebut), namun sebenarnya menulis ulang ZIP dan menandatangani ulang memerlukan alat desktop atau server. Kami sengaja tidak menjalankan langkah penandatanganan ulang di server karena itu berarti mengunggah file Anda: janji privasi situs ini adalah tidak ada apa pun yang keluar dari browser Anda.
Bagaimana dengan file XAPK yang gagal diekstrak?
XAPK hanyalah sebuah ZIP, jadi teknik yang sama berlaku. Jalankan zip -FF untuk memulihkan APK bagian dalam ditambah file OBB apa pun, lalu lanjutkan seolah-olah Anda memiliki APK yang rusak dan OBB terpisah.
Jika tujuan Anda hanya mendapatkan grafik, suara, atau data OBB dari unduhan yang gagal, gunakan 7-Zip. 7-Zip lebih agresif daripada alat ZIP Windows Explorer dan sering kali memungkinkan Anda "Abaikan kesalahan" untuk mengekstrak file yang hanya diunduh sebagian.
Pindai Secara Mendalam APK Anda
Unggah file ke penganalisis kami untuk melihat apakah strukturnya valid atau manifesnya tidak dapat dibaca.
Analisis Kesehatan FileKesimpulan
"Parsing Error" adalah OS menyerah. Dengan menggunakan alat yang disebutkan di atas, Anda mengambil kendali kembali. Meskipun Anda tidak selalu dapat "memperbaiki" aplikasi yang rusak agar dapat berjalan, Anda hampir selalu dapat melakukan memulihkan data di dalamnya. Untuk tips lebih lanjut tentang mengelola file besar, lihat panduan kami tentang Menggabungkan APK Terpisah atau Mengekstrak Data Game OBB.