애플은 왜 아이폰에 Face ID를 망가뜨리는 칩을 넣었을까

카테고리 Hardware, News
Save and Share:

먼저 Face ID 시스템이 어떻게 생겼고, 어떻게 작동하는지부터 살펴보겠습니다.

FaceID 작동에 필요한 모든 부품은 바로 이 화면 노치 안에 들어 있습니다

하드웨어적으로 이 시스템은 한 쌍의 카메라, 즉 IR 카메라와 RGB 카메라, 그리고 두 종류의 IR 조사기, 즉 일반 조명과 특수 점 투사기로 구성됩니다.

아이폰 X에서 덮개를 벗기고 불필요한 부분을 제거하면 전면 카메라 블록의 실제 모습을 볼 수 있습니다. IR 조명은 별도로 존재하지만, 나머지 모든 구성 요소는 우리 손안에 있습니다. 이 금속 프레임 안에 안전하게 고정되어 있죠.

여기에서 IR 카메라와 IR 점 투사기를 볼 수 있습니다. 바로 이 적외선 듀오가 TrueDepth 및 FaceID 시스템 작동의 핵심입니다. 그리고 오늘 이야기의 주인공은 바로 점 투사기입니다.

FaceID 작동 원리 간단히 보기

아이폰 X에서 방출되는 점들 — 사진 출처.

IR 점 투사기는 이름 그대로 주변 환경으로 수만 개의 적외선 점을 쏘아 보냅니다. 그리고 이 명령을 내리는 IR 카메라는 즉시 이 점들을 촬영합니다.

프로젝터, 카메라의 광학적 특성과 그 사이의 거리를 알면 iPhone 프로세서의 ISP는 각 점이 얼마나 멀리 떨어져 있는지 추정할 수 있습니다. 프로세스의 수학적 원리는 저도 완전히 이해하지 못하고, 리버스 엔지니어링하기도 어렵겠지만, 다양한 패턴의 점 이미지를 연속적으로 촬영하면 각 점의 위치를 매우 정확하게 추측하여 완전한 심도 맵을 만들 수 있습니다. LIDAR나 ToF 없이도 말이죠.

바로 이 심도 맵 덕분에 FaceID는 프린터로 인쇄한 사진에 속지 않습니다. 사진은 평면이지만, 얼굴은 입체적인 굴곡을 가지고 있으며, FaceID에게는 얼굴의 색상보다 지형도가 더 중요합니다.

PrimeSense 레퍼런스 카메라 블록 다이어그램

물론 시스템은 얼굴의 색상도 확인합니다. IR 카메라는 RGB 카메라와 하드웨어적으로 동기화되어 있으며, 두 카메라 모두 동시에 얼굴을 촬영합니다. 또한 iPhone은 IR 투사기뿐만 아니라 IR 조명도 깜박일 수 있으며, 전체 얼굴을 IR 스펙트럼으로 촬영할 수 있습니다.

심도 맵 자체는 다소 조잡하지만, 뉴럴 네트워크를 통해 IR 및 RGB 이미지에서 얼굴 텍스처를 분석하면 깊이를 개선하고 표정과 같은 세부 사항을 더 잘 파악할 수 있습니다. 밝은 곳은 물론 어두운 곳에서도 가능합니다.

이 시스템이 낯익게 느껴진다면, 아마도 Xbox 360의 키넥트에서 직접 가져왔기 때문일 겁니다. 키넥트는 거대한 덩치였지만, 여기서는 스마트폰 화면 노치 크기로 줄어들었습니다.

이것을 만든 회사는 PrimeSense인데, 키넥트 1의 기반 기술을 개발했고, 이후 애플에 3억 5천만 달러에 인수되었습니다. 모든 특허, 개발, 직원 및 기타 내부 자산을 포함해서요.

프로젝터 내부 살펴보기

리버스 엔지니어링을 더 깊이 파고들어 보겠습니다. 아이폰 X 카메라 블록에서 점 투사기를 꺼내어 구성 요소별로 분해해 보겠습니다. FPC 플렉시블 케이블, 발광 어셈블리 및 광학 어셈블리로 구성되어 있습니다.

플렉시블 케이블은 완전히 수동적이므로 별로 흥미롭지 않습니다. 발광 어셈블리에 납땜되어 있으며, 아이폰 X 메인보드에 연결되는 FPC 커넥터로 신호를 출력합니다. 0.35mm 접점 피치의 커넥터는 맞춤형(애플 놈들은 정말 얄미워요)이며, JAE에서 만든 것으로 보입니다.

광학 장치의 주요 구성 요소를 살펴보겠습니다.

프로젝터 단면: 사진 출처, 설명은 제가 작성

그리고 방출기 내부를 살펴보겠습니다.

여기서 MOSFET과 수수께끼의 칩의 역할이 궁금해졌습니다. 왜냐고요? 그들이 정확히 무엇을 하는지 불분명하기 때문입니다.

첫 번째로 명백한 추측은 수수께끼의 칩이 일련 번호와 보정 데이터를 위한 메모리라는 것입니다. 칩에는 메모리 인터페이스인 I2C가 있으며, 내부에 메모리가 있는 것은 확실합니다. 프로젝터에는 제조 날짜를 포함하여 확인할 수 있는 일련 번호가 있으며, 프로젝터를 전체적으로 교체하면 iPhone에서 일련 번호 불일치를 감지하고 작동을 거부합니다. 하지만 가장 일반적인 I2C EEPROM은 초소형 WLCSP-4 패키지로 제공되며, 원한다면 재기록을 방지하기 위해 잠글 수도 있습니다. 따라서 칩이 단순한 메모리일 수는 없습니다. 분명히 다른 역할도 할 것입니다.

JCID의 중국 전문가들이 작성한 프로젝터 핀아웃. 글자가 엉망이지만 대략적으로 일치합니다.

두 번째로 명백한 추측은 수수께끼의 칩이 레이저 드라이버이고, MOSFET이 스위치라는 것입니다. 실제로 MOSFET은 칩에 의해 제어됩니다. 하지만 레이저 드라이버처럼 중요한 역할을 하는 것은 아닐 수도 있습니다.

첫째, MOSFET은 레이저 어셈블리의 공통 캐소드 연결을 끊는 위치에 있으며, 4개의 개별 애노드는 플렉시블 케이블로 직접 연결되어 iPhone의 적층 회로 기판으로 이어집니다. 둘째, 리버스 엔지니어링을 위한 데이터를 수집하는 과정에서 중국 수리 전문가들의 다양한 지침을 접했습니다.

MOSFET을 깔끔한 전선으로 교체

그들은 문제의 본질을 직접적으로 밝히지는 않았지만, 이 지침의 대부분에서 “고장난” 프로젝터를 수리하려면 프로젝터를 분해하고, MOSFET을 제거하고, 드레인과 소스 사이에 점퍼를 연결해야 한다고 언급했습니다. 결국 점퍼가 내부에 연결된 프로젝터는 작동하고 FaceID 기능이 복원됩니다. MOSFET 대신 점퍼를 연결한 프로젝터가 정상적으로 작동한다면, MOSFET은 도대체 무슨 역할을 한 걸까요?

문득 깨달았습니다. 바로 이것이 수리의 핵심이었습니다. MOSFET은 칩에 의해 제어되므로, 칩의 의도에 따라 레이저 전원 공급 회로를 차단하여 프로젝터를 고장낼 수 있습니다. 그리고 이 수리는 바로 이 단절을 제거하는 것입니다.

이름에 담긴 의미

수수께끼의 칩이 MOSFET과 함께 프로젝터의 정상적인 작동을 방해한다는 것이 분명해졌으므로, 이제 의문이 생깁니다. 왜 이런 짓을 하는 걸까요? 왜 프로젝터를 죽이는 칩을 프로젝터에 넣는 걸까요?

답을 찾기 위해 아이폰 프로세서의 ISP 블록 펌웨어를 살펴봤습니다. 바로 이 펌웨어가 I2C를 통해 카메라 센서 및 프로젝터와 통신합니다.

먼저 최신 버전인 아이폰 X용 iOS 15 펌웨어 이미지를 다운로드했습니다. 아이폰용 펌웨어 이미지는 기본적으로 zip 파일입니다. 그 안에서 원하는 ISP 펌웨어를 파일 Firmwareisp_bniadc-nike-d22.im4p 형태로 찾았습니다. 압축된 im4p 파일에서 바이너리를 추출했는데, 내부에 AArch64 코드가 있는 Mach-O 형식입니다. Mach-O는 일반적인 “알 수 없는 마이크로컨트롤러용 펌웨어 이미지”와 달리 PE 또는 ELF와 유사한 문서화된 실행 파일 형식입니다. 파일 구조, 프로세서 아키텍처 또는 코드를 로드해야 하는 주소에 대해 추측할 필요가 없습니다. 파일을 Ghidra에 넣기만 하면 모든 것이 자동으로 정리됩니다. 정말 편리하죠.

그 후 본능적으로 더 오래된 펌웨어를 뜯어보기로 했습니다. 그리고 iOS 13 펌웨어 이미지에서 adc-nike-d22 파일을 찾았습니다. 크기도 거의 같았습니다. 하지만 새 펌웨어에는 코드가 더 많았고, 이전 펌웨어에는 코드가 더 적었지만 *심볼*이 있었습니다. 모든 함수 이름이 그대로 있었습니다. 항상 이전 버전을 확인하세요!

ISP 펌웨어에는 아이폰이 I2C를 통해 카메라 센서, 카메라 PMU, 플래시 및 자동 초점 제어 칩 등 다양한 칩과 통신하는 방법을 포함하여 많은 정보가 들어 있습니다. 심볼 덕분에 시스템의 다양한 구성 요소의 “이름”을 추출할 수 있었고, 그 중 일부는 펌웨어의 다른 부분과 다른 리버스 엔지니어 및 수리공의 자료와 일치합니다. 예를 들어, IR 카메라 센서는 STMicroelectronics VD56G0 “Savage”입니다. 코드에서 TrueDepth 시스템 전체는 “Pearl”이라고 불리며, 주요 모듈에는 “로미오와 줄리엣”의 등장인물 이름이 붙여졌습니다. IR 프로젝터는 “Romeo”, IR 카메라는 “Juliet”, IR 조명은 “Rosaline”이라고 불립니다. “Romeo” 내부의 레이저와 “Rosaline” 조명 내부의 레이저 모두에 전원을 공급하는 아이폰 메인보드에 있는 레이저 드라이버는 “Rigel”이라고 불립니다.

우리가 관심을 갖는 수수께끼의 칩은 어떻냐고요? 그 칩에도 이름이 있습니다. 코드에서 “MamaBear”, 줄여서 “MB”라고 부르는데, 기능은 매우 단순해 보입니다. I2C 버스에 연결되어 있습니다. 일련 번호와 다양한 보정을 포함한 OTP 데이터를 저장합니다. 명령에 따라 MOSFET을 켜고 끕니다. 그리고 또… 용량을 측정한다고요? NTC 서미스터에는 연결되어 있지 않고, 온도가 아니라 용량 말입니다. 도대체 무엇의 용량일까요?

로미오의 비극적인 죽음

이 질문에 대한 답은 다시 중국 회로도에서 찾을 수 있었습니다. JCID 회로도에서 “Romeo” 모듈에는 발광 어셈블리와 광학 어셈블리 연결을 위한 세 개의 접점이 있는 것으로 나타났습니다. 하나는 접지이고, 나머지 두 개는 “MamaBear” 칩으로 직접 연결됩니다. 이 접점들은 광학 어셈블리 측면에 있는 특수 어댑터를 통해 연결되어 광학 어셈블리의 맨 위, 즉 회절 광학 소자에 도달합니다.

회절 빔 스플리터는 제어할 수 없으며 전류에 반응하지 않습니다. 하지만 용량을 가지고 있습니다. 그리고 이 세 개의 라인을 사용하여 용량을 측정할 수 있습니다. 하지만 왜 측정하는 걸까요?

문제는 이 회절 스플리터가 얼마나 중요한 역할을 하는가입니다. 프로젝터에서 사용하는 점 패턴은 VCSEL 칩의 작은 레이저 “피트”의 배열에 의해 결정됩니다. 그런 다음 이 패턴은 하나의 빔에서 수백 개의 빔을 만드는 회절 소자에 의해 복제됩니다.

“SPARSE” 애노드 레이저 배열과 투영된 점 비교

그렇다면 이 회절 소자가 분리되면 어떻게 될까요?

빔이 분할되지 않습니다. 수백 개의 레이저 빔 대신 하나의 빔이 생성되지만, 대신 100배 더 강력해집니다. 그리고 이것은 결국 레이저입니다. 적외선 레이저는 빨간색 레이저보다 더 위험합니다. 왜냐하면 사람은 적외선 레이저를 볼 수 없기 때문에 위험할 정도로 강력한 광원이라도 본능적으로 시선을 돌리지 않기 때문입니다. 그리고 이 경우 사용자 망막에 특징적인 점 패턴이 새겨질 가능성이 있습니다.

이것을 방지하기 위해 킬 스위치 칩이 필요합니다. 칩은 활성화 후 회절 소자의 용량을 지속적으로 모니터링합니다. 그리고 소자가 파손되거나 손상되면 용량이 허용 범위를 벗어나고, 칩은 즉시 MOSFET을 차단하고 VCSEL 전원을 차단합니다. 또한 소자는 광학 어셈블리 맨 위에 있기 때문에, 소자를 부수거나 접촉을 손상시키지 않고 나머지 어셈블리를 충격으로 손상시키는 것은 거의 불가능합니다.

레이저가 비상 차단된 후 칩은 OTP에 프로젝터를 결함 있는 것으로 표시하는 플래그를 기록합니다. 즉, 차단된 전원은 영구적으로 차단된 상태로 유지됩니다. ISP의 어떤 명령도 더 이상 칩에 영향을 미치지 않습니다. MOSFET은 항상 닫혀 있고, 프로젝터는 더 이상 작동하지 않습니다.

“MamaBear” 칩은 이름에서 알 수 있듯이 보호 칩입니다. 레이저를 비상 정지시키는 “킬 스위치”입니다. **손상된 레이저 장치가 사용자 눈에 빛을 비추지 않도록 프로젝터를 죽이는 것입니다.** 그리고 짝꿍인 “Romeo”가 없어진 “Juliet” 모듈은 삶의 의미를 잃고, TrueDepth 시스템 전체가 쓸모없게 됩니다.

기술 사제들의 고된 일상

하지만 이 보호 체계에는 결함이 있습니다. 점 투사기는 장치 상단 가장자리에 있고, 스피커 옆에 있습니다. 아이폰 내부로 액체가 들어가면 가장 흔한 경로 중 하나가 바로 그곳입니다. 그리고 용량성 센서는 전류를 전도하는 액체에 민감합니다. 따라서 장치가 물에 빠진 후 FaceID가 고장나는 경우가 종종 발생합니다. 물이 최소량만 들어가고 다른 손상이 없더라도 말이죠. “Romeo”가 상황을 오해하고 불필요하게 자멸해버린 것입니다.

이러한 장치는 수리를 받으러 옵니다. 종종 비공식 수리를 받으러 오죠. 그리고 아이폰은 부품의 일련 번호를 확인하기 때문에(애플, 고맙다!), 카메라 블록 전체를 정상 작동하는 도너 부품으로 교체하는 것은 불가능합니다. 전화기에서 새 블록을 거부하고 FaceID는 여전히 작동하지 않습니다. 따라서 기존 부품을 어떻게든 수리해야 합니다. 하지만 의도적으로 스스로 작동을 중단시킨 프로젝터를 어떻게 “부활”시킬 수 있을까요?

비공식 수리 도구 제조업체는 이를 위해 다양한 의식을 고안했습니다. 그리고 손재주 좋은 기술 사제 수리공들은 이 의식을 맹목적으로 따르고, 이 복잡하고 보정된 광학 시스템에 미세 수술을 수행합니다. 믿을 수 없을 정도로 섬세한 손길이 필요합니다. 내부 부품은 수 밀리미터 크기이고, 광학 장치는 매우 민감합니다. 수술적 개입으로 인해 보정이 너무 많이 벗어나면 시스템이 작동하지 않습니다. 소프트웨어 재보정 도구는 존재하지 않습니다(애플, 고맙다!). 원래 매개변수 범위에 들어갈 방법을 찾거나 FaceID를 포기해야 합니다.

“고전압” 프로그래머

어떻게 작동할까요? 음, 우선 원래 “MamaBear” 칩에서 OTP 데이터를 읽어야 합니다.

프로젝터가 스스로를 고장났다고 생각하더라도 데이터는 읽을 수 있습니다. 데이터 판독을 위해 중국인들은 다양한 커넥터 세트와 함께 제공되며, 프로젝터를 포함한 다양한 아이폰 모델의 다양한 부품과 호환되는 특수 “수리” 프로그래머를 만듭니다.

그런 다음 두 가지 작업을 수행해야 합니다. 전원 공급을 차단하는 MOSFET을 처리하고, 원래 보호 칩을 교체해야 합니다. 여기에는 다양한 방법이 있습니다.

가짜 칩이 있는 플렉시블 케이블

예를 들어, 위 기사의 사진처럼 MOSFET 대신 점퍼를 연결하고, 원래 FPC 플렉시블 케이블을 떼어내어 중국산 가짜 칩이 있는 특수 플렉시블 케이블로 교체하여 “MamaBear” 칩을 교체할 수 있습니다.

이때 원래 “MamaBear” 칩은 내부에 남아 프로젝터가 절대 작동해서는 안 된다고 힘없이 외칠 수 있습니다. 하지만 더 이상 프로젝터를 강제로 끌 MOSFET이 없고, 아이폰은 프로그래머에 의해 복사된 원본 데이터를 반환하고, 프로젝터가 확실히 정상이라고 보고하는 중국산 칩만 인식합니다.

기존 부품을 긁어내고 새 부품을 장착

또는 “MamaBear” 칩 전체를 제거하고, MOSFET 접점을 닫고 OTP 데이터 복사본을 전화기로 반환하는 중국산 2-in-1 대체품을 제자리에 장착할 수도 있습니다.

가짜 칩이 있는 어댑터 보드

최소한의 납땜으로 가능한 방법도 있습니다. 원래 플렉시블 케이블과 아이폰 메인보드 사이에 장착되는 가짜 칩이 있는 “어댑터”입니다.

이것은 MOSFET 문제를 해결하지 못하지만, 중국인들은 “고전압” 프로그래머를 만들어 독창적인 접근 방식을 찾았습니다.

특수 고전압 프로그래머를 사용하여 ATtiny 같은 것을 “벽돌 상태에서 복구”하고 다시 프로그래밍하는 방법을 아시나요? 여기서는 상황이 완전히 다릅니다. 중국산 고전압 프로그래머는 프로젝터 내부의 MOSFET을 무자비하고 되돌릴 수 없을 정도로 드레인과 소스 사이의 단락 회로로 “프로그래밍”합니다.

수리의 마지막 단계에서 프로젝터를 프로그래머에 다시 연결하고, 첫 번째 단계에서 저장한 덤프를 프로젝터에 플래시합니다. 그러면 프로젝터가 원본이고 수정되지 않은 것처럼 작동할 준비가 됩니다.

이러한 다양한 장치는 다양한 수리 장비 판매업체에서 만들고 홍보합니다. 모든 종류의 가짜 칩은 “자사” 프로그래머에서만 작동하며, 프로그래머에는 계정 연결 및 충전해야 하는 제한된 “수리” 횟수와 같은 DRM 기능이 있는 경우가 많습니다.

수리공들은 자신들의 수리가 사용자 눈을 보호하기 위해 애플이 고안한 시스템을 완전히 파괴한다는 것을 알고 있을까요? 사실은 모릅니다. 그들은 리버스 엔지니어가 아니라 샤먼입니다. 작동 원리에 대한 이해가 없습니다. 그들에게는 의식과 결과가 있고, 그것으로 충분합니다. 그리고 중국의 노련한 리버스 엔지니어들은 자신들의 비밀을 대중과 공유하는 것을 꺼립니다. 이 기사에서 제가 설명한 내용은 애플 엔지니어와 “업계” 중국인 10명 정도만이 완전히 알고 있습니다. 그리고 저와, 이제 당신도 알게 되었네요.

애플이 왜 문제인가

아시다시피, 저는 애플 엔지니어들이 “킬 스위치”가 너무 민감해서 아직 작동할 수 있는 프로젝터를 고장낸다고 해서 너무 심하게 비난할 수는 없습니다. 레이저는 위험한 주제이고, “최악의 시나리오”로부터 사용자를 보호한다는 아이디어는 완전히 건전합니다. 비록 이 보호 장치의 구현에는 개선이 필요하지만요.

하지만 **비공식 수리에 대한 애플의 정책은 모든 악 중 최악입니다**. TrueDepth 블록을 일련 번호에 신경 쓰지 않고 장치 간에 자유롭게 교체할 수 있다면, 끔찍하고 뒤틀린 수리 의식은 거의 의미가 없을 것입니다. 미세 수술 납땜으로 고생하고 프로그래머와 씨름할 필요가 뭐가 있을까요? 그냥 깨진 화면의 “도너”에서 완전히 작동하는 TrueDepth 블록을 꺼내서 고객의 전화기에 넣고, 기능을 완전히 복원하고, 편안하게 살 수 있다면요? 수리공에게는 더 쉬울 것이고, 장치 소유자에게는 더 안전할 것입니다.

하지만 애플의 끔찍한 반수리 행태의 역사는 이런 일이 없을 것이라는 점을 분명히 보여줍니다. 물론 미국이나 EU에서 “수리할 권리” 운동이 부품 일련 번호 연결을 불법으로 만들지 않는다면 말이죠. 그리고 이것은 현재 가능성이 있습니다. 유럽연합이 새로운 아이폰 모델에 애플보다 더 유용한 기능을 추가한다는 농담에는 상당 부분 진실이 담겨 있습니다. 따라서 입법적 움직임을 계속 지켜봐야 할 것입니다.

이 기사는 러시아어에서 번역되었습니다. 기사 작성자: acc0unt. 번역 과정에서 원작 스타일과 표현을 최대한 살리려고 노력했습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다