Android rooten met Magisk en root verbergen op je smartphone

Marco den Teuling
0

Inhoudsopgave

Android rooten wordt lastiger. Google zet steeds meer middelen in om geroote smartphones te detecteren en op dergelijke toestellen veiligheidskritische apps te blokkeren. Android-­gebruikers proberen dat te omzeilen met camouflagemethoden. Een daarvan is Magisk, waar we hier dieper op ingaan.

Nieuwere Android-versies bieden tegenwoordig bijna alles wat je hartje begeert. De tijden dat je moest uitwijken naar een aangepaste ROM voor nuttige functies of de fabrikantenversie moest uitbreiden met root-access zijn grotendeels voorbij. Toch is de zogenaamde root-toegang, oftewel volledige toegang tot het bestandssysteem, niet geheel uit de mode geraakt. Als je bijvoorbeeld een effectief werkende firewall wilt hebben die malware en webtracking filtert, bloatware-apps wilt verwijderen of andere optische en functionele tweaks in het systeem wilt aanbrengen, kun je ook vandaag de dag vaak niet zonder roottoegang.

Android rooten met Magisk

Maar Android rooten is met nieuwere Android-versies niet meer zo eenvoudig als voorheen. Voor volledige toegang tot het bestandssysteem moeten systeembestanden van Android gepatcht worden. Dat is minder triviaal en dus meer foutgevoelig geworden door de nu gang­bare volledige encryptie van apparaten en de dubbele systeempartities voor stille Android-updates. Gaat er tijdens het flashen iets mis, dan is het risico groot dat de smartphone niet meer opstart. De kans is dan groot dat het probleem onoplosbaar is en je met een smart­phone blijft zitten die niet meer kan dan een gemiddelde baksteen (het gevreesde ‘bricken’).

Rooten: voors en tegens

Het onderwerp rooten verdeelt de Android-gemeenschap in twee kampen. Zoals verwacht staan Google- en app-aanbieders negatief tegenover Android rooten en stellen ze het veiligheidsaspect ter discussie. Smart­phones worden tegenwoordig niet meer alleen gebruikt om mee te telefoneren, surfen, gamen en fotograferen. Ze worden ook gebruikt voor veel veiligheidskritische toepassingen: voor thuisbankieren, als virtuele creditcard en in sommige nieuwere auto’s zelfs als sleutel. Voor de aanbieders van dergelijke apps en diensten zijn geroote smartphones een nachtmerrie.

Root-toegang stelt het sandbox-principe van Android grotendeels buiten werking. Een app heeft normaliter alleen toegang tot het eigen app-geheugen en gedeelde opslag zoals de downloadmap, maar apps met root-rechten hebben toegang tot vrijwel alles. Malware met volledige toegang kan betaal-tokens en wachtwoorden stelen en apps voor thuisbankieren manipuleren. Streamingdiensten zijn bezorgd dat gebruikers audio- en videobestanden kunnen kopiëren dankzij root-toegang.

Het kamp dat voorstander is van Android rooten stelt dat dit de beveiligingsmechanismen van Android en het onderliggende SELinux niet ondermijnt. De uitgebreide rechten betekenen niet automatisch dat elke app naar eigen goeddunken elk gewenst geheugengebied kan benaderen. In plaats daarvan opent een root-manager een pop-upvenster voor elke toegang en vraagt of de betreffende app de gevraagde root-­toegang eenmalig, tijdelijk, permanent of helemaal niet mag hebben. Dat lijkt erg op het rechtenbeheer van Android zelf. Volgens de voorstanders zijn gebruikers die de technische kennis hebben om hun apparaat te rootten ook slim genoeg om niet alleen maar ‘ja en amen’ te zeggen als ze die vragen krijgen. Bovendien zien veel root-liefhebbers de beveiliging van het systeem juist als een argument in hun voordeel. Een aantal fabrikanten is namelijk niet zo stipt met updates, waardoor zelfs kritieke beveiligingsgaten vaak maandenlang open blijven staan.

rooten superuser verzoek via Magisk toestaan

Magisk kan afzonderlijke apps root-toegang verlenen voor een bepaalde tijd.

Voor apparaten die niet meer splinternieuw zijn en waarvan de fabrieksondersteuning verlopen is, kan het aanpassen van Android de beveiliging zelfs verbeteren. Het installeren van een aangepaste ROM is dan de enige manier om een up-to-date systeem te krijgen met regelmatige beveiligingsupdates. Thuisbankieren op een aangepaste ROM op basis van Android 9 of 10 is veiliger dan op de originele Android 6 of 7 zonder beveiligingspatches. Bovendien hebben veel van de huidige aangepaste ROM’s geen roottoegang meer. Maar om een aangepaste ROM te installeren, moet je de bootloader van de smartphone ontgrendelen. Het is op dat punt vergelijkbaar met Android rooten, omdat dit in elk geval sommige van de Android-beveiligingsfuncties opheft.

Android rooten en Magisk

Voor- en tegenstanders van Android rooten gebruiken interessante technische trucs. Google biedt nu bijvoorbeeld een vrij geavanceerde oplossing die apps kunnen gebruiken om de integriteit van het apparaat te controleren. Die functie heet SafetyNet en maakt deel uit van de Google-Play-services. Hij controleert of er met een smartphone is geknoeid en blokkeert het installeren van bepaalde apps vervolgens.

Om de smartphone toch normaal te kunnen gebruiken, hebben modders een oplossing nodig die Android van root-toegang voorziet en dat vervolgens succesvol weet te verbergen voor Google en andere apps. En dat is precies wat Magisk doet. Het is geen compleet aangepaste ROM, maar alleen een kleine uitbreiding die op allerlei Android-apparaten geïnstalleerd kan worden.

SafetyNet

De SafetyNet-controle bestaat in principe uit de twee delen ‘CTS Profile’ en ‘Basic Integrity’. De CTS-­controle (Compatibility Test Suite) wordt uitgevoerd aan de serverzijde, inclusief de beslissing over het testresultaat. Daarbij wordt onder andere naar de door Google vereiste certificering van het smartphonemodel en de door de fabrikant aangepaste Android-versie gevraagd. Daar wordt de device-fingerprint voor uitge­lezen en het build.prob-bestand, dat essentiële informatie bevat over het Android-systeem. Aangepaste ROM’s zoals het populaire Lineage OS hebben geen certificering en slagen dus niet voor de CTS-controle. Hetzelfde geldt voor nieuwere Huawei-smartphones, die door de Amerikaanse exportmaatregelen geen gebruik mogen maken van Google-diensten.

De tweede test voor de Basic Integrity draait lokaal op de smartphone en controleert verschillende low-level criteria. Wat SafetyNet in detail controleert wordt door Google geheim gehouden, maar veel punten liggen voor de hand, zoals: is er een ontgrendelde bootloader, zijn er gemanipuleerde systeembestanden en zijn er basisaanpassingen aan de systeem­partitie. Bij dat laatste kun je denken aan extra bestanden zoals su, Busybox of de aanwezigheid van het Xposed-framework. Daarnaast staan er waarschijnlijk aanvullende criteria op de checklist. Zo kunnen ook geactiveerde usb-debugging, het inschakelen van ontwikkelaarsopties, een proxyconfiguratie, verdachte logboek­aantekeningen of onbetrouwbare apps die als apparaatbeheerder fungeren, ervoor voor zorgen dat SafetyNet alarm slaat.

Magisk Manager SafetyNet controle

Magisk Manager bevat een test voor de SafetyNet-controle.

Voor het volledig testen van het apparaat neemt de SafetyNet-API contact op met de Google-servers en downloadt hij binaire bestanden met de eigenlijke testtools. Dat heeft voor Google als voordeel dat de criteria op elk moment snel aangepast kunnen worden als er nieuwe exploits of rootmethodes verschijnen. Voor Android-gebruikers en de custom-ROM-community heeft dat als nadeel dat ze alleen kunnen speculeren op welke aanpassingen de SafetyNet-controle zal reageren. Google maakt het de modders in elk geval niet zo makkelijk dat ze de controlecriteria uit het APK-bestand van de Play Services kunnen afleiden.

Als een smartphone niet door de SafetyNet-controle komt, merk je dat op allerlei manieren. De Play Store laat bijvoorbeeld bepaalde apps, zoals Netflix, niet eens zien op apparaten die als onveilig geclassificeerd zijn. Als dergelijke apps vanuit een back-up of alternatieve bronnen als apkmirror.com geïnstalleerd worden, weigeren ze te werken wanneer ze worden opgestart. Andere apps zijn toegeeflijker en kunnen wel worden gestart als de telefoon niet slaagt voor de CTS-test, maar de basistest dan in elk geval nog wel doorstaat.
Voor een volledige test moet de telefoon dan dus online zijn. In het dagelijks leven is het echter onwaarschijnlijk dat gebruikers daar iets van merken, omdat de test wordt uitgevoerd op momenten dat de smartphone toch verbonden is met internet – bijvoorbeeld tijdens het streamen van video’s of het downloaden van apps.

Magisk-camouflage

Magisk is een bedacht woord als combinatie van de woorden ‘magic’ en ‘mask’, oftewel een magisch masker. De naam beschrijft de functionaliteit heel goed: in tegenstelling tot conventionele root-oplossingen laat Magisk het eigenlijke Android en zijn systeembestanden onaangeroerd, maar legt het meer een trans­parante laag over de systeempartitie. Alleen wanneer de gewenste app van een gebruiker uitgebreide rechten vraagt, leidt Magisk de toegang om naar de benodigde bestanden, die in werkelijkheid buiten de systeempartitie staan. Andere apps en Android zelf merken meestal niet eens dat er wijzigingen aan het besturingssysteem zijn aangebracht.

Magisk werkt op twee niveaus: Magisk bewaart de belangrijkste bestanden die nodig zijn voor root-­toegang niet op de systeempartitie, maar op de opstart­partitie. Magisk Manager wordt ook als een gewone app op de smartphone geïnstalleerd. Die detecteert root-verzoeken van andere apps en stuurt ze door naar de juiste bestanden in de opstartpartitie.

Omdat Magisk Manager zelf met systeemrechten werkt, heeft die uitgebreide mogelijkheden om zichzelf en de weinige systeemaanpassingen te verbergen voor het besturingssysteem en SafetyNet. Hij installeert ­onder meer zichzelf en zijn diensten – indien naar wens onder een willekeurige app-naam.

Mocht er een controle zijn, dan verhult hij ook de root-toegang, de ontgrendelde bootloader en anomalieën in SELinux. Dat werkt echter niet als er ook andere root-oplossingen of systeemuitbreidingen geïnstalleerd zijn, zoals SuperSU en het Xposed-framework. In de praktijk is dat echter niet nodig: de functies van Magisk kunnen worden uitgebreid met behulp van modules. Het aanbod varieert van modules met nieuwe emoji-packs of uitgebreide audio-equalizers tot modules die functies die exclusieve zijn voor Google Pixel op andere smartphones kunnen zetten.

Root verbergen

De afzonderlijke modules kunnen als zip-archief naar de smartphone worden gedownload en met Magisk Manager rechtstreeks geïnstalleerd worden. Daar zit ook een SafetyNet-check in waarmee je kunt controleren of de wijzigingen ontdekt zijn of onopgemerkt zijn gebleven. Als je smartphone tegen de verwachting in niet door de controle komt met een standaard-ROM van de fabrikant, moet je usb-debugging via ADB en de ontwikkelaarsopties deactiveren. Bovendien moeten alle andere root-tools en wijzigingen in het besturingssysteem ongedaan gemaakt worden. Ook sommige Magisk-modules kunnen ervoor zorgen dat SafetyNet in actie komt, dus je moet die modules dan weer verwijderen. Ons oude Pixel-testtoestel doorstond de test met vlag en wimpel zonder extra modules. Maar aangezien de makers van Magisk en SafetyNet een kat-en-muisspel spelen van opsporen en verstoppen, is dat slechts een momentopname.

SafetyNet is maar een deel van het probleem: veel apps hebben hun eigen tests en controleren onafhankelijk van elkaar verschillende parameters om gemanipuleerde Android-versies op te sporen. Ze kunnen dan weigeren om te werken, zelfs als ze de SafetyNet-test doorstaan. Bijzonder strenge tests worden uitgevoerd door verschillende bank-apps, Netflix, Google Pay en de populaire games Pokémon Go en Super Mario Run.

Magisk Hide Pokemon Go root verbergen

Pokemon go detecteert het als je een gemanipuleerde Android-versie hebt en kun je dan niet starten. Met behulp van Magisk Hide is dat wel mogelijk.

Voor die hardnekkige gevallen waar de onzichtbaarheidsmantel van Magisk niet genoeg is, is er de voorgeïnstalleerde module Magisk Hide als zwaarder middel. Daarmee kun je hardnekkige apps selecteren. Zodra Magisk het starten van zo’n app detecteert, haalt het alles uit de kast om de app te laten geloven dat je smartphone helemaal schoon en onaangetast is. Vaak met succes: Pokémon Go was bijvoorbeeld goed te starten bij onze tests nadat we het op de Hide-lijst hadden gezet – maar niet met de standaardwerking van Magisk. App-ontwikkelaars passen hun testmethoden heel snel aan, waardoor de makers van Magisk daar steeds op moeten reageren. Er is geen garantie dat elke app zal (blijven) draaien. Omdat Magisk Hide erg veel van het systeem vraagt, moet je die module alleen inschakelen voor de apps die anders echt niet willen starten.

Nadelen van Magisk

Net als bij andere root-methoden voor Android-toestellen, is het installeren van Magisk niet triviaal. Het is ook daarbij in principe nodig om de bootloader te ontgrendelen, zodat die vervolgens ongesigneerde ­systemen kan opstarten. Omdat alleen al daardoor een belangrijk beveiligingsmechanisme geannuleerd wordt, reset de smartphone zichzelf naar de fabrieksinstellingen. Alle niet opgeslagen gegevens gaan daarbij verloren. Bij sommige smartphones vervalt ook meteen de ­garantie.

Als de bootloader ontgrendeld is, installeer je een alternatieve recovery-tool. Dat is echt noodzakelijk, want de ingebouwde recovery van Android staat het flashen van aangepaste ROM’s niet toe. Dat geldt ook voor ongesigneerde patches als Magisk. Als Magisk eenmaal geflasht is, moet de telefoon opnieuw worden opgestart en de APK van Magisk Manager geïnstalleerd worden. Bij het flashen wordt die APK meteen in de downloadmap van de telefoon gezet. Daarna staat niets de root-toegang met het magische masker meer in de weg. Updates van Magisk Core en Magisk Manager kunnen rechtstreeks met die laatste worden uitgevoerd.

custom recovery TWRP installeren Magisk

Magisk kan in enkele tellen geïnstalleerd worden met een custom-recovery zoals van TWRP.

Android updaten

In tegenstelling tot bij andere root-methoden, kunnen officiële updates van het besturingssysteem bij Magisk niet alleen met weinig moeite worden geïnstalleerd, maar Magisk overleeft die installatie zelfs en blijft daarna actief.

Om dat te laten werken, mag het besturings­systeem de installatie niet zelf uitvoeren. Om stille updates op de achtergrond te voorkomen, schakel je ‘Automatische systeemupdates’ bij de ontwikkelaarsopties uit. Bij toekomstige updates krijg je dan alleen een melding. Je moet ze vervolgens handmatig downloaden en iets omslachtiger installeren. Hoe dat werkt, is afhankelijk van de systeemconfiguratie. De volgende uitleg verwijst naar smartphones vanaf Android 7 met zogenaamde ‘silent updates’. Belangrijke systeem­partities van het interne geheugen worden op dergelijke apparaten gedupliceerd. Daarmee voorkomt Google dat het apparaat minutenlang geblokkeerd wordt als er een update wordt uitgevoerd. In plaats daarvan blijft Android gewoon draaien terwijl de update wordt toegepast op de inactieve partities. Daarna herstart het apparaat, schakelt tussen de partities en is direct weer klaar voor gebruik. Die apparaten worden ook wel A/B-systemen genoemd. Update-instructies voor oudere en ondertussen zeldzame A-only systemen zijn te vinden via Magisks GitHub-pagina.

Als je smartphone Magisk op de A-partities draait en er een Android-update wordt aangeboden, moet je Magisk tijdelijk uitschakelen bij Magisk Manager op het hoofdscherm met Deïnstalleren. De tool zal de ongewijzigde boot-image naar bootpartitie A schrijven. Dan moet je de telefoon niet herstarten, anders is ­Magisk echt gedeïnstalleerd. In plaats daarvan download je de update en installeer je die via het gebruikelijke Android-dialoogvenster. Daarbij worden alle wijzigingen doorgevoerd op de op dat moment inactieve B-partities. Belangrijk is dat je het apparaat niet laat herstarten. Kies dus ook niet de optie voor het herstarten in het update-dialoogvenster van Android.

Start in plaats daarvan Magisk Manager opnieuw. Kies op de startpagina naast de release-notes van Magisk de optie Installeren en vervolgens ‘Installeren in inactief slot’. Dan patcht Magisk Manager zijn ­belangrijkste bestanden in de bootimage van de nog inactieve partitie B. Klik vervolgens op Herstarten, dan doet Magisk precies wat een gewone Android-update zou doen. De eerder actieve A-partitie wordt op inactief gezet en instrueert de bootloader om de B-­partities te gebruiken na de herstart. Bij de volgende update wordt het spel andersom herhaald: het systeem draait op B. Magisk trekt zich terug uit de boot-images en alle updates worden geïnstalleerd op A. Daarna schrijft Magisk zijn core naar de opstartpartitie A, markeert B als inactief en herstart de telefoon.

Conclusie

Android Rooten is ingewikkelder geworden. Dat is deels te wijten aan betere failsafe-updatemechanismen met dubbele partities en deels aan allerlei beveiligingsmechanismen die in wezen ontworpen zijn om zowel de makers als gebruikers van apps te beschermen.

Toch zijn er voor ontwikkelaars en voor hobby­isten of gebruikers die meer privacy op hun smartphone willen wel redenen om root-toegang te willen hebben. Dankzij Magisk kan dat zonder dat je allerlei apps hoeft te missen die om veiligheidsredenen anders niet op gemanipuleerde smartphones draaien.

Maar als je tegenwoordig root-toegang installeert, moet je precies weten wat je doet. In elk geval heb je installatie-instructies nodig die voor honderd procent op jouw specifieke model telefoon toegespitst zijn – inclusief de geïnstalleerde Android-versie. Anders loop je het risico dat je de smartphone verandert in een presse-papier.

Als het werkt, moet je je er ook altijd bewust van blijven dat een volledige toegang tot het hele systeem essentiële veiligheidsmechanismen omzeilt. Als je zomaar root-rechten gaat toekennen aan allerlei vage apps, moet je niet verbaasd zijn als malware vroeger of later enorme schade zal veroorzaken. In het ergste geval kan dat zelfs een lege bankrekening opleveren.

(Stefan Porteck en Marco den Teuling, c’t magazine)

Lees uitgebreide achtergrondinfo op je gemak in c't dec/2020

Deel dit artikel

Lees ook

Raspberry Pi als NAS

Door de gigabit-netwerkpoort en USB 3.0 kun je de Raspberry Pi als NAS gebruiken. Afhankelijk van je wensen kun je verschillende wegen bewandelen om m...

Woord zoeken in bestanden in Windows – snel op inhoud zoeken

Leer hoe je een bestand met een bepaald woord zoeken kunt in Windows, waarom dat soms niet lukt en hoe je meer resultaten vindt.

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er