본문 바로가기

새소식/iOS

홈팟 펌웨어에서 엿보는 10주년 아이폰

* 출처: iDropNews

지난 28일(현지 시각)에 WWDC에서 선보인 애플의 스마트 스피커 홈팟을 구동할 펌웨어가 (애플의 실수로?) 서버에 배포됐습니다. 홈팟의 운영체제는 iOS와 대부분 공유하는 것으로 보이며, 버전 번호가 11.0.2이고, 빌드 번호는 15C25입니다. (현재 개발자에게 배포된 iOS 11 베타 4의 빌드 번호가 15A5327g입니다)

* 홈팟의 펌웨어가 애플의 OTA 서버 데이터를 파싱하는 IPSW Downloads에 뜬 상황.

어떤 경위에서 홈팟의 펌웨어가 일찍 배포됐는지는 알 수 없습니다. 심지어 일반 배포라 홈팟 하드웨어를 가지고 있었더라면 자유롭게 내려받을 수 있었을 겁니다. 많은 개발자들이 이 펌웨어를 내려받아 이리저리 뜯어보기 시작했는데요, 여기서 의외로 아직 공개되려면 한 달 넘게 남은 10주년 아이폰에 대한 힌트가 여러 가지 공개돼버렸습니다. 아무래도 iOS 기반이다 보니 아직 공개되지 않은 iOS 11 빌드에 있었던 애셋이 같이 유출돼버린 것이겠죠.

일단 예전부터 루머가 돌았던 얼굴 인식입니다. 홈팟의 펌웨어에는 관련 코드가 무더기로 발견됐습니다. 일단 애플은 기존의 터치 ID와 얼굴 인식 기능 등을 묶어 ‘바이오메트릭키트(BiometricKit)’이라는 새로운 API로 묶을 것으로 보입니다. 얼굴인식도 터치 ID 수준의 보안 기능을 가지게 될 것이라는 뜻입니다. 이 부분은 당연히 예상됐던 부분이기도 합니다.

* 사진: Steve T-S

바이오메트릭키트에서 얼굴 인식의 상태 확인을 담당하는 BKFaceDetectStateInfo 클래스를 보면 다양한 상태 확인 메소드가 보이는데요, 10주년 아이폰의 얼굴 인식 기능이 사진만으로 뚫리는 경쟁 업체의 것과 비교해 상당히 진보했음을 확인할 수 있습니다. 카메라에서 가깝거나 너무 멀 때 사용자에게 알려주는 것(tooCloseToCamera, tooFarFromCamera)은 물론이고, 여러 개의 얼굴이 보이는 상황을 인식하거나(multipleFaces), 역광 상황을 인지할 때(flare), 그리고 얼굴의 일부분만 보일 때(partiallyOutOfView) 등 다양한 상황을 인지합니다. 또한, 좌우 요동(yaw)과 상하 요동(pitch) 등을 인식하는 메소드가 또 있는 걸 보면 역시 3D 장면 인식 방식으로 동작하는 듯합니다. 

* 사진: Steve T-S

거기에 다른 클래스(BWFigVideoCaptureDevice)를 보면 애플의 얼굴 인식 기능은 저조도 상황에서는 적외선을 사용한다는 사실(pearlInfraredCaptureStream)도 확인할 수 있습니다. 몇달 전 블룸버그에서는 애플이 10주년 아이폰에서 터치 ID를 완전히 빼버리고 얼굴 인식 기능을 넣을 수 있다는 논조의 기사를 낸 적이 있지만, 이 코드는 그저 10주년 아이폰에 얼굴 인식 기능이 들어간다는 것일 뿐, 터치 ID를 뺄지는 아직도 미스터리입니다.

* 홈팟 펌웨어 안에 들어있는 10주년 아이폰의 아이콘

사실 이것보다 더 흥미로운 것은 바로 펌웨어 안에 10주년 아이폰을 표시하는 아이콘이 들어있다는 점입니다. 위에 센서와 페이스타임 카메라를 위한 부분을 제외하고 완전히 디스플레이로 채워진, 지금까지의 루머와 완전히 똑같은 모습입니다. 일단 외관은 이 모습으로 굳어진 모양새지만, 아직도 10주년 아이폰의 많은 부분은 베일에 가려져 있습니다. 이 부분이 밝혀지려면 9월이 되어야할 것으로 보입니다.

필자: 쿠도군 (KudoKun)

컴퓨터 공학과 출신이지만 글쓰기가 더 편한 변종입니다. 더기어의 인턴 기자로 활동했었으며, KudoCast의 호스트로도 활동하고 있습니다.


참조
iPhone 8 Infrared Face Detection and General Device Design Revealed in HomePod Firmware - 맥루머즈
Steve T-S (트위터)

관련 글
[루머] 최신 루머에 기반한 10주년 아이폰의 새로운 렌더링 등장
[루머] 2017년형 아이폰, 첫 부품 유출 시작
[루머] 10주년 아이폰, 3D 얼굴 인식으로 터치 ID 대체한다?