Πώς να προβάλετε τα δικαιώματα εφαρμογής Android πριν από την εγκατάσταση ενός APK

A smartphone showing a list of app permissions with a magnifying glass

Όταν εγκαθιστάτε μια εφαρμογή από το Google Play Store, το Android εμφανίζει μια απλοποιημένη σύνοψη του τι μπορεί να έχει πρόσβαση η εφαρμογή. Φορτώστε ένα APK από μια πηγή εκτός Play και δεν έχετε τέτοιο δίχτυ ασφαλείας, εκτός εάν διαβάσετε μόνοι σας το μανιφέστο. Το "Πρέπει μια εφαρμογή ταπετσαρίας να χρειάζεται πραγματικά πρόσβαση SMS και μικροφώνου;" είναι ακριβώς το είδος της ερώτησης που θα σας βοηθήσει να απαντήσετε σε αυτόν τον οδηγό.

Αυτό που ακολουθεί είναι η ίδια ροή εργασιών που χρησιμοποιεί η ομάδα μας όταν διαλέγει ένα άγνωστο APK: ανοίξτε το, διαβάστε τις καταχωρίσεις uses-permission, αποκωδικοποιήστε τα επίπεδα προστασίας και συγκρίνετε τι χρειάζεται η εφαρμογή λέει με ό,τι συνήθως απαιτεί η κατηγορία της. Το διαδικτυακό εργαλείο πληροφοριών APK μας κάνει την αποκωδικοποίηση δυαδικού XML για εσάς, οπότε η όλη διαδικασία διαρκεί περίπου δέκα δευτερόλεπτα.

Χρόνος ανάγνωσης: ~ 9 λεπτά. Εργαλεία που χρειάζονται: ένα πρόγραμμα περιήγησης? προαιρετικά apksigner και aapt2 από το Android SDK, εάν θέλετε να κάνετε τους ίδιους ελέγχους από ένα τερματικό. Τι θα μπορέσετε να κάνετε στο τέλος: διαβάστε την πλήρη λίστα αδειών οποιουδήποτε APK, εντοπίστε τα τέσσερα ή πέντε αιτήματα "υψηλού αντίκτυπου" που σχεδόν πάντα υποδεικνύουν πρόβλημα και αποφασίστε εάν θα εγκαταστήσετε πριν από την εγκατάσταση και όχι μετά.

Γιατί να ενοχλείτε τις άδειες ελέγχου;

Οι κακόβουλοι προγραμματιστές λαμβάνουν δημοφιλείς δωρεάν εφαρμογές, τις τροποποιούν και τις επανακυκλοφορούν σε ιστότοπους τρίτων. Ενώ η εφαρμογή μπορεί να φαίνεται και να λειτουργεί κανονικά, ο κρυφός της κωδικός θα μπορούσε να είναι η αντιγραφή της λίστας επαφών σας ή η εγγραφή ήχου φόντου. Προβάλλοντας τα δικαιώματα προεγκατάσταση, μπορείτε να εντοπίσετε αυτές τις κόκκινες σημαίες του "permission creep".

Πώς να ελέγξετε οποιοδήποτε αρχείο APK (Διαδικτυακό)

Το Εργαλείο πληροφοριών APK μας διαβάζει το μανιφέστο του αρχείου σας εξ ολοκλήρου στο πρόγραμμα περιήγησής σας. το αρχείο δεν μεταφορτώνεται ποτέ σε διακομιστή και δεν εκτελείται κώδικας. Δείτε πώς να το χρησιμοποιήσετε:

Διαδικασία:

  1. Μεταβείτε στο Σελίδα πληροφοριών APK.
  2. Επιλέξτε το αρχείο .apk.
  3. Περιμένετε να ολοκληρωθεί η ανάλυση (συνήθως 5 δευτερόλεπτα).
  4. Κάντε κύλιση προς τα κάτω στο Ενότητα αδειών.
  5. Αναζητήστε σημαίες υψηλού κινδύνου όπως: READ_SMS, PROCESS_OUTGOING_CALLS ή ACCESS_FINE_LOCATION.

Λίστα κόκκινων σημαιών άδειας

Εάν μια εφαρμογή Αριθμομηχανή ή Φακός ζητήσει READ_CONTACTS ή RECORD_AUDIO, διαγράψτε το αρχείο αμέσως. Δεν υπάρχει κανένας νόμιμος λόγος για αυτές τις εφαρμογές να έχουν αυτά τα δεδομένα.

Κατανόηση των επιπέδων άδειας Android

Δεν δημιουργούνται όλα τα δικαιώματα ίσα. Το Android τα κατηγοριοποιεί σε τρία επίπεδα:

Μη αυτόματη μέθοδος (Χρήση προγράμματος προβολής ZIP)

Εάν έχετε κάποια τεχνική ικανότητα, μπορείτε να ελέγξετε μόνοι σας τα δικαιώματα:

  1. Μετονομάστε το app.apk σε app.zip και ανοίξτε το.
  2. Βρείτε το AndroidManifest.xml. (Σημείωση: Είναι σε δυαδική μορφή και θα μοιάζει με ασυναρτησίες σε ένα πρόγραμμα επεξεργασίας κειμένου).
  3. Χρησιμοποιήστε ένα εργαλείο όπως το AXMLPrinter για να το μετατρέψετε σε ευανάγνωστο κείμενο.
  4. Αναζητήστε ετικέτες που ξεκινούν με <uses-permission>.

Σύσταση: Είναι πολύ πιο γρήγορο να χρησιμοποιήσετε το διαδικτυακό εργαλείο που το αποκωδικοποιεί για εσάς αμέσως.

Ελέγξτε τις εφαρμογές σας τώρα

Μάθετε ακριβώς τι ζητούν οι εφαρμογές σας. Χωρίς μυστικά, χωρίς κινδύνους.

Ελέγξτε τα δικαιώματα APK

Τι είναι πραγματικά αποθηκευμένο στο AndroidManifest.xml

Το μανιφέστο είναι η πηγή της αλήθειας για κάθε άδεια, στοιχείο και χαρακτηριστικό που δηλώνει μια εφαρμογή. Μέσα σε ένα APK, το αρχείο είναι σε μορφή δυαδική XML, όχι το απλό κείμενο που βλέπετε στον πηγαίο κώδικα, επομένως δεν μπορεί να διαβαστεί με ένα κανονικό πρόγραμμα επεξεργασίας κειμένου. Το εργαλείο μας APK Info αποκωδικοποιεί το δυαδικό XML και εμφανίζει τις σχετικές ετικέτες. Τα πιο σημαντικά είναι:

Επίπεδα προστασίας αδειών: Το φύλλο εξαπάτησης

Το Android εκχωρεί σε κάθε άδεια ένα "επίπεδο προστασίας". Το να γνωρίζετε σε ποιο επίπεδο ανήκει ένα αίτημα, σας λέει πόσο σοβαρά θα το αντιμετωπίσει το λειτουργικό σύστημα.

Επίπεδο προστασίας Εμπειρία χρήστη Παραδείγματα
κανονικός Χορηγείται σιωπηλά κατά τον χρόνο εγκατάστασης. Χωρίς προτροπή. INTERNET, VIBRATE, ACCESS_NETWORK_STATE, WAKE_LOCK
επικίνδυνος Προτροπή χρόνου εκτέλεσης την πρώτη φορά που χρησιμοποιείται η δυνατότητα. Με δυνατότητα ανάκλησης στις Ρυθμίσεις. CAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION
υπογραφή Χορηγείται μόνο σε εφαρμογές που είναι υπογεγραμμένες με το ίδιο πιστοποιητικό με την εφαρμογή παραχώρησης ή το λειτουργικό σύστημα. BIND_VPN_SERVICE, INSTALL_PACKAGES (μόνο για σύστημα)
υπογραφή|προνομιούχος Διατίθεται μόνο σε προεγκατεστημένες εφαρμογές στον κατάλογο priv-app της εικόνας συστήματος. MANAGE_USERS, READ_LOGS (δικαιώματα συστήματος)
appop / ρόλος Απαιτείται ξεχωριστή ροή ρυθμίσεων για την ενεργοποίηση. SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (ειδική πρόσβαση)

Τι σημαίνει στην πραγματικότητα "Κρυμμένα" δικαιώματα

Μια κοινή παρανόηση είναι ότι ορισμένες άδειες είναι μυστικές. Δεν είναι: κάθε άδεια που μπορεί να χρησιμοποιεί μια εφαρμογή πρέπει να δηλώνεται στο AndroidManifest.xml και το λειτουργικό σύστημα αρνείται να χορηγήσει οποιαδήποτε άδεια που δεν αναφέρεται εκεί. Αυτό που συνήθως εννοούν οι άνθρωποι με το "κρυφό" είναι ένα από δύο πράγματα:

Είτε έτσι είτε αλλιώς, η απάντηση είναι η ίδια: διαβάστε το μανιφέστο, μην εμπιστεύεστε μια περιγραφή του Play Store από μόνη της.

Παράδειγμα εργασίας: Έλεγχος πραγματικού APK

Ας υποθέσουμε ότι έχετε το example.apk στο φάκελο "Λήψεις". Εδώ είναι η ακριβής ροή εργασίας:

  1. Ανοίξτε το Εργαλείο πληροφοριών APK στο πρόγραμμα περιήγησής σας.
  2. Ρίξτε το APK στην περιοχή μεταφόρτωσης. Η επεξεργασία γίνεται τοπικά. το αρχείο δεν φεύγει από τη συσκευή σας.
  3. Διαβάστε την ενότητα Άδειες. Κάθε καταχώρηση εμφανίζει το όνομα της σταθεράς (android.permission.READ_CONTACTS και μια περιγραφή σε απλή γλώσσα του τι επιτρέπει).
  4. Συγκρίνετε τη λίστα με την κατηγορία της εφαρμογής. Χονδρικά, να περιμένετε:
    • Εφαρμογές κάμερας: CAMERA, RECORD_AUDIO (για βίντεο), STORAGE/MEDIA εγγραφή
    • Εφαρμογές ανταλλαγής μηνυμάτων: INTERNET, READ_CONTACTS, SEND_SMS (μόνο εάν βασίζεται σε SMS), RECORD_AUDIO (για φωνητικές σημειώσεις), CAMERA (για αποστολή φωτογραφιών)
    • Παιχνίδια: ΔΙΑΔΙΚΤΥΟ, μερικές φορές RECORD_AUDIO (για φωνητική συνομιλία στο παιχνίδι), άδειες που σχετίζονται με τη χρέωση. σπάνια οτιδήποτε άλλο
    • Βοηθητικές εφαρμογές (αριθμομηχανή, φακός, καιρός): INTERNET (για διαφημίσεις), ACCESS_NETWORK_STATE, πιθανώς LOCATION (μόνο για τον καιρό). Οτιδήποτε πέρα ​​από αυτό είναι ύποπτο.
  5. Εάν κάτι στη λίστα δεν ταιριάζει στην κατηγορία, μην το εγκαταστήσετε. Δεν υπάρχει καλός λόγος που μια αριθμομηχανή χρειάζεται πρόσβαση SMS.

Η ίδια λογική ισχύει είτε το αρχείο είναι ένα APK, ένα XAPK (όπου διαβάζουμε το APK εσωτερικής βάσης) είτε ένα πακέτο APKS (όπου διαβάζουμε το μανιφέστο κάθε διαχωρισμού).

Κάνοντάς το από τη γραμμή εντολών

Εάν προτιμάτε την τερματική διαδρομή, το Android SDK αποστέλλει το aapt2, το οποίο απορρίπτει ένα μανιφέστο από οποιοδήποτε APK σε απλό XML:

aapt2 dump badging example.apk | grep "uses-permission"

Ή χρησιμοποιήστε το apksigner για να επαληθεύσετε το πιστοποιητικό υπογραφής ταυτόχρονα:

apksigner verify --print-certs example.apk

Το εργαλείο προγράμματος περιήγησης κάνει το ίδιο πράγμα για χρήστες που προτιμούν να μην εγκαταστήσουν ένα SDK απλώς για να ελέγξουν ένα μεμονωμένο αρχείο.

Συχνές Ερωτήσεις (FAQ)

Μπορώ να αρνηθώ μια άδεια μετά την εγκατάσταση ενός APK;

Ναί. Σε Android 6.0 και νεότερη έκδοση, μπορείτε να μεταβείτε στο Ρυθμίσεις > Εφαρμογές > [Όνομα εφαρμογής] > Δικαιώματα για να ενεργοποιήσετε ή να απενεργοποιήσετε μεμονωμένα επικίνδυνα δικαιώματα.

Τα αρχεία XAPK έχουν διαφορετικά δικαιώματα;

Ένα XAPK περιέχει ένα ή περισσότερα APK. Κάθε APK μέσα έχει το δικό του μανιφέστο. Το εργαλείο μας θα αναλύσει το Κύριο APK μέσα στο πακέτο για να σας δείξει τα σχετικά δικαιώματα.

Γιατί κάθε εφαρμογή ζητά "Πρόσβαση στο δίκτυο";

Σχεδόν όλες οι εφαρμογές χρειάζονται πρόσβαση στο διαδίκτυο για αναλυτικά στοιχεία, αναφορές σφαλμάτων ή διαφημίσεις. Αν και είναι συνηθισμένο, είναι επίσης ο τρόπος με τον οποίο τα κλεμμένα δεδομένα αποστέλλονται στον διακομιστή ενός χάκερ.

Επιθεώρηση των δικαιωμάτων Manifest πριν πατήσετε Install

Δεν μπορείς να κρίνεις αυτό που δεν μπορείς να δεις. Το να ξοδεύετε δέκα δευτερόλεπτα στο δείτε τα δικαιώματα ενός APK πριν από την πλευρική φόρτωση, είναι η διαφορά ανάμεσα στο να γνωρίζετε τι μπορεί να φτάσει μια εφαρμογή και απλά να ελπίζετε ότι συμπεριφέρεται. Διαβάστε πρώτα τη λίστα και μετά εγκαταστήστε.

Κατασκευάστηκε και τεκμηριώθηκε από τον Mst Shaefale Κύριος προγραμματιστής και αρχιτέκτονας πακέτων Android • Επαληθεύτηκε σε Android 12–15

Το Mst Shaefale διατηρεί τη συγχώνευση XAPK/APKS από την πλευρά του πελάτη, τον αναλυτή δυαδικού μανιφέστου και τα εργαλεία υπογραφής APK v1+v2 στο xapktoapk.com. Εντοπίζετε μια παρωχημένη εντολή ή αλλαγή λειτουργικού συστήματος; Στείλτε ένα συντακτικό σημείωμα.