Logo pl.androidermagazine.com
Logo pl.androidermagazine.com

Co tak naprawdę oznacza zrootowanie telefonu?

Spisu treści:

Anonim

Uwielbiamy odpowiadać na twoje pytania. Zawsze dobrze jest, gdy możemy sobie pomóc, a my sami się uczymy, szukając odpowiedzi. Chociaż nie możemy znaleźć czasu na udzielenie odpowiedzi na wszystkie, czasami pojawia się pewne pytanie, które zasługuje na szczegółową odpowiedź.

„Co oznacza root?” jest jednym z tych pytań. Pomysł może być prosty dla niektórych z nas, ale dla wielu osób, które nie spędzały czasu na majstrowaniu przy Androidzie lub innym systemie operacyjnym opartym na uprawnieniach, warto zadać pytania. Postaram się odpowiedzieć na wszystkie, najlepiej jak potrafię.

Uprawnienia

Zanim zdefiniujemy root, ważne jest, aby zrozumieć, dlaczego istnieje i jak działa. Dzieje się tak, ponieważ Android używa uprawnień (a dokładniej uprawnień opartych na systemie Linux) w strukturze plików. Każdy plik, każdy folder i każda partycja ma zestaw uprawnień. Uprawnienia te decydują, kto może czytać plik (przeglądać zawartość lub uzyskiwać do niej dostęp bez ich zmieniania), zapisywać do pliku (mieć możliwość zmiany zawartości tego pliku lub utworzyć nowy plik w folderze lub partycji) i wykonać plik (uruchom plik, jeśli można go uruchomić, np. aplikację). Odbywa się to na podstawie użytkowników i uprawnień - niektórzy użytkownicy mają dostęp, a użytkownicy, którzy nie mają odpowiednich uprawnień, są blokowani przed dostępem.

Podczas pierwszej konfiguracji i włączania telefonu po raz pierwszy przypisywany jest identyfikator użytkownika. Jeśli inny użytkownik zaloguje się za pośrednictwem Google, zostanie mu przypisany inny identyfikator użytkownika. Gdy aplikacja jest zainstalowana w telefonie, przypisuje się jej także własny identyfikator użytkownika. Sam system jest użytkownikiem, a inne procesy, które muszą być uruchomione na telefonie, mogą mieć własny identyfikator użytkownika. Wszystko, co może zrobić wszystko z dowolnymi plikami na Androidzie, to użytkownik.

System użytkowników i uprawnień to sposób, w jaki Android śledzi, kto może co robić.

Załóżmy, że instalujesz aplikację do przesyłania wiadomości. Podczas instalacji otrzymuje identyfikator użytkownika. Dostaje również miejsce na własnej partycji danych, do której tylko on ma dostęp. Masz uprawnienia do uruchomienia aplikacji, a po uruchomieniu aplikacja ma dostęp do własnego folderu danych i plików. Aplikacja może również poprosić o pozwolenie na dostęp do takich rzeczy jak książka adresowa, karta SD lub biblioteka zdjęć. Jeśli odpowiesz tak na te żądania (lub jeśli zgadzasz się na uprawnienia do starszych wersji Androida), identyfikator użytkownika aplikacji otrzyma pozwolenie na pliki danych tych rzeczy, co oznacza, że ​​może spojrzeć na folder danych i jego zawartość i ewentualnie zmienić je lub dodaj nowe pliki. Aplikacja nie może uzyskać dostępu do plików danych, na które nie ma uprawnień, aby „patrzeć”. Oznacza to (w naszym przykładzie), że nie można robić takich rzeczy, jak przeglądanie bazy danych ustawień lub uzyskiwanie dostępu do folderu danych innej aplikacji. Często używa się do tego terminu piaskownica - aplikacje są w piaskownicy i mogą grać tylko w piaskownicach, w których mają uprawnienia.

W przypadku plików, które są programami i mogą być uruchamiane (jak aplikacje), obowiązuje ten sam model uprawnień. Twój identyfikator użytkownika ma uprawnienia do uruchamiania aplikacji zainstalowanych podczas logowania. Użytkownik systemu ma uprawnienia do uruchamiania ich, a inni użytkownicy na poziomie systemu mogą mieć dostęp do aplikacji lub niektórych procesów używanych przez aplikacje. Inne aplikacje nie mogą uruchamiać aplikacji, do których uruchamiania nie mają uprawnień. Jeśli dodałeś drugiego użytkownika, nie będzie on miał dostępu do twoich aplikacji lub plików i odwrotnie. W telefonie są pliki, foldery i aplikacje, których identyfikator użytkownika nie ma uprawnień do wyświetlania, modyfikowania ani uruchamiania. Zwykle te części Androida wymagają uprawnień na poziomie systemu (identyfikator użytkownika systemu), aby cokolwiek robić, a użytkownik nie jest użytkownikiem systemu ani użytkownikiem, który ma uprawnienia na poziomie systemu.

Zmiana uprawnień

Chociaż technicznie jest możliwa zmiana sposobu uruchamiania telefonu i plików używanych do uruchomienia działającego systemu i przypisania podwyższonych uprawnień użytkownika, nie jest to ani bezpieczne, ani praktyczne. Ale Android (i większość systemów opartych na Unixie lub Linuksie) ma tak zwanego użytkownika root i obsługuje plik binarny SubstituteUser (myśl o pliku binarnym jako małej aplikacji) w celu zmiany identyfikatorów użytkowników. Służą one do administrowania systemem na poziomie podstawowym.

Ponieważ osoby, które utworzyły Twój telefon, nie chcą, abyś miał łatwy dostęp do identyfikatora użytkownika root - i nie wszystkie powody są samolubne, ponieważ chroni również ciebie i twoje prywatne dane - plik binarny SubstituteUser nie jest zawarty w większości wersji Android. Bez SubstituteUser nie możemy zmienić naszego identyfikatora użytkownika. Nawiasem mówiąc, większość rzeczy na poziomie systemu w Androidzie ma podobne łatwe nazwy. Podstawowe zabezpieczenia (pliki w bootloaderze i / lub samym jądrze) są również zbudowane w taki sposób, aby uniemożliwić zmianę identyfikatorów użytkowników w ramach modułu jądra SELinux (S ecurity - Enhanced Linux - powiedział, że nazwy są łatwe). Niektóre telefony (przychodzi na myśl Knox Samsunga) mają dodatkowe zabezpieczenia, a prawie wszystkie firmy produkujące androidy wymagają, aby w celu wprowadzenia zmian konieczne było odblokowanie bootloadera, aby można było zmienić te pliki i umożliwić zmianę identyfikatorów użytkowników. Niektóre telefony, takie jak BlackBerry Priv, idą nawet o krok dalej i nie uruchomią się, jeśli coś zmienimy (nawet jeśli moglibyśmy).

Aby zostać rootem, musisz zmienić swój identyfikator użytkownika.

Kiedy już to wszystko miniemy - albo poprzez odblokowanie bootloadera za pomocą autoryzowanych środków, albo za pomocą jakiegoś exploita - możemy umieścić plik binarny SU (SubstituteUser) w miejscu, w którym będzie on mógł działać, gdy zostanie uruchomiony - to się nazywa ŚCIEŻKA. Jeśli jakakolwiek aplikacja znajduje się w ścieżce identyfikatora użytkownika, uruchomi się ona bez informowania systemu, gdzie dokładnie jest. Musisz także upewnić się, że plik binarny SU znajduje się w miejscu, w którym identyfikator użytkownika ma uprawnienia do uruchamiania (uruchamiania) plików. Każda inna aplikacja (Google Play ma wiele aplikacji, które wymagają uprawnień roota) również potrzebuje tego samego dostępu. Gdy używasz metody do zrootowania telefonu, wszystko to jest uporządkowane przez ludzi, którzy zbudowali metodę rootowania.

Gdy wszystko będzie już na miejscu, możemy uruchomić plik binarny SU (lub inna aplikacja może uruchomić plik binarny SU).

Uzyskiwanie dostępu do konta root

W tym miejscu pojawia się root. Plik binarny SU używa flag, gdy jest uruchomiony, aby poinformować system, na który ID użytkownika chcesz się przełączyć. Na przykład, jeśli uruchomię plik binarny SU na moim komputerze Ubuntu, takim jak „su Jim -c nano”, uruchomię polecenie nano jako użytkownik Jim (po podaniu hasła Jima). Jeśli uruchomisz plik binarny SU bez flag lub argumentów, przełącza on użytkownika root. Zwykle trzeba podać hasło, ale ponieważ „root” jest nieużywanym użytkownikiem Androida, nie ma hasła. Uruchomienie polecenia „su” spowoduje przejście do katalogu głównego użytkownika, przypisanie ID użytkownika 0 i umieszczenie w grupie głównej. Jesteś teraz superużytkownikiem.

Jako superużytkownik możesz wykonywać dowolne operacje na dowolnym pliku, folderze lub partycji na Androidzie. Przez cokolwiek rozumiemy dosłownie wszystko. Możesz usunąć aplikacje typu bloatware, a także usunąć niezbędne pliki systemowe, które psują telefon. Możesz także robić różne rzeczy na sprzęcie, takie jak zmiana częstotliwości procesora i zrujnowanie telefonu na zawsze.

Root to superużytkownik, który może zrobić wszystko. I mamy na myśli wszystko.

Aplikacje mogą zrobić to samo. SU jest umieszczane tam, gdzie jest w aplikacji PATH, a każda aplikacja może go wywołać i uruchomić. Ta aplikacja ma uprawnienia superużytkownika i może robić, co tylko zechce, do dowolnego pliku w dowolnym miejscu w telefonie. Dlatego ludzie, którzy zbudowali Twój telefon, naprawdę nie chcą, abyś miał taki poziom dostępu, a firmy, które pozwalają ci odblokować program ładujący i zmieniać rzeczy, nadal nie umieszczają domyślnie pliku binarnego SU na twoim telefonie. Dostęp do konta root bez możliwości kontrolowania, kto lub co może z niego korzystać, jest niebezpieczny dla oprogramowania telefonu i danych osobowych.

Dlatego musisz zainstalować aplikację, która zmusza Cię do zezwalania na dostęp do konta root za każdym razem, gdy Ty lub inna aplikacja próbuje wywołać uprawnienia SuperUżytkownika. W większości przypadków, gdy używasz metody rootowania do swojego telefonu, zostanie ona uwzględniona wraz z innymi przydatnymi plikami binarnymi, takimi jak zestaw narzędzi BusyBox. Jeśli robiłeś rzeczy ręcznie, musisz sam zainstalować. SuperSU od Chainfire w Google Play to dobry początek.

Szanse i zakończenia

Wiele telefonów i niektóre metody rootowania działają nieco inaczej (Android 4.3 wprowadził wiele zmian) i wymagają skryptów lub demona (zobaczysz słowa takie jak daemonsu lub su.d) zamiast po prostu upuszczać plik binarny SU na miejscu. Służą do wywoływania SubstituteUser, dzięki czemu można przełączyć się na użytkownika root, podobnie jak surowa metoda binarna. Ludzie, którzy wymyślili, jak zrootować telefon, załatwili to wszystko i będzie działać tak samo po stronie użytkownika.

Możliwe jest również „tymczasowe rootowanie” niektórych androidów. Oznacza to, że możesz mieć uprawnienia superużytkownika i zrobić kilka rzeczy, które musisz zrobić, ale ponowne uruchomienie zabiera dostęp do konta root. Podobnie, możesz mieć „root-root”, gdzie możesz uzyskać dostęp do użytkownika root tylko przez adb z twojego komputera.

Na koniec chcę podkreślić, że jeśli miałeś te pytania, musisz rozważyć, czy jesteś gotowy na zrootowanego Androida. Nie żartowaliśmy, kiedy mówiliśmy, że łatwo jest zepsuć telefon dzięki dostępowi do SuperUser. Nie ma powodu się wstydzić, że musisz trochę przeczytać lub zadać jeszcze kilka pytań, zanim zrobisz coś, co może uszkodzić telefon lub dać dostęp do wszystkich danych przypadkowo dostępnej aplikacji.

Po to tu jesteśmy.