Op alle Xiaomi-smartphones en -tablets is anti-rollback-beveiliging ingeschakeld. Wat is het en hoe voorkom je dat je apparaat daardoor wordt gemetseld?
In juli, Xiaomi uitgerold MIUI 10 Global Beta 8.7.5 voor acht Xiaomi-apparaten. Toen gebruikers de update op hun Xiaomi Redmi Note 5 Pro installeerden, konden ze onbewust een build geflitst met ingeschakelde anti-rollback-beveiliging. Gebruikers die MIUI 10 Global Beta niet leuk vonden, kwamen voor een nare verrassing te staan toen ze probeerden de nieuwste MIUI 9 Global Stable ROM opnieuw te installeren: hun telefoons waren gemetseld! Dit was niet het soort steen dat je kon repareren door een TWRP-back-up te herstellen, een nieuw ROM te flashen of MiFlash te gebruiken om een fabrieksimage te herstellen. Dit is een harde, onherstelbare steen die het gebruik van de EDL-modus vereist om te repareren. Maar de EDL-modus is alleen toegankelijk als je een geautoriseerd account hebt, dus veel gebruikers konden het probleem niet oplossen hun telefoon, behalve als u deze naar een erkend servicecentrum stuurt of betaalt om iemands account bij EDL te gebruiken toegang. In dit artikel gaan we alles uitleggen wat je moet weten over de nieuwe anti-rollback-bescherming van Xiaomi, zodat je kunt voorkomen dat je je nieuwe telefoon kapot maakt.
Waarom heeft Xiaomi lange wachttijden voor het ontgrendelen van de bootloader, EDL-autorisatie en Anti-Rollback Protection nodig?
De Chinese elektronicagigant Xiaomi is het populairste smartphonemerk in India dankzij hun ruime keuze aan budget- en middenklasse-apparaten. Net als Huawei verkoopt Xiaomi ook een heleboel smartphones op hun thuismarkt China. Veel van deze apparaten worden nooit buiten China verkocht, maar dat weerhoudt mensen er niet van om ze te importeren. Er zijn onofficiële retailers voor Xiaomi-producten ontstaan op AliExpress, Gearbest en vele andere websites, waardoor iedereen van buiten China de nieuwste Xiaomi-producten kan kopen. Dit vormde een uitdaging voor het bedrijf omdat de software die ze op hun Chinese apparaten leveren, genaamd “MIUI China” bevat geen Google Play-services, de Google Play Store of andere talen dan Engels of Mandarijn. Iedereen die een Xiaomi-apparaat uit China importeert, zou dus geen externe apps en services van Google moeten krijgen.
Externe retailers hebben echter een manier bedacht om dit te omzeilen, zodat ze klanten ervan konden overtuigen dat ze Xiaomi-apparaten verkochten met een “officiële” MIUI Global ROM. De retailers zouden Xiaomi-apparaten in bulk kopen, de bootloader ontgrendelen, de software zelf wijzigen of een custom flashen ROM zoals Xiaomi.eu (onofficiële ROM's gebaseerd op MIUI China maar met meer talen en functies), en verkoop vervolgens het apparaat. De meeste consumenten zouden niet weten dat ze onofficiële/aangepaste software gebruiken, en zouden in plaats daarvan Xiaomi de schuld geven van een gebrek aan updates of bugs die ze tegenkomen. Erger nog, sommige retailers bundelden opzettelijk malware of adware, zodat ze wat extra geld konden verdienen. De reputatie van Xiaomi werd actief geschaad door deze praktijk, omdat technische recensenten en consumenten betrokken raakten bij de plannen van Xiaomi deze onofficiële retailers, en dus moesten ze een manier bedenken om te voorkomen dat duistere retailers aangepaste apparaten verkopen bulk.
Eén oplossing is om het ontgrendelen van de bootloader volledig te blokkeren, wat een drastische stap die Huawei onlangs heeft gezet. Gezien het succes van hun merk onder liefhebbers, heeft Xiaomi nog geen stappen gezet om het ontgrendelen van de bootloader te blokkeren. In plaats daarvan hebben ze een aantal wegversperringen geïmplementeerd om gebruikers te beschermen tegen de acties van kwaadwillende externe retailers.
Bootloader Ontgrendel wachttijden
Ten eerste implementeerden ze een wachtperiode voor het ontgrendelen van de bootloader. Xiaomi-apparaten, behalve de Xiaomi Mi A1, Xiaomi Mi A2 en Xiaomi Mi A2 Lite die standaard Android draaien onder het Android One-programma is het gebruik van Xiaomi's eigen Mi Unlock-tool vereist om het te ontgrendelen bootlader. Na het verzenden van uw verzoek om de bootloader te ontgrendelen, dwingt Mi Unlock u te wachten voordat uw verzoek wordt gevalideerd en de bootloader wordt ontgrendeld. Vroeger bedroeg de wachttijd drie dagen, maar begin 2018 steeg deze naar 15 dagen, en onlangs is de wachttijd gestegen naar 30 of maximaal 60 dagen in sommige gevallen. (Xiaomi’s nieuwe submerk, Poco, verlaagde de wachttijd tot 3 dagen na ontvangst van feedback van de community bijna iedereen moet nog lang wachten.) Het toevoegen van een wachttijd aan het ontgrendelingsproces van de bootloader was effectief in het vertragen van de activiteiten van externe retailers, maar dat is het ook ook begrijpelijkerwijs vervelend voor liefhebbers die de bootloader willen ontgrendelen om hun apparaat te rooten, aangepaste ROM's te flashen en aangepaste flash kernels.
EDL-autorisatie
Vervolgens begon het bedrijf de EDL-modus op hun apparaten te vergrendelen. EDL staat voor Emergency Download Mode en het is een alternatieve opstartmodus op alle Qualcomm-apparaten die vaak wordt gebruikt om uw apparaat te ontkoppelen. Om de EDL-modus te kunnen gebruiken, moet u een zogenaamde ‘programmeur’ vinden die door de OEM (Xiaomi) is geautoriseerd voor gebruik op uw apparaat. EDL-modus is heel krachtig En zeer laag niveau, en het wordt routinematig gebruikt door servicecentra om apparaten te repareren. De EDL-modus werd echter ook vaak gebruikt om zowel officiële als aangepaste MIUI Global ROM's op Chinese Xiaomi-apparaten te flashen zonder de bootloader te ontgrendelen. In wezen werd de EDL-modus een andere manier waarop externe retailers Xiaomi konden omzeilen. Xiaomi wil niet dat consumenten Chinese versies van hun hardware kopen waarop Global ROM's zijn geïnstalleerd, dus hebben ze twee dingen gedaan: het onmogelijk gemaakt om een Global ROM op te starten als de apparaat is geen Global-versie (met het waarschuwingsbericht "Deze MIUI kan niet op dit apparaat worden geïnstalleerd") en heeft ervoor gezorgd dat de EDL-modus niet kan worden gebruikt, tenzij u een geautoriseerde Mi hebt rekening.
Update: We hebben meer details over de recente beperkingen die Xiaomi heeft opgelegd met betrekking tot het flashen van een MIUI-versie buiten de regio. Als u overweegt een Xiaomi-smartphone of -tablet te importeren, zou u dat echt moeten doen Lees voor de zekerheid dit artikel door!
Bescherming tegen terugdraaien
Ten slotte hebben ze anti-rollback-beveiliging geïmplementeerd in de nieuwste versies van MIUI voor de nieuwste Xiaomi-apparaten. Misschien heb je al eerder gehoord van anti-rollback-beveiliging. Googlen extra ondersteuning voor de functie in Android 8.0 Oreo en maakte het verplicht voor apparaten die starten met Android Pie. De anti-rollback-beveiliging van Google is een functie van Android Verified Boot 2.0 (ook bekend als Verified Boot) en voorkomt dat het apparaat opstart als het detecteert dat het apparaat is gedowngraded naar oudere, niet-goedgekeurde software bouwen. Anti-rollback-beveiliging is nodig om te voorkomen dat aanvallers oudere software laden op een apparaat dat vatbaar is voor misbruik. Het grootste verschil tussen de implementatie van Google en Xiaomi is dat de anti-rollback-beveiliging van Google wordt uitgeschakeld als je de bootloader ontgrendelt terwijl die van Xiaomi niet kan worden uitgeschakeld. Zodra u een build installeert waarop anti-rollback-beveiliging is ingeschakeld op een Xiaomi-apparaat, is er geen weg meer terug. Anti-rollback-beveiliging is bijvoorbeeld ingeschakeld voor de Xiaomi Mi 8 en Xiaomi Redmi Note 5 Pro vanaf respectievelijk MIUI 10 China 8.9.6 en MIUI 10 Global Beta 8.7.5.
Anti-rollback-bescherming zorgt ervoor dat niet-geautoriseerde detailhandelaren geen misbruik kunnen maken van exploits in oudere MIUI-versies, waardoor gebruikers tegen uitbuiting worden beschermd. Het heeft echter ook velen overrompeld omdat Xiaomi het naar de Redmi Note 5 Pro heeft uitgerold zonder gebruikers vooraf te informeren. Omdat TWRP geen controles heeft om te voorkomen dat gebruikers oudere, ongeautoriseerde MIUI installeren In versies hebben veel mensen per ongeluk hun apparaten gemetseld toen ze degradeerden van een MIUI-bèta-ROM naar een MIUI stabiele ROM. Alle momenteel ondersteunde Xiaomi-apparaten zullen uiteindelijk bescherming tegen terugdraaien krijgen, dus het is ongelooflijk belangrijk dat u begrijpt hoe u dit kunt controleren voordat u downgradet en wat u kunt doen als er anti-rollback-bescherming is ingeschakeld.
Hoe u kunt controleren of er sprake is van Anti-Rollback Protection
Toen we het hadden over anti-rollback-beveiliging die voorkomt dat een apparaat oudere, onveilige software opstart, zeiden we dat Verified Boot de aanwezigheid van oudere software “detecteert”. Hoe deze detectie werkt, is dat Verified Boot een rollback-index heeft die wordt vergeleken met de rollback-index van de te installeren afbeeldingen. Afhankelijk van hoe de rollback-indices zich verhouden, gebeurt het volgende:
- Als de huidige rollback-index minder dan de rollback-index in de beelden die moeten worden geflasht, en vervolgens de afbeeldingen worden geflitst en de de huidige rollback-index wordt verhoogd overeenkomen met de nieuwe rollback-index.
- Als de huidige rollback-index gelijkwaardig naar de rollback-index in de beelden die moeten worden geflasht, en vervolgens naar de afbeeldingen worden geflitst en de de rollback-index verandert niet.
- Als de huidige rollback-index groter dan de rollback-index in de beelden die moeten worden geflasht, en vervolgens de afbeeldingen worden afgewezen als je knipperen via fastboot of Mi Flash. (TWRP controleert de rollback-indexen niet voordat ze knipperen, daarom waren bijna alle stenen het resultaat van een downgrade via TWRP.)
Nu u de rollback-index beter begrijpt, kunt u als volgt de huidige rollback-index op uw apparaat en de afbeelding die u wilt flashen controleren.
Hoe u de huidige rollback-index kunt vinden
- Start opnieuw op naar fastboot-modus
- Voer de volgende opdracht in:
fastboot getvar anti
- Als de uitvoer leeg is, is anti-rollback nog niet ingeschakeld. Als u een getal in de uitvoer krijgt, is dat uw huidige rollback-index.
Hoe de terugdraaiindex van afbeeldingen te vinden
- Download het “fastboot” ROM-equivalent van het herstel-ROM dat u probeert te installeren. Het herstel-ROM bevat altijd de marketingnaam van het apparaat in de bestandsnaam en eindigt op .zip. Het fastboot-ROM heeft altijd de codenaam van het apparaat in de bestandsnaam en eindigt op .tar.gz.
- Pak flash-all.bat uit het .tar.gz-archief. 7Zip kan dit gemakkelijk aan.
- Open flash-all.bat in een teksteditor zoals Notepad++ en zoek naar de volgende regel:
set CURRENT_ANTI_VER=#
- Dat nummer (#) is de rollback-index van de MIUI-versie die u wilt flashen. Als dat getal gelijk is aan of groter is dan je huidige rollback-index, dan is het veilig om te flashen in TWRP, Mi Flash, enz. Als dat aantal lager is dan uw huidige rollback-index, FLASH DIT ROM dan NIET VIA TWRP.
Het vermijden van een volle, onherstelbare steen zou eenvoudig moeten zijn, zolang je maar de rollback-indices controleert voordat je downgradet via TWRP. Voor de zekerheid moet je Mi Flash of fastboot gebruiken om MIUI ROM's te flashen als die van je telefoon bootloader heeft ingebouwde beveiligingen om te voorkomen dat u downgradet naar een versie met een lagere rollback inhoudsopgave.
Welke invloed heeft Anti-Rollback Protection op aangepaste ROM's?
Als u van plan bent MIUI nooit meer te laten flitsen, verandert er niet veel voor u. Als je een AOSP ROM zoals LineageOS, Pixel Experience, Resurrection Remix, Carbon ROM wilt flashen, enz., je moet nog steeds de bootloader ontgrendelen via Mi Unlock, TWRP opstarten en vervolgens de aangepaste flash uitvoeren ROM. Het enige opvallende verschil is hoe je TWRP via fastboot installeert. Omdat anti-rollback-beveiliging u ervan weerhoudt de TWRP-afbeelding te flashen, moet u eerst een “dummy”-afbeelding flashen. De dummy-afbeelding is een leeg bestand dat geen ander doel dient dan een opdracht naar de bootloader te sturen, zodat deze weet dat hij daarna andere flitsen kan accepteren. (Als je naar het flash-all-script uit de vorige sectie kijkt, is dit eigenlijk hoe Xiaomi het officieel doet.) Als alternatief: u kunt de TWRP-afbeelding "fastboot booten", de TWRP-afbeelding naar de opslag van uw apparaat verplaatsen en vervolgens de TWRP-afbeelding van binnenuit flashen TWRP. Ik geef geen gedetailleerde instructies over beide methoden, maar ik raad u aan het forum van uw apparaat te bezoeken voor apparaatspecifieke instructies.
XDA Forum Index voor alle Xiaomi-apparaten
Er is echter één kanttekening. Er is geen manier om van tevoren te zeggen of de rollback-index is verhoogd vanwege een bijgewerkte bootloader, modem, leverancier of andere partities. Houd er rekening mee dat aangepaste ROM's doorgaans alleen het systeem en de opstartpartities wijzigen, maar om uw apparaat echt veilig te houden met de nieuwste beveiligingspatchupdates, moet u moet af en toe de nieuwste afbeeldingen flashen die zich in de nieuwste officiële MIUI-ROM's bevinden. Ontwikkelaars van aangepaste ROM's zullen de rollback-index handmatig moeten controleren van deze builds voordat ze u aanbevelen om te updaten. Op die manier weet u wanneer een nieuwe update u aan bepaalde MIUI-versies koppelt als u van plan bent terug te gaan naar MIUI vanuit een AOSP-ROM.
Wat moet ik doen als ik mijn telefoon heb gemetseld?
Als je je telefoon hebt gemetseld door de anti-rollback-beveiliging te activeren, heb je heel weinig opties.
- Stuur uw apparaat ter reparatie naar een erkend servicecentrum. De servicecentra hebben toegang om uw apparaat te herstellen via de EDL-modus.
- Ik hoop dat er op de een of andere manier een manier is om EDL-autorisatie te omzeilen (in wezen een exploit), zodat je je apparaat handmatig kunt herstellen met de juiste programmeur.
Zoals je kunt zien, is het geen grap om je telefoon te bricken door de anti-rollback-beveiliging te activeren. Je moet echt voorzichtig zijn voordat je een oudere MIUI-versie flasht.
Veelgestelde vragen (FAQ's)
- Wat moet ik vermijden als ik mijn apparaat niet wil bricken?
- Flash geen MIUI-versie met een rollback-index die lager is dan de huidige rollback-index van uw apparaat. Zie hierboven voor instructies.
- Flash geen officiële MIUI Global ROM op Chinese Xiaomi-hardware met een vergrendelde bootloader.
- Kan ik nog steeds aangepaste AOSP-ROM's, kernels, Magisk, Xposed, Substratum, ARISE en andere mods installeren?
- Ja.
- Kan ik nog steeds schakelen tussen MIUI Global Stable, MIUI Global Developer, MIUI China Stable en MIUI China Developer?
- Ja, maar u moet de rollback-indices vergelijken voordat u een oudere MIUI-versie installeert.
- Waarom schakelt Xiaomi de anti-rollback-beveiliging niet uit wanneer u de bootloader ontgrendelt?
- Dat is een goede vraag.
- Waarom brickt Xiaomi je telefoon hard als de anti-rollback-beveiliging wordt geactiveerd, wat Google niet doet?
- Dat is nog een goede vraag.
- Waarom geeft Xiaomi niet de standaard Verified Boot-waarschuwing weer om de gebruiker te laten zien dat er met de software is geknoeid?
- Je bent goed bezig met deze geweldige vragen! In alle ernst kan deze enigszins gerechtvaardigd zijn omdat het mogelijk is om dit opstartscherm uit te schakelen - tenminste op sommige apparaten.
Speciale dank aan XDA erkende ontwikkelaar yshalsager en XDA Junior-lid franstesca voor hun hulp in dit artikel!