Σύρετε και αποθέστε το πακέτο .APKM εδώ
ή κάντε κλικ για να επιλέξετε ένα διαχωρισμένο αρχείο .apkm, .apks ή .zip
Επεξεργασία 100% τοπικού προγράμματος περιήγησης • Αναλύει το info.json και διαχωρισμό APKΜέσα στο APKM Container Architecture
Όταν οι προγραμματιστές δημοσιεύουν ένα πακέτο εφαρμογών Android (.aab) στο Google Play, οι συσκευές λαμβάνουν μόνο τα διαχωρισμένα APK προσαρμοσμένα στο υλικό τους. Πλατφόρμες αρχειοθέτησης τρίτων, όπως το APKMirror, συσκευάζουν αυτά τα αρθρωτά χωρίσματα σε μια δέσμη .apkm μαζί με έναν περιγραφέα JSON που ονομάζεται info.json.
- Επαλήθευση Magic Byte Header: Ελέγχει εάν το .apkm χρησιμοποιεί τυπικό πλαίσιο PKZIP (0x504B0304) ή κρυπτογραφημένη κεφαλίδα ροής v2.
- info.json Manifest Parsing: Εξάγει το όνομα πακέτου (pname), τον κωδικό έκδοσης, το ελάχιστο επίπεδο Android SDK και τις υποστηριζόμενες αρχιτεκτονικές CPU.
- Τυπική επανασυσκευασία .apks με ένα κλικ: Μετατρέπει μη κρυπτογραφημένα κοντέινερ .apkm σε καθολικά αρχεία ZIP .apks συμβατά με το SAI, το bundletool και το κύρια συγχώνευση Split APK μας.
Τεχνική αναφορά: Μετατροπή πακέτα APKM σε αυτόνομα αρχεία APK
Ένα αρχείο .apkm δεν είναι ένα ενιαίο μεταγλωττισμένο πακέτο Android—είναι ένα αρχείο πολλών τμημάτων που περιέχει μια κύρια μονάδα base.apk μαζί με ξεχωριστούς διαχωρισμούς διαμόρφωσης για σύνολα εντολών CPU (split_config.arm64_v8a.apk), split_config.armeabi_v7a.apk, πυκνότητες εικονοστοιχείων οθόνης (split_config.xxhdpi.apk), split_config.xxxhdpi.apk, πόρους (τοπικά). Επειδή το προεπιλεγμένο πρόγραμμα εγκατάστασης πακέτων του Android (PackageInstaller) δέχεται μόνο ένα μονολιθικό .apk κατά την πλευρική φόρτωση από έναν διαχειριστή αρχείων, το πάτημα ενός αρχείου .apkm απευθείας στο τηλέφωνό σας έχει ως αποτέλεσμα ένα μη αναγνωρισμένο σφάλμα αρχείου. split_config.en.apk
Ακόμα κι αν εξαγάγετε το base.apk από ένα αρχείο .apkm και προσπαθήσετε να το εγκαταστήσετε μόνο του σε Android 13, 14 ή 15, δύο τεχνικά εμπόδια εμποδίζουν τη λειτουργία της εφαρμογής:
- Επιβολή διαίρεσης δυαδικού μανιφέστου (isSplitRequired="true"): Μέσα στο μεταγλωττισμένο δυαδικό AndroidManifest.xml του base.apk, η ετικέτα <application> φέρει το boolean χαρακτηριστικό android:isSplitRequired="true" (αναγνωριστικό πόρου χαρακτηριστικού 0x01010591). Όταν το PackageManagerService του Android δει αυτήν τη σημαία κατά τη διάρκεια μιας εγκατάστασης ενός APK, ακυρώνεται αμέσως με το INSTALL_FAILED_MISSING_SPLIT.
- Διαχωρισμένες εγγενείς βιβλιοθήκες και πόροι πυκνότητας: Όλες οι μεταγλωττισμένες κοινόχρηστες βιβλιοθήκες C/C++ (lib/arm64-v8a/*.so) και τα με δυνατότητα σχεδίασης UI υψηλής ανάλυσης βρίσκονται στα συνοδευτικά αρχεία split_config.*.apk. Χωρίς τη συγχώνευση αυτών των εγγραφών στο βασικό αρχείο και την ενημέρωση του resources.arsc, η εφαρμογή διακόπτεται κατά την εκκίνηση με java.lang.UnsatisfiedLinkError ή Resources$NotFoundException.
- Τα τυπικά αρχεία Ροές που βασίζονται σε ZIP έναντι κρυπτογραφημένων ροών APKM: .apkm ξεκινούν με την υπογραφή PKZIP 4 byte (50 4B 03 04) και περιλαμβάνουν ένα αρχείο info.json στη ρίζα. Ωστόσο, ορισμένες νεότερες λήψεις APKMirror χρησιμοποιούν μια προσαρμοσμένη κρυπτογραφημένη μορφή περιτυλίγματος (μαγική κεφαλίδα 02 ...) που έχει σχεδιαστεί αποκλειστικά για το ιδιόκτητο πρόγραμμα εγκατάστασης τους. Ο αναλυτής μας ελέγχει τα πρώτα 16 byte του αρχείου σας αμέσως στη μνήμη του προγράμματος περιήγησης: εάν είναι ένα τυπικό .apkm που βασίζεται σε ZIP, μπορείτε να αποσυσκευάσετε όλα τα διαχωριστικά ή να εξαγάγετε ένα καθαρό αρχείο .apks εδώ και, στη συνέχεια, να αποθέσετε αυτό το αρχείο στο αρχική σελίδα XAPK & Split APK Merger για να μεταγλωττίσετε ένα μεμονωμένο .apk με υπογραφή v1+v2.
| Εσωτερικό αρχείο APKM | Σκοπός στην παράδοση πακέτου εφαρμογών Android | Απαιτείται για αυτόνομη εγκατάσταση; |
|---|---|---|
| info.json | Όνομα πακέτου εγγραφής περιγραφής μεταδεδομένων JSON, versioncode, min_api και ABI στόχων | Όχι (μόνο μεταδεδομένα, αφαιρέθηκαν κατά τη συγχώνευση APK) |
| base.apk | Κύριος bytecode DEX (classes.dex), πυρήνας AndroidManifest.xml και βασικοί πόροι | Ναί (Υποχρεωτικό βασικό πακέτο) |
| split_config.arm64_v8a.apk | 64-bit ARM εγγενείς κοινόχρηστες βιβλιοθήκες C/C++ (lib/arm64-v8a/*.so) | Ναί (Απαιτείται σε σύγχρονα τηλέφωνα 64-bit) |
| split_config.xxhdpi.apk | Εικονίδια διεπαφής χρήστη υψηλής πυκνότητας, bitmaps και σχεδιαγράμματα διάταξης (320dpi–640dpi) | Ναί (Αποτρέπει την απώλεια σφαλμάτων με δυνατότητα σχεδίασης) |
| split_config.en.apk | Τοπικοί πίνακες συμβολοσειρών μεταγλωττίστηκαν για τη γλώσσα συστήματος του χρήστη | Συνιστάται (Διασφαλίζει ότι οι ετικέτες κειμένου διεπαφής χρήστη αποδίδονται σωστά) |