Reverse Engineering Xiaomi OTA-updates om niet-uitgebrachte updates te vinden

XDA Senior Member duraaraa heeft geprobeerd valse OTA-verzoeken van Xiaomi-apparaten te maken om toegang te krijgen tot nachtelijke builds van MIUI.

In een poging toegang te krijgen tot Xiaomi's nightlies - de nog niet uitgebrachte, interne versies van Xiaomi's MIUI-besturingssysteem - XDA Senior Member duraara reverse-engineeren van het over-the-air (OTA) updateframework van het in China gevestigde bedrijf. De twee work-in-progress-exploits dwingen Xiaomi-apparaten om een ​​nachtelijke build uit te voeren in plaats van de nieuwste commerciële firmware, wat in theorie zou kunnen zijn geïnstalleerd op kant-en-klare apparaten als (1) de OTA-applicatie van MIUI reverse-engineered is en (2) de testbuilds zijn ondertekend met dezelfde sleutels als de officiële constructies.

Methode 1: Een Xiaomi OTA-update-URL maken

De eenvoudigste van de twee methoden is het verkrijgen van toegang tot de OTA-update-URL, die instructies naar het clientapparaat stuurt over hoe de genoemde update moet worden gedownload.

Deze URL bijvoorbeeld, bevat vlaggen die Xiaomi's OTA-update-app vertellen waar versie 7.9.21 van MIUI 9, een interne testbuild, te vinden is.

{"UserLevel":9,"LatestVersion":{"type":"rom","device":"chiron_global","name":"XM-MIMIX2-GLOBAL 7.9.21","description":"MIUI\u5347\u7ea7","descriptionUrl":"http:\/\/update.miui.com\/updates\/updateinfo\/7.9.21\/chiron_global_0_7.9.21_4494ccfcc506caca9904efb74b489e0a.html","md5":"7f94ca393fae77c6171e6c7a551bea2e","filename":"miui_MIMIX2Global_7.9.21_7f94ca393f_7.1.zip","filesize":"1.6G","codebase":"7.1","version":"7.9.21","branch":"X"},"UpdateList":[{"type":"rom","device":"chiron_global","name":"XM-MIMIX2-GLOBAL 7.9.21","description":"","descriptionUrl":"http:\/\/update.miui.com\/updates\/updateinfo\/7.9.21\/chiron_global_0_7.9.21_4494ccfcc506caca9904efb74b489e0a.html","md5":"7f94ca393fae77c6171e6c7a551bea2e","filename":"miui_MIMIX2Global_7.9.21_7f94ca393f_7.1.zip","filesize":"1.6G","codebase":"7.1","version":"7.9.21","branch":"X"}],"IncrementalUpdateList":[],"MirrorList":["http:\/\/bigota.d.miui.com"],"Signup":{"version":"","total":"","rank":""},"AuthResult":0,"ForceUpdate":0

Toen onlangs een stabiele release in China begon uit te rollen -- 8.5.7.0.NDECNEF -- duraara gebruikte de exploit om de upgrade-URL van de firmware te vinden.

Methode 2: Een Xiaomi OTA-updateverzoek opstellen

De tweede methode, die wat complexer is, houdt in dat je de decoderingssleutel van de Xiaomi-updateserver bemachtigt. Dat vereist het decompileren van de updater-applicatie en het gebruiken van Xposed om netwerkverkeer vast te leggen en te analyseren.

Wanneer de decoderingssleutel ("miuiotavalided11", bijvoorbeeld) aanwezig is, kan elke gebruiker in theorie een nep-upgradeverzoek genereren.

Xiaomi OTA-upgrades forceren

duraara gebruikte de twee methoden om niet-uitgebrachte MIUI-builds op de servers van Xiaomi te vinden, maar is er nog niet in geslaagd een nightly op een Xiaomi-apparaat te downloaden en te installeren. Hij vraagt ​​leden van de ontwikkelingsgemeenschap om hieraan deel te nemen.

Bekijk de XDA Forums-thread om nieuwe ontwikkelingen te volgen en/of uw expertise aan te bieden.


Discussie over reverse engineering Xiaomi OTA's