Mari kita mulai dari dasar: seperti apa sistem Face ID, dan bagaimana cara kerjanya:


Secara perangkat keras, sistem ini terdiri dari sepasang kamera – IR dan RGB, dan dua jenis pemancar IR – pencahayaan biasa, dan proyektor titik khusus.
Mari kita kupas iPhone X, singkirkan semua yang tidak perlu, dan kita akan melihat blok kamera depan dalam bentuk telanjang. Pencahayaan IR ada secara terpisah, tetapi semua komponen lainnya ada di tangan kita — mereka terpasang dengan aman di bingkai logam ini.
Di sini kita melihat kamera IR dan proyektor titik IR. Pada pasangan inframerah inilah sistem TrueDepth dan FaceID bekerja. Dan tokoh utama cerita hari ini — adalah tentang proyektor titik.
Prinsip Kerja Singkat FaceID

Proyektor titik IR melakukan persis seperti namanya — memancarkan puluhan ribu titik inframerah ke dunia sekitar atas perintah. Dan kamera IR, yang memberikan perintah ini, langsung memotret titik-titik ini.
Mengetahui karakteristik optik proyektor, kamera, dan jarak di antara keduanya, ISP di prosesor iPhone dapat memperkirakan seberapa jauh setiap titik berada. Matematika prosesnya bahkan saya sendiri tidak sepenuhnya memahaminya, dan membaliknya akan sulit — tetapi mengambil serangkaian gambar dengan pola titik yang berbeda memungkinkan untuk menebak posisi setiap titik individu dengan cukup akurat, dan dengan demikian membuat peta kedalaman yang utuh. Tanpa LIDAR dan tanpa ToF.
Peta kedalaman inilah yang memungkinkan FaceID tidak tertipu oleh foto yang dicetak di atas kertas. Foto itu datar — sementara wajah memiliki relief, dan untuk FaceID peta topografi wajah lebih penting daripada warnanya.

Namun, sistem ini juga memperhatikan warna wajah. Kamera IR disinkronkan secara perangkat keras dengan kamera RGB, dan kedua kamera mengambil gambar wajah secara bersamaan. Dan iPhone juga dapat berkedip tidak hanya dengan proyektor IR, tetapi juga dengan pencahayaan IR — dan mengambil gambar seluruh wajah dalam spektrum IR.
Peta kedalaman itu sendiri cukup kasar, dan analisis tekstur wajah dalam gambar IR dan RGB oleh jaringan saraf memungkinkan untuk memperhalus kedalaman dan lebih memahami detail seperti ekspresi wajah — baik di siang hari maupun dalam kegelapan.
Jika sistem ini terasa familier bagi Anda, mungkin karena sistem ini secara langsung diambil dari Kinect dari Xbox 360. Hanya saja Kinect itu adalah perangkat besar, dan di sini ukurannya telah diperkecil hingga seukuran ‘poni’ di layar ponsel cerdas.
Ini dilakukan oleh perusahaan PrimeSense, yang mengembangkan teknologi yang mendasari Kinect 1 — dan kemudian dibeli oleh Apple seharga 350 juta dolar. Seluruhnya — dengan semua paten, pengembangan, karyawan, dan isi perut lainnya.
Membongkar Isi Dalam Proyektor

Mari kita telusuri lebih dalam: keluarkan proyektor titik dari blok kamera iPhone X dan bongkar menjadi bagian-bagian komponennya. Terdiri dari kabel fleksibel FPC, rakitan pemancar, dan rakitan optik.
Kabel fleksibel ini sepenuhnya pasif, dan oleh karena itu kurang menarik. Kabel ini disolder ke rakitan pemancar, dan mengeluarkan sinyal ke konektor FPC, yang terhubung ke papan utama iPhone X. Konektor dengan jarak pin 0,35mm, khusus (Apple memang menyebalkan), dan tampaknya dibuat oleh perusahaan JAE.
Mari kita lihat komponen optik utama:

Dan mari kita lihat apa yang ada di dalam pemancar:

Dan peran MOSFET dan chip misterius inilah yang membuat saya tertarik. Mengapa? Karena tidak jelas apa yang sebenarnya mereka lakukan di sana.
Opsi pertama yang jelas — chip misterius ini adalah memori untuk nomor seri dan data kalibrasi. Chip ini memiliki antarmuka I2C yang khas untuk memori, dan pasti ada memori di dalamnya. Proyektor memiliki nomor seri, yang dapat digunakan untuk menentukan tanggal produksi — dan jika proyektor diganti seluruhnya, iPhone akan melihat ketidakcocokan nomor seri dan menolak untuk bekerja dengan penggantinya. Tetapi EEPROM I2C yang paling umum ditemukan dalam корпусе WLCSP-4 kecil — dan bahkan dapat dikunci dari penulisan ulang, jika sangat diinginkan. Oleh karena itu, chip ini tidak mungkin hanya memori biasa. Chip ini pasti melakukan sesuatu yang lain.

Opsi kedua yang jelas — chip misterius ini adalah driver laser, dan MOSFET adalah kuncinya. Dan ya, MOSFET memang dikendalikan oleh chip. Hanya saja, chip ini juga tidak mungkin menjadi sesuatu yang sangat penting seperti driver laser.
Pertama, MOSFET berada di sela-sela katoda umum rakitan laser — dan 4 anoda terpisah keluar langsung ke kabel fleksibel dan masuk lebih jauh ke dalam lapisan papan iPhone. Dan kedua, selama pengumpulan data untuk reverse engineering, saya menemukan berbagai instruksi dari teknisi perbaikan Tiongkok.

Mereka tidak secara langsung menjelaskan inti masalahnya, tetapi dalam banyak instruksi ini dikatakan: untuk memperbaiki proyektor yang “rusak”, Anda perlu membongkarnya, melepas MOSFET, dan menggantinya dengan jumper antara drain dan source. Proyektor pada akhirnya akan berfungsi dengan jumper di dalamnya, dan fungsionalitas FaceID akan pulih. Karena proyektor dengan jumper sebagai pengganti MOSFET berfungsi dengan normal, lalu apa yang dilakukan MOSFET di sana?
Dan saya tersadar: inti dari perbaikan ini adalah itu. MOSFET dikendalikan oleh chip – oleh karena itu, atas keinginan chip, MOSFET dapat memutuskan rangkaian daya laser, dan dengan demikian merusak proyektor. Dan perbaikan ini menghilangkan pemutusan tersebut.
Apa Arti Nama ‘MamaBear’?
Karena sudah jelas bahwa chip misterius yang dipasangkan dengan MOSFET menghambat pengoperasian normal proyektor, maka muncul pertanyaan — mengapa chip ini melakukannya? Mengapa chip yang membunuh proyektor dipasang di dalam proyektor?
Untuk jawaban, saya mencari di firmware blok ISP di prosesor iPhone – blok inilah yang berkomunikasi melalui I2C dengan sensor kamera dan dengan proyektor.
Pertama, saya mengunduh image firmware iOS 15 untuk iPhone X, yang terbaru. Image firmware untuk iPhone pada dasarnya adalah file zip. Di dalamnya, saya menemukan firmware ISP yang dicari — dalam bentuk file Firmwareisp_bniadc-nike-d22.im4p
. Dari file im4p terkompresi, diekstraksi file biner, dalam format Mach-O dengan kode AArch64 di dalamnya. Mach-O, tidak seperti “image firmware untuk mikrokontroler yang tidak dikenal” yang khas — adalah format file executable yang terdokumentasi, mirip dengan PE atau ELF. Tidak ada tebakan tentang struktur file, arsitektur prosesor, atau alamat tempat kode harus dimuat. Cukup masukkan file ke Ghidra dan semuanya akan tertata dengan sendirinya. Sangat menyenangkan.

Kemudian naluri mengambil alih, dan saya memutuskan untuk membongkar firmware yang lebih lama. Dan dalam image firmware iOS 13, saya menemukan file adc-nike-d22. Bahkan ukurannya hampir sama. Hanya saja di firmware baru ada lebih banyak kode — dan di firmware lama kode lebih sedikit, tetapi ada simbol. Semua nama fungsi ada di tempatnya. Selalu periksa versi lama!
Dalam firmware ISP ada banyak informasi, termasuk cara iPhone berkomunikasi melalui I2C dengan berbagai chip — dengan sensor kamera, dengan PMU kamera, dengan chip kontrol flash dan fokus otomatis. Dari sana juga, berkat simbol, dimungkinkan untuk mengekstrak “nama” dari berbagai bagian sistem — dan beberapa di antaranya berhubungan dengan materi dari bagian firmware lain, serta dari reverse engineer dan teknisi perbaikan lainnya. Misalnya, sensor kamera IR — adalah STMicroelectronics VD56G0 “Savage”. Seluruh sistem TrueDepth dalam kode disebut “Pearl”, dan modul utamanya diberi nama karakter dari “Romeo dan Juliet”. Proyektor IR disebut “Romeo”, kamera IR — “Juliet”, dan pencahayaan IR disebut “Rosaline”. Driver laser, yang ada di papan utama iPhone dan memberi daya pada laser di dalam “Romeo”, serta laser di dalam pencahayaan “Rosaline”, disebut “Rigel”.
Chip misterius yang kita minati? Chip ini juga memiliki nama. Dalam kode, chip ini disebut “MamaBear”, disingkat “MB”, dan tampaknya fungsionalitasnya sangat sederhana. Chip ini berada di bus I2C. Chip ini menyimpan data OTP di dalamnya, termasuk nomor seri dan berbagai kalibrasi. Chip ini menghidupkan dan mematikan MOSFET atas perintah. Dan chip ini juga mengukur… kapasitansi? Bukan suhu, chip ini sama sekali tidak terhubung ke termistor NTC, tetapi justru kapasitansi. Hanya saja, kapasitansi apa?
Kematian Tragis Romeo

Jawaban atas pertanyaan ini sekali lagi dibantu oleh skema Tiongkok. Dalam skema dari JCID terlihat bahwa dalam modul “Romeo” ada tiga kontak untuk menghubungkan rakitan pemancar dengan rakitan optik. Satu — ground, dan dua lainnya langsung menuju chip “MamaBear”. Kontak-kontak ini melewati adaptor khusus di sisi rakitan optik, dan sampai ke bagian paling atasnya — ke elemen optik difraksi.
Pembelah sinar difraksi tidak dapat dikendalikan, dan tidak bereaksi terhadap arus. Tetapi pembelah sinar ini memiliki kapasitansi. Dan dengan bantuan tiga garis ini, kapasitansi ini dapat diukur. Tetapi untuk apa?
Masalahnya adalah betapa pentingnya peran pembelah sinar difraksi ini. Pola titik yang digunakan oleh proyektor ditentukan oleh lokasi laser-“lubang” kecil pada kristal VCSEL. Dan kemudian pola ini diperbanyak oleh elemen difraksi, yang mengubah satu berkas sinar menjadi ratusan berkas sinar.

Jadi, apa yang akan terjadi jika elemen difraksi ini terlepas?
Sinar tidak akan terbelah. Alih-alih seratus berkas sinar laser, akan ada satu berkas — tetapi seratus kali lebih kuat. Dan ini tetaplah laser. Laser inframerah lebih berbahaya daripada laser merah, karena manusia tidak dapat melihatnya — dan oleh karena itu tidak akan secara naluriah mengalihkan pandangan bahkan dari sumber cahaya yang sangat kuat. Dan ada kemungkinan bukan nol bahwa pola titik karakteristik dalam kasus ini akan terukir di retina pengguna.
Untuk mencegah hal ini, dibutuhkan chip pembunuh ini. Setelah dihidupkan, chip ini terus-menerus memantau kapasitansi elemen difraksi — dan jika elemen tersebut ternyata patah atau rusak, maka kapasitansi akan keluar dari batas yang diizinkan, dan chip akan segera mematikan MOSFET dan memutuskan daya VCSEL. Dan karena elemen tersebut terletak di bagian paling atas rakitan optik, maka hampir tidak mungkin untuk merusak rakitan lainnya dengan benturan tanpa merusak elemen tersebut dan tanpa memutuskan kontak.
Setelah laser mati secara darurat, chip membakar flag di OTP yang menandai proyektor sebagai rusak — yang berarti daya yang terputus akan selamanya tetap terputus. Tidak ada perintah dari ISP yang akan memiliki kekuatan atasnya lagi. MOSFET akan selalu tertutup, dan proyektor tidak akan pernah berfungsi lagi.
Chip “MamaBear”, seperti namanya — adalah chip pelindung. Ini adalah “killswitch” untuk penghentian darurat laser. Chip ini mematikan proyektor untuk mencegah perangkat laser yang rusak menyinari mata pengguna. Dan modul “Juliet”, yang ditinggalkan tanpa pasangannya “Romeo”, kehilangan makna hidup — dan seluruh sistem TrueDepth menjadi tidak berguna.
Rutinitas ‘Teknopastor’
Tetapi skema perlindungan ini memiliki kekurangan. Masalahnya adalah proyektor titik terletak di tepi atas perangkat, dan di dekat speaker. Jika cairan masuk ke dalam iPhone, salah satu tempat yang paling sering terjadi adalah di sana. Dan sensor kapasitif sensitif terhadap cairan yang menghantarkan listrik. Oleh karena itu, sering terjadi bahwa FaceID rusak setelah perangkat jatuh ke air — bahkan jika air yang masuk minimal, dan tidak ada kerusakan lain. Hanya saja “Romeo” salah memahami situasi, dan melakukan “Roskomnadzor” tanpa alasan.
Perangkat seperti itu dibawa ke tempat perbaikan. Seringkali ke tempat perbaikan tidak resmi. Dan karena iPhone memverifikasi nomor seri suku cadang (halo, Apple), maka tidak mungkin untuk sekadar menukar seluruh blok kamera dengan blok kerja dari donor. Ponsel akan menolak blok baru, dan FaceID tetap tidak akan berfungsi. Jadi, perlu untuk memperbaiki yang lama dengan cara tertentu. Tetapi bagaimana Anda bisa “menghidupkan kembali” proyektor yang dengan sengaja menonaktifkan dirinya sendiri?
Produsen alat tidak resmi untuk perbaikan telah menemukan serangkaian ritual yang berbeda untuk ini. Dan teknopastor perbaikan yang mahir dengan setia mengikutinya, dan melakukan bedah mikro pada sistem optik yang kompleks dan terkalibrasi ini. Kemahiran tangan yang luar biasa diperlukan — komponen di dalamnya berukuran hanya beberapa milimeter, dan optiknya sangat sensitif. Jika kalibrasi terlalu jauh melenceng karena intervensi bedah, maka sistem tidak akan berfungsi. Tidak ada alat untuk rekalibrasi perangkat lunak (halo, Apple) — Anda harus menemukan cara untuk masuk ke parameter asli, atau Anda akan kehilangan FaceID.

Bagaimana cara kerjanya? Nah, pertama-tama Anda perlu membaca data OTP dari chip “MamaBear” asli.
Data dapat dibaca bahkan jika proyektor menganggap dirinya rusak. Untuk membaca data, orang Tiongkok membuat programmer “perbaikan” khusus — yang dilengkapi dengan set konektor-adaptor, dan bekerja dengan sejumlah komponen berbeda dari berbagai model iPhone, termasuk proyektor.
Dan kemudian Anda perlu melakukan dua hal — mengatasi MOSFET yang memutuskan daya, dan mengganti chip perlindungan asli. Dan ada banyak metode yang berbeda di sini.

Misalnya, Anda dapat memasang jumper sebagai pengganti MOSFET, seperti pada foto di atas dalam artikel, dan mengganti chip “MamaBear”, dengan melepas kabel fleksibel FPC asli dan menggantinya dengan kabel fleksibel khusus dengan chip ‘penipu’ Tiongkok.
Chip “MamaBear” asli dapat tetap berada di dalam, dan dengan tak berdaya berteriak bahwa proyektor sama sekali tidak boleh berfungsi. Tetapi chip ini tidak lagi memiliki MOSFET untuk mematikan proyektor secara paksa, dan iPhone, pada gilirannya, hanya melihat chip Tiongkok — yang memberikan salinan data asli yang diisi oleh programmer, dan melaporkan bahwa proyektor benar-benar berfungsi dengan baik.

Atau Anda dapat mencabut chip “MamaBear” sepenuhnya, dan memasang pengganti dua-dalam-satu Tiongkok di tempat standarnya — pengganti ini juga menutup kontak MOSFET, dan memberikan salinan data OTP ke ponsel.

Nah, ada juga opsi dengan pematerian minimal. “Adaptor” dengan chip ‘penipu’, yang dipasang di antara kabel fleksibel asli dan papan utama iPhone.
Adaptor ini tidak menyelesaikan masalah dengan MOSFET, tetapi orang Tiongkok juga menemukan pendekatan orisinal untuk itu, dengan membuat programmer “tegangan tinggi”.
Tahukah Anda bagaimana berbagai ATtiny dapat “dihidupkan kembali” dan ditulis ulang dengan bantuan programmer tegangan tinggi khusus? Di sini situasinya sangat berbeda. Programmer tegangan tinggi Tiongkok secara brutal dan tidak dapat diubah “memprogram” MOSFET di dalam proyektor menjadi korsleting antara drain dan source.
Pada tahap terakhir perbaikan, kami menghubungkan proyektor ke programmer sekali lagi, dan memuat dump yang disimpan pada tahap pertama ke dalamnya. Dan proyektor siap bekerja, memalsukan dirinya sebagai proyektor asli dan tidak dimodifikasi.
Semua perlengkapan yang berbeda ini dibuat dan dipromosikan oleh berbagai penjual peralatan perbaikan. Semua jenis chip ‘penipu’ hanya berfungsi dengan programmer “asli”, dan programmer sering kali memiliki fitur DRM seperti terikat ke akun dan jumlah “perbaikan” terbatas, yang pengisian ulang dananya harus dibayar.
Apakah para teknisi perbaikan tahu bahwa dengan perbaikan mereka, mereka sepenuhnya menghancurkan sistem yang dirancang oleh Apple untuk melindungi mata pengguna? Sebenarnya tidak. Mereka bukan reverse engineer — mereka adalah dukun. Mereka tidak memiliki pemahaman tentang prinsip-prinsip operasi. Mereka memiliki ritual dan hasil, dan itu sudah cukup bagi mereka. Dan reverse engineer yang licik dari Tiongkok enggan berbagi rahasia mereka dengan publik. Apa yang saya jelaskan dalam artikel ini, diketahui sepenuhnya hanya oleh para insinyur Apple dan selusin orang Tiongkok “di dalam”. Dan saya. Dan Anda, sekarang.
Kenapa Apple Menyebalkan?
Tahukah Anda, saya tidak bisa terlalu menyalahkan para insinyur Apple karena “killswitch” mereka terlalu aktif, dan merusak proyektor yang sebenarnya masih bisa berfungsi. Laser — adalah topik yang berbahaya, dan ide untuk melindungi pengguna dari “skenario terburuk” benar-benar masuk akal. Meskipun implementasi perlindungan ini membutuhkan perbaikan.
Tetapi kebijakan Apple untuk melawan perbaikan tidak resmi — adalah yang terburuk dari semua kejahatan. Jika blok TrueDepth dapat dengan mudah ditukar dari perangkat ke perangkat, tanpa memperhatikan nomor seri, maka ritual perbaikan yang mengerikan dan menyimpang hampir tidak akan ada artinya. Mengapa repot-repot dengan pematerian bedah mikro dan menari-nari dengan programmer, jika Anda dapat melepas blok TrueDepth yang berfungsi sempurna dari “donor” lain dengan layar yang rusak, memasangnya di ponsel klien, memulihkan fungsionalitas sepenuhnya, dan hidup dengan tenang? Bagi teknisi perbaikan, ini akan lebih mudah, dan bagi pemilik perangkat — lebih aman.
Tetapi sejarah perilaku anti-perbaikan Apple yang buruk dengan jelas menunjukkan bahwa ini tidak akan terjadi. Yah, kecuali di AS atau di Uni Eropa, semua gerakan “Right to Repair” membuat pengaitan suku cadang berdasarkan nomor seri menjadi ilegal. Dan ini mungkin terjadi sekarang. Dalam lelucon tentang Uni Eropa yang menambahkan lebih banyak fitur berguna ke model iPhone baru daripada Apple, ada sebagian besar kebenaran. Jadi, mari kita pantau inisiatif legislatif.
Artikel ini diterjemahkan dari bahasa Rusia. Penulis artikel: acc0unt. Kami telah berusaha untuk mempertahankan gaya dan formulasi asli penulis, sejauh mungkin dalam terjemahan ini.