Por que a Apple adicionou um chip no iPhone que quebra o Face ID

Categorizado como Hardware, News
Save and Share:

Vamos começar do início: como o sistema Face ID se parece e como ele funciona:

Todo o hardware necessário para o FaceID funcionar está neste recorte na tela

Em termos de hardware, este sistema consiste em um par de câmeras – IV e RGB, e dois tipos de emissores de IV – iluminação comum e um projetor de pontos especializado.

Tiramos a “casca” do iPhone X, removemos tudo o que é desnecessário e vemos o bloco de câmeras frontais em sua forma “nua”. A iluminação IV existe separadamente, mas todos os outros componentes estão em nossas mãos — eles estão firmemente presos nesta estrutura metálica.

Aqui vemos a câmera IV e o projetor de pontos IV. É nesta dupla infravermelha que se baseia o funcionamento dos sistemas TrueDepth e FaceID. E o personagem principal da história de hoje é justamente o projetor de pontos.

Breve princípio de funcionamento do FaceID

Pontos emitidos pelo iPhone X — foto daqui.

O projetor de pontos IV faz exatamente o que seu nome diz – cospe dezenas de milhares de pontos infravermelhos para o mundo exterior sob comando. E a câmera IV, que dá esse comando, fotografa esses pontos imediatamente.

Conhecendo as características ópticas do projetor, da câmera e a distância entre eles, o ISP no processador do iPhone pode estimar a distância de cada ponto. Eu mesmo não entendo completamente a matemática do processo, e fazer engenharia reversa disso será difícil — mas tirar uma série de imagens com diferentes padrões de pontos permite adivinhar com bastante precisão a posição de cada ponto individual e, assim, criar um mapa de profundidade completo. Sem LIDAR e sem ToF.

É o mapa de profundidade que permite que o FaceID não seja enganado por fotografias impressas em uma impressora. Uma fotografia é plana — mas o rosto tem relevo, e para o FaceID, o mapa topográfico do rosto é mais importante do que sua cor.

Diagrama de blocos da câmera de referência PrimeSense

No entanto, o sistema também observa a cor do rosto. A câmera IV é sincronizada por hardware com a câmera RGB, e ambas as câmeras filmam o rosto simultaneamente. E o iPhone também pode piscar não apenas o projetor IV, mas também a iluminação IV — e filmar todo o rosto no espectro IV.

O mapa de profundidade por si só é bastante grosseiro, e a análise da textura do rosto em fotos IV e RGB por uma rede neural permite refinar a profundidade e entender melhor detalhes como expressões faciais — tanto à luz do dia quanto no escuro.

Se este sistema parece familiar para você, provavelmente é porque ele foi diretamente extraído do Kinect do Xbox 360. Só que aquele Kinect era um trambolho enorme, e aqui ele foi reduzido ao tamanho de um recorte na tela de um smartphone.

Isso foi feito pela empresa PrimeSense, que desenvolveu as tecnologias na base do Kinect 1 — e depois foi comprada pela Apple por 350 milhões de dólares. Inteira — com todas as patentes, desenvolvimentos, funcionários e outras entranhas.

Analisando as entranhas do projetor

Vamos mais fundo na engenharia reversa: removemos o projetor de pontos do bloco de câmeras do iPhone X e o desmontamos em partes constituintes. Ele consiste em um cabo FPC, um conjunto emissor e um conjunto óptico.

O cabo é totalmente passivo e, portanto, pouco interessante. Ele é soldado ao conjunto emissor e envia sinais para o conector FPC, que se conecta à placa-mãe do iPhone X. O conector tem um espaçamento de contato de 0,35 mm, é personalizado (a Apple é sacana) e parece ter sido feito pela empresa JAE.

Vamos dar uma olhada nos principais componentes da óptica:

Projetor em corte transversal: foto daqui, legendas minhas

E vamos ver o que está dentro do emissor:

E o papel do MOSFET e do chip misterioso me interessou. Por quê? Porque não está claro o que eles estão fazendo lá.

A primeira opção óbvia — o chip misterioso é uma memória para o número de série e dados de calibração. O chip tem uma interface I2C típica para memória, e a memória dentro definitivamente existe. Os projetores têm números de série, pelos quais você pode determinar até mesmo a data de fabricação — e se o projetor for substituído completamente, o iPhone verá uma incompatibilidade no número de série e se recusará a funcionar com a substituição. Mas o EEPROM I2C mais comum vem em um minúsculo encapsulamento WLCSP-4 — e pode até mesmo ser bloqueado contra regravação, se você realmente quiser. Portanto, o chip não pode ser apenas uma memória. Ele definitivamente faz algo mais.

Pinagem do projetor de mestres chineses da JCID. As legendas são tortas, mas geralmente concordam.

A segunda opção óbvia — o chip misterioso é um driver de laser, e o MOSFET é sua chave. E sim, o MOSFET é realmente controlado pelo chip. Só que o chip também não pode ser algo tão crítico como um driver de laser.

Primeiro, o MOSFET está em uma interrupção do cátodo comum do conjunto de laser — e 4 ânodos separados saem diretamente para o cabo e seguem para as profundezas da placa de circuito multicamadas do iPhone. E em segundo lugar, ao longo da coleta de dados para engenharia reversa, me deparei com várias instruções de técnicos de reparo chineses.

MOSFET substituído por um fio limpo

Eles não esclareceram diretamente a essência da questão, mas muitas dessas instruções diziam: para reparar um projetor “quebrado”, você precisa desmontá-lo, remover o MOSFET e substituí-lo por um jumper entre o dreno e a fonte. O projetor acabará funcionando com um jumper dentro, e a funcionalidade do FaceID será restaurada. E como o projetor com um jumper no lugar do MOSFET funciona normalmente, o que esse MOSFET estava fazendo lá?

E então me ocorreu: essa era a essência do reparo. O MOSFET é controlado pelo chip – portanto, a pedido do chip, ele pode interromper o circuito de alimentação do laser e, assim, quebrar o projetor. E este reparo elimina essa interrupção.

O que o meu nome tem a ver com isso

Uma vez que ficou claro que o chip misterioso em conjunto com o MOSFET interfere no funcionamento normal do projetor, surge a pergunta — por que ele faz isso? Por que um chip que mata o projetor é colocado no projetor?

Em busca de respostas, fui para o firmware do bloco ISP no processador do iPhone — é ele quem se comunica via I2C com os sensores da câmera e com o projetor.

Primeiro, baixei a imagem do firmware iOS 15 para iPhone X, fresquinho. As imagens de firmware para iPhone são essencialmente arquivos zip. Lá dentro encontrei o firmware ISP desejado — na forma do arquivo Firmwareisp_bniadc-nike-d22.im4p. Um binário foi extraído do arquivo im4p compactado, no formato Mach-O com código AArch64 dentro. Mach-O, ao contrário de uma típica “imagem de firmware para um microcontrolador desconhecido” — é um formato de arquivo executável documentado, semelhante a PE ou ELF. Não há adivinhação sobre a estrutura do arquivo, a arquitetura do processador ou o endereço para o qual o código precisa ser carregado. Basta jogar o arquivo no Ghidra e tudo se organiza. Agradável.

Então o instinto falou mais alto, e decidi vasculhar firmwares mais antigos. E na imagem de firmware do iOS 13 encontrei o arquivo adc-nike-d22. Até o tamanho era quase o mesmo. Só que no firmware mais recente havia mais código — e no firmware antigo havia menos código, mas havia símbolos. Todos os nomes das funções no lugar. Sempre verifique as versões antigas!

O firmware ISP tem muita informação, incluindo como o iPhone se comunica via I2C com diferentes chips — com sensores de câmera, com PMU de câmeras, com chips de controle de flash e foco automático. De lá também, graças aos símbolos, foi possível extrair os “nomes” de diferentes partes constituintes do sistema — e parte deles se correlaciona com materiais de outras partes do firmware, bem como de outros engenheiros reversos e técnicos de reparo. Por exemplo, o sensor da câmera IV — é o STMicroelectronics VD56G0 “Savage”. Todo o sistema TrueDepth no código é chamado de “Pearl”, e seus módulos principais recebem os nomes de personagens de “Romeu e Julieta”. O projetor IV é chamado de “Romeo”, a câmera IV — “Juliet”, e a iluminação IV é chamada de “Rosaline”. O driver de laser, que reside na placa-mãe do iPhone e alimenta tanto os lasers dentro de “Romeo” quanto o laser dentro da iluminação “Rosaline”, é chamado de “Rigel“.

O chip misterioso que nos interessa? Ele também tem um nome. No código ele é chamado de “MamaBear”, abreviadamente “MB”, e parece que sua funcionalidade é bem simples. Ele vive no barramento I2C. Ele armazena dados OTP nele, incluindo o número de série e várias calibrações. Ele liga e desliga o MOSFET sob comando. E ele também mede… capacitância? Não temperatura, ele não está conectado a um termistor NTC, mas sim capacitância. Mas a capacitância de quê?

A trágica morte de Romeu

A resposta a esta pergunta é novamente ajudada por diagramas chineses. No diagrama da JCID, pode-se ver que no módulo “Romeo” existem três contatos para conectar o conjunto emissor ao conjunto óptico. Um — terra, e os outros dois vão diretamente para o chip “MamaBear”. Esses contatos passam por um adaptador especial na lateral do conjunto óptico e chegam ao topo — ao elemento óptico difrativo.

O divisor de feixe difrativo não é controlável e não reage à corrente. Mas tem capacitância. E com a ajuda dessas três linhas, essa capacitância pode ser medida. Mas para quê?

A questão é o quão importante é este divisor difrativo. O padrão de pontos usado pelo projetor é definido pela localização de minúsculos lasers-“covinhas” no cristal VСSEL. E então este padrão é multiplicado por um elemento difrativo, que faz centenas de feixes de luz a partir de um feixe de luz.

Comparação da localização dos lasers do ânodo “SPARSE” e dos pontos projetados

E o que acontecerá se este elemento difrativo for arrancado?

Os feixes não serão divididos. Em vez de centenas de feixes de laser, haverá um feixe — mas cem vezes mais potente. E ainda é um laser. Um laser infravermelho é mais perigoso do que um vermelho, porque uma pessoa não o vê — e, portanto, não desviará instintivamente o olhar mesmo de uma fonte de luz perigosamente potente. E há uma chance não nula de que o padrão característico de pontos acabe queimado na retina do usuário.

Para evitar isso, o chip assassino é necessário. Após a ativação, ele monitora constantemente a capacitância do elemento difrativo — e se o elemento for arrancado ou danificado, a capacitância sai dos limites permitidos, e o chip desliga imediatamente o MOSFET e interrompe a alimentação do VCSEL. E como o elemento está localizado no topo do conjunto óptico, é quase impossível danificar o resto do conjunto com um impacto sem quebrá-lo e sem interromper o contato.

Após o desligamento de emergência do laser, o chip grava um flag OTP para si mesmo, que designa o projetor como defeituoso — o que significa que a alimentação interrompida permanecerá interrompida para sempre. Nenhum comando do ISP terá mais poder sobre ele. O MOSFET estará sempre fechado e o projetor nunca mais funcionará.

O chip “MamaBear”, como o nome sugere – é um chip de proteção. É um “killswitch” para parada de emergência do laser. Ele mata o projetor para evitar que um dispositivo a laser danificado brilhe nos olhos do usuário. E o módulo “Juliet”, ficando sem seu “Romeo” emparelhado, perde o sentido da vida — e todo o sistema TrueDepth se torna inútil.

Dias de trabalho dos tecnossacerdotes

Mas este esquema de proteção tem uma falha. O fato é que o projetor de pontos está localizado na borda superior do dispositivo e próximo ao alto-falante. Se líquido entrar no iPhone, um dos lugares mais comuns para isso é justamente ali. E os sensores capacitivos são sensíveis a líquidos condutores de corrente. Portanto, muitas vezes acontece que o FaceID quebra após a queda do dispositivo na água — mesmo que a entrada de água seja mínima e não haja outros danos. Simplesmente “Romeo” entendeu mal a situação e cometeu uma “Roskomnadzor” à toa.

Tais dispositivos são levados para reparo. Muitas vezes para reparos não oficiais. E como o iPhone verifica os números de série das peças de reposição (olá, Apple), simplesmente trocar todo o bloco de câmeras por um bloco funcional de um doador é impossível. O telefone rejeitará o novo bloco e o FaceID ainda não funcionará. Isso significa que é preciso de alguma forma consertar o antigo. Mas como você pode “ressuscitar” um projetor que se desativou intencionalmente?

Os fabricantes de ferramentas não oficiais para reparo inventaram toda uma série de rituais diferentes para isso. E os tecnossacerdotes-reparadores de mãos habilidosas os seguem religiosamente e realizam microcirurgia neste sistema óptico complexo e calibrado. A habilidade das mãos precisa ser inacreditável — os componentes internos têm o tamanho de poucos milímetros, e a óptica é extremamente sensível. Se a calibração se desviar muito devido a intervenções cirúrgicas, o sistema não funcionará. Não existem ferramentas para recalibração de software (olá, Apple) — ou você encontra uma maneira de entrar nos parâmetros originais, ou fica sem FaceID.

Programador de “alta tensão”

Como isso funciona? Bem, a primeira coisa a fazer é ler os dados OTP do chip “MamaBear” original.

Os dados são legíveis mesmo que o projetor se considere defeituoso. Para leitura de dados, os chineses fazem programadores “de reparo” especiais — que vêm com conjuntos de conectores-adaptadores e funcionam com toda uma série de componentes diferentes de diferentes modelos de iPhone, incluindo projetores.

E então você precisa fazer duas coisas — lidar com o MOSFET que interrompe a alimentação e substituir o chip de proteção original. E existem muitos métodos diferentes aqui.

Cabo com chip de “engano”

Você pode, por exemplo, colocar um jumper no lugar do MOSFET, como na foto acima no artigo, e substituir o chip “MamaBear”, dessoldando o cabo FPC original e substituindo-o por um cabo especial com um chip de engano chinês.

O chip “MamaBear” original pode permanecer dentro e gritar impotentemente que o projetor não deve funcionar de forma alguma. Mas ele não tem mais um MOSFET para desligar o projetor à força, e o iPhone, por sua vez, vê apenas o chip chinês — que envia uma cópia programada dos dados originais e informa que o projetor está exatamente-exatamente исправен.

Raspando as entranhas antigas e colocando novas

Ou você pode arrancar o chip “MamaBear” inteiro e colocar uma substituição chinesa dois-em-um em seu lugar padrão — ele também fecha os contatos MOSFET e envia uma cópia dos dados OTP para o telefone.

Placa de transição com chip de engano

Bem, e existe uma opção com o mínimo de solda. Um “adaptador” com um chip de engano, que é colocado entre o cabo original e a placa-mãe do iPhone.

Ele não resolve o problema com o MOSFET, mas os chineses também encontraram uma abordagem original para ele, fazendo programadores de “alta tensão”.

Você sabe como vários ATtinys podem ser “desbrickados” e regravados usando um programador especial de alta tensão? Aqui a situação é bem diferente. O programador de alta tensão chinês “programa” brutal e irreversivelmente o MOSFET dentro do projetor em um curto-circuito entre o dreno e a fonte.

Na última etapa do reparo, conectamos o projetor ao programador novamente e carregamos o dump salvo na primeira etapa nele. E o projetor está pronto para funcionar, se passando por original e não modificado.

Todos esses diferentes dispositivos são feitos e promovidos por diferentes vendedores de equipamentos de reparo. Todos os tipos de chips de engano funcionam apenas com programadores “nativos”, e os programadores geralmente têm recursos DRM, como vinculação a uma conta e um número limitado de “reparos”, para cujo reabastecimento você precisa pagar.

Os reparadores sabem que com seu reparo eles destroem completamente o sistema inventado pela Apple para proteger os olhos do usuário? Na verdade não. Eles não são engenheiros reversos — eles são xamãs. Eles não entendem os princípios de funcionamento. Eles têm rituais e têm resultados, e isso é o suficiente para eles. E os engenheiros reversos astutos da China relutam em compartilhar seus segredos com o público. O que eu descrevi neste artigo é conhecido na íntegra apenas pelos engenheiros da Apple e por uma dezena de chineses “por dentro”. E por mim. E por você, agora.

Por que a Apple é escrota

Sabe, não posso culpar muito os engenheiros da Apple pelo fato de seu “killswitch” ser muito ativo e quebrar projetores que ainda poderiam funcionar. Lasers são um assunto perigoso, e a ideia de proteger o usuário dos “piores cenários” é absolutamente sensata. Embora a implementação desta proteção exija melhorias.

Mas a política da Apple de combate a reparos não oficiais — é o pior de todos os males. Se os blocos TrueDepth pudessem ser trocados livremente de dispositivo para dispositivo, sem levar em conta os números de série, então não haveria praticamente nenhum sentido nos rituais de reparo horríveis e distorcidos. Por que se contorcer com solda microcirúrgica e dançar com programadores, se você pode remover um bloco TrueDepth absolutamente funcional de outro “doador” com tela quebrada, colocá-lo no telefone do cliente, restaurar totalmente a funcionalidade e viver em paz? Seria mais fácil para os técnicos de reparo e mais seguro para os proprietários dos dispositivos.

Mas a história do comportamento escroto e anti-reparo da Apple mostra claramente que isso não vai acontecer. Bem, a menos que nos EUA ou na UE todos os tipos de movimentos “Right to Repair” tornem a vinculação de peças de reposição por números de série ilegal. E isso é possível agora. Na piada de que a União Europeia adiciona mais recursos úteis aos novos modelos de iPhone do que a Apple, há uma grande dose de verdade. Então vamos ficar de olho nas iniciativas legislativas.

Artigo traduzido do russo. Autor do artigo: acc0unt. Tentamos preservar o estilo original e as formulações do autor, tanto quanto possível na tradução.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *