Zrootowanie urządzenia z Androidem zapewnia dostęp do szerszej gamy aplikacji i głębszy dostęp do systemu Android. Ale niektóre aplikacje, takie jak Android Pay firmy Google –W ogóle nie będzie działać na zrootowanym urządzeniu.
Google używa czegoś, co nazywa się SafetyNet, aby wykryć, czy Twoje urządzenie jest zrootowane, czy nie, i blokuje dostęp do tych funkcji. Google nie jest jedyny - wiele aplikacji innych firm również nie będzie działać zrootowane urządzenia z Androidem , chociaż mogą sprawdzać obecność korzenia w inny sposób.
SafetyNet: Skąd Google wie, że Twój telefon z Androidem został zrootowany
ZWIĄZANE Z: Masz dość kradzieży karty kredytowej? Skorzystaj z Apple Pay lub Android Pay
Urządzenia z systemem Android oferują „ SafetyNet API , ”, Który jest częścią Usługi Google Play warstwa zainstalowana na urządzeniach z Androidem zatwierdzonych przez Google. Ten interfejs API „zapewnia dostęp do usług Google, które pomagają ocenić stan zdrowia i bezpieczeństwo urządzenia z systemem Android”, według Google. Jeśli jesteś programistą na Androida, możesz wywołać ten interfejs API w swojej aplikacji, aby sprawdzić, czy urządzenie, na którym używasz, nie zostało zmodyfikowane.
Ten interfejs API SafetyNet został zaprojektowany, aby sprawdzić, czy urządzenie nie zostało zmodyfikowane - na przykład czy nie zostało zrootowane przez użytkownika, czy ma niestandardową pamięć ROM, czy też zostało zainfekowane złośliwym oprogramowaniem niskiego poziomu.
Urządzenia dostarczane ze Sklepem Google Play i innymi zainstalowanymi aplikacjami muszą przejść pakiet Google „Compatibility Test Suite” Google. Zrootowanie urządzenia lub instalacja niestandardowej pamięci ROM uniemożliwia urządzeniu „zgodność z CTS”. W ten sposób interfejs SafetyNet API może stwierdzić, czy jesteś zrootowany - sprawdza jedynie zgodność z CTS. Podobnie, jeśli otrzymasz urządzenie z Androidem, które nigdy nie było dostarczane z aplikacjami Google - na przykład jeden z tych 20-dolarowych tabletów wysyłanych bezpośrednio z fabryki w Chinach - w ogóle nie zostanie uznane za „zgodne z CTS”, nawet jeśli nie zostało zrootowane .
Aby uzyskać te informacje, Usługi Google Play pobierają program o nazwie „snet” i uruchamiają go w tle na Twoim urządzeniu. Program zbiera dane z Twojego urządzenia i regularnie wysyła je do Google. Google wykorzystuje te informacje do różnych celów, od uzyskania obrazu szerszego ekosystemu Androida po określenie, czy oprogramowanie Twojego urządzenia zostało zmodyfikowane. Google nie wyjaśnia dokładnie, czego szuka snet, ale prawdopodobnie snet sprawdza, czy partycja systemowa nie została zmodyfikowana ze stanu fabrycznego.
Możesz sprawdzić stan SafetyNet swojego urządzenia, pobierając aplikację taką jak Przykład pomocy SafetyNet lub SafetyNet Playground . Aplikacja zapyta usługę Google SafetyNet o stan Twojego urządzenia i poinformuje Cię, jaką odpowiedź otrzyma z serwera Google.
Aby uzyskać więcej informacji technicznych, przeczytaj ten post na blogu napisany przez Johna Kozyrakisa, stratega technicznego w Cigital, firmie zajmującej się bezpieczeństwem oprogramowania. Zagłębił się w SafetyNet i wyjaśniał więcej o tym, jak to działa.
To zależy od aplikacji
SafetyNet jest opcjonalny dla programistów aplikacji, a programiści mogą z niego korzystać lub nie. SafetyNet zapobiega działaniu aplikacji tylko wtedy, gdy programista aplikacji nie chce, aby działała na zrootowanych urządzeniach.
Większość aplikacji w ogóle nie sprawdza interfejsu SafetyNet API. Nawet aplikacja, która sprawdza interfejs SafetyNet API - podobnie jak aplikacje testowe powyżej - nie przestanie działać, jeśli otrzyma złą odpowiedź. Programista aplikacji musi sprawdzić interfejs SafetyNet API i zablokować działanie aplikacji, jeśli dowie się, że oprogramowanie Twojego urządzenia zostało zmodyfikowane. Własna aplikacja Google Android Pay jest dobrym przykładem tego w działaniu.
Android Pay nie będzie działać na urządzeniach z dostępem do roota
Rozwiązanie Google do płatności mobilnych Android Pay nie działa w ogóle na zrootowanych urządzeniach z Androidem. Spróbuj go uruchomić, a zobaczysz komunikat „Nie można użyć Androida Pay. Google nie może sprawdzić, czy Twoje urządzenie lub działające na nim oprogramowanie jest zgodne z systemem Android ”.
Oczywiście nie chodzi tylko o rootowanie– uruchamianie niestandardowej pamięci ROM naraziłby cię również na to wymaganie. SafetyNet API twierdzi, że nie jest „zgodny z systemem Android”, jeśli używasz niestandardowej pamięci ROM, z którą urządzenie nie było dostarczane.
ZWIĄZANE Z: Sprawa przeciwko rootowi: dlaczego urządzenia z Androidem nie są zakorzenione
Pamiętaj, że to nie tylko wykrywa rootowanie. Jeśli Twoje urządzenie zostało zainfekowane przez jakieś złośliwe oprogramowanie na poziomie systemu, które może szpiegować Androida Pay i inne aplikacje, interfejs SafetyNet API uniemożliwiłby również działanie Androida Pay, co jest dobrą rzeczą.
Rootowanie urządzenia narusza normalny model zabezpieczeń Androida. Android Pay zwykle chroni dane płatności za pomocą funkcji piaskownicy Androida, ale aplikacje mogą wydostać się z piaskownicy na zrootowanym urządzeniu . Google nie ma sposobu, aby dowiedzieć się, jak bezpieczny byłby Android Pay na konkretnym urządzeniu, gdyby był zrootowany lub ma nieznaną niestandardową pamięć ROM, więc blokuje go. Inżynier Android Pay wyjaśnił problem na forum XDA Developers jeśli chcesz przeczytać więcej.
Inne sposoby wykrywania rootów przez aplikacje
SafetyNet to tylko jeden ze sposobów, w jaki aplikacja może sprawdzić, czy działa na zrootowanym urządzeniu. Na przykład urządzenia Samsung zawierają system bezpieczeństwa o nazwie KNOX. Jeśli zrootujesz swoje urządzenie, zabezpieczenie KNOX zostanie wyłączone. Samsung Pay, własna aplikacja Samsung do płatności mobilnych, odmówi działania na zrootowanych urządzeniach. Samsung używa do tego KNOX, ale równie dobrze mógłby używać SafetyNet.
Podobnie, wiele aplikacji innych firm blokuje ich używanie, a nie wszystkie z nich korzystają z SafetyNet. Mogą po prostu sprawdzić obecność znanych aplikacji i procesów roota na urządzeniu.
Trudno jest znaleźć aktualną listę aplikacji, które nie działają, gdy urządzenie jest zrootowane. Jednak RootCloak zapewnia kilka listy . Te listy mogą być nieaktualne, ale to najlepsze, jakie możemy znaleźć. Wiele z nich to aplikacje bankowe i inne aplikacje portfela mobilnego, które blokują dostęp na telefonach zrootowanych w celu ochrony informacji bankowych przed przechwyceniem przez inne aplikacje. Aplikacje do usług przesyłania strumieniowego wideo mogą również odmówić działania na zrootowanym urządzeniu jako rodzaj środka DRM, próbując uniemożliwić nagrywanie chronionego strumienia wideo.
Niektóre aplikacje można oszukać
Google gra w kotka i myszkę z SafetyNet i stale ją aktualizuje, starając się wyprzedzić ludzi, którzy ją omijają. Na przykład, programista Android Chainfire stworzył nową metodę rootowania urządzeń z Androidem bez modyfikowania partycji systemowej, znaną jako „rootless root”. SafetyNet początkowo nie wykrył, że takie urządzenia są modyfikowane, a Android Pay działał, ale SafetyNet został ostatecznie zaktualizowany, aby wykryć tę nową metodę rootowania. Oznacza to Android Pay nie działa wraz z bezsystemowym rootem.
ZWIĄZANE Z: Zapomnij o flashowaniu ROMów: użyj Xposed Framework, aby ulepszyć Androida
W zależności od tego, jak aplikacja sprawdza uprawnienia administratora, możesz ją oszukać. Na przykład podobno istnieją metody rootowania niektórych urządzeń Samsung bez wyłączania zabezpieczeń KNOX, co pozwoliłoby na dalsze korzystanie z Samsung Pay.
W przypadku aplikacji, które po prostu sprawdzają aplikacje root w Twoim systemie, istnieje plik Xposed Framework moduł o nazwie RootCloak co podobno pozwala i tak nakłonić ich do pracy. Działa to z aplikacjami takimi jak DirecTV GenieGo, Best Buy CinemaNow i Movies by Flixster, które normalnie nie działają na zrootowanych urządzeniach. Gdyby jednak te aplikacje zostały zaktualizowane tak, aby korzystały z Google SafetyNet, nie byłoby łatwo ich oszukać w ten sposób.
Większość aplikacji będzie działać normalnie po zrootowaniu urządzenia. Aplikacje do płatności mobilnych są dużym wyjątkiem, podobnie jak niektóre inne aplikacje bankowe i finansowe. Płatne usługi strumieniowego przesyłania wideo czasami próbują również zablokować Ci oglądanie ich filmów.
Jeśli aplikacja, której potrzebujesz, nie działa na zrootowanym urządzeniu, zawsze możesz zrestartować urządzenie, aby z niego korzystać. Aplikacja powinna działać po przywróceniu urządzenia do bezpiecznego stanu fabrycznego.
Źródło zdjęcia: Danny Choo na Flickr