Μπορείτε εύκολα να απενεργοποιήσετε την επαλήθευση υπογραφής εφαρμογής Android (APK) χρησιμοποιώντας το Xposed Framework, αλλά δεν πρέπει να το κάνετε αυτό στη συντριπτική πλειονότητα των περιπτώσεων.
Εάν έχετε προσπαθήσει ποτέ να τροποποιήσετε και να επανεγκαταστήσετε μια εφαρμογή συστήματος, πιθανότατα αντιμετωπίσατε ελέγχους υπογραφής εφαρμογής με τη μία ή την άλλη μορφή. Είτε καταργήσατε την αρχική εφαρμογή πριν συνεχίσετε, είτε δώσατε στο τροποποιημένο APK σας ένα άλλο όνομα πακέτου για να το εγκαταστήσετε χωρίς να καταργήσετε πρώτα την παλιά εφαρμογή. Και σε κάθε περίπτωση, έπρεπε επίσης να υπογράψετε ξανά την εφαρμογή μόνοι σας για να την εγκαταστήσετε από την αρχή.
Μπορείτε να παρακάμψετε όλες αυτές τις συμπεριφορές απενεργοποιώντας προσωρινά τους ελέγχους υπογραφής της εφαρμογής. Αλλά προτού μπούμε στο μεταφορικό κρέας και πατάτες αυτού του άρθρου και σας πούμε πώς να το κάνετε, Είναι σημαντικό να μιλήσουμε λίγο για τους ελέγχους υπογραφής της εφαρμογής, τι κάνουν και γιατί εσείς πρέπει ποτέ αφαιρέστε τα στη συντριπτική πλειοψηφία των περιπτώσεων.
Βασικά στοιχεία επαλήθευσης υπογραφής Android
Από προεπιλογή, το λειτουργικό σύστημα Android απαιτεί όλα εφαρμογές που πρέπει να υπογραφούν για να εγκατασταθούν. Με πολύ βασικούς όρους, αυτό σημαίνει ότι η υπογραφή της εφαρμογής χρησιμοποιείται για την αναγνώριση του συντάκτη μιας εφαρμογής (δηλ. επαλήθευση της νομιμότητάς του), καθώς και δημιουργία σχέσεων εμπιστοσύνης μεταξύ εφαρμογών με την ίδια υπογραφή. Με το πρώτο, είστε βέβαιοι (σε εύλογο βαθμό) ότι μια εφαρμογή με έγκυρη υπογραφή προέρχεται από τους αναμενόμενους προγραμματιστές. Και μέσω του τελευταίου, οι εφαρμογές που υπογράφονται με το ίδιο ιδιωτικό κλειδί μπορεί να εκτελούνται στην ίδια διαδικασία και να μοιράζονται προσωπικά δεδομένα. Στη συνέχεια, όταν εγκαθιστάτε μια ενημέρωση εφαρμογής, το λειτουργικό σύστημα Android ελέγχει αυτήν την υπογραφή για να βεβαιωθεί ότι: Α) το APK δεν έχει παραποιήθηκε το χρόνο από την υπογραφή της και Β) το πιστοποιητικό της εφαρμογής ταιριάζει με αυτό της τρέχουσας εγκατάστασης εκδοχή.
Πώς με επηρεάζουν λοιπόν όλα αυτά στον πραγματικό κόσμο; Είναι απλό, πραγματικά. Εάν λάβετε ένα APK εκτός του Google Play Store και επιχειρήσετε να το εγκαταστήσετε ως ενημέρωση για την τρέχουσα εγκατεστημένη εφαρμογή σας (διαβάστε: ίδιο όνομα πακέτου), το λειτουργικό σύστημα θα προσπαθήσει να επικυρώσει το πιστοποιητικό της εφαρμογής για να βεβαιωθεί ότι προέρχεται από το ίδιο αρχικό προγραμματιστές. Εάν το πιστοποιητικό ταιριάζει, η εγκατάσταση της εφαρμογής θα προχωρήσει όπως είχε προγραμματιστεί, η εφαρμογή σας θα διατηρήσει τα υπάρχοντα δεδομένα της και όλα είναι καλά. Εάν η υπογραφή δεν είναι έγκυρη (που υποδεικνύει ότι το APK έχει παραβιαστεί) ή εάν το πιστοποιητικό δεν ταιριάζει με αυτό της αρχικής εφαρμογής, η εγκατάσταση θα αποτύχει. Και όπως αναφέρθηκε προηγουμένως, το πιστοποιητικό εφαρμογής θα ταιριάζει μόνο εάν είναι υπογεγραμμένο με το ίδιο ιδιωτικό κλειδί που χρησιμοποιήθηκε για την υπογραφή της προηγούμενης έκδοσης. Με άλλα λόγια, μπορείτε να εγκαταστήσετε μια εφαρμογή μόνο εάν έχει έγκυρη υπογραφή που ταιριάζει με το APK περιεχόμενο και μπορείτε να εγκαταστήσετε μια ενημέρωση μόνο εάν το πιστοποιητικό της ταιριάζει και με αυτό που βρέθηκε στην προηγούμενη έκδοση της εφαρμογής.
[Ως χιουμοριστικό πέρα από αυτό το κατά τα άλλα πυκνό άρθρο, υπάρχει ένα πολύ δημόσιο παράδειγμα στο οποίο χάθηκε ή παραβιάστηκε ένα ιδιωτικό κλειδί υπογραφής εφαρμογής. Αναφέρομαι φυσικά στην εφαρμογή Authenticator της Google, η οποία έλαβε μια ενημέρωση που άλλαξε το όνομα του πακέτου από com.google.android.apps.authenticator προς την com.google.android.apps.authenticator2 σε μια ενημέρωση πριν από περίπου δύο χρόνια. Λόγω αυτής της αλλαγής, όλες οι επόμενες ενημερώσεις της εφαρμογής Authenticator μπορούσαν να εκδοθούν μόνο με το όνομα του νέου πακέτου -- με τη νέα υπογραφή που δημιουργείται από το νέο ιδιωτικό κλειδί υπογραφής.]
Γιατί μπορεί να θέλετε να (προσωρινά) απενεργοποιήσετε την επαλήθευση υπογραφής
Τώρα, ας ρίξουμε μια ματιά σε ένα πιθανό σενάριο στο οποίο μπορεί να θέλουμε να απενεργοποιήσουμε προσωρινά την επαλήθευση υπογραφής εφαρμογής. Όπως αναφέρθηκε στην αρχή αυτού του άρθρου, η επαλήθευση της υπογραφής μπορεί να είναι λίγο πονοκέφαλος όταν τροποποιείτε υπάρχουσες εφαρμογές συστήματος. Εάν εγκαταστήσετε μια τροποποιημένη έκδοση μιας εφαρμογής συστήματος, δεν θα μπορείτε να υπογράψετε την εφαρμογή με ένα έγκυρο και αντίστοιχο πιστοποιητικό. Σε περιπτώσεις όπως αυτή, κανονικά θα θέλατε να καταργήσετε πρώτα την υπάρχουσα εφαρμογή και στη συνέχεια να εγκαταστήσετε την τροποποιημένη έκδοση κανονικά. Θα μπορούσατε επίσης να απενεργοποιήσετε την επαλήθευση υπογραφής, αλλά είναι καλύτερο (και ασφαλέστερο) να αφήσετε ενεργοποιημένη την επαλήθευση υπογραφής και απλώς να αφαιρέσετε την παλιά έκδοση, ώστε να μπορεί να εγκατασταθεί η νέα. Αυτό, ωστόσο, μπορεί να γίνει λίγο πρόβλημα εάν η εφαρμογή που προσπαθείτε να αντικαταστήσετε έχει δεδομένα που προτιμάτε να μην χάσετε. Υπάρχουν σίγουρα τρόποι να διατηρήσετε τα δεδομένα με μη αυτόματο τρόπο χρησιμοποιώντας την πρόσβαση root και να τα μεταμοσχεύσετε στη νέα έκδοση του την εφαρμογή, αλλά οι χρήστες μπορεί επίσης να επιθυμούν απλώς να απενεργοποιήσουν προσωρινά την επαλήθευση υπογραφής και στη συνέχεια να συνεχίσουν τους ελέγχους έπειτα. Εναλλακτικά όπως επισημαίνεται από το XDA Senior Member mcbyte_it στα σχόλια, αυτό μπορεί επίσης να είναι χρήσιμο στην ανάπτυξη εφαρμογών.
Πώς να το κάνετε
Μέχρι τώρα, η απενεργοποίηση της επαλήθευσης υπογραφής ήταν μια φρικτή λύση για σχεδόν οποιοδήποτε πρόβλημα. Αυτό συμβαίνει επειδή όταν το κάνετε αυτό, ουσιαστικά πετάτε την ενσωματωμένη προστασία του Android που διασφαλίζει ότι οι εφαρμογές σας δεν έχουν παραβιαστεί και ότι οι ενημερώσεις τους προέρχονται από την αρχική προγραμματιστές. Αλλά τώρα, χάρη στη μαγεία του Xposed Framework, μπορείτε να απενεργοποιήσετε προσωρινά την επαλήθευση υπογραφής και να την ενεργοποιήσετε ξανά μόλις ολοκληρώσετε την εγκατάσταση της τροποποιημένης εφαρμογής σας. Ένα τέτοιο Xposed Module που μπορεί να κάνει ακριβώς αυτό κυκλοφόρησε πρόσφατα από το XDA Senior Member πυλερ, και λειτουργεί όπως έχει προγραμματιστεί για όλες τις συσκευές που μπορούν να εκτελούν Xposed. Με αυτόν τον τρόπο, όταν θέλετε να εγκαταστήσετε μια τροποποιημένη ενημέρωση εφαρμογής που δεν έχει υπογραφεί σωστά, μπορείτε απλά ενεργοποιήστε τη λειτουργική μονάδα, επανεκκινήστε, εγκαταστήστε την τροποποιημένη ενημέρωση εφαρμογής, απενεργοποιήστε τη λειτουργική μονάδα, επανεκκινήστε και χαρείτε τρόπος.
Τώρα που ξέρετε πώς να απενεργοποιήσετε προσωρινά την επαλήθευση υπογραφής, είναι σημαντικό να επαναλάβετε πόσο σημαντικό είναι να αφήνετε την επαλήθευση υπογραφής ενεργοποιημένη ανά πάσα στιγμή, εκτός εάν έχετε έναν πολύ, πολύ καλό λόγο να απενεργοποιήσετε το. Ως εκ τούτου, θα πρέπει να χρησιμοποιείτε πραγματικά ένα τέτοιο εργαλείο μόνο για να εφαρμόζετε ενημερώσεις εφαρμογών που δημιουργείτε μόνοι σας και πότε Υπάρχουν ελαφρυντικές περιστάσεις που απαιτούν από εσάς να το κάνετε αντί να απεγκαταστήσετε απλώς την παλιά εφαρμογή πρώτα.
Να είστε ασφαλείς και χρησιμοποιήστε το με σύνεση.