Prečo Apple pridal do iPhonu čip, ktorý kazí Face ID

Kategorizované ako Hardware, Uncategorized @sk
Save and Share:

Začnime od začiatku: ako systém Face ID vyzerá a ako funguje:

Všetko potrebné pre prácu FaceID železo sa nachádza práve v tomto výreze v obrazovke

Hardvérovo sa tento systém skladá z dvojice kamier – IR a RGB, a dvoch typov IR-žiaričov – bežného osvetlenia a špecializovaného projektora bodov.

Z iPhone X dáme dole „kožu“, odstránime všetko nepotrebné a vidíme blok predných kamier v holom stave. IR osvetlenie existuje samostatne, ale všetky ostatné komponenty máme v rukách — sú bezpečne upevnené v tomto kovovom ráme.

Tu vidíme IR kameru a projektor IR bodov. Práve na tejto infračervenej dvojici stojí práca systémov TrueDepth a FaceID. A hlavný hrdina dnešného príbehu — je práve projektor bodov.

Stručný princíp fungovania FaceID

Vyžarované body iPhone X — foto odtiaľto.

Projektor IR bodov robí presne to, čo hovorí jeho názov — vypľúva na povel do okolitého sveta desiatky tisíc infračervených bodov. A IR kamera, ktorá aj vydáva tento povel, okamžite fotografuje tieto body.

Poznajúc optické charakteristiky projektora, kamery a vzdialenosť medzi nimi, ISP v procesore iPhone môže odhadnúť, ako ďaleko sa každý bod nachádza. Matematiku procesu ani sám úplne nechápem a reverzné inžinierstvo by bolo ťažké — ale snímanie série obrázkov s rôznymi vzormi bodov umožňuje veľmi presne uhádnuť pozíciu každého jednotlivého bodu a vytvoriť tak celistvú mapu hĺbky. Bez LIDAR a bez ToF.

Práve mapa hĺbky umožňuje FaceID nenechať sa oklamať fotografiami vytlačenými na tlačiarni. Fotografia je plochá — a tvár má reliéf a pre FaceID je topografická mapa tváre dôležitejšia ako jej farba.

Bloková schéma referenčnej kamery PrimeSense

Avšak, na farbu tváre sa systém tiež pozerá. IR kamera je hardvérovo synchronizovaná s RGB kamerou a tvár obe kamery snímajú súčasne. A iPhone môže blikať nielen IR projektorom, ale aj IR osvetlením — a nasnímať celú tvár v IR spektre.

Mapa hĺbky je sama o sebe dosť hrubá a analýza textúry tváre v IR a RGB snímkach neurónovou sieťou umožňuje ako spresniť hĺbku, tak aj lepšie sa orientovať v detailoch ako mimika — a to ako za denného svetla, tak aj v tme.

Ak sa vám tento systém zdá povedomý, tak je to pravdepodobne preto, že je priamo vytrhnutý z Kinect od Xbox 360. Len ten Kinect bol obrovská „bandura“ a tu ho zmenšili na veľkosť výrezu v obrazovke smartfónu.

Urobila to spoločnosť PrimeSense, ktorá aj vyvinula technológie v základe Kinect 1 — a potom bola kúpená spoločnosťou Apple za 350 miliónov dolárov. Celá — so všetkými patentmi, nápadmi, zamestnancami a inými vnútornosťami.

Rozoberáme vnútornosti projektora

Ideme hlbšie do reverzného inžinierstva: vyberáme projektor bodov z bloku kamier iPhone X a rozoberáme ho na súčasti. Skladá sa z FPC-pásky, vyžarovacej zostavy a optickej zostavy.

Páska je úplne pasívna, a preto málo zaujímavá. Pripája sa k vyžarovacej zostave a vyvádza signály na FPC-konektor, ktorý sa pripája k základnej doske iPhone X. Konektor s rozstupom kontaktov 0.35mm, zákazkový (Apple sú „hajzli“), a vyzerá to, že je vyrobený spoločnosťou JAE.

Pozrime sa na hlavné komponenty optiky:

Projektor v reze: foto odtiaľto, podpisy moje

A pozrime sa, čo sa nachádza vnútri žiariča:

A tu ma rola MOSFET a tajomného čipu zaujala. Prečo? Pretože nie je jasné, čo tam vlastne robia.

Prvý очевидný variant — tajomný čip je pamäť pre sériové číslo a kalibračné dáta. Čip má typické pre pamäť rozhranie I2C a pamäť vnútri určite je. Projektory majú sériové čísla, podľa ktorých je možné okrem iného určiť dátum výroby — a ak projektor vymeníte celý, tak iPhone uvidí nesúlad sériového čísla a s výmenou odmietne pracovať. Ale najbežnejšia I2C EEPROM sa nachádza v maličkom WLCSP-4 puzdre — a je možné ju dokonca zablokovať pred prepisovaním, ak sa veľmi chce. Preto jednoduchou pamäťou čip byť nemôže. Určite robí niečo viac.

Rozloženie pinov projektora od čínskych majstrov z JCID. Popisy sú krivé, ale vcelku sedia.

Druhý очевидný variant — tajomný čip je ovládač laserov a MOSFET – jeho kľúč. A áno, MOSFET je naozaj ovládaný čipom. Lenže niečím kriticky dôležitým, ako ovládač lasera, čip tiež nemôže byť.

Po prvé, MOSFET stojí v prerušení spoločnej katódy laserovej zostavy — a 4 oddelené anódy vychádzajú priamo na pásku a idú ďalej do útrob vrstvenej dosky iPhone. A po druhé, počas zbierania dát pre reverzné inžinierstvo som narazil na rôzne inštrukcie od čínskych opravárenských majstrov.

MOSFET sa nahrádza úhľadným drôtikom

Podstatu otázky priamo neobjasnili, ale v mnohých z týchto inštrukcií sa hovorilo: pre opravu „pokazeného“ projektora je potrebné ho rozobrať, MOSFET odstrániť a nahradiť prepojkou medzi zdrojom a odtokom. Projektor nakoniec s prepojkou vnútri bude fungovať a funkčnosť FaceID sa obnoví. A keď projektor s prepojkou namiesto MOSFET normálne funguje, tak čo tam ten MOSFET robil?

A ma osvietilo: v tomto bola podstata opravy. MOSFET je ovládaný čipom – preto na želanie čipu môže prerušiť napájací obvod lasera a pokaziť tým projektor. A oprava toto prerušenie odstraňuje.

Čo je v mene tvojom

Keď sa stalo jasným, že tajomný čip v páre s MOSFET bráni normálnej práci projektora, tak vzniká otázka — prečo to robí? Prečo do projektora dávajú čip, ktorý zabíja projektor?

Pre odpovede som sa ponoril do firmvéru bloku ISP v procesore iPhone – práve ten sa rozpráva cez I2C so senzormi kamier a s projektorom.

Najprv som stiahol obraz firmvéru iOS 15 pre iPhone X, najnovší. Obrazy firmvéru pre iPhone — sú v podstate zip-súbory. Vnútri som aj našiel hľadaný firmvér ISP — v podobe súboru Firmwareisp_bniadc-nike-d22.im4p. Zo stlačeného im4p-súboru sa extrahoval binárny súbor, vo formáte Mach-O s AArch64 kódom vnútri. Mach-O, na rozdiel od typického „obrazu firmvéru pre neznámy mikrokontrolér“ — je zdokumentovaný formát spustiteľného súboru, podobný PE alebo ELF. Žiadne hádanie o štruktúre súboru, architektúre procesora alebo adrese, na ktorú je potrebné načítať kód. Jednoducho hodíš súbor do Ghidra a všetko sa samo rozloží na poličky. Príjemné.

Potom inštinkt prevzal svoje a rozhodol som sa rozobrať staršie firmvéry. A v obraze firmvéru iOS 13 som našiel súbor adc-nike-d22. Dokonca aj veľkosť bola takmer rovnaká. Lenže v novom firmvéri bolo viac kódu — a v starom kódu bolo menej, zato boli symboly. Všetky mená funkcií na mieste. Vždy kontroluj staré verzie!

Vo firmvéri ISP je veľa informácií, vrátane toho, ako iPhone komunikuje cez I2C s rôznymi čipmi — so senzormi kamier, s PMU kamier, s čipmi riadenia bleskov a autofokusu. Odtiaľto, vďaka symbolom, sa podarilo získať „mená“ rôznych súčastí systému — a časť z nich sa zhoduje s materiálmi z iných častí firmvéru, ako aj od iných reverzných inžinierov a opravárov. Napríklad, senzor IR kamery — je STMicroelectronics VD56G0 “Savage”. Celý systém TrueDepth sa v kóde nazýva “Pearl” a jeho hlavným modulom sú dané mená postáv z „Rómea a Júlie“. IR projektor sa nazýva “Romeo”, IR kamera — “Juliet” a IR osvetlenie sa nazýva “Rosaline”. Ovládač laserov, ktorý žije na základnej doske iPhone a napája ako lasery vnútri “Romeo”, tak aj laser vnútri osvetlenia “Rosaline”, sa nazýva “Rigel“.

Tajomný čip, ktorý nás zaujíma? Aj on má meno. V kóde ho nazývajú “MamaBear”, skrátene “MB” a vyzerá to, že jeho funkčnosť je veľmi jednoduchá. Žije na zbernici I2C. Uchováva v sebe OTP-dáta, vrátane sériového čísla a rôznych kalibrácií. Zapína a vypína na povel MOSFET. A ešte meria… kapacitu? Nie teplotu, k NTC-termistoru nie je vôbec pripojený, ale práve kapacitu. Lenže kapacitu čoho?

Tragická smrť Rómea

Odpoveď na túto otázku nám opäť pomáhajú získať čínske schémy. V schéme od JCID je vidieť, že v module “Romeo” sú tri kontakty pre spojenie vyžarovacej zostavy s optickou zostavou. Jeden — zem a ďalšie dva idú priamo do čipu “MamaBear”. Tieto kontakty prechádzajú cez špeciálny adaptér na boku optickej zostavy a dostávajú sa na jej samotný vrch — na difrakčný optický element.

Difrakčný rozdeľovač lúča je neriadený a na prúd nereaguje. Ale má kapacitu. A pomocou tých troch liniek je možné túto kapacitu merať. Ale načo?

Ide o to, akú dôležitú úlohu zohráva tento difrakčný rozdeľovač. Vzor bodov, používaných projektorom, je daný umiestnením maličkých laserov-„jamiek“ na VСSEL-krystáli. A potom sa tento vzor rozmnožuje difrakčným elementom, ktorý z jedného zväzku lúčov robí stovky zväzkov lúčov.

Porovnanie umiestnenia laserov anódy “SPARSE” a premietaných bodov

A teda, čo sa stane, ak tento difrakčný element odtrhneme?

Lúče sa nebudú rozdeľovať. Namiesto stoviek zväzkov laserových lúčov bude jeden zväzok — zato stokrát výkonnejší. A to je predsa len laser. Infračervený laser je nebezpečnejší ako červený, pretože človek ho nevidí — a preto nebude inštinktívne odvracať pohľad ani od nebezpečne silného zdroja svetla. A existuje nenulová šanca, že charakteristický vzor z bodov sa v takom prípade vypáli používateľovi do sietnice.

Na zabránenie tomu je potrebný čip-zabijak. Po zapnutí neustále sleduje kapacitu difrakčného elementu — a ak sa element ukáže ako vylomený alebo poškodený, tak kapacita vyletí za hranice povoleného a čip okamžite odpojí MOSFET a preruší napájanie VCSEL. A keďže element sa nachádza na samotnom vrchu optickej zostavy, tak poškodiť úderom zvyšok zostavy bez toho, aby sa zlomil aj on a nenarušil kontakt, je prakticky nemožné.

Po núdzovom odpojení lasera čip vypáli sebe do OTP vlajku, ktorá označuje projektor ako defektný — a teda, prerušené napájanie navždy zostane prerušené. Žiadne príkazy z ISP už nebudú mať nad ním moc. MOSFET bude vždy zatvorený a projektor už nikdy nebude pracovať.

Čip “MamaBear”, ako napovedá názov – je to ochranný čip. Je to “killswitch” pre núdzové zastavenie lasera. Zabíja projektor, aby nedal poškodenému laserovému zariadeniu svietiť používateľovi do očí. A modul “Juliet”, zostávajúc bez spárovaného “Romeo”, stráca zmysel života — a celý systém TrueDepth sa stáva nepoužiteľným.

Pracovné dni technokňazov

Ale táto schéma ochrany má nedostatok. Ide o to, že projektor bodov stojí na hornom okraji zariadenia a vedľa reproduktora. Ak sa dovnútra iPhone dostane kvapalina, tak jedno z najčastejších miest pre to — je práve tam. A kapacitné senzory sú citlivé na kvapaliny vedúce prúd. Preto sa často stáva, že FaceID sa pokazí po páde zariadenia do vody — aj keď je vniknutie vody minimálne a žiadne iné poškodenia nie sú. Jednoducho “Romeo” zle pochopil situáciu a vykonal „Roskomnadzor“ zbytočne.

Takéto zariadenia nesú do opravy. Často do neoficiálnej opravy. A keďže iPhone porovnáva sériové čísla náhradných dielov (ahoj, Apple), tak jednoducho prehodiť celý blok kamier na funkčný blok od darcu nie je možné. Telefón bude odmietať nový blok a FaceID aj tak nebude fungovať. Znamená to, že je potrebné nejakým spôsobom opraviť starý. Ale ako je možné „vzkriesiť“ projektor, ktorý sám seba zámerne vyradil z prevádzky?

Výrobcovia neoficiálnych nástrojov na opravu vymysleli pre to celý rad rôznych rituálov. A šikovní technokňazi-opravári ich sväto dodržiavajú a vykonávajú mikrochirurgiu tohto zložitého a kalibrovaného optického systému. Šikovnosť rúk je potrebná neuveriteľná — komponenty vnútri majú veľkosť rádovo milimetrov a optika je extrémne citlivá. Ak sa kalibrácia kvôli chirurgickým zákrokom príliš odchýli, tak systém nebude fungovať. Nástroje na programovú rekalibráciu neexistujú (ahoj, Apple) — buď nájdeš spôsob, ako sa dostať do pôvodných parametrov, alebo zostaneš bez FaceID.

«Vysokonapäťový» programátor

Ako to funguje? No, v prvom rade je potrebné prečítať dáta OTP z originálneho čipu “MamaBear”.

Dáta sú čitateľné, aj keď projektor sa považuje za nefunkčný. Pre čítanie dát Číňania vyrábajú špeciálne „opravárenské“ programátory — ktoré sa dodávajú so sadami konektorov-adaptérov a pracujú s celým radom rôznych komponentov od rôznych modelov iPhone, vrátane aj projektorov.

A potom je potrebné urobiť dve veci — vysporiadať sa s prerušujúcim napájanie MOSFET a nahradiť originálny ochranný čip. A tu existuje množstvo rôznych metód.

Páska s čipom-podvodníkom

Je možné napríklad prehodiť namiesto MOSFET prepojku, ako na fotke vyššie v článku, a čip “MamaBear” nahradiť, odpojením originálnej FPC-pásky a nahradením ju špeciálnou páskou s čínskym čipom-podvodníkom.

Originálny čip “MamaBear” pritom môže zostať vnútri a bezmocne kričať o tom, že projektor v žiadnom prípade nemá fungovať. Ale už nemá MOSFET na to, aby vypol projektor nútene a iPhone zo svojej strany vidí len čínsky čip — ktorý odovzdáva programátorom nahratú kópiu originálnych dát a hlási o tom, že projektor je úplne-úplne funkčný.

Vyškriabeme staré vnútornosti a dáme nové

A je možné vytrhnúť čip “MamaBear” celý a dať na jeho štandardné miesto čínsku náhradu dva-v-jednom — ona aj kontakty MOSFET spája a kópiu dát OTP do telefónu odovzdáva.

Doska-adaptér s čipom-podvodníkom

No a je tu variant s minimom spájkovania. „Adaptér“ s čipom-podvodníkom, ktorý sa dáva medzi originálnu pásku a základnú dosku iPhone.

Problém s MOSFET nerieši, ale aj k nemu Číňania našli originálny prístup, keď vyrobili „vysokonapäťové“ programátory.

Viete, ako sa dajú všelijaké ATtiny „oživiť“ a prepísať pomocou špeciálneho vysokonapäťového programátora? Tu je situácia úplne iná. Čínsky vysokonapäťový programátor brutálne a nezvratne „programuje“ MOSFET vnútri projektora do skratu medzi zdrojom a odtokom.

Na poslednom kroku opravy pripojíme projektor k programátoru ešte raz a nahráme do neho uložený na prvom kroku dump. A projektor je pripravený pracovať, vydávajúc sa za originálny a nemodifikovaný.

Všetky tieto rôzne zariadenia vyrábajú a propagujú rôzni predajcovia opravárenského vybavenia. Všetky možné čipy-podvodníky pracujú len s „rodnými“ programátormi a v programátoroch často stoja DRM-funkcie ako napríklad viazanie na účet a obmedzený počet „opráv“, za doplnenie ktorých je potrebné platiť.

Vedú opravári, že svojou opravou úplne ničia systém, vymyslený spoločnosťou Apple na ochranu očí používateľa? V skutočnosti nie. Nie sú to reverzní inžinieri — sú to šamani. Pochopenie princípov fungovania nemajú. Majú rituály a majú výsledky a to im stačí. A prefíkaní reverzní inžinieri z Číny sa neochotne delia so svojimi tajomstvami s verejnosťou. To, čo som opísal v tomto článku, je známe v plnom rozsahu len inžinierom Apple a desiatke Číňanov „v téme“. A mne. A tebe, teraz.

Prečo je Apple „hnusný“

Viete, nemôžem príliš viniť inžinierov Apple za to, že ich “killswitch” je príliš aktívny a kazí projektory, ktoré by ešte celkom mohli fungovať. Lasery — téma nebezpečná a myšlienka chrániť používateľa pred „najhoršími scenármi“ je absolútne zdravá. Hoci realizácia tejto ochrany si vyžaduje vylepšenia.

Ale politika Apple v boji proti neoficiálnym opravám — je to najhoršie zo všetkých ziel. Ak by sa bloky TrueDepth dali pokojne meniť zo zariadenia na zariadenie, bez ohľadu na sériové čísla, tak v hrozných zvrátených rituáloch opravy by prakticky nebol zmysel. Načo sa trápiť s mikrochirurgickým spájkovaním a tancovať s programátormi, ak je možné zobrať z ďalšieho „darcu“ s rozbitou obrazovkou úplne funkčný blok TrueDepth, dať ho do telefónu klienta, úplne obnoviť funkčnosť a žiť pokojne? Opravárom by to bolo jednoduchšie a majiteľom zariadení — bezpečnejšie.

Ale história „hnusného“ protireparárenského správania u Apple jasne ukazuje, že sa to nestane. No, ak v USA alebo v EÚ všelijaké hnutia “Right to Repair” neurobia viazanie náhradných dielov podľa sériových čísel nezákonným. A to je teraz možné. Vo vtipe o tom, že Európska únia pridáva do nových modelov iPhone viac užitočných funkcií ako Apple, je veľmi vysoký podiel pravdy. Takže budeme sledovať legislatívne iniciatívy.

Článok preložený z ruského jazyka. Autor článku: acc0unt. Snažili sme sa zachovať originálny štýl a formulácie autora, nakoľko je to možné pri preklade.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *