Υπογραφή APK

στο Διαδίκτυο Υπογραφή APK — Πώς να υπογράψετε δωρεάν αρχεία APK

Πλήρης οδηγός Υπογραφή APK — μάθετε πώς να υπογράψτε αρχεία APK χρησιμοποιώντας apksigner, jarsigner ή εντοπισμό σφαλμάτων keystore. Δωρεάν βήμα προς βήμα Οδηγός υπογραφής APK για προγραμματιστές και δοκιμαστές. Υπογραφή APK χωρίς Android Studio.

Γιατί τα αρχεία APK πρέπει να υπογράφονται;

Κάθε εφαρμογή Android πρέπει να είναι ψηφιακά υπογεγραμμένη για να μπορέσει να εγκατασταθεί. Η υπογραφή εξυπηρετεί πολλούς σκοπούς:

  • Επαληθεύει την ταυτότητα του προγραμματιστή της εφαρμογής
  • Διασφαλίζει ότι το APK δεν έχει παραβιαστεί
  • Επιτρέπει στο Android να αντιστοιχίζει ενημερώσεις εφαρμογών με το πρωτότυπο
  • Απαιτείται για εγκατάσταση σε όλες τις συσκευές Android

Απαιτείται εργαλείο επιφάνειας εργασίας

Η υπογραφή APK απαιτεί εργαλεία γραμμής εντολών (JDK / Android SDK). Αυτό δεν μπορεί να γίνει σε πρόγραμμα περιήγησης ιστού. Ακολουθήστε τον παρακάτω οδηγό για να υπογράψετε APK στον υπολογιστή σας.

Μέθοδος 1: Υπογραφή με apksigner (Συνιστάται)

Το apksigner είναι το επίσημο εργαλείο υπογραφής APK της Google, το οποίο περιλαμβάνεται στα Εργαλεία δημιουργίας Android SDK.

Βήμα 1: Δημιουργήστε ένα Keystore

keytool -genkey -v -keystore my-release-key.jks \
  -keyalg RSA -keysize 2048 -validity 10000 \
  -alias my-key-alias

Βήμα 2: Υπογράψτε το APK

apksigner sign --ks my-release-key.jks \
  --ks-key-alias my-key-alias \
  --out signed-app.apk unsigned-app.apk

Βήμα 3: Επαληθεύστε την υπογραφή

apksigner verify --verbose signed-app.apk

Μέθοδος 2: Υπογραφή με jarsigner (Legacy)

# Sign
jarsigner -verbose -sigalg SHA256withRSA \
  -digestalg SHA-256 \
  -keystore my-release-key.jks \
  app-unsigned.apk my-key-alias

# Verify
jarsigner -verify -verbose app-signed.apk

Βήμα 4: Zipalign (Σημαντικό!)

Μετά την υπογραφή, βελτιστοποιήστε το APK με το zipalign:

zipalign -v 4 signed-app.apk aligned-app.apk

Υπογραφή εντοπισμού σφαλμάτων (για δοκιμή)

Για σκοπούς δοκιμής, μπορείτε να χρησιμοποιήσετε το προεπιλεγμένο χώρο αποθήκευσης κλειδιών εντοπισμού σφαλμάτων Android:

# Location of debug keystore:
# Linux/Mac: ~/.android/debug.keystore
# Windows: C:\Users\{USERNAME}\.android\debug.keystore

# Sign with debug key
apksigner sign --ks ~/.android/debug.keystore \
  --ks-key-alias androiddebugkey \
  --ks-pass pass:android \
  app.apk

Σύγκριση εργαλείων υπογραφής

Μετρικήapksignerjarsigner
V1 Υπογραφή
V2 Υπογραφή
V3 Υπογραφή
ΣυνιστάταιΚληροδότημα

Υπογραφή APK — Συχνές ερωτήσεις

Συνήθεις ερωτήσεις σχετικά με την υπογραφή APK, τις αποθήκες κλειδιών και την υπογραφή κώδικα Android

Για το υπογράψτε ένα αρχείο APK, χρειάζεστε apksigner (συνιστάται) ή jarsigner: (1) Δημιουργήστε ένα κατάστημα κλειδιών χρησιμοποιώντας το keytool -genkey, (2) Υπογράψτε το APK με apksigner sign --ks my-key.jks --out signed.apk unsigned.apk, (3) Επαληθεύστε την υπογραφή με apksigner verify signed.apk. Μπορείτε επίσης να χρησιμοποιήσετε το χώρο αποθήκευσης κλειδιών εντοπισμού σφαλμάτων Android για σκοπούς δοκιμής. Αυτός είναι ο τυπικός τρόπος για το υπογράψτε το APK χωρίς Android Studio.

Αν και δεν μπορείτε να υπογράψτε το APK online με ασφάλεια (επειδή η υπογραφή APK απαιτεί το ιδιωτικό σας χώρο αποθήκευσης κλειδιών, το οποίο δεν πρέπει ποτέ να μεταφορτωθεί σε κανένα διακομιστή), μπορείτε να χρησιμοποιήσετε το δωρεάν Οδηγός υπογραφών APK για να υπογράψετε αρχεία APK στον τοπικό σας υπολογιστή. Το βήμα προς βήμα σεμινάριο μας σας καθοδηγεί σε όλη τη διαδικασία χρησιμοποιώντας τα επίσημα εργαλεία apksigner και jarsigner της Google. Μετά την υπογραφή, χρησιμοποιήστε το Επαληθευτής υπογραφής APK για να επαληθεύσετε την υπογραφή δωρεάν στο διαδίκτυο.

V1 (Υπογραφή JAR): Το αρχικό σχέδιο υπογραφής Android. Επαληθεύει κάθε καταχώρηση ZIP ξεχωριστά. Πιο αργό αλλά ευρέως συμβατό με όλες τις εκδόσεις Android. V2 (Σχήμα υπογραφών APK): Παρουσιάστηκε στο Android 7.0. Επαληθεύει ολόκληρο το APK στο σύνολό του, παρέχοντας ταχύτερη εγκατάσταση. V3 (APK Signature Scheme v3): Android 9.0+, υποστηρίζει περιστροφή πλήκτρων. Το V4: Android 11.0+, επιτρέπει τις εγκαταστάσεις ροής. Χρησιμοποιήστε το apksigner για να υποστηρίξετε όλα τα σχήματα. Το jarsigner υποστηρίζει μόνο το V1.

Για το υπογράψτε το APK χωρίς Android Studio: (1) Εγκαταστήστε Java JDK 8 ή νεότερη έκδοση, (2) Λήψη Εργαλείων δημιουργίας Android SDK που περιλαμβάνει apksigner ή κατεβάστε το αυτόνομο πακέτο εργαλείου, (3) Δημιουργήστε ένα κατάστημα κλειδιών: keytool -genkey -v -keystore my-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias, (4) Σήμα: apksigner sign --ks my-key.jks --out signed.apk app.apk. Αυτή η μέθοδος λειτουργεί σε Windows, Mac και Linux χωρίς να απαιτείται η πλήρης εγκατάσταση του Android Studio.

Το zipalign είναι ένα εργαλείο Android SDK που ευθυγραμμίζει τα μη συμπιεσμένα δεδομένα εντός του APK σε όρια 4 byte. Αυτή η βελτιστοποίηση μειώνει την κατανάλωση RAM όταν η εφαρμογή εκτελείται σε μια συσκευή. Σπουδαίος: Εάν χρησιμοποιείτε apksigner, εκτελέστε το zipalign ΠΡΙΝ υπογράψετε. Εάν χρησιμοποιείτε jarsigner (παλαιού τύπου), εκτελέστε το zipalign ΜΕΤΑ την υπογραφή. Εντολή: zipalign -v 4 input.apk output.apk. Το Google Play απαιτεί τα APK να είναι συμπιεσμένα για υποβολή.

Γιατί έχει σημασία η σειρά ευθυγράμμισης (zipalign Πριν από το apksigner) στο Android 11–15

Ένα από τα πιο συχνά λάθη που κάνουν οι προγραμματιστές και οι τροποποιητές όταν υπογράφουν ένα τροποποιημένο ή συγχωνευμένο APK είναι η εκτέλεση zipalign μετά υπογράφοντας το πακέτο—ή χρησιμοποιώντας το βοηθητικό πρόγραμμα παλαιού τύπου jarsigner της Java αντί για το Android SDK apksigner της Google. Επειδή τα APK Signature Scheme v2 και v3 υπολογίζουν ένα κρυπτογραφικό κατακερματισμό σε ολόκληρη τη δυαδική διάταξη του αρχείου ZIP, η τροποποίηση των μετατοπίσεων byte με το zipalign μετά την υπογραφή ακυρώνει αμέσως το μπλοκ υπογραφής v2/v3.

Ξεκινώντας με το Android 11 (επίπεδο API 30) και επιβάλλεται αυστηρά σε Android 14 και 15, το PackageManager απαιτεί δύο αδιαπραγμάτευτες προϋποθέσεις για οποιοδήποτε APK που στοχεύει σύγχρονα επίπεδα SDK:

  • Ασυμπίεστο 4-Byte Aligned resources.arsc: Ο μεταγλωττισμένος πίνακας πόρων (resources.arsc) πρέπει να αποθηκευτεί ασυμπίεστος (STORED) και να ευθυγραμμιστεί σε ένα όριο 4 byte, ώστε το Android να μπορεί να τον αντιστοιχίσει απευθείας στη μνήμη (mmap) χωρίς να τον αντιγράψει στη μνήμη RAM. Να εκτελείτε πάντα την υπογραφή zipalign -p -f -v 4 input.apk aligned.apk προτού.
  • Υποχρεωτικό μπλοκ υπογραφής v2+: Η υπογραφή ενός APK στόχευσης API 30+ με το jarsigner (το οποίο γράφει μόνο μια υπογραφή META-INF/ v1) θα προκαλέσει το Android 11–15 να απορρίψει την εγκατάσταση με το INSTALL_PARSE_FAILED_NO_CERTIFICATES. Χρησιμοποιήστε τη διαδραστική γεννήτρια εντολών παραπάνω για να δημιουργήσετε την ακριβή εντολή apksigner --v2-signing-enabled=true για το χώρο αποθήκευσης κλειδιών σας ή επαληθεύστε την υπογεγραμμένη έξοδο στο Επαληθευτής υπογραφής APK μας.
Κατασκευάστηκε και τεκμηριώθηκε από τον Mst Shaefale Κύριος προγραμματιστής και αρχιτέκτονας πακέτων Android • Επαληθεύτηκε σε Android 12–15

Κάθε βοηθητικό πρόγραμμα στην εργαλειοθήκη XAPK σε APK εκτελείται 100% τοπικά στο πρόγραμμα περιήγησής σας μέσω JavaScript και WebAssembly. Βρήκατε μια θήκη με συγκεκριμένο πακέτο; Αναφέρετέ το στην ομάδα μηχανικών μας.