Waarom Apple een chip in de iPhone heeft gestopt die Face ID sloopt

Gecategoriseerd als Geen onderdeel van een categorie, Hardware
Save and Share:

Laten we bij het begin beginnen: hoe ziet het Face ID-systeem eruit en hoe werkt het:

Alle hardware die nodig is voor FaceID zit in deze inkeping in het scherm

Hardwarematig bestaat dit systeem uit een paar camera’s – IR en RGB, en twee soorten IR-zenders – gewone verlichting en een gespecialiseerde puntprojector.

We strippen een iPhone X, verwijderen alles wat overbodig is en zien het blok frontcamera’s in pure vorm. De IR-verlichting zit apart, maar alle andere componenten hebben we in handen – ze zitten stevig vast in dit metalen frame.

Hier zien we de IR-camera en de IR-puntprojector. Op dit infraroodduo is de werking van TrueDepth en FaceID gebaseerd. En de hoofdrolspeler van dit verhaal is juist de puntprojector.

Kort werkingsprincipe van FaceID

Punten die door iPhone X worden uitgezonden – foto van hier.

De IR-puntprojector doet precies wat de naam zegt – hij spuugt op commando tienduizenden infraroodpunten de omgeving in. En de IR-camera, die dit commando geeft, fotografeert deze punten onmiddellijk.

Door de optische eigenschappen van de projector, de camera en de afstand ertussen te kennen, kan de ISP in de iPhone-processor schatten hoe ver elk punt zich bevindt. Ik begrijp de wiskunde van dit proces zelf niet helemaal, en het reverse-engineeren ervan zal lastig zijn – maar het maken van een reeks afbeeldingen met verschillende puntpatronen maakt het mogelijk om de positie van elk afzonderlijk punt zeer nauwkeurig te raden en zo een complete dieptekaart te maken. Zonder LIDAR en zonder ToF.

Juist de dieptekaart zorgt ervoor dat FaceID niet wordt misleid door uitgeprinte foto’s. Een foto is plat – terwijl een gezicht reliëf heeft, en voor FaceID is de topografische kaart van het gezicht belangrijker dan de kleur.

Blokschema van de referentiecamera PrimeSense

Overigens kijkt het systeem ook naar de kleur van het gezicht. De IR-camera is hardwarematig gesynchroniseerd met de RGB-camera, en beide camera’s nemen het gezicht tegelijkertijd op. En de iPhone kan niet alleen knipperen met de IR-projector, maar ook met IR-verlichting – en het hele gezicht in het IR-spectrum opnemen.

De dieptekaart zelf is vrij grof, en de analyse van de gezichtstextuur in IR- en RGB-opnamen door een neuraal netwerk maakt het mogelijk om zowel de diepte te verfijnen als details zoals mimiek beter te begrijpen – zowel bij daglicht als in het donker.

Als dit systeem je bekend voorkomt, komt dat waarschijnlijk omdat het rechtstreeks is overgenomen van de Kinect van de Xbox 360. Alleen was die Kinect een enorm gevaarte, en hier is hij verkleind tot de grootte van een inkeping in het scherm van een smartphone.

Dit is gedaan door het bedrijf PrimeSense, dat de technologieën achter Kinect 1 ontwikkelde – en later door Apple werd gekocht voor 350 miljoen dollar. Compleet – met alle patenten, ontwikkelingen, medewerkers en andere onderdelen.

De ingewanden van de projector ontleden

We gaan dieper in op de reverse engineering: we halen de puntprojector uit het camerablok van de iPhone X en ontleden hem in afzonderlijke delen. Hij bestaat uit een FPC-lintkabel, een zendmodule en een optische module.

De lintkabel is volledig passief en daarom weinig interessant. Hij is gesoldeerd aan de zendmodule en voert signalen naar de FPC-connector, die is aangesloten op het moederbord van de iPhone X. De connector heeft een contactafstand van 0,35 mm, is op maat gemaakt (Apple, smeerlappen) en is waarschijnlijk gemaakt door JAE.

Laten we eens kijken naar de belangrijkste optische componenten:

Projector in doorsnede: foto van hier, bijschriften van mij

En laten we kijken wat er zich in de zender bevindt:

En de rol van de MOSFET en de mysterieuze chip wekte mijn interesse. Waarom? Omdat het onduidelijk is wat ze daar eigenlijk doen.

De eerste voor de hand liggende optie is dat de mysterieuze chip geheugen is voor het serienummer en kalibratiegegevens. De chip heeft een typische I2C-interface voor geheugen, en er zit zeker geheugen in. Projectoren hebben serienummers, waarmee je onder andere de productiedatum kunt achterhalen – en als de projector in zijn geheel wordt vervangen, ziet de iPhone een serienummer mismatch en weigert hij met de vervanging te werken. Maar de meest gebruikelijke I2C EEPROM zit in een piepkleine WLCSP-4 behuizing – en die kun je zelfs tegen overschrijven beveiligen als je dat echt wilt. Daarom kan de chip geen simpel geheugen zijn. Hij doet zeker nog iets anders.

Pin-out van de projector van Chinese meesters van JCID. De opschriften zijn krom, maar komen over het algemeen overeen.

De tweede voor de hand liggende optie is dat de mysterieuze chip een laser driver is, en de MOSFET de schakelaar ervan. En ja, de MOSFET wordt inderdaad door de chip aangestuurd. Maar zelfs als laser driver kan de chip niet iets kritisch belangrijks zijn.

Ten eerste zit de MOSFET in de onderbreking van de gemeenschappelijke kathode van de laser module – en 4 afzonderlijke anodes gaan rechtstreeks naar de lintkabel en verder de gelaagde printplaat van de iPhone in. En ten tweede kwam ik tijdens het verzamelen van gegevens voor reverse engineering verschillende instructies van Chinese reparatiemeesters tegen.

MOSFET vervangen door een net draadje

Ze hebben de essentie van de vraag niet direct verduidelijkt, maar in veel van deze instructies werd gezegd: om een “kapotte” projector te repareren, moet je hem demonteren, de MOSFET verwijderen en vervangen door een jumper tussen de drain en de source. De projector zal uiteindelijk met een jumper erin werken, en de FaceID-functionaliteit zal worden hersteld. Maar als de projector met een jumper in plaats van een MOSFET normaal werkt, wat deed die MOSFET daar dan?

En toen drong het tot me door: dat was de essentie van de reparatie. De MOSFET wordt door de chip aangestuurd – dus op verzoek van de chip kan hij het laservoedingscircuit onderbreken en daarmee de projector kapotmaken. En deze reparatie heft die onderbreking op.

Wat betekent die naam voor jou

Nu het duidelijk is geworden dat de mysterieuze chip in combinatie met de MOSFET de normale werking van de projector belemmert, rijst de vraag – waarom doet hij dit? Waarom wordt er een chip in de projector geplaatst die de projector om zeep helpt?

Voor antwoorden ben ik in de firmware van het ISP-blok in de iPhone-processor gedoken – deze communiceert via I2C met de camerasensoren en de projector.

Eerst heb ik een image van iOS 15 firmware voor iPhone X gedownload, een recente. Firmware images voor iPhone zijn in feite zip-bestanden. Daarin vond ik de gewenste ISP-firmware – in de vorm van het bestand Firmwareisp_bniadc-nike-d22.im4p. Uit het gecomprimeerde im4p-bestand werd een binary geëxtraheerd, in Mach-O formaat met AArch64 code erin. Mach-O is, in tegenstelling tot een typische “firmware image voor een onbekende microcontroller”, een gedocumenteerd executable bestandsformaat, vergelijkbaar met PE of ELF. Geen giswerk over de bestandsstructuur, processorarchitectuur of het adres waarnaar de code moet worden geladen. Je gooit het bestand gewoon in Ghidra en alles wordt vanzelf geordend. Fijn.

Toen nam mijn instinct het over en besloot ik oudere firmwares uit te pluizen. En in de image van iOS 13 firmware vond ik het bestand adc-nike-d22. Zelfs de grootte was bijna hetzelfde. Alleen zat er in de nieuwe firmware meer code – en in de oude zat minder code, maar wel symbolen. Alle functienamen waren aanwezig. Check altijd de oudere versies!

In de ISP-firmware zit veel informatie, waaronder hoe de iPhone via I2C communiceert met verschillende chips – met camerasensoren, met camera-PMU’s, met chips voor flitserbeheer en autofocus. Daaruit, dankzij de symbolen, konden de “namen” van verschillende onderdelen van het systeem worden gehaald – en een deel daarvan komt overeen met materiaal uit andere delen van de firmware, en ook van andere reverse engineers en reparateurs. De IR-camerasensor is bijvoorbeeld de STMicroelectronics VD56G0 “Savage”. Het hele TrueDepth-systeem wordt in de code “Pearl” genoemd, en de belangrijkste modules ervan hebben namen van personages uit “Romeo en Julia” gekregen. De IR-projector heet “Romeo”, de IR-camera “Juliet” en de IR-verlichting heet “Rosaline”. De laser driver, die op het moederbord van de iPhone zit en zowel de lasers in “Romeo” als de laser in de verlichting “Rosaline” voedt, heet “Rigel”.

De mysterieuze chip die ons interesseert? Die heeft ook een naam. In de code wordt hij “MamaBear” genoemd, kortweg “MB”, en het lijkt erop dat zijn functionaliteit vrij eenvoudig is. Hij zit op de I2C-bus. Hij slaat OTP-gegevens op, waaronder het serienummer en verschillende kalibraties. Hij schakelt de MOSFET op commando in en uit. En hij meet ook… capaciteit? Geen temperatuur, hij is helemaal niet aangesloten op een NTC-thermistor, maar juist capaciteit. Maar de capaciteit van wat?

De tragische dood van Romeo

Het antwoord op deze vraag krijgen we weer met behulp van Chinese schema’s. In het schema van JCID is te zien dat er in de “Romeo”-module drie contacten zijn voor de verbinding van de zendmodule met de optische module. Eén – aarde, en nog twee gaan rechtstreeks naar de “MamaBear”-chip. Deze contacten lopen via een speciale adapter aan de zijkant van de optische module, en komen terecht op de bovenkant ervan – op het diffractie optische element.

De diffractie bundelsplitser is niet regelbaar en reageert niet op stroom. Maar hij heeft wel capaciteit. En met behulp van die drie lijnen kan deze capaciteit worden gemeten. Maar waarom?

Het punt is hoe belangrijk deze diffractie bundelsplitser is. Het patroon van punten dat door de projector wordt gebruikt, wordt bepaald door de plaatsing van de minuscule laser-“putjes” op het VCSEL-kristal. En vervolgens wordt dit patroon vermenigvuldigd door een diffractie-element, dat van één bundel lichtstralen honderden bundels lichtstralen maakt.

Vergelijking van de plaatsing van de lasers van de anode “SPARSE” en de geprojecteerde punten

Wat gebeurt er dus als dit diffractie-element wordt losgetrokken?

De stralen worden niet gesplitst. In plaats van honderd bundels laserstralen komt er één bundel – maar dan honderd keer krachtiger. En dit is toch een laser. Een infraroodlaser is gevaarlijker dan een rode, omdat een mens hem niet ziet – en daarom niet instinctief zijn blik zal afwenden, zelfs niet van een gevaarlijk krachtige lichtbron. En er is een reële kans dat het karakteristieke patroon van punten in dat geval in het netvlies van de gebruiker wordt gebrand.

Om dit te voorkomen is er een killer-chip nodig. Na het inschakelen controleert hij voortdurend de capaciteit van het diffractie-element – en als het element wordt uitgebogen of beschadigd, schiet de capaciteit buiten de toegestane grenzen, en de chip schakelt onmiddellijk de MOSFET uit en onderbreekt de VCSEL-voeding. En aangezien het element zich bovenop de optische module bevindt, is het vrijwel onmogelijk om de rest van de module door een stoot te beschadigen zonder het element te breken en het contact te verbreken.

Na een nooduitschakeling van de laser brandt de chip een vlag in OTP die de projector als defect markeert – wat betekent dat de onderbroken voeding voor altijd onderbroken blijft. Geen enkel commando van de ISP zal er nog invloed op hebben. De MOSFET zal altijd gesloten blijven en de projector zal nooit meer werken.

De “MamaBear”-chip, zoals de naam al doet vermoeden, is een beveiligingschip. Het is een “killswitch” voor het noodstopzetten van de laser. Hij sloopt de projector om te voorkomen dat een beschadigd laserapparaat in de ogen van de gebruiker schijnt. En de “Juliet”-module, die zonder de bijbehorende “Romeo” achterblijft, verliest zijn bestaansrecht – en het hele TrueDepth-systeem is onbruikbaar.

De dagelijkse sleur van tech-priesters

Maar dit beveiligingsschema heeft een tekortkoming. Het punt is dat de puntprojector aan de bovenrand van het apparaat zit, vlakbij de luidspreker. Als er vloeistof in de iPhone komt, is een van de meest voorkomende plaatsen daar. En capacitieve sensoren zijn gevoelig voor stroomgeleidende vloeistoffen. Daarom gebeurt het vaak dat FaceID kapot gaat nadat het apparaat in het water is gevallen – zelfs als de waterinsijpeling minimaal is en er geen andere schade is. “Romeo” heeft de situatie gewoon verkeerd begrepen en onnodig een “Roskomnadzor” uitgevoerd.

Dergelijke apparaten worden naar de reparatie gebracht. Vaak naar een niet-officiële reparatie. En aangezien de iPhone de serienummers van onderdelen controleert (hallo, Apple), is het niet mogelijk om zomaar het hele camerablok te vervangen door een werkend blok van een donor. De telefoon zal het nieuwe blok afstoten en FaceID zal nog steeds niet werken. Dus moet je op de een of andere manier de oude repareren. Maar hoe kun je een projector “weer tot leven wekken” die zichzelf opzettelijk heeft uitgeschakeld?

Fabrikanten van niet-officiële reparatietools hebben hiervoor een hele reeks verschillende rituelen bedacht. En handige tech-priester-reparateurs volgen deze trouw en voeren microchirurgie uit aan dit complexe en gekalibreerde optische systeem. De handigheid die nodig is, is onvoorstelbaar – de componenten binnenin zijn slechts millimeters groot en de optiek is extreem gevoelig. Als de kalibratie door chirurgische ingrepen te veel verschuift, zal het systeem niet werken. Er zijn geen tools voor softwarematige herkalibratie (hallo, Apple) – je moet een manier vinden om de originele parameters te bereiken, anders blijf je zonder FaceID zitten.

«Hoogspannings»-programmeur

Hoe werkt dit? Nou, als eerste moet je de OTP-gegevens uit de originele “MamaBear”-chip lezen.

De gegevens zijn leesbaar, zelfs als de projector zichzelf als defect beschouwt. Voor het uitlezen van de gegevens maken de Chinezen speciale “reparatie”-programmers – die worden geleverd met sets connectoren-adapters en werken met een hele reeks verschillende componenten van verschillende iPhone-modellen, waaronder projectoren.

En dan moeten er twee dingen gebeuren – het probleem met de voedingsonderbrekende MOSFET oplossen en de originele beveiligingschip vervangen. En hier zijn veel verschillende methoden voor.

Lintkabel met cheat-chip

Je kunt bijvoorbeeld in plaats van de MOSFET een jumper plaatsen, zoals op de foto hierboven in het artikel, en de “MamaBear”-chip vervangen door de originele FPC-lintkabel los te solderen en te vervangen door een speciale lintkabel met een Chinese cheat-chip.

De originele “MamaBear”-chip kan daarbij binnenin blijven zitten en wanhopig schreeuwen dat de projector in geen geval mag werken. Maar hij heeft geen MOSFET meer om de projector gedwongen uit te schakelen, en de iPhone ziet van zijn kant alleen de Chinese chip – die een kopie van de originele gegevens teruggeeft die in de programmer is geladen, en rapporteert dat de projector zeker en vast in orde is.

Oude ingewanden eruit schrapen en nieuwe plaatsen

Of je kunt de “MamaBear”-chip er in zijn geheel uittrekken en op zijn vaste plaats een Chinese twee-in-één vervanging plaatsen – die zowel de MOSFET-contacten sluit als een kopie van de OTP-gegevens aan de telefoon teruggeeft.

Adapterprintplaat met cheat-chip

En er is een optie met minimale soldeerwerkzaamheden. Een “adapter” met een cheat-chip, die tussen de originele lintkabel en het moederbord van de iPhone wordt geplaatst.

Het probleem met de MOSFET lost hij niet op, maar ook daarvoor hebben de Chinezen een originele aanpak gevonden, door “hoogspannings”-programmers te maken.

Weet je hoe je allerlei ATtiny’s kunt “ontstenen” en herschrijven met behulp van een speciale hoogspanningsprogrammer? Hier is de situatie heel anders. De Chinese hoogspanningsprogrammer “programmeert” op brute en onomkeerbare wijze de MOSFET in de projector in een kortsluiting tussen de drain en de source.

In de laatste fase van de reparatie sluiten we de projector nog een keer aan op de programmer en laden we de op de eerste fase opgeslagen dump erin. En de projector is klaar om te werken en zich voor te doen als origineel en ongemodificeerd.

Al deze verschillende voorzieningen worden gemaakt en gepromoot door verschillende verkopers van reparatieapparatuur. Allerlei cheat-chips werken alleen met “native” programmers, en in programmers zitten vaak DRM-functies zoals accountbinding en een beperkt aantal “reparaties”, waarvoor je moet betalen om ze aan te vullen.

Weten de reparateurs dat ze met hun reparatie het systeem volledig vernietigen dat Apple heeft bedacht om de ogen van de gebruiker te beschermen? Eigenlijk niet. Ze zijn geen reverse engineers – ze zijn sjamanen. Ze begrijpen de werkingsprincipes niet. Ze hebben rituelen en resultaten, en dat is genoeg voor hen. En slimme reverse engineers uit China delen hun geheimen niet graag met het publiek. Wat ik in dit artikel heb beschreven, is in zijn geheel alleen bekend bij Apple-ingenieurs en een tiental Chinezen “in the know”. En bij mij. En bij jou, nu.

Waarom Apple klootzakken zijn

Weet je, ik kan de ingenieurs van Apple niet al te veel kwalijk nemen dat hun “killswitch” te actief is en projectoren sloopt die nog best even mee zouden kunnen. Lasers zijn een gevaarlijk onderwerp, en het idee om de gebruiker te beschermen tegen “worst-case scenario’s” is absoluut gezond. Hoewel de implementatie van deze bescherming verbetering behoeft.

Maar het beleid van Apple om niet-officiële reparaties te bestrijden is het ergste van alle kwaden. Als TrueDepth-blokken rustig van apparaat naar apparaat zouden kunnen worden overgezet, zonder rekening te hoeven houden met serienummers, dan zouden de bizarre, verwrongen reparatierituelen vrijwel zinloos zijn. Waarom zou je je uitsloven met microchirurgisch solderen en dansen met programmers als je van een volgende “donor” met een gebroken scherm een perfect werkend TrueDepth-blok kunt halen, het in de telefoon van de klant kunt plaatsen, de functionaliteit volledig kunt herstellen en rustig verder kunt leven? Voor reparateurs zou het makkelijker zijn, en voor apparaatbezitters – veiliger.

Maar de geschiedenis van Apple’s achterlijke anti-reparatiegedrag laat duidelijk zien dat dit niet zal gebeuren. Nou ja, tenzij in de VS of in de EU allerlei “Right to Repair”-bewegingen het koppelen van onderdelen aan serienummers illegaal maken. En dat is nu mogelijk. In de grap dat de Europese Unie meer nuttige functies aan nieuwe iPhone-modellen toevoegt dan Apple, zit een zeer hoog gehalte aan waarheid. Dus we zullen de wetgevende initiatieven in de gaten houden.

Artikel vertaald uit het Russisch. Auteur van het artikel: acc0unt. We hebben geprobeerd de originele stijl en formuleringen van de auteur zoveel mogelijk te behouden bij de vertaling.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *