Lub jak zrootować urządzenie bez rootera?
Instrukcje rootowania dla urządzeń z Androidem, które widziałem, mają zazwyczaj następującą postać:
- Ściągnij
Gingerbreak.apk
- Uruchom Gingerbreak, kliknij „urządzenie root”
- Zauważ, że
Superuser.apk
został on magicznie zainstalowany, być może wraz zbusybox
innymi rzeczami i ciesz się swoją dobroczynnością.
To, co chcę wiedzieć, to: w jaki sposób dzieje się rootowanie? Co robi Gingerbreak?
Rozumiem końcowy rezultat rootowania:
su
jest obecny i działaSuperuser.apk
jest zainstalowany i kontroluje dostęp dosu
- Różne narzędzia są dostępne przez BusyBox (opcjonalnie?)
Wydaje mi się też, że rozumiem podstawową zasadę rozpoczęcia Gingerbreak - wykorzystuje on lukę w zabezpieczeniach związaną z eskalacją lokalnych uprawnień i wykorzystuje nowo odkryte uprawnienia do wdrażania Superuser i wszystkiego, co jest konieczne.
Tak więc, o ile nie mylę się co do powyższego zrozumienia, najważniejsze jest to, co robi instalator roota, aby wdrożyć i aktywować Superuser. Wydaje się, że samo umieszczenie Superuser.apk
w odpowiednim miejscu nie wystarczyłoby - w jaki sposób można uzyskać dostęp do roota? W jaki sposób łączy się, aby moderować dostęp do innych aplikacji?
Co Gingerbreak robi po wykorzystaniu, aby umożliwić i zabezpieczyć dostęp do roota?
Odpowiedzi:
To, co robią APK i exploit (zazwyczaj), jest następujące:
Na przykład na tej stronie opisano, w jaki sposób exploit rageagagecage próbuje zdobyć podwyższone uprawnienia.
źródło
Po wielu kopaniach w końcu to rozgryzłem. Myliłem się co do magii - nie ma jej w skrypcie instalatora; wszystko, co musisz zrobić, to umieścić
su
iSuperuser.apk
binaria we właściwym miejscu i ustawić ich uprawnienia. To naprawdę jest tak proste, jak upuszczanie plików na miejsce i ustawianie uprawnień. Bez magicznego okablowania.Magia dzieje się w
su
pliku binarnym (patrz źródło, a także to pytanie ). Myślałem (niepoprawnie), żesu
to standardsu
, i że w jakiś sposób wszystko zostało połączone, aby uzyskać umiarkowany dostęp do tego pliku binarnegoSuperuser.apk
.Źle. To, co faktycznie się dzieje, jest znacznie prostsze: Superuser zapewnia niestandardową implementację,
su
która uwierzytelnia dostęp przez Superuser i autoryzowaną bazę danych aplikacji.Proces rootowania jest tak prosty, jak powiedział @Sparx. Wdrożone oprogramowanie zawiera magię.
źródło
su
sama w sobie nie jest wcale magią, jedyną magią jest to, że system operacyjny traktuje ją specjalnie. Wszystko, co musi zrobić, to zwrócić „OK” lub „Nie OK”, gdy system operacyjny zapyta, czy zezwolić określonej aplikacji na podniesienie uprawnień. Jeśli go brakuje lub zawsze zwraca „Nie OK”, normalne aplikacje nigdy nie mogą uzyskać uprawnień roota. Tak więc rootowanie jest w zasadzie procesem umieszczania plikusu
binarnego, który może czasami zwrócić „OK”, w chronionej lokalizacji w systemie, co nie powinno na to pozwolić.all that has to do is put the su and Superuser.apk binaries in the right place and set their permissions
tak jakby to było łatwe bez exploita, exploit jest magią.