Cara Memperbaiki File APK yang Rusak dan Mengekstrak Aset

A smartphone showing a file error with a small toolbox, illustrating fixing a corrupt APK

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.

Ringkasan Cepat. Ringkasan lima detik: Sebagian besar APK yang rusak mengalami kerusakan di direktori pusat ZIP atau di classes.dex. Kerusakan tingkat ZIP dapat diperbaiki dengan zip -FF or 7-Zip. DEX-level damage is not; dalam hal ini, pulihkan aset yang Anda bisa dan unduh ulang APK yang bersih. zipalign kesalahan bukanlah kerusakan nyata dan diperbaiki dalam satu perintah.

Anatomi Korupsi APK

APK pada dasarnya adalah arsip ZIP dengan struktur tertentu. Korupsi biasanya terjadi di salah satu dari tiga tempat berikut ini:

  1. Tajuk: Byte di awal file hilang atau berubah.
  2. Manifes (XML): AndroidManifest.xml salah format atau menggunakan pengkodean yang tidak didukung.
  3. 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":

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 File

Kesimpulan

"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.

Direkayasa & Didokumentasikan oleh Mst Shaefale Pengembang Utama & Arsitek Paket Android • Terverifikasi di Android 12–15

Mst Shaefale mengelola penggabungan XAPK/APKS sisi klien, parser manifes biner, dan alat penandatanganan APK v1+v2 di xapktoapk.com. Temukan perintah yang ketinggalan jaman atau perubahan OS? Kirimkan catatan editorial.