En başından başlayalım: Face ID sistemi nasıl görünüyor ve nasıl çalışıyor:


Donanımsal olarak bu sistem bir çift kameradan (IR ve RGB) ve iki tür IR yayıcıdan (normal aydınlatma ve özel nokta projektörü) oluşur.
iPhone X’in kabuğunu soyalım, gereksiz her şeyi kaldıralım ve ön kameraların çıplak bloğunu görelim. IR aydınlatma ayrı duruyor, ancak diğer tüm bileşenler elimizde—bu metal çerçeveye güvenli bir şekilde sabitlenmişler.
Burada IR kamerayı ve IR nokta projektörünü görüyoruz. TrueDepth ve FaceID sistemlerinin çalışması bu kızılötesi ikiliye dayanıyor. Ve bugünkü hikayemizin baş kahramanı tam olarak nokta projektörü.
FaceID’nin Kısa Çalışma Prensibi

IR nokta projektörü adının söylediği şeyi yapıyor—komut üzerine çevreye on binlerce kızılötesi nokta püskürtüyor. Ve bu komutu veren IR kamera, bu noktaların hemen fotoğrafını çekiyor.
Projektörün, kameranın optik özelliklerini ve aralarındaki mesafeyi bilen iPhone işlemcisindeki ISP, her noktanın ne kadar uzakta olduğunu tahmin edebilir. Sürecin matematiğini ben bile tam olarak anlamıyorum ve tersine mühendisliğini yapmak zor olacaktır—ancak farklı nokta desenleriyle bir dizi görüntü çekmek, her bir noktanın konumunu oldukça doğru bir şekilde tahmin etmeyi ve böylece eksiksiz bir derinlik haritası oluşturmayı mümkün kılar. LIDAR’sız ve ToF’suz.
Tam olarak derinlik haritası, FaceID’nin yazıcıda basılmış fotoğraflarla kandırılmasını engelliyor. Fotoğraf düzdür—ancak yüzün bir kabartması vardır ve FaceID için yüzün topografik haritası, renginden daha önemlidir.

Ancak sistem yüzün rengine de bakıyor. IR kamera, RGB kamera ile donanımsal olarak senkronize edilmiştir ve her iki kamera da aynı anda yüzü çeker. Ayrıca iPhone yalnızca IR projektörü değil, aynı zamanda IR aydınlatmayı da yakıp söndürebilir—ve tüm yüzü IR spektrumunda çekebilir.
Derinlik haritası kendi başına yeterince kabadır ve yüzün IR ve RGB görüntülerindeki dokusunun bir sinir ağı tarafından analizi, hem derinliği netleştirmeyi hem de mimikler gibi ayrıntıları daha iyi anlamayı mümkün kılar—hem gün ışığında hem de karanlıkta.
Bu sistem size tanıdık geliyorsa, bunun nedeni muhtemelen doğrudan Xbox 360’tan Kinect’ten alınmış olmasıdır. Sadece o Kinect devasa bir şeydi ve burada bir akıllı telefon ekranındaki çentik boyutuna kadar küçültüldü.
Bunu, Kinect 1’in temelindeki teknolojileri geliştiren ve daha sonra Apple tarafından 350 milyon dolara satın alınan PrimeSense şirketi yaptı. Tamamen—tüm patentleri, gelişmeleri, çalışanları ve diğer iç organlarıyla birlikte.
Projektörün İçini İnceleyelim

Daha derinlere inelim: iPhone X kamera bloğundan nokta projektörünü çıkarıp bileşenlerine ayıralım. FPC kablosu, yayıcı düzeneği ve optik düzeneğinden oluşuyor.
Kablo tamamen pasif ve bu nedenle pek ilgi çekici değil. Yayıcı düzeneğine lehimlenir ve sinyalleri iPhone X anakartına bağlanan FPC konektörüne çıkarır. 0,35 mm kontak aralığına sahip konektör, özel (Apple pislikleri) ve JAE şirketi tarafından yapılmış gibi görünüyor.
Optiğin ana bileşenlerine bir göz atalım:

Ve yayıcının içinde ne olduğuna bakalım:

Ve MOSFET’in ve gizemli çipin rolü ilgimi çekti. Neden mi? Çünkü orada ne yaptıklarını anlamak zor.
İlk bariz seçenek—gizemli çip, seri numarası ve kalibrasyon verileri için hafızadır. Çipte tipik bir I2C hafıza arayüzü var ve içinde kesinlikle hafıza var. Projektörlerin, üretim tarihini de belirleyebileceğiniz seri numaraları var—ve projektörün tamamı değiştirilirse, iPhone seri numarasının uyuşmazlığını görecek ve değiştirme ile çalışmayı reddedecektir. Ancak en yaygın I2C EEPROM, küçücük bir WLCSP-4 kasasında bulunur—ve çok istenirse üzerine yazılması bile engellenebilir. Bu nedenle, çip basit bir hafıza olamaz. Kesinlikle başka bir şey daha yapıyor.

İkinci bariz seçenek—gizemli çip lazer sürücüsüdür ve MOSFET anahtarıdır. Ve evet, MOSFET gerçekten de çip tarafından kontrol ediliyor. Ancak lazer sürücüsü gibi kritik bir şey de olamaz.
İlk olarak, MOSFET, lazer düzeneğinin ortak katot kopukluğunda duruyor—ve 4 ayrı anot doğrudan kabloya çıkıyor ve daha sonra iPhone’un katmanlı kartının derinliklerine gidiyor. İkinci olarak, tersine mühendislik için veri toplarken Çinli tamircilerden farklı talimatlara rastladım.

Sorunun özünü doğrudan açıklamadılar, ancak bu talimatların çoğunda “arızalı” bir projektörü onarmak için sökmeniz, MOSFET’i çıkarmanız ve kaynak ile drenaj arasına bir köprü ile değiştirmeniz gerektiği belirtiliyordu. Sonuç olarak projektör, içinde MOSFET yerine bir köprü ile çalışacak ve FaceID işlevi geri yüklenecektir. Peki MOSFET orada ne yapıyordu, projektör MOSFET yerine bir köprü ile normal şekilde çalışıyorsa?
Ve birden dank etti: tam da onarımın özü buydu. MOSFET çip tarafından kontrol ediliyor—bu nedenle çipin isteği üzerine lazer güç devresini kesebilir ve böylece projektörü bozabilir. Ve bu onarım bu kopukluğu ortadan kaldırıyor.
Adının Sırrı
Gizemli çipin MOSFET ile birlikte projektörün normal çalışmasını engellediği anlaşıldığına göre, soru ortaya çıkıyor—bunu neden yapıyor? Projektöre projektörü öldüren bir çip neden takılıyor?
Cevaplar için iPhone işlemcisindeki ISP bloğunun yazılımına baktım—tam olarak da kamera sensörleri ve projektörle I2C üzerinden iletişim kuran o.
Önce iPhone X için en yeni iOS 15 yazılım görüntüsünü indirdim. iPhone yazılım görüntüleri aslında zip dosyalarıdır. İçinde, istenen ISP yazılımını—Firmwareisp_bniadc-nike-d22.im4p
dosyası biçiminde buldum. Sıkıştırılmış im4p dosyasından, içinde AArch64 kodu bulunan Mach-O biçiminde bir ikili çıkarıldı. Mach-O, tipik “bilinmeyen mikrodenetleyici için yazılım görüntüsünün” aksine—PE veya ELF’ye benzer, belgelenmiş bir yürütülebilir dosya biçimidir. Dosya yapısı, işlemci mimarisi veya kodun yükleneceği adres hakkında hiçbir tahmin yok. Sadece dosyayı Ghidra’ya atıyorsunuz ve her şey kendi kendine raflara yerleşiyor. Güzel.

Sonra içgüdü devreye girdi ve daha eski yazılımları didik didik etmeye karar verdim. Ve iOS 13 yazılım görüntüsünde adc-nike-d22 dosyasını buldum. Boyutu bile neredeyse aynıydı. Ancak yeni yazılımda daha fazla kod vardı—ve eski yazılımda daha az kod vardı, ancak semboller vardı. Tüm fonksiyon adları yerli yerindeydi. Her zaman eski sürümleri kontrol edin!
ISP yazılımında, iPhone’un I2C üzerinden farklı çiplerle—kamera sensörleriyle, kamera PMU’larıyla, flaşları ve otomatik odaklamayı kontrol eden çiplerle nasıl iletişim kurduğu da dahil olmak üzere birçok bilgi var. Oradan da, semboller sayesinde, sistemin farklı bileşenlerinin “adlarını” çıkarmayı başardım—ve bunların bir kısmı yazılımın diğer bölümlerinden ve ayrıca diğer tersine mühendislerden ve tamircilerden gelen materyallerle eşleşiyor. Örneğin, IR kamera sensörü—STMicroelectronics VD56G0 “Savage”. TrueDepth sisteminin tamamına kodda “Pearl” deniyor ve ana modüllerine “Romeo ve Juliet”ten karakterlerin adları verilmiş. IR projektörüne “Romeo”, IR kameraya “Juliet” ve IR aydınlatmaya “Rosaline” deniyor. Hem “Romeo” içindeki lazerleri hem de “Rosaline” aydınlatmasının içindeki lazeri çalıştıran ve iPhone anakartında bulunan lazer sürücüsüne “Rigel” deniyor.
Bizi ilgilendiren gizemli çip mi? Onun da bir adı var. Kodda “MamaBear”, kısaca “MB” olarak adlandırılıyor ve işlevselliği oldukça basit gibi görünüyor. I2C veri yolunda yaşıyor. Seri numarası ve farklı kalibrasyonlar dahil olmak üzere OTP verilerini saklıyor. MOSFET’i komut üzerine açıp kapatıyor. Ve ayrıca ölçüyor… kapasitans mı? Sıcaklığı değil, NTC termistöre bağlı değil, tam olarak kapasitans. Ama neyin kapasitansı?
Romeo’nun Trajik Ölümü

Bu sorunun cevabını yine Çin şemaları almamıza yardımcı oluyor. JCID şemasında, “Romeo” modülünde yayıcı düzeneğinin optik düzeneğiyle iletişim kurması için üç kontak olduğu görülüyor. Biri—toprak ve diğer ikisi doğrudan “MamaBear” çipine gidiyor. Bu kontaklar, optik düzeneğin yan tarafındaki özel bir adaptörden geçiyor ve en tepesine—difraksiyonel optik elemana ulaşıyor.
Difraksiyonel ışın ayırıcı kontrol edilemez ve akıma tepki vermez. Ancak kapasitansı vardır. Ve bu üç hat yardımıyla bu kapasitans ölçülebilir. Ama neden?
Mesele, bu difraksiyonel ayırıcının ne kadar önemli bir rol oynadığı. Projektör tarafından kullanılan nokta deseni, VCSEL kristali üzerindeki minik lazer-“çukurların” konumuyla belirlenir. Ve sonra bu desen, tek bir ışın demetinden yüzlerce ışın demeti yapan difraksiyonel bir eleman tarafından çoğaltılır.

Yani, bu difraksiyonel eleman koparılırsa ne olur?
Işınlar ayrılmayacak. Yüzlerce lazer ışını demeti yerine tek bir demet olacak—ancak yüz kat daha güçlü. Ve bu yine de bir lazer. Kızılötesi lazer kırmızıdan daha tehlikelidir, çünkü insan onu görmez—ve bu nedenle tehlikeli derecede güçlü bir ışık kaynağından bile içgüdüsel olarak gözlerini kaçırmaz. Ve karakteristik nokta deseninin bu durumda kullanıcının retinasında yanma olasılığı sıfır değildir.
Bunu önlemek için katil çip gerekiyor. Açıldıktan sonra sürekli olarak difraksiyonel elemanın kapasitansını izler—ve eleman kırılmış veya hasar görmüşse, kapasitans izin verilen sınırların dışına çıkar ve çip hemen MOSFET’i keser ve VCSEL güç kaynağını keser. Ve eleman optik düzeneğin en tepesinde bulunduğundan, geri kalan düzeneğe darbeyle zarar vermek, aynı zamanda onu kırmadan ve teması bozmadan neredeyse imkansızdır.
Lazerin acil durum kapatılmasından sonra çip, kendisini OTP’ye yazar ve projektörü arızalı olarak işaretler—yani, kesilen güç kaynağı sonsuza kadar kesilmiş kalacaktır. ISP’den gelen hiçbir komut artık onun üzerinde güç sahibi olmayacaktır. MOSFET her zaman kapalı olacak ve projektör bir daha asla çalışmayacaktır.
“MamaBear” çipi, adının ima ettiği gibi—bir koruma çipidir. Lazerin acil durum durdurulması için bir “killswitch”tir. Hasar görmüş bir lazer cihazının kullanıcının gözlerine parlamasını önlemek için projektörü öldürüyor. Ve eşi “Romeo” olmadan kalan “Juliet” modülü, yaşam amacını kaybediyor—ve tüm TrueDepth sistemi işe yaramaz hale geliyor.
Tekno-rahiplerin Çalışma Günleri
Ancak bu koruma şemasının bir kusuru var. Mesele şu ki, nokta projektörü cihazın üst kenarında ve hoparlörün yanında duruyor. iPhone’un içine sıvı girerse, bunun için en sık yerlerden biri tam orasıdır. Ve kapasitif sensörler akım ileten sıvılara duyarlıdır. Bu nedenle, cihaz suya düştükten sonra FaceID’nin bozulması sık sık olur—su girişi minimum düzeyde olsa ve başka hasar olmasa bile. Sadece “Romeo” durumu yanlış anladı ve boş yere Roskomnadzor yaptı.
Bu tür cihazlar onarıma götürülür. Genellikle yetkisiz onarıma. Ve iPhone parça seri numaralarını doğruladığı için (merhaba, Apple), tüm kamera bloğunu çalışan bir blokla değiştirmek mümkün değil. Telefon yeni bloğu reddedecek ve FaceID yine de çalışmayacaktır. Bu, eskiyi bir şekilde onarmak gerektiği anlamına gelir. Ama kendini kasıtlı olarak devre dışı bırakan bir projektör nasıl “diriltilebilir”?
Yetkisiz onarım araçları üreticileri bunun için bir dizi farklı ritüel icat ettiler. Ve eli düzgün tamirciler-tekno rahipler onlara kutsal bir şekilde uyuyor ve bu karmaşık ve kalibre edilmiş optik sistemin mikrocerrahisini gerçekleştiriyorlar. El becerisi inanılmaz olmalı—içindeki bileşenler birkaç milimetre boyutunda ve optikler son derece hassas. Cerrahi müdahaleler nedeniyle kalibrasyon çok fazla kayarsa, sistem çalışmayacaktır. Yazılımsal yeniden kalibrasyon araçları mevcut değil (merhaba, Apple)—ya orijinal parametrelere girmenin bir yolunu bulacaksınız ya da FaceID’siz kalacaksınız.

Bu nasıl çalışıyor? İlk olarak, orijinal “MamaBear” çipinden OTP verilerini okumak gerekiyor.
Projektör kendisini arızalı saysa bile veriler okunabilir. Veri okuma için Çinliler özel “onarım” programlayıcıları yapıyorlar—çeşitli iPhone modellerinden projektörler dahil olmak üzere bir dizi farklı bileşenden oluşan konektör-adaptör setleriyle birlikte gelen ve çalışan.
Ve sonra iki şey yapmanız gerekiyor—gücü kesen MOSFET ile başa çıkmak ve orijinal koruma çipini değiştirmek. Ve burada birçok farklı yöntem var.

Örneğin, yukarıdaki fotoğrafta olduğu gibi MOSFET yerine bir köprü atabilir ve orijinal FPC kablosunu söküp Çin yapımı aldatıcı çipli özel bir kabloyla değiştirerek “MamaBear” çipini değiştirebilirsiniz.
Bu durumda orijinal “MamaBear” çipi içeride kalabilir ve projektörün hiçbir durumda çalışmaması gerektiğini güçsüzce haykırabilir. Ancak artık projektörü zorla kapatacak bir MOSFET’i yok ve iPhone kendi adına yalnızca programlayıcı tarafından yüklenen orijinal verilerin bir kopyasını veren ve projektörün kesinlikle sağlam olduğunu bildiren Çin çipini görüyor.

Veya “MamaBear” çipini tamamen söküp, yerine iki-bir arada Çin yapımı bir yedek takabilirsiniz—hem MOSFET kontaklarını kapatır hem de OTP verilerinin bir kopyasını telefona verir.

Ve minimum lehimleme ile bir seçenek var. Orijinal kablo ile iPhone anakartı arasına takılan aldatıcı çipli “adaptör”.
MOSFET sorunu çözmüyor, ancak Çinliler “yüksek voltajlı” programlayıcılar yaparak ona orijinal bir yaklaşım buldular.
ATtiny’leri özel bir yüksek voltajlı programlayıcı kullanarak nasıl “tuğla olmaktan çıkarıp” yeniden yazabileceğinizi biliyor musunuz? Burada durum tamamen farklı. Çin yüksek voltajlı programlayıcısı, projektörün içindeki MOSFET’i kaynak ve drenaj arasında kısa devreye karşı acımasızca ve geri döndürülemez bir şekilde “programlıyor”.
Onarımın son aşamasında projektörü programlayıcıya bir kez daha bağlıyoruz ve ilk aşamada kaydedilen dökümü ona yüklüyoruz. Ve projektör, kendini orijinal ve değiştirilmemiş gibi göstererek çalışmaya hazır.
Tüm bu farklı cihazlar, farklı onarım ekipmanı satıcıları tarafından yapılıyor ve tanıtılıyor. Her türlü aldatıcı çip yalnızca “yerel” programlayıcılarla çalışıyor ve programlayıcılarda genellikle hesaba bağlılık ve doldurulması için ödeme yapmanız gereken sınırlı sayıda “onarım” gibi DRM özellikleri bulunuyor.
Tamirciler, onarımlarıyla Apple tarafından kullanıcının gözlerini korumak için tasarlanan sistemi tamamen yok ettiklerini biliyorlar mı? Aslında hayır. Onlar tersine mühendis değiller—onlar şamanlar. Çalışma prensiplerini anlamıyorlar. Ritüelleri ve sonuçları var ve bu onlara yetiyor. Ve Çin’den kurnaz tersine mühendisler sırlarını halkla paylaşmak konusunda isteksizler. Bu makalede anlattığım şey, tam olarak yalnızca Apple mühendisleri ve “işin içinde” olan on Çinli tarafından biliniyor. Ve benim tarafımdan. Ve artık senin tarafından da.
Apple Neden Geri Zekalı?
Biliyor musunuz, Apple mühendislerini “killswitch”lerinin çok aktif olduğu ve hala çalışabilecek projektörleri bozduğu için aşırı derecede suçlayamıyorum. Lazerler—tehlikeli bir konu ve kullanıcıyı “en kötü senaryolardan” koruma fikri kesinlikle mantıklı. Bu korumanın uygulanması iyileştirmeler gerektirse de.
Ancak Apple’ın yetkisiz onarımlarla mücadele politikası—tüm kötülüklerin en kötüsü. TrueDepth blokları seri numaralarına bakılmaksızın cihazdan cihaza sorunsuz bir şekilde değiştirilebilseydi, korkunç çarpık onarım ritüellerinin pratikte hiçbir anlamı kalmazdı. Mikrocerrahi lehimleme ile uğraşmak ve programlayıcılarla dans etmek yerine, kırık ekranlı bir sonraki “bağışçıdan” tamamen çalışan bir TrueDepth bloğunu çıkarıp, müşterinin telefonuna takıp, işlevselliği tamamen geri yükleyip rahatça yaşamak varken neden kendinizi harap edesiniz? Tamirciler için bu daha kolay olurdu ve cihaz sahipleri için—daha güvenli.
Ancak Apple’ın çirkin onarım karşıtı davranışının tarihi açıkça gösteriyor ki, bu olmayacak. Eh, eğer ABD’de veya AB’de her türlü “Onarım Hakkı” hareketi parça seri numarası bağlamasını yasa dışı hale getirmezse. Ve bu şu anda mümkün. Avrupa Birliği’nin yeni iPhone modellerine Apple’dan daha fazla faydalı özellik eklediği şakasında, çok yüksek bir doğruluk payı var. Bu nedenle, yasal girişimleri takip edeceğiz.
Makale Rusça’dan çevrilmiştir. Makalenin yazarı: acc0unt. Çeviride mümkün olduğunca yazarın orijinal stilini ve ifadelerini korumaya çalıştık.