Kodėl „Apple“ į „iPhone“ įdėjo lustą, kuris gadina „Face ID“

Kategorijos Hardware, Uncategorized @lt
Save and Share:

Pradėkime nuo pradžių: kaip atrodo „Face ID“ sistema ir kaip ji veikia:

Visa „Face ID“ veikimui reikalinga įranga yra būtent šioje ekrano išpjovoje

Techninės įrangos prasme šią sistemą sudaro pora kamerų – IR ir RGB, ir dviejų tipų IR spinduoliai – paprastas apšvietimas ir specializuotas taškų projektorius.

Nuimame nuo „iPhone X“ apvalkalą, pašaliname viską, kas nereikalinga, ir matome priekinių kamerų bloką pliku pavidalu. IR apšvietimas egzistuoja atskirai, bet visi kiti komponentai yra mūsų rankose – jie patikimai pritvirtinti prie šio metalinio rėmo.

Čia matome IR kamerą ir IR taškų projektorių. Būtent ant šios infraraudonųjų spindulių poros laikosi „TrueDepth“ ir „Face ID“ sistemų veikimas. O pagrindinis šios dienos pasakojimo herojus – būtent taškų projektorius.

Trumpas „Face ID“ veikimo principas

„iPhone X“ spinduliuojami taškai – nuotrauka iš čia.

IR taškų projektorius daro būtent tai, ką sako jo pavadinimas – pagal komandą į aplinkinį pasaulį išspjauna dešimtis tūkstančių infraraudonųjų spindulių taškų. O IR kamera, kuri ir duoda šią komandą, tuoj pat nufotografuoja šiuos taškus.

Žinodamas projektoriaus, kameros optines charakteristikas ir atstumą tarp jų, „iPhone“ procesoriaus ISP gali apytiksliai nustatyti, kiek toli yra kiekvienas taškas. Proceso matematikos aš ir pats iki galo nesuprantu, ir atkurti ją bus sunku – bet serijos vaizdų su skirtingais taškų modeliais darymas leidžia gana tiksliai atspėti kiekvieno atskiro taško poziciją ir tokiu būdu sudaryti vientisą gylio žemėlapį. Be LIDAR ir be „ToF“.

Būtent gylio žemėlapis leidžia „Face ID“ neapsigauti spausdintuvu atspausdintomis nuotraukomis. Nuotrauka yra plokščia – o veidas turi reljefą, ir „Face ID“ veido topografinis žemėlapis yra svarbesnis už jo spalvą.

„PrimeSense“ referencinės kameros blokinė schema

Tačiau į veido spalvą sistema taip pat žiūri. IR kamera techninės įrangos prasme sinchronizuota su RGB kamera, ir abi kameros fotografuoja veidą vienu metu. O dar „iPhone“ gali mirksėti ne tik IR projektoriumi, bet ir IR apšvietimu – ir nufotografuoti visą veidą IR spektre.

Gylio žemėlapis savaime yra gana grubus, o veido tekstūros analizė IR ir RGB nuotraukose neuroniniu tinklu leidžia tiek patikslinti gylį, tiek geriau suprasti detales, tokias kaip mimika – be to, tiek dienos šviesoje, tiek tamsoje.

Jei ši sistema jums atrodo pažįstama, tai tikriausiai todėl, kad ji tiesiogiai paimta iš „Kinect“ iš „Xbox 360“. Tik tas „Kinect“ buvo didžiulis monstras, o čia jį sumažino iki išpjovos dydžio išmaniajame telefone.

Tai padarė kompanija „PrimeSense“, kuri ir sukūrė technologijas „Kinect 1“ pagrindui – o vėliau „Apple“ ją nupirko už 350 milijonų dolerių. Visiškai – su visais patentais, pasiekimais, darbuotojais ir kitais viduriais.

Nagrinėjame projektoriaus vidų

Einame giliau į analizę: išimame taškų projektorių iš „iPhone X“ kamerų bloko ir išardome jį į sudedamąsias dalis. Jį sudaro FPC šleifas, spinduliuojantis mazgas ir optinis mazgas.

Šleifas visiškai pasyvus, todėl mažai įdomus. Jis prilituojamas prie spinduliuojančio mazgo ir išveda signalus į FPC jungtį, kuri jungiasi prie „iPhone X“ pagrindinės plokštės. Jungtis su kontaktų žingsniu 0,35 mm, pritaikyta (Apple niekšai), ir panašu, kad ją pagamino kompanija JAE.

Pažvelkime į pagrindinius optikos komponentus:

Projektorius pjūvyje: nuotrauka iš čia, mano parašai

Ir pažiūrėkime, kas yra spinduolio viduje:

Ir štai MOSFET ir paslaptingos mikroschemos vaidmuo mane sudomino. Kodėl? Nes neaišku, ką jie ten išvis veikia.

Pirmas akivaizdus variantas – paslaptinga mikroschema yra atmintis serijos numeriui ir kalibravimo duomenims. Mikroschema turi tipinę atminčiai I2C sąsają, o atminties viduje tikrai yra. Projektoriai turi serijos numerius, pagal kuriuos galima, be kita ko, nustatyti pagaminimo datą – o jei projektorius pakeičiamas visiškai, tai „iPhone“ pamatys serijos numerio neatitikimą ir su pakeitimu dirbti atsisakys. Bet pati paprasčiausia I2C EEPROM sutinkama mažytėje WLCSP-4 korpuso – ir ją galima net apsaugoti nuo perrašymo, jei labai norisi. Todėl paprasta atmintimi mikroschema būti negali. Ji tikrai daro kažką daugiau.

Projektoriaus jungčių išdėstymas pagal Kinijos meistrus iš JCID. Užrašai netaiklūs, bet bendrai sutampa.

Antras akivaizdus variantas – paslaptinga mikroschema yra lazerių tvarkyklė, o MOSFET – jos raktas. Ir taip, MOSFET iš tiesų valdomas mikroschemos. Tik štai kažkuo kritiškai svarbiu, pavyzdžiui, lazerio tvarkykle, mikroschema taip pat būti negali.

Pirma, MOSFET stovi bendro lazerių mazgo katodo pertraukoje – o 4 atskiri anodai išeina tiesiai į šleifą ir eina toliau į sluoksniuotos „iPhone“ plokštės gelmes. Ir antra, aš rinkdamas duomenis analizei aptikau įvairių instrukcijų iš Kinijos remonto meistrų.

MOSFET pakeičiamas tvarkingu laideliu

Jie tiesiogiai nepaaiškino klausimo esmės, bet daugelyje šių instrukcijų buvo sakoma: norint suremontuoti „sugedusį“ projektorių, reikia jį išardyti, MOSFET nuimti ir pakeisti jungtimi tarp nutekėjimo ir ištakos. Projektorius galiausiai su jungtimi viduje veiks, ir „Face ID“ funkcionalumas bus atkurtas. O jei projektorius su jungtimi vietoj MOSFET normaliai veikia, tai ką tas MOSFET ten veikė?

Ir mane nušvitė: būtent tame ir buvo remonto esmė. MOSFET valdomas mikroschemos – todėl mikroschemai panorėjus gali nutraukti lazerio maitinimo grandinę ir taip sugadinti projektorių. O šis remontas tą nutraukimą pašalina.

Ką tau reiškia mano vardas?

Kai tapo aišku, kad paslaptinga mikroschema kartu su MOSFET trukdo normaliam projektoriaus veikimui, kyla klausimas – kodėl ji tai daro? Kodėl į projektorių deda mikroschemą, kuri jį žudo?

Atsakymų aš ieškojau „iPhone“ procesoriaus ISP bloko programinėje įrangoje – būtent ji ir kalbasi I2C protokolu su kamerų jutikliais ir su projektoriumi.

Iš pradžių aš atsisiunčiau „iOS 15“ programinės įrangos atvaizdą „iPhone X“, šviežutėlį. „iPhone“ programinės įrangos atvaizdai – tai iš esmės zip failai. Viduje aš ir radau ieškomą ISP programinę įrangą – failo Firmwareisp_bniadc-nike-d22.im4p pavidalu. Iš suspausto im4p failo buvo išgautas dvejetainis failas, Mach-O formatu su AArch64 kodu viduje. Mach-O, skirtingai nuo tipinio „programinės įrangos atvaizdo nežinomam mikrovaldikliui“ – tai dokumentuotas vykdomojo failo formatas, panašus į PE arba ELF. Nėra jokių spėlionių apie failo struktūrą, procesoriaus architektūrą ar adresą, kuriuo reikia įkelti kodą. Tiesiog įmeti failą į Ghidra ir viskas savaime susidėlioja į lentynas. Malonu.

Paskui instinktas paėmė viršų, ir aš nusprendžiau išnarstyti senesnes programines įrangas. Ir „iOS 13“ programinės įrangos atvaizde radau failą adc-nike-d22. Net dydis buvo beveik toks pats. Tik štai naujoje programinėje įrangoje buvo daugiau kodo – o senoje kodo buvo mažiau, užtat buvo simboliai. Visi funkcijų pavadinimai vietoje. Visada tikrinkite senas versijas!

ISP programinėje įrangoje yra daug informacijos, įskaitant tai, kaip „iPhone“ bendrauja I2C protokolu su skirtingomis mikroschemomis – su kamerų jutikliais, su kamerų PMU, su blykstės ir automatinio fokusavimo valdymo mikroschemomis. Iš ten pat, ačiū simboliams, pavyko išgauti skirtingų sistemos sudedamųjų dalių „pavadinimus“ – ir dalis jų siejasi su medžiagomis iš kitų programinės įrangos dalių, o taip pat iš kitų analitikų ir remontininkų. Pavyzdžiui, IR kameros jutiklis – tai STMicroelectronics VD56G0 „Savage“. Visa „TrueDepth“ sistema kode vadinama „Pearl“, o jos pagrindiniams moduliams duoti personažų iš „Romeo ir Džuljetos“ vardai. IR projektorius vadinamas „Romeo“, IR kamera – „Juliet“, o IR apšvietimas vadinamas „Rosaline“. Lazerio tvarkyklė, kuri gyvena „iPhone“ pagrindinėje plokštėje ir maitina tiek lazerius „Romeo“ viduje, tiek lazerį apšvietimo „Rosaline“ viduje, vadinasi „Rigel“.

Mums rūpima paslaptinga mikroschema? Ji taip pat turi vardą. Kode ji vadinama „MamaBear“, trumpai „MB“, ir panašu, kad jos funkcionalumas labai paprastas. Ji gyvena I2C magistralėje. Ji saugo savyje OTP duomenis, įskaitant serijos numerį ir įvairius kalibravimus. Ji įjungia ir išjungia pagal komandą MOSFET. Ir dar ji matuoja… talpą? Ne temperatūrą, prie NTC termistoriaus ji išvis neprijungta, o būtent talpą. Tik štai ko talpą?

Tragiška Romeo žūtis

Atsakymą į šį klausimą mums vėl padeda gauti Kinijos schemos. Iš JCID schemos matyti, kad modulyje „Romeo“ yra trys kontaktai spinduliuojančio mazgo ryšiui su optiniu mazgu. Vienas – žemė, o dar du eina tiesiai į mikroschemą „MamaBear“. Šie kontaktai eina per specialų adapterį optinio mazgo šone ir patenka ant paties jo viršaus – ant difrakcinio optinio elemento.

Difrakcinis spindulio skaldytuvas nevaldomas ir į srovę nereaguoja. Bet jis turi talpą. Ir su trijų linijų pagalba šią talpą galima matuoti. Bet kam?

Reikalas tame, kokį svarbų vaidmenį vaidina šis difrakcinis skaldytuvas. Taškų piešinį, naudojamą projektoriaus, nustato mažyčių lazerių-„duobučių“ išdėstymas ant VСSEL kristalo. O paskui šis piešinys padauginamas difrakciniu elementu, kuris iš vieno spindulių pluošto padaro šimtus spindulių pluoštų.

„SPARSE“ anodo lazerių išdėstymo ir projektuojamų taškų palyginimas

O ką gi bus, jei šį difrakcinį elementą atplėšime?

Spinduliai nebus skaidomi. Vietoj šimto lazerio spindulių pluoštų bus vienas pluoštas – užtat šimtą kartų galingesnis. O tai vis dėlto lazeris. Infraraudonųjų spindulių lazeris pavojingesnis už raudoną, nes žmogus jo nemato – ir todėl instinktyviai nenukreips žvilgsnio net nuo pavojingai galingo šviesos šaltinio. Ir yra nenulinė tikimybė, kad charakteringas taškų piešinys tokiu atveju bus išdegintas vartotojo tinklainėje.

Tam, kad to išvengtume, ir reikalinga žudiko mikroschema. Po įjungimo ji nuolat stebi difrakcinio elemento talpą – ir jei elementas pasirodo esąs išlaužtas ar pažeistas, tai talpa išlenda už leistinų ribų, ir mikroschema tuoj pat atjungia MOSFET ir nutraukia VCSEL maitinimą. O kadangi elementas yra ant paties optinio mazgo viršaus, tai pažeisti smūgiu likusį mazgą, nesulaužant tuo pačiu jo ir nesuardant kontakto, praktiškai neįmanoma.

Po avarinio lazerio išjungimo mikroschema įsirašo sau į OTP vėliavėlę, kuri pažymi projektorių kaip defektinį – o tai reiškia, kad nutrauktas maitinimas amžinai liks nutrauktas. Jokios komandos iš ISP daugiau nebeturės jai galios. MOSFET visada bus uždarytas, ir projektorius daugiau niekada neveiks.

Mikroschema „MamaBear“, kaip byloja pavadinimas – tai apsaugos mikroschema. Tai „killswitch“ avariniam lazerio sustabdymui. Ji žudo projektorių, kad neleistų pažeistam lazeriniam įrenginiui šviesti vartotojui į akis. O modulis „Juliet“, likęs be jam poros „Romeo“, praranda gyvenimo prasmę – ir visa „TrueDepth“ sistema tampa netinkama naudoti.

Techno kunigų kasdienybė

Bet ši apsaugos schema turi trūkumą. Reikalas tame, kad taškų projektorius stovi viršutiniame įrenginio krašte ir šalia garsiakalbio. Jei į „iPhone“ patenka skystis, tai viena iš dažniausių vietų tam – būtent ten. O talpiniai jutikliai jautrūs elektrai laidžioms medžiagoms. Todėl dažnai nutinka taip, kad „Face ID“ sugenda įrenginiui įkritus į vandenį – net jei vandens patekimas minimalus ir jokių kitų pažeidimų nėra. Tiesiog „Romeo“ neteisingai suprato situaciją ir be reikalo surengė „Roskomnadzor“.

Tokius įrenginius neša į remontą. Dažnai į neoficialų remontą. O kadangi „iPhone“ tikrina detalių serijos numerius (sveiki, „Apple“), tai tiesiog permesti visą kamerų bloką į darbinį bloką iš donoro negalima. Telefonas atmes naują bloką, ir „Face ID“ vis tiek neveiks. Vadinasi, reikia kažkaip taisyti seną. Bet kaip galima „prikelti“ projektorių, kuris pats save tyčia išvedė iš rikiuotės?

Neoficialių remonto įrankių gamintojai sugalvojo tam visą eilę įvairių ritualų. O tiesiarankiai techno kunigai-remontininkai jų šventai laikosi ir atlieka mikrochirurgiją šiai sudėtingai ir sukalibruotai optinei sistemai. Rankų tiesumas reikalingas neįsivaizduojamas – komponentai viduje yra kelių milimetrų dydžio, o optika itin jautri. Jei kalibravimas dėl chirurginių intervencijų per daug nutols, tai sistema neveiks. Įrankių programiniam perkalibravimui nėra (sveiki, „Apple“) – tu arba rasi būdą patekti į originalius parametrus, arba liksi be „Face ID“.

„Aukštos įtampos“ programuotojas

Kaip tai veikia? Na, pirmiausia reikia nuskaityti OTP duomenis iš originalios mikroschemos „MamaBear“.

Duomenys nuskaitomi net jei projektorius laiko save netvarkingu. Duomenų nuskaitymui kinai daro specialius „remonto“ programuotojus – kurie tiekiami su jungčių-adapterių rinkiniais ir veikia su visa eile skirtingų komponentų iš skirtingų „iPhone“ modelių, įskaitant ir projektorius.

O paskui reikia padaryti du dalykus – išsiaiškinti su maitinimą nutraukiančiu MOSFET ir pakeisti originalią apsaugos mikroschemą. Ir čia yra daugybė skirtingų metodų.

Šleifas su apgaulės mikroschema

Galima, pavyzdžiui, mesti vietoj MOSFET jungtį, kaip nuotraukoje aukščiau straipsnyje, o mikroschemą „MamaBear“ pakeisti, atlitavus originalų FPC šleifą ir pakeitus jį specialiu šleifu su Kinijos apgaulės mikroschema.

Originali mikroschema „MamaBear“ tuo pačiu gali likti viduje ir bejėgiškai rėkti apie tai, kad projektorius jokiu būdu neturėtų veikti. Bet ji daugiau neturi MOSFET, kad išjungtų projektorių priverstinai, o „iPhone“ savo ruožtu mato tik Kinijos mikroschemą – kuri atiduoda programuotojo užlietą originalių duomenų kopiją ir raportuoja apie tai, kad projektorius tikrai-tikrai tvarkingas.

Pašaliname senus komponentus ir įdedame naujus

O galima išplėšti mikroschemą „MamaBear“ visiškai ir įdėti į jos štatinę vietą Kinijos pakaitalą du-viename – jis ir MOSFET kontaktus sujungia, ir OTP duomenų kopiją į telefoną atiduoda.

Plokštė-adapteris su apgaulės mikroschema

Na ir yra variantas su minimaliu litavimu. „Adapteris“ su apgaulės mikroschema, kuris dedamas tarp originalaus šleifo ir „iPhone“ pagrindinės plokštės.

Problemos su MOSFET jis neišsprendžia, bet ir jai kinai rado originalų požiūrį, padarę „aukštos įtampos“ programuotojus.

Žinote, kaip visokius ATtiny galima „atgaivinti“ ir perrašyti su specialaus aukštos įtampos programuotojo pagalba? Čia situacija visai kita. Kinijos aukštos įtampos programuotojas brutaliai ir negrįžtamai „programuoja“ MOSFET projektoriaus viduje į trumpąjį jungimą tarp nutekėjimo ir ištakos.

Paskutiniame remonto etape mes prijungiame projektorių prie programuotojo dar kartą ir užliejame į jį išsaugotą pirmajame etape dampą. Ir projektorius paruoštas veikti, išduodamas save už originalų ir nemodifikuotą.

Visi šie skirtingi prietaisai daromi ir reklamuojami skirtingų remonto įrangos pardavėjų. Visos įmanomos apgaulės mikroschemos veikia tik su „gimtaisiais“ programuotojais, o programuotojuose dažnai stovi DRM funkcijos, tokios kaip prisirišimas prie paskyros ir ribotas „remontų“ skaičius, už kurių papildymą tenka mokėti.

Ar žino remontininkai, kad jie savo remontu visiškai sunaikina sistemą, sugalvotą „Apple“ vartotojo akių apsaugai? Iš tikrųjų ne. Jie ne analitikai – jie šamanai. Darbo principų supratimo jie neturi. Jie turi ritualus ir turi rezultatus, ir to jiems pakanka. O gudrūs analitikai iš Kinijos nenoriai dalijasi savo paslaptimis su publika. Tai, ką aš aprašiau šiame straipsnyje, žinoma visu pilnu mastu tik „Apple“ inžinieriams ir dešimčiai kinų „temoje“. Ir man. Ir tau, dabar.

Kodėl „Apple“ yra niekšai?

Žinote, aš negaliu per daug kaltinti „Apple“ inžinierių dėl to, kad jų „killswitch“ per daug aktyvus ir gadina projektorius, kurie visai galėtų dar padirbėti. Lazeriai – tema pavojinga, ir idėja apsaugoti vartotoją nuo „blogiausių scenarijų“ visiškai sveika. Nors šios apsaugos realizavimas ir reikalauja patobulinimų.

Bet „Apple“ politika dėl kovos su neoficialiais remontais – tai blogiausia iš visų blogybių. Jei „TrueDepth“ blokus būtų galima ramiai keisti iš įrenginio į įrenginį, neatsižvelgiant į serijos numerius, tai baisių iškrypusių remonto ritualų praktiškai nebūtų prasmės. Kam iškrypėliškai užsiimti mikrochirurginiu litavimu ir šokti su programuotojais, jei galima nuimti nuo eilinio „donoro“ su sudaužytu ekranu visiškai darbinį „TrueDepth“ bloką, įdėti jį į kliento telefoną, visiškai atkurti funkcionalumą ir gyventi ramiai? Remontininkams tai būtų paprasčiau, o įrenginių savininkams – saugiau.

Bet bjauri antiremontinio elgesio istorija „Apple“ aiškiai rodo, kad tam nebūti. Na, jei JAV ar ES visokie judėjimai „Right to Repair“ nepadarys detalių pririšimo pagal serijos numerius neteisėtu. O tai dabar įmanoma. Juokelyje apie tai, kad Europos Sąjunga į naujus „iPhone“ modelius prideda daugiau naudingų funkcijų nei „Apple“, labai didelė tiesos dalis. Tai kad stebėsime įstatymų leidybos iniciatyvas.

Straipsnis išverstas iš rusų kalbos. Straipsnio autorius: acc0unt. Mes pasistengėme išsaugoti originalų autoriaus stilių ir formuluotes, kiek tai įmanoma verčiant.

Įrašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *