Jak wyświetlić uprawnienia aplikacji na Androida przed zainstalowaniem pakietu APK

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

Gdy instalujesz aplikację ze Sklepu Google Play, system Android wyświetla uproszczone podsumowanie tego, do czego aplikacja może uzyskać dostęp. Sideload APK ze źródła innego niż Play i nie będziesz mieć takiej siatki bezpieczeństwa, chyba że sam przeczytasz manifest. „Czy aplikacja do tapet naprawdę powinna potrzebować dostępu do SMS-ów i mikrofonu?” to dokładnie ten rodzaj pytania, na który pomoże Ci odpowiedzieć ten przewodnik.

Poniżej znajduje się ten sam przepływ pracy, którego używa nasz zespół podczas selekcji nieznanego pliku APK: otwórz go, przeczytaj wpisy uses-permission, odkoduj poziomy ochrony i porównaj to, czego potrzebuje aplikacja mówi z tym, czego zwykle wymaga jej kategoria. Nasz Narzędzie internetowe APK Informacje wykonuje za Ciebie dekodowanie binarnego XML, więc cały proces zajmuje około dziesięciu sekund.

Czas czytania: ~9 minut. Potrzebne narzędzia: przeglądarka; fakultatywnie apksigner I aapt2 z zestawu SDK systemu Android, jeśli chcesz wykonać te same kontrole z terminala. Co będziesz mógł zrobić na koniec: przeczytaj pełną listę uprawnień dowolnego pliku APK, znajdź cztery lub pięć żądań o „dużym wpływie”, które prawie zawsze wskazują na problemy, i zdecyduj, czy zainstalować przed instalacją, a nie po.

Po co zawracać sobie głowę sprawdzaniem uprawnień?

Złośliwi programiści pobierają popularne bezpłatne aplikacje, modyfikują je i ponownie udostępniają w witrynach stron trzecich. Chociaż aplikacja może wyglądać i działać normalnie, jej ukryty kod może kopiować listę kontaktów lub nagrywać dźwięk w tle. Przeglądając uprawnienia instalacja wstępna, możesz zauważyć czerwone flagi „pełzania uprawnień”.

Jak sprawdzić dowolny plik APK (online)

Nasz Narzędzie informacyjne APK odczytuje manifest Twojego pliku w całości w Twojej przeglądarce; plik nigdy nie jest przesyłany na serwer i żaden kod nie jest wykonywany. Oto jak z niego korzystać:

Proces:

  1. Przejdź do Strona z informacjami o APK.
  2. Wybierz plik .apk.
  3. Poczekaj na zakończenie analizy (zwykle 5 sekund).
  4. Przewiń w dół do Sekcja uprawnień.
  5. Szukaj flag wysokiego ryzyka, takich jak: READ_SMS, PROCESS_OUTGOING_CALLS lub ACCESS_FINE_LOCATION.

Lista czerwonych flag zezwoleń

Jeśli aplikacja Kalkulator lub Flesz poprosi o READ_CONTACTS lub RECORD_AUDIO, natychmiast usuń plik. Nie ma uzasadnionego powodu, dla którego te aplikacje miałyby mieć te dane.

Zrozumienie poziomów uprawnień Androida

Nie wszystkie uprawnienia są sobie równe. Android dzieli je na trzy poziomy:

Metoda ręczna (przy użyciu przeglądarki ZIP)

Jeśli masz pewne umiejętności techniczne, możesz samodzielnie sprawdzić uprawnienia:

  1. Zmień nazwę app.apk na app.zip i otwórz go.
  2. Znajdź AndroidManifest.xml. (Uwaga: jest w formacie binarnym i w edytorze tekstu będzie wyglądać jak bełkot).
  3. Użyj narzędzia takiego jak AXMLPrinter, aby przekonwertować go na czytelny tekst.
  4. Wyszukaj tagi zaczynające się od <uses-permission>.

Zalecenie: Dużo szybciej jest użyć naszego narzędzie internetowe, który dekoduje to natychmiast.

Przeprowadź audyt swoich aplikacji już teraz

Dowiedz się dokładnie, o co proszą Twoje aplikacje. Żadnych tajemnic, żadnego ryzyka.

Sprawdź uprawnienia APK

Co faktycznie jest przechowywane w pliku AndroidManifest.xml

Manifest jest źródłem prawdy dla każdego uprawnienia, komponentu i funkcji deklarowanej przez aplikację. Wewnątrz pliku APK plik ma postać binarny XML, a nie zwykły tekst widoczny w kodzie źródłowym, więc nie można go odczytać w zwykłym edytorze tekstu. Nasze narzędzie informacyjne APK dekoduje binarny plik XML i wyświetla odpowiednie tagi. Najważniejsze z nich to:

Poziomy ochrony uprawnień: Ściągawka

Android przypisuje każdemu uprawnieniu „poziom ochrony”. Wiedza o tym, do jakiego poziomu należy żądanie, informuje, jak poważnie system operacyjny potraktuje je.

Poziom ochrony Doświadczenie użytkownika Przykłady
normalna Przyznane po cichu w czasie instalacji. Brak podpowiedzi. INTERNET, WIBRACJA, ACCESS_NETWORK_STATE, WAKE_LOCK
niebezpieczny Monit środowiska wykonawczego przy pierwszym użyciu tej funkcji. Możliwość odwołania w Ustawieniach. KAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION
podpis Przyznawany tylko aplikacjom podpisanym tym samym certyfikatem, co aplikacja przyznająca certyfikat lub system operacyjny. BIND_VPN_SERVICE, INSTALL_PACKAGES (tylko system)
podpis|uprzywilejowany Dostępne tylko dla aplikacji zainstalowanych fabrycznie w katalogu priv-app obrazu systemu. ZARZĄDZAJ_USERS, CZYTAJ_LOGI
aplikacja/rola Aby włączyć, wymaga osobnego przepływu ustawień. SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (specjalne uprawnienia systemowe)

Co właściwie oznaczają „ukryte” uprawnienia

Powszechnym błędnym przekonaniem jest to, że niektóre uprawnienia są tajne. Tak nie jest: każde pozwolenie, z którego może korzystać aplikacja, musi zostać zadeklarowane w AndroidManifest.xml, a system operacyjny odmawia udzielenia jakichkolwiek uprawnień, które nie są tam wymienione. To, co ludzie zwykle mają na myśli, mówiąc „ukryty”, to jedna z dwóch rzeczy:

Tak czy inaczej, odpowiedź jest ta sama: przeczytaj manifest, nie ufaj samemu opisowi Sklepu Play.

Sprawdzony przykład: audyt prawdziwego pliku APK

Załóżmy, że masz example.apk w folderze Pobrane. Oto dokładny przebieg pracy:

  1. Otwórz Narzędzie informacyjne APK w swojej przeglądarce.
  2. Upuść plik APK w obszarze przesyłania. Przetwarzanie odbywa się lokalnie; plik nie opuszcza urządzenia.
  3. Przeczytaj sekcję Uprawnienia. Każdy wpis zawiera nazwę stałą (android.permission.READ_CONTACTS i prosty opis tego, na co pozwala).
  4. Porównaj listę z kategorią aplikacji. Z grubsza spodziewaj się:
    • Aplikacje aparatu: CAMERA, RECORD_AUDIO (dla wideo), STORAGE/MEDIA zapis
    • Aplikacje do przesyłania wiadomości: INTERNET, READ_CONTACTS, SEND_SMS (tylko w przypadku wiadomości SMS), RECORD_AUDIO (do notatek głosowych), CAMERA (do wysyłania zdjęć)
    • Zawody sportowe: INTERNET, czasami RECORD_AUDIO (do czatu głosowego w grze), uprawnienia związane z rozliczeniami; rzadko coś innego
    • Aplikacje użytkowe (kalkulator, latarka, pogoda): INTERNET (dla reklam), ACCESS_NETWORK_STATE, ewentualnie LOKALIZACJA (tylko pogoda). Wszystko poza tym jest podejrzane.
  5. Jeśli cokolwiek na liście nie pasuje do kategorii, nie instaluj. Nie ma dobrego powodu, dla którego kalkulator potrzebuje dostępu przez SMS.

Ta sama logika obowiązuje niezależnie od tego, czy plik jest plikiem APK, XAPK (w którym czytamy wewnętrzny podstawowy plik APK), czy pakietem APKS (w którym czytamy manifest każdego podziału).

Robi to z wiersza poleceń

Jeśli wolisz trasę terminalową, pakiet SDK systemu Android zawiera aapt2, który zrzuca manifest z dowolnego pliku APK w zwykłym formacie XML:

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

Lub użyj apksigner, aby jednocześnie zweryfikować certyfikat podpisujący:

apksigner verify --print-certs example.apk

Narzędzie przeglądarki robi to samo dla użytkowników, którzy woleliby nie instalować pakietu SDK tylko w celu sprawdzenia pojedynczego pliku.

Często zadawane pytania (FAQ)

Czy mogę odmówić pozwolenia po zainstalowaniu pakietu APK?

Tak. W systemie Android 6.0 i nowszych możesz przejść do Ustawienia > Aplikacje > [Nazwa aplikacji] > Uprawnienia, aby włączyć lub wyłączyć poszczególne niebezpieczne uprawnienia.

Czy pliki XAPK mają różne uprawnienia?

XAPK zawiera jeden lub więcej plików APK. Każdy plik APK w środku ma swój własny manifest. Nasze narzędzie przeanalizuje Główny plik APK w pakiecie, aby wyświetlić odpowiednie uprawnienia.

Dlaczego każda aplikacja pyta o „Dostęp do sieci”?

Prawie wszystkie aplikacje wymagają dostępu do Internetu w celu przeprowadzania analiz, raportowania błędów lub reklam. Chociaż jest to powszechne, jest to również sposób, w jaki skradzione dane są wysyłane na serwer hakera.

Sprawdzanie uprawnień manifestu przed dotknięciem opcji Zainstaluj

Nie możesz osądzać tego, czego nie widzisz. Poświęcenie dziesięciu sekund na wyświetl uprawnienia pliku APK przed załadowaniem bocznym to różnica między wiedzą, do czego aplikacja może dotrzeć, a po prostu nadzieją, że się zachowa. Najpierw przeczytaj listę, a następnie zainstaluj.

Zaprojektowane i udokumentowane przez Mst Shaefale Główny programista i architekt pakietów dla Androida • Zweryfikowano na Androidzie 12–15

Mst Shaefale obsługuje fuzję XAPK/APKS po stronie klienta, parser manifestu binarnego i narzędzia do podpisywania plików APK v1 + v2 w xapktoapk.com. Zauważyłeś nieaktualne polecenie lub zmianę systemu operacyjnego? Wyślij notatkę redakcyjną.