Zašto je Apple dodao čip u iPhone koji kvari Face ID

Kategorizirano kao Hardware, Uncategorized @hr
Save and Share:

Počnimo od početka: kako sustav Face ID izgleda i kako radi:

Sav hardver potreban za rad FaceID-a nalazi se upravo u ovom urezi na zaslonu

Hardverski se ovaj sustav sastoji od para kamera – IC i RGB, te dvije vrste IC emitera – običnog osvjetljenja i specijaliziranog projektora točaka.

Skinimo “kožu” s iPhonea X, uklonimo sve suvišno i vidimo blok prednjih kamera u golom obliku. IC osvjetljenje postoji zasebno, ali sve ostale komponente su nam u rukama – one su sigurno pričvršćene u ovom metalnom okviru.

Ovdje vidimo IC kameru i projektor IC točaka. Upravo na ovom infracrvenom paru počiva rad sustava TrueDepth i FaceID. A glavni junak današnje priče je upravo projektor točaka.

Kratki princip rada FaceID-a

Točke koje emitira iPhone X — fotografija odavde.

Projektor IC točaka radi upravo ono što mu ime govori – izbacuje, na naredbu, u okolni svijet desetke tisuća infracrvenih točaka. A IC kamera, koja i daje tu naredbu, odmah fotografira te točke.

Poznavajući optičke karakteristike projektora, kamere i udaljenost između njih, ISP u procesoru iPhonea može procijeniti koliko je svaka točka udaljena. Matematiku procesa ni sam do kraja ne razumijem, a obrnuti inženjering toga bi bio težak – ali snimanje serije slika s različitim uzorcima točaka omogućuje prilično precizno pogađanje pozicije svake pojedine točke i stvaranje cjelovite karte dubine. Bez LIDAR-a i bez ToF-a.

Upravo karta dubine omogućuje FaceID-u da ga se ne prevari s fotografijama ispisanim na pisaču. Fotografija je ravna – a lice ima reljef, i za FaceID je topografska karta “njuške” važnija od njezine boje.

Blok-shema referentne kamere PrimeSense

Međutim, sustav također gleda i boju lica. IC kamera je hardverski sinkronizirana s RGB kamerom, i obje kamere snimaju lice istovremeno. A iPhone može treptati ne samo IC projektorom, već i IC osvjetljenjem – i snimiti cijelo lice u IC spektru.

Karta dubine je sama po sebi prilično gruba, a analiza teksture lica na IC i RGB snimkama neuronskom mrežom omogućuje i preciznije određivanje dubine, kao i bolje razumijevanje detalja poput mimike – i to kako pri danjem svjetlu, tako i u mraku.

Ako vam ovaj sustav izgleda poznato, to je vjerojatno zato što je izravno preuzet iz Kinecta za Xbox 360. Samo što je taj Kinect bio ogromna “grdosija”, a ovdje je smanjen na veličinu ureza na zaslonu pametnog telefona.

To je učinila tvrtka PrimeSense, koja je i razvila tehnologije u osnovi Kinecta 1 – a zatim ju je Apple kupio za 350 milijuna dolara. Cijelu – sa svim patentima, razvojem, zaposlenicima i ostalim “utrobama”.

Rastavljamo “crijeva” projektora

Idemo dublje u obrnuti inženjering: izvadimo projektor točaka iz bloka kamera iPhonea X i rastavimo ga na sastavne dijelove. Sastoji se od FPC-fleksibilnog kabela, emitirajućeg sklopa i optičkog sklopa.

Fleksibilni kabel je potpuno pasivan i stoga malo zanimljiv. On se lemi na emitirajući sklop i izvodi signale na FPC-priključak, koji se spaja na matičnu ploču iPhonea X. Priključak s razmakom pinova od 0,35 mm, prilagođen (Appleovi “gadovi”), i čini se da ga proizvodi tvrtka JAE.

Pogledajmo glavne komponente optike:

Projektor u presjeku: fotografija odavde, potpisi moji

I pogledajmo što se nalazi unutar emitera:

I uloga MOSFET-a i tajanstvenog čipa me zainteresirala. Zašto? Zato što nije jasno čime se oni tamo uopće bave.

Prva očita opcija – tajanstveni čip je memorija za serijski broj i podatke o kalibraciji. Čip ima tipično I2C sučelje za memoriju, a memorija unutra sigurno postoji. Projektori imaju serijske brojeve, po kojima se može, između ostalog, odrediti datum proizvodnje – a ako se projektor zamijeni u cijelosti, iPhone će vidjeti neusklađenost serijskog broja i odbit će raditi sa zamjenom. Ali najobičniji I2C EEPROM se nalazi u sićušnom WLCSP-4 kućištu – i njega se čak može i zaključati od ponovnog pisanja, ako se baš hoće. Stoga, jednostavna memorija čip ne može biti. On sigurno radi još nešto.

Raspored pinova projektora od kineskih majstora iz JCID-a. Natpisi su “krivi”, ali se uglavnom slažu.

Druga očita opcija – tajanstveni čip je upravljački program za lasere, a MOSFET – njegov ključ. I da, MOSFET-om uistinu upravlja čip. Samo što kritično važnim, poput upravljačkog programa lasera, čip također ne može biti.

Prvo, MOSFET se nalazi u prekidu zajedničke katode laserskog sklopa – a 4 odvojene anode izlaze izravno na fleksibilni kabel i idu dalje u dubinu slojevite ploče iPhonea. I drugo, tijekom prikupljanja podataka za obrnuti inženjering, naišao sam na razne upute kineskih majstora za popravak.

MOSFET se zamjenjuje urednom žicom

Bit problema nisu izravno razjasnili, ali u mnogim od tih uputa se govorilo: za popravak “pokvarenog” projektora potrebno ga je rastaviti, MOSFET ukloniti i zamijeniti kratkospojnikom između odvoda i izvora. Projektor će na kraju s kratkospojnikom unutra proraditi, i funkcionalnost FaceID-a će se vratiti. A budući da projektor s kratkospojnikom umjesto MOSFET-a normalno radi, što je onda taj MOSFET tamo radio?

I sinulo mi je: u tome je bila bit popravka. MOSFET-om upravlja čip – stoga, po želji čipa, može prekinuti strujni krug napajanja lasera i time pokvariti projektor. A ovaj popravak taj prekid otklanja.

Što je tebi ime moje

Kada je postalo jasno da tajanstveni čip u paru s MOSFET-om ometa normalan rad projektora, postavlja se pitanje – zašto to radi? Zašto se u projektor stavlja čip koji ubija projektor?

Za odgovorima sam krenuo u firmware ISP bloka u procesoru iPhonea – upravo on komunicira putem I2C-a sa senzorima kamera i s projektorom.

Prvo sam preuzeo sliku firmwarea iOS 15 za iPhone X, svježu. Slike firmwarea za iPhone – to su u biti zip-datoteke. Unutra sam i pronašao traženi firmware ISP-a – u obliku datoteke Firmwareisp_bniadc-nike-d22.im4p. Iz komprimirane im4p-datoteke je izvučen binarni kod, u Mach-O formatu s AArch64 kodom unutra. Mach-O, za razliku od tipične “slike firmwarea za nepoznati mikrokontroler” – to je dokumentirani format izvršne datoteke, sličan PE ili ELF-u. Nema nikakvih nagađanja o strukturi datoteke, arhitekturi procesora ili adresi na koju treba učitati kod. Jednostavno ubaciš datoteku u Ghidru i sve se samo posloži na svoje mjesto. Ugodno.

Zatim je instinkt uzeo svoje, i odlučio sam “rastvoriti” starije firmwaree. I u slici firmwarea iOS 13 pronašao sam datoteku adc-nike-d22. Čak je i veličina bila gotovo ista. Samo što je u novom firmwareu bilo više koda – a u starom je bilo manje koda, ali su bili simboli. Sva imena funkcija na mjestu. Uvijek provjeravaj stare verzije!

U firmwareu ISP-a ima puno informacija, uključujući i to kako iPhone komunicira putem I2C-a s različitim čipovima – sa senzorima kamera, s PMU kamera, s čipovima za upravljanje bljeskalicama i autofokusom. Odatle je, zahvaljujući simbolima, uspjelo izvući “imena” različitih sastavnih dijelova sustava – a dio njih se odnosi na materijale iz drugih dijelova firmwarea, kao i od drugih reverzera i servisera. Na primjer, senzor IC kamere – to je STMicroelectronics VD56G0 “Savage”. Cijeli sustav TrueDepth se u kodu naziva “Pearl”, a njegovim glavnim modulima su dana imena likova iz “Romea i Julije”. IC projektor se zove “Romeo”, IC kamera – “Juliet”, a IC osvjetljenje se zove “Rosaline”. Upravljački program lasera, koji se nalazi na matičnoj ploči iPhonea i napaja i lasere unutar “Romea”, i laser unutar osvjetljenja “Rosaline”, zove se “Rigel”.

Tajanstveni čip koji nas zanima? I on ima ime. U kodu ga nazivaju “MamaBear”, skraćeno “MB”, i čini se da je njegova funkcionalnost vrlo jednostavna. On se nalazi na I2C sabirnici. On pohranjuje OTP-podatke u sebi, uključujući serijski broj i različite kalibracije. On uključuje i isključuje MOSFET na naredbu. I još mjeri… kapacitet? Ne temperaturu, na NTC-termistor uopće nije spojen, već upravo kapacitet. Samo kapacitet čega?

Tragična smrt Romea

Odgovor na ovo pitanje nam opet pomažu dobiti kineske sheme. U shemi od JCID-a se vidi da u modulu “Romeo” postoje tri kontakta za vezu emitirajućeg sklopa s optičkim sklopom. Jedan – uzemljenje, a još dva idu izravno u čip “MamaBear”. Ti kontakti prolaze kroz poseban adapter na strani optičkog sklopa i dolaze na sam njegov vrh – na difrakcijski optički element.

Difrakcijski razdjelnik zrake je neupravljiv i ne reagira na struju. Ali ima kapacitet. I pomoću tih triju linija se taj kapacitet može mjeriti. Ali zašto?

Stvar je u tome koliko važnu ulogu igra ovaj difrakcijski razdjelnik. Uzorak točaka koje koristi projektor zadaje se rasporedom sićušnih lasera-“udubina” na VCSEL-kristalu. A zatim se taj uzorak umnožava difrakcijskim elementom, koji od jednog snopa zraka stvara stotine snopova zraka.

Usporedba rasporeda lasera anode “SPARSE” i projiciranih točaka

A što će se dogoditi ako se taj difrakcijski element otrgne?

Zrake se neće razdvajati. Umjesto stotina snopova laserskih zraka, bit će jedan snop – ali stotinu puta jači. A to je ipak laser. Infracrveni laser je opasniji od crvenog, jer ga čovjek ne vidi – i stoga neće instinktivno odvratiti pogled čak ni od opasno jakog izvora svjetlosti. I postoji nemala šansa da se karakterističan uzorak točaka u tom slučaju “urezati” korisniku u mrežnicu.

Za sprječavanje toga i služi čip-ubojica. Nakon uključivanja, on stalno prati kapacitet difrakcijskog elementa – i ako se element pokaže iščupanim ili oštećenim, tada kapacitet izlazi izvan dopuštenih granica, a čip odmah isključuje MOSFET i prekida napajanje VCSEL-a. A budući da se element nalazi na samom vrhu optičkog sklopa, gotovo je nemoguće udarcem oštetiti ostatak sklopa, a da se pritom ne slomi on i ne prekine kontakt.

Nakon hitnog isključivanja lasera, čip “upisuje” sebi u OTP zastavicu, koja označava projektor kao neispravan – a to znači da će prekinuto napajanje zauvijek ostati prekinuto. Nikakve naredbe iz ISP-a više neće imati moć nad njim. MOSFET će uvijek biti zatvoren i projektor više nikada neće raditi.

Čip “MamaBear”, kako i samo ime sugerira – to je zaštitni čip. To je “killswitch” za hitno zaustavljanje lasera. On ubija projektor kako ne bi dopustio oštećenom laserskom uređaju da svijetli korisniku u oči. A modul “Juliet”, ostavši bez svog para “Romea”, gubi smisao života – i cijeli sustav TrueDepth postaje neupotrebljiv.

Radni dani tehnosvećenika

Ali ova shema zaštite ima nedostatak. Stvar je u tome što projektor točaka stoji na gornjem rubu uređaja i pored zvučnika. Ako tekućina uđe u iPhone, jedno od najčešćih mjesta za to je upravo tamo. A kapacitivni senzori su osjetljivi na tekućine koje provode struju. Stoga se često događa da se FaceID pokvari nakon pada uređaja u vodu – čak i ako je ulazak vode minimalan i nema drugih oštećenja. Jednostavno, “Romeo” nije dobro shvatio situaciju i “izvršio Roskomnadzor” uzalud.

Takvi uređaji se nose na popravak. Često na neslužbeni popravak. A budući da iPhone uspoređuje serijske brojeve rezervnih dijelova (pozdrav, Apple), jednostavno zamijeniti cijeli blok kamera radnim blokom s donora nije moguće. Telefon će odbiti novi blok, i FaceID ionako neće raditi. Znači, treba nekako popraviti stari. Ali kako “uskrsnuti” projektor koji je sam sebe namjerno izbacio iz stroja?

Proizvođači neslužbenih alata za popravak su za to smislili cijeli niz različitih rituala. A spretni tehnosvećenici-serviseri ih se sveto pridržavaju i provode mikrokirurgiju ovog složenog i kalibriranog optičkog sustava. Spretnost ruku mora biti nevjerojatna – komponente unutra su veličine nekoliko milimetara, a optika je izuzetno osjetljiva. Ako kalibracija zbog kirurških zahvata previše “odluta”, sustav neće raditi. Alata za softversku rekalibraciju ne postoje (pozdrav, Apple) – ili ćeš pronaći način da se vratiš na originalne parametre, ili ćeš ostati bez FaceID-a.

«Visokonaponski» programator

Kako to radi? Pa, prvo treba pročitati OTP-podatke iz originalnog čipa “MamaBear”.

Podaci su čitljivi čak i ako projektor smatra sebe neispravnim. Za čitanje podataka Kinezi izrađuju posebne “servisne” programatore – koji se isporučuju s setovima priključaka-adaptera i rade s cijelim nizom različitih komponenti od različitih modela iPhonea, uključujući i projektore.

A onda treba učiniti dvije stvari – riješiti problem MOSFET-a koji prekida napajanje i zamijeniti originalni zaštitni čip. I tu postoji mnoštvo različitih metoda.

Fleksibilni kabel s čipom-varalicom

Može se, na primjer, staviti kratkospojnik umjesto MOSFET-a, kao na fotografiji gore u članku, a čip “MamaBear” zamijeniti, odlemljivanjem originalnog FPC-fleksibilnog kabela i zamjenom za poseban fleksibilni kabel s kineskim čipom-varalicom.

Originalni čip “MamaBear” pri tome može ostati unutra i nemoćno vikati o tome da projektor ni u kojem slučaju ne bi trebao raditi. Ali on više nema MOSFET da prisilno isključi projektor, a iPhone sa svoje strane vidi samo kineski čip – koji daje programatorom upisanu kopiju originalnih podataka i izvještava da je projektor točno-točno ispravan.

Iskopavamo stara “crijeva” i stavljamo nova

A može se izvaditi čip “MamaBear” u cijelosti i staviti na njegovo standardno mjesto kinesku zamjenu “dva-u-jednom” – ona i kontakte MOSFET-a spaja, i kopiju podataka OTP-a telefonu daje.

Ploča-adapter s čipom-varalicom

Pa i postoji opcija s minimumom lemljenja. “Adapter” s čipom-varalicom, koji se stavlja između originalnog fleksibilnog kabela i matične ploče iPhonea.

Problem s MOSFET-om on ne rješava, ali su i za njega Kinezi pronašli originalan pristup, izradivši “visokonaponske” programatore.

Znate kako se razni ATtiny mogu “oživjeti” i ponovno upisati pomoću posebnog visokonaponskog programatora? Ovdje je situacija sasvim drugačija. Kineski visokonaponski programator brutalno i nepovratno “programira” MOSFET unutar projektora u kratki spoj između odvoda i izvora.

Na posljednjem koraku popravka projektor ponovno spajamo na programator i upisujemo u njega spremljeni na prvom koraku “dump”. I projektor je spreman za rad, predstavljajući se kao originalan i nemodificiran.

Svi ti različiti uređaji se izrađuju i promoviraju od strane različitih prodavača opreme za popravak. Svi mogući čipovi-varalice rade samo s “vlastitim” programatorima, a u programatorima često stoje DRM-značajke poput vezanja za račun i ograničenog broja “popravaka”, za čije nadopunjavanje se mora platiti.

Znaju li serviseri da svojim popravkom potpuno uništavaju sustav koji je Apple osmislio za zaštitu očiju korisnika? Zapravo ne. Oni nisu “reverseri” – oni su šamani. Razumijevanja principa rada nemaju. Oni imaju rituale i imaju rezultate, i to im je dovoljno. A “lukavi” reverseri iz Kine nerado dijele svoje tajne s javnošću. Ono što sam opisao u ovom članku, poznato je u cijelosti samo inženjerima Applea i desetak Kineza “u temi”. I meni. I tebi, sada.

Zašto su Apple “kreteni”

Znate, ne mogu previše kriviti inženjere Applea za to što je njihov “killswitch” previše aktivan i kvari projektore koji su sasvim mogli još raditi. Laseri – tema je opasna, a ideja zaštite korisnika od “najgorih scenarija” je apsolutno zdrava. Iako provedba ove zaštite zahtijeva doradu.

Ali politika Applea o borbi protiv neslužbenih popravaka – to je najveće od svih zala. Kad bi se blokovi TrueDepth mogli mirno mijenjati s uređaja na uređaj, bez obzira na serijske brojeve, u strašnim izopačenim ritualima popravka praktički ne bi bilo smisla. Zašto se “izopačavati” s mikrokirurškim lemljenjem i plesati s programatorima, ako se može skinuti s sljedećeg “donora” s razbijenim ekranom potpuno ispravan blok TrueDepth, staviti ga u telefon klijenta, potpuno vratiti funkcionalnost i živjeti mirno? Serviserima bi to bilo jednostavnije, a vlasnicima uređaja – sigurnije.

Ali povijest “nakaradnog” antipopravljačkog ponašanja Applea jasno pokazuje da se to neće dogoditi. Pa, osim ako u SAD-u ili u EU svakakvi pokreti “Right to Repair” ne učine vezanje rezervnih dijelova po serijskim brojevima nezakonitim. A to je sada moguće. U šali o tome da Europska unija dodaje u nove modele iPhonea više korisnih značajki nego Apple, vrlo je visok udio istine. Tako da ćemo pratiti zakonodavne inicijative.

Članak je preveden s ruskog jezika. Autor članka: acc0unt. Potrudili smo se sačuvati originalni stil i formulacije autora, koliko je to moguće prilikom prijevoda.

Ostavite komentar

Vaša adresa e-pošte neće biti objavljena. Obavezna polja su označena sa * (obavezno)