Paano Ayusin ang Sirang APK File at I-extract ang mga Asset
Gumugol ka ng maraming oras sa pag-download ng 2GB na bundle ng laro, para lang masabi ng iyong browser ang "Nabigo ang Pag-download" sa 99%, o mas masahol pa, para sumigaw ang Android ng "Error sa Parsing: Nagkaroon ng problema sa pag-parse ng package." Ang isang sira na APK ay hindi nangangahulugang isang patay na file. Dahil ang mga APK ay binuo sa pamantayan ng ZIP compression, kadalasang maaaring ayusin ang mga ito, kahit sapat lang para makuha ang mahahalagang asset sa loob.
Sa ibaba ay malalaman natin kung ano talaga ang nasisira sa loob ng isang APK, ang mga tool sa pag-aayos na sulit na abutin, at kung paano makakatulong ang aming Kombenter ng XAPK kapag nakikitungo ka sa isang sirang bundle.
Ang Anatomy ng APK Corruption
Ang APK ay mahalagang ZIP archive na may partikular na istraktura. Karaniwang nangyayari ang katiwalian sa isa sa tatlong lugar:
- Ang Header: Ang mga byte sa pinakasimula ng file ay nawawala o nabago.
- Ang Manipesto (XML): Ang AndroidManifest.xml ay malformed o gumagamit ng hindi sinusuportahang encoding.
- Ang DEX Code: Ang aktwal na Java/Kotlin bytecode ay pinutol, na ginagawang hindi mapapatakbo ang app.
Paraan 1: Walang Ulo na Pag-aayos ng ZIP (Pinakamadali)
Kung "nababasa" ang file ngunit hindi magbubukas, gumamit ng tool tulad ng Pag-aayos ng ZIP ng DiskInternals (Libre) o ang command-line na zip -FF na command sa Linux/macOS. Ini-scan ng mga tool na ito ang file para sa "mga lagda" ng mga file at muling itayo ang sentral na direktoryo mula sa simula.
Code para sa mga gumagamit ng Terminal: zip -FF corrupt_app.apk --out fixed_app.apk
Paraan 2: Pag-aayos ng Zipalign/Alignment
Minsan ang isang APK ay "corrupt" dahil lang sa hindi ito nakahanay sa 4-byte na mga hangganan. Kinakailangan ito ng pamamahala ng memorya ng Android. Maaayos mo ito gamit ang zipalign tool mula sa Android SDK:
zipalign -v 4 input.apk output.apk
Babala ng Bit-Rot
Kung ang DEX (classes.dex) file mismo ay walang data, walang halaga ng ZIP repairing ang magpapagana sa app. Sa kasong ito, ang tanging layunin mo ay ang kunin ang Mga Asset/Resources at maghanap ng bagong kopya ng app.
Paano Masasabi Kung Ano ang Tunay na Mali
Bago ka pumili ng tool sa pag-aayos, tukuyin ang pagkabigo. Ang mensahe ng error na ipinapakita ng Android (o ang iyong archive tool) ay karaniwang isang palatandaan:
| Sintomas na nakikita mo | Ano ang karaniwang ibig sabihin nito | Ano ang unang subukan |
|---|---|---|
| Nabigo ang "Pag-parse ng package" (Android) | Hindi nababasa ang sentral na direktoryo ng ZIP, o hindi tugma sa manifest na bersyon | Pag-aayos ng ZIP header (Paraan 1) |
| "Nagkaroon ng problema sa pag-parse ng package" + Ang APK ay bahagyang mas maliit kaysa sa inaasahan | Pinutol na pag-download: hindi dumating ang huling ilang KB | Muling i-download mula sa parehong pinagmulan; ZIP repair kung hindi available ang muling pag-download |
| Binubuksan ito ng 7-Zip / WinRAR ngunit nag-uulat ng "CRC error" sa mga indibidwal na file | Nasira ang indibidwal na file sa loob ng ZIP | I-extract lahat maliban sa ang nasirang miyembro, pagkatapos ay tingnan kung ano ang kulang |
| "Hindi naka-install ang app" nang walang karagdagang detalye | Madalas signature mismatch o alignment issue, hindi totoong corruption | zipalign + muling pagsusuri ng lagda (Paraan 2) |
| Nag-crash kaagad pagkatapos i-install gamit ang java.lang.VerifyError | Ang classes.dex bytecode ay nasira o hindi tugma sa bersyon | Hindi mababawi sa pamamagitan ng pagkumpuni. Muling kumuha ng malinis na kopya. |
Isang Konkretong Walk-Through
Isipin na nakakuha ka ng 320 MB APK na ang pag-download ay naantala sa humigit-kumulang 99%. Tumanggi ang iyong telepono na i-install ito gamit ang "Nabigo ang pag-parse ng package." Narito kung paano atakehin ito sa isang Windows o macOS na workstation, sa pagkakasunud-sunod na talagang susubukan mo ang mga bagay.
Hakbang 1. Kumpirmahin na ang file ay hindi bababa sa karamihan doon
Suriin ang laki ng file laban sa kung ano man ang pinagmumulan ng ina-advertise. Kung ang file ay kapansin-pansing mas maliit (sabihin, 220 MB sa halip na 320 MB), ang pag-download ay naputol nang husto at walang punto sa pag-aayos ng wrapper: malalaking bahagi ng classes.dex o ang mga asset ay nawawala lang. Sa kasong iyon, i-restart ang pag-download.
Hakbang 2. Subukan ang istraktura ng ZIP
Magbukas ng terminal sa folder na naglalaman ng APK at tumakbo, sa macOS o Linux:
unzip -t broken.apk
Iuulat ng tool ang bawat file sa loob ng archive at anumang mga error sa CRC. Kung kakaunti lang ang mga entry na mali at hindi sila classes*.dex o resources.arsc, mayroon kang disenteng pagkakataon na makagawa ng gumaganang pag-install.
Hakbang 3. Buuin muli ang sentral na direktoryo
Kung ang unzip -t ay nagreklamo tungkol sa gitnang direktoryo mismo ("hindi nahanap ang EOCD signature" / "missing 1 EOCD"), gamitin ang "fix" mode:
zip -FF broken.apk --out fixed.apk
Ang -FF flag ay nagsasabi sa zip na i-scan ang file para sa mga lokal na file-header signature at muling itayo ang directory entry-by-entry. Ang output, fixed.apk, ay ang talagang sinusubukan mong i-install.
Hakbang 4. I-realign at muling lagdaan kung kinakailangan
Pagkatapos ng anumang pagbabago sa istruktura, hindi na wasto ang lagda ng APK, dahil ang pagbabago ng kahit isang byte ay magpapawalang-bisa sa v2/v3 signature blocks. Kung mayroon kang sariling signing key (ito ay mainam para sa mga build na pagmamay-ari mo), ihanay at muling lagdaan:
zipalign -v 4 fixed.apk aligned.apk
apksigner sign --ks my.keystore aligned.apk
Kung wala ang iyong sariling key, ang tanging paraan upang i-install ang file ay sa pamamagitan ng umiiral install na may parehong signing certificate, na nangangahulugang ang isang naayos na APK mula sa isang third party ay hindi mag-i-install sa ibabaw ng isang umiiral nang pag-install sa Play Store, dahil nagbago ang signing chain.
Kapag Maling Layunin ang Pag-aayos
Ito ay nagkakahalaga ng pagiging tapat tungkol sa kung ano ang magagawa at hindi magagawa ng "pag-aayos":
- Hindi ka makakabawi ng mga byte na hindi pa dumating. Kung naputol ang pag-download, walang pag-aayos ng header ang muling bubuo ng nawawalang data. Muling i-download.
- Ang bit-rot ay permanente. Kung ang isang file ay nasa storage na nag-flip ng ilang bit sa loob ng classes.dex, tatanggihan ito ng hakbang sa pag-verify ng bytecode sa oras ng pag-install, at walang paraan upang malaman kung ano ang dapat na orihinal na mga byte.
- Ang mga naayos na file ay may mga bagong lagda. Kahit na ang isang perpektong naayos na APK ay hindi na nilalagdaan ng orihinal na publisher. Iyon ay isang tampok, hindi isang bug: pinipigilan nito ang isang umaatake na maglagay ng malisyosong code sa isang sikat na app at muling pumirma na parang sila ang orihinal na publisher.
Kung ang iyong layunin ay maglaro lamang ng isang laro na ang pag-download ay namatay sa 99%, ang landas ng hindi bababa sa pagtutol ay halos palaging upang i-clear ang bahagyang file, magbakante ng espasyo sa disk, at mag-download muli mula sa isang maaasahang koneksyon. Ang mga tool sa pag-aayos ay lumiwanag kapag imposibleng mag-download muli: mga lumang naka-archive na APK, mga file na natanggap sa pamamagitan ng isang flaky LAN transfer, o mga backup na ang orihinal na pinagmulan ay nawala.
Mga Madalas Itanong (FAQ)
Maaari ko bang i-extract ang mga icon at screenshot mula sa sirang APK?
Kadalasan oo. Ang mga icon na file ay nakatira sa ilalim ng res/mipmap-* at ang data ng screenshot ay bihira sa mga APK upang magsimula. Kahit na nasira ang gitnang direktoryo, ang mga indibidwal na header ng file ay madalas na buo na ang pagpipiliang "I-extract na may mga error na hindi pinansin" ng 7-Zip ay bubunutin ang karamihan sa mga larawan.
Maa-update ba ng isang inayos na APK ang isang naka-install na app?
Kung napanatili lamang ng pag-aayos ang orihinal na lagda, na sa pangkalahatan ay imposible pagkatapos ng isang pag-aayos sa istruktura. Ituring ang isang inayos na APK bilang bagong pag-install: i-uninstall muna ang lumang bersyon (mawawala ang data nito) o i-install sa isang device na wala pang app.
Mayroon bang online na tool na gumagawa ng lahat ng ito?
Ang mga tool na nakabatay sa browser ay maaaring magbasa ng istraktura ng isang APK at sabihin sa iyo kung ano ang sira (ang aming Tool sa Impormasyon ng APK ay eksaktong ginagawa iyon), ngunit ang aktwal na muling pagsulat ng ZIP at muling pagpirma ay nangangailangan ng alinman sa isang desktop tool o isang server. Sinadya naming hindi patakbuhin ang muling pag-sign na hakbang sa isang server dahil mangangahulugan iyon ng pag-upload ng iyong file: ang pangako sa privacy ng site na ito ay walang umalis sa iyong browser.
Paano ang tungkol sa mga XAPK file na hindi na-extract?
Ang XAPK ay isang ZIP lamang, kaya ang parehong mga diskarte ay nalalapat. Patakbuhin ang zip -FF dito para mabawi ang panloob na APK at anumang OBB file, pagkatapos ay magpatuloy na parang may nasirang APK at hiwalay na OBB.
Kung ang iyong layunin ay makuha lamang ang mga graphics, tunog, o data ng OBB mula sa isang nabigong pag-download, gamitin ang 7-Zip. Ang 7-Zip ay mas agresibo kaysa sa tool ng Windows Explorer ZIP at madalas na hahayaan kang "Huwag pansinin ang mga error" na kunin ang mga file na bahagyang na-download.
Deep Scan Iyong APK
I-upload ang file sa aming analyzer para makita kung valid ang structure o kung hindi nababasa ang manifest.
Suriin ang File HealthKonklusyon
Ang "Parsing Error" ay ang pagsuko ng OS. Sa pamamagitan ng paggamit ng mga tool na nabanggit sa itaas, ibabalik mo ang kontrol. Bagama't hindi mo laging "ayusin" ang isang sirang app upang mapatakbo ito, maaari mong halos palaging mabawi ang data sa loob. Para sa higit pang mga tip sa pamamahala ng malalaking file, tingnan ang aming gabay sa Pinagsasama ang mga Split APK o Pagkuha ng OBB Game Data.