Logo nl.androidermagazine.com
Logo nl.androidermagazine.com

Wat betekent rooten van je telefoon eigenlijk?

Inhoudsopgave:

Anonim

We ontvangen graag uw vragen. Het is altijd goed als we elkaar kunnen helpen, en we leren dingen zelf wanneer we op zoek zijn naar de antwoorden. Hoewel we geen tijd kunnen vinden om ze allemaal te beantwoorden, komt een bepaalde vraag soms genoeg naar voren die een gedetailleerd antwoord verdient.

"Wat betekent root?" is een van die vragen. Het concept is misschien eenvoudig voor sommigen van ons, maar voor veel mensen die geen tijd hebben besteed aan het spelen met Android of een ander op machtigingen gebaseerd besturingssysteem, is het iets om vragen over te stellen. Ik ga proberen ze allemaal zo goed mogelijk te beantwoorden.

machtigingen

Voordat we root definiëren, is het belangrijk om te begrijpen waarom het bestaat en hoe het werkt. Dit komt omdat Android machtigingen (op Linux gebaseerde machtigingen om precies te zijn) in de bestandsstructuur gebruikt. Elk bestand, elke map en elke partitie heeft een aantal machtigingen. Deze machtigingen bepalen wie een bestand kan lezen (bekijken of toegang krijgen tot de inhoud zonder ze te wijzigen), naar een bestand schrijven (de inhoud van dat bestand kunnen wijzigen of een nieuw bestand in een map of partitie kunnen maken) en een bestand uitvoeren (voer het bestand uit als het een type is dat kan worden uitgevoerd, zoals een app). Dit gebeurt op basis van gebruikers en machtigingen - bepaalde gebruikers hebben toegang, terwijl gebruikers die niet over de juiste machtigingen beschikken geen toegang hebben.

Wanneer u uw telefoon voor het eerst instelt en voor het eerst inschakelt, krijgt u een gebruikers-ID toegewezen. Als een andere gebruiker zich aanmeldt via Google, krijgt deze een ander gebruikers-ID. Wanneer een app op uw telefoon wordt geïnstalleerd, krijgt deze ook een eigen gebruikers-ID. Het systeem zelf is een gebruiker en andere processen die op uw telefoon moeten worden uitgevoerd, kunnen hun eigen gebruikers-ID hebben. Alles wat iets met bestanden op uw Android kan doen, is een gebruiker.

Een systeem van gebruikers en machtigingen is hoe Android bijhoudt wie wat kan doen.

Stel dat u een berichten-app installeert. Er wordt een gebruikers-ID toegewezen wanneer u het installeert. Het krijgt ook een plekje op uw eigen gegevenspartitie, waar alleen het toegang toe heeft. U hebt machtigingen om de app uit te voeren en wanneer de app wordt uitgevoerd, heeft deze toestemming om de eigen gegevensmap en bestanden te openen. De app kan ook toestemming vragen voor toegang tot zaken als uw adresboek of SD-kaart of fotobibliotheek. Als u ja zegt tegen deze verzoeken (of als u akkoord gaat met de machtigingen voor oudere versies van Android), krijgt de gebruikers-ID van de app toestemming voor de gegevensbestanden van die dingen, wat betekent dat deze de gegevensmap en de inhoud ervan kan bekijken en mogelijk kan wijzigen ze of voeg nieuwe bestanden toe. De app heeft geen toegang tot gegevensbestanden en heeft geen toestemming om te "kijken". Dat betekent (in ons voorbeeld) dat het geen dingen kan doen zoals kijken naar de instellingendatabase of toegang tot de gegevensmap van een andere toepassing. De term sandbox wordt hier vaak voor gebruikt - apps worden in een sandbox geplaatst en kunnen alleen worden gespeeld in de sandboxen waarvoor ze toestemming hebben.

Voor bestanden die programma's zijn en kunnen worden uitgevoerd (zoals apps), is hetzelfde machtigingsmodel van toepassing. Uw gebruikers-ID heeft toestemming om de apps uit te voeren die u hebt geïnstalleerd terwijl u bent aangemeld. De systeemgebruiker heeft toestemming om ze uit te voeren en andere gebruikers op systeemniveau hebben mogelijk toegang tot de apps of bepaalde processen die de apps gebruiken. Andere apps kunnen geen apps opstarten waarvoor ze geen toestemming hebben om te starten. Als u een secundaire gebruiker hebt toegevoegd, hebben deze geen toegang tot uw apps of bestanden en vice versa. Er zijn bestanden, mappen en apps op uw telefoon die uw gebruikers-ID niet mag zien, wijzigen of uitvoeren. Meestal vereisen die delen van Android machtigingen op systeemniveau (de systeemgebruikers-ID) om iets mee te doen, en u bent niet de systeemgebruiker of een gebruiker met machtigingen op systeemniveau.

Schakelrechten

Hoewel het technisch mogelijk is om de manier waarop uw telefoon opstart en de bestanden die worden gebruikt om het actieve systeem te starten en uw gebruikers-ID verhoogde machtigingen te wijzigen, te veranderen, is dat niet veilig en praktisch. Maar Android (en de meeste op Unix of Linux gebaseerde systemen) hebben een rootgebruiker en ondersteunen het binaire alternatief (zie een binair bestand als een kleine app) om gebruikers-ID's te wijzigen. Die worden gebruikt om het systeem op het kernniveau te beheren.

Omdat de mensen die je telefoon hebben gemaakt niet willen dat je gemakkelijk toegang hebt tot het root-gebruikers-ID - en niet alle redenen zijn egoïstisch omdat het ook jou en je privégegevens beschermt - is het substituut binaire gebruiker niet opgenomen in de meeste builds van Android. Zonder SubstituteUser kunnen we onze gebruikers-ID niet wijzigen. De meeste dingen op systeemniveau in Android hebben trouwens vergelijkbare gemakkelijke namen. De kernbeveiliging (bestanden in de bootloader en / of de kernel zelf) is ook gebouwd op een manier om te voorkomen dat u gebruikers-ID's verwisselt als onderdeel van de SELinux (Beveiligde Linux - Linux verteld - de namen zijn eenvoudig) kernelmodule. Sommige telefoons (denk aan Knox van Samsung) hebben verdere bescherming, en bijna alle bedrijven die Androids maken, vereisen dat de bootloader moet worden ontgrendeld om wijzigingen aan te brengen, zodat deze bestanden kunnen worden gewijzigd en u kunt schakelen tussen gebruikers-ID's. Sommige telefoons, zoals de BlackBerry Priv, gaan zelfs nog een stap verder en starten niet op als we iets veranderen (zelfs als we dat konden).

Om root te worden, hebt u een manier nodig om uw gebruikers-ID te wijzigen.

Als we daar eenmaal aan voorbij zijn - hetzij door de bootloader te ontgrendelen via geautoriseerde middelen of met behulp van een soort exploit - kunnen we de SU binary (SubstituteUser) op een plek zetten die kan worden uitgevoerd wanneer hij wordt opgeroepen - dat wordt een PATH genoemd. Als er een app in het PATH van uw gebruikers-ID staat, wordt deze uitgevoerd zonder het systeem precies te vertellen waar het is. U moet er ook voor zorgen dat het SU binaire bestand zich op een plek bevindt waar uw gebruikers-ID toestemming heeft om bestanden uit te voeren (uitvoeren). Elke andere app (Google Play heeft veel apps die root-machtigingen nodig hebben) heeft ook dezelfde toegang nodig. Wanneer u een methode gebruikt om uw telefoon te rooten, wordt dit allemaal uitgezocht door de mensen die de rootmethode hebben gebouwd.

Zodra alles is geïnstalleerd, kunnen we het SU-binaire bestand uitvoeren (of een andere app kan het SU-binaire bestand uitvoeren).

Root-toegang krijgen

Dit is waar root binnenkomt. Het SU-binaire bestand gebruikt vlaggen wanneer het wordt uitgevoerd om het systeem te vertellen naar welk gebruikers-ID u wilt overschakelen. Als ik bijvoorbeeld het SU-binaire bestand op mijn Ubuntu-computer als deze "su Jim -c nano" gebruik, voer ik het nano-commando uit als de gebruiker Jim (na het opgeven van het wachtwoord van Jim). Als u het SU-binaire bestand zonder vlaggen of argumenten uitvoert, schakelt het u naar de rootgebruiker. Normaal gesproken zou u een wachtwoord moeten opgeven, maar omdat "root" een ongebruikte gebruiker op Android is, heeft het geen wachtwoord. Door het commando "su" uit te voeren, wordt u naar de root van de gebruiker geschakeld, wordt het gebruikers-ID 0 toegewezen en wordt u in de rootgroep geplaatst. Je bent nu de supergebruiker.

Als Super User kun je alles doen met elk bestand, elke map of elke partitie op je Android. Met alles bedoelen we letterlijk alles. U kunt bloatware-apps verwijderen en u kunt ook essentiële systeembestanden verwijderen die uw telefoon kapot maken. Je kunt ook dingen met de hardware doen, zoals de CPU-frequentie wijzigen en je telefoon voor altijd verpesten.

Root is de supergebruiker, die alles kan doen. En we bedoelen alles.

Apps kunnen hetzelfde doen. SU wordt geplaatst waar het zich bevindt in de toepassing PATH en elke app kan het bellen en uitvoeren. Die app heeft dan Super User-machtigingen en kan alles doen wat je maar wilt, elk bestand op elke plek op je telefoon. Dit is de reden waarom de mensen die je telefoon hebben gemaakt echt niet willen dat je dit toegangsniveau hebt, en de bedrijven die je toestaan ​​de bootloader te ontgrendelen en dingen te veranderen, plaatsen de SU binary nog steeds niet standaard op je telefoon. Root-toegang hebben zonder te bepalen wie of wat het kan gebruiken, is gevaarlijk voor de software van uw telefoon en uw persoonlijke gegevens.

Daarom moet je een app installeren die je dwingt root-toegang toe te staan ​​wanneer jij of een andere app de Super User-rechten probeert op te roepen. De meeste keren dat u een root-methode voor uw telefoon gebruikt, wordt er een toegevoegd, samen met enkele andere handige binaries zoals de BusyBox-toolset. Als je dingen met de hand hebt gedaan, moet je er zelf een installeren. SuperSU van Chainfire in Google Play is een goede om mee te beginnen.

Kans en einde

Veel telefoons en sommige root-methoden doen dingen een beetje anders (Android 4.3 bracht veel veranderingen) en vereisen scripts of een daemon (je ziet woorden zoals daemonsu of su.d genoemd) in plaats van de SU-binary gewoon op zijn plaats te laten vallen. Deze worden gebruikt om SubstituteUser aan te roepen, zodat u net als de onbewerkte binaire methode kunt overschakelen naar de rootgebruiker. De mensen die hebben bedacht hoe je je telefoon kunt rooten, hebben dit allemaal uitgezocht en het zal hetzelfde werken aan de kant van de gebruiker.

Het is ook mogelijk om sommige Androïden te "temperen". Dit betekent dat je Super User-machtigingen kunt hebben en een paar dingen moet doen die je moet doen, maar een reboot neemt root-toegang weg. Op dezelfde manier kunt u een "shell-root" hebben waar u alleen via uw computer toegang hebt tot de root-gebruiker.

Tot slot wil ik benadrukken dat als je deze vragen had, je moet overwegen of je klaar bent om een ​​geroote Android te hebben. We maakten geen grapje toen we zeiden dat het gemakkelijk is om je telefoon te ruïneren met SuperUser-toegang. Er is geen reden om je te schamen dat je een beetje moet lezen of nog een paar vragen moet stellen voordat je dingen doet die je telefoon kunnen breken of wat willekeurige rouge-app toegang tot al je gegevens kunnen geven.

Daar zijn we hier voor.