stdio


Random ramblings of a anonymous software engineer. Contains occasional profanity. Personal opinions, not related to employer.


차량용 블랙박스의 정체

아래 내용은 전부 대충 들여다 본 결과 나온 추정들이다. "분석"이라고 하기에도 민망한 작업에 사용한 툴은 Hex Fiend로, 귀찮아서 실제로 IDA에 태워보지는 않아 그냥 추정이라는것을 미리 밝혀야 오해가 없을 듯 하여, 우선 이렇게 밝힌다. 월급쟁이가 월요일 출근을 생각하며 오는 정신적인 프레셔를 이겨내기 위해 그냥 타임 킬링한 결과의 부산물로, 크게 의미는 두지 않았으면 한다.

아버지 차 앞 범퍼를 누가 긁고 가서 영상을 보겠다고 난리를 치셔서 귀찮음을 감수하고 세팅해드린다고 나른한 오후를 태워버렸다. (보는 방법도 모르는데 블랙박스 달고 다니면 무슨 의미가 있는지는 모르겠지만, 어쨋거나) 딱히 할일도 없어, 복날 똥개 훈련급 회원가입 및 정품 인증 절차를 마친김에 펌웨어를 다운받아 분해.

(잡설: 아이나비때도 느꼈지만, 내비게이션 회사들 홈페이지는 욕이 나올 정도로 못 만들었고 "정품 등록"에 대한 편집증은 사람을 매우 피곤하게 한다. 이것 때문에 지하 주차장에 다녀오는 수고를 해야했다.)

Automotive라 Freescale이거나 카메라니까 Ambarella나 둘 중 하나 쓰겠지라고 생각했는데, 의외의 물건이 안에 들어있었다. Core Logic이라는 들어보지도 못한 회사의 IP를 사용하고 있었는데, 좀 더 조사해보니 아이나비도 이걸 사용한다. 이에 대해서 추가적인 내용은 아래에. (기억을 더듬어보니, 이전에 삼성동에 출퇴근하던 시절에 지나가면서 괴상하게 입지가 좋은 곳에 [도심공항타워 맞은편] 이름도 들어보지 못한 회사가 있어 "뭘까" 했던 기억이 떠올랐다. 지금은 경기도로 이사간 듯.)

사용하고 있는 제품은 다본다 히든 II 라는 90년대스러운 작명 센스의 제품이나, 실제로 펌웨어를 뜯어본 제품은 II가 아닌 그냥 다본다 히든 라는 제품의 펌웨어이다. 별로 차이는 없지 않을까 싶다. 내용을 뜯어본 결과, 여러가지 공개 라이브러리를 사용하는것으로 보였으나, 확실히 리눅스는 아니었다.

해당 제품에 탑재되어 있는 추정 하드웨어는 아래와 같다. (이건 어디까지나 소프트웨어 분석에 의한 정보이며, 직접 뜯어보지 않았기 때문에 정확하지는 않다.)

SoC: http://www.corelogic.co.kr/eng/application/product.php?idx=84
Camera: https://www.aptina.com/products/soc/mt9m114/

흥미로운 것은 Core Logic에서 RTOS를 공급한다는것이고, 슬쩍 들여다 본 결과 실제로 운영체제는 국내 임베디드 업계의 약방 감초와 같은 마당쇠의 NEOS의 변종으로 보인다. 적어도 분석한 제품은 그것을 사용한다는것인데, 운영체제를 만들겠다고 空約을 날리고 애매하게 산으로 가버린 T모사보다는 건전하다고 할 수 있다.

게다가 OS에서 NxFS라는 자체 파일 시스템을 사용하는데, 사용하는 이유는 정확히 모르겠다. (가장 유력한 이유는 MTD 최적화된 공개 파일 시스템을 사용하면 GPL 위반 영역으로 들어가고, 타 커널에서 뜯어내면서 의존성을 풀어주기 위한 수고를 피하기 위함의 복합적인 요인이 아닐까 추측된다.) Core Logic사에서 공개 정보가 많지 않아서 일단은 조사가 조금 어려운 상황. 공개 소스를 발견해서 그걸 참고하여 취지를 알아내려 하였으나, 소스의 양이 너무나 방대하여 일단은 나중으로 보류.

이 자체 파일 시스템은 취지상으로는 어떤지 모르겠으나, 부작용으로 윈도우 사용자가 아니면 블랙박스 내용을 열어볼 수 없다는 치명적인 문제가 있다. 게다가 FUSE 플러그인이라든지 공개되어 있는 것이 없다는게 더 큰 문제. 이 부분에 대해서는 나중에 시간이 더 나면 일단 한번 다시 들여다 볼 생각이다. (16기가짜리 SD카드 덤프를 헥스 에디터로 들여다보는건 시간도 걸리는지라, 할 일이 매우 없는 날을 위해 아껴두는거다.)

추가적으로 재미있는 사실은 MT9M114는 웹캠용으로 많이 사용되는 것 같다는 것 정도.

펌웨어 내용물:

  • CLBOOT.SYS
  • lucy_fw_2nd_boot.bin
  • lucy_fw_eboot.bin
  • lucy_fw_etc.bin
  • lucy_fw_main.bin
  • lucy_fw_minfo.bin

펌웨어 중에서 CLBOOT.SYS와 lucy_fw_main.bin이 실제 실행되는 코드의 대부분을 차지하고 있고 (CLBOOT.SYS는 느낌상 OS와 시스템 라이브러리 등으로 보이고, lucyfwmain.bin은 리눅스로 따지면 userland로 보인다. 실제로 RTOS에는 userland의 구분이 명확히 없고 watchdog이 유일한 법인 춘추전국시대이지만, 어쨋거나.) lucy_fw_etc.bin은 리소스가 들어가 있는 "파티션" 같은 느낌으로 보인다. OS 상에서 R드라이브로 매핑이 되는것으로 보인다. eboot, 2nd_boot는 아마도 부트로더나 그런 류가 아닐까 싶다. 자세히 보지는 않았으나 경험상 eboot가 모포 깔고 2nd_boot가 고스톱 치는 그런 느낌이 아닐까 싶다. minfo는 정체불명.

조금 찾아보니, 다본다 히든과 하드웨어/소프트웨어상 유사품이 하나 있는데, 전혀 관련이 없는 제조사의 아이나비 BLACK CLAIR2라는 제품이다. 같은 플랫폼 기반이고, 슬쩍 본 결과 상당히 많은 부분이 겹친다. 아마도 Core Logic에서 준턴키 솔루션으로 공급을 하고, 개별 제조사에서 BSP를 받아서 상품화와 마케팅을 하는 형태인듯 하다. Mediatek이나 Ambarella의 모델과 유사하나 국내 위주로만 하는 것 같다. 찾아보니 국내 업체에서 같은 하드웨어로 GoPro 유사품을 만든 사례도 있었다. (해외에서 Core Logic 플랫폼을 사용하는 사례를 찾을 수가 없었다.)

TL:DR; 요약: 블랙박스라고 파는 제품은 사실상 코어 소프트웨어는 같으며, RTOS가 돌고 있는 ARM9 코어에 하드웨어 인코더가 박힌 비상식적인 권장소비자가를 요구하는 USB 웹캠이다.

(다본다 히든 II 공식 판매가가 33만9천원이다. MT9M114는 단가가 6불 정도이다. RK3168 같이 1080p 인코딩이 가능한 Cortex-A9 듀얼칩이 낱개 가격으로 쳐도 화창베이에서 10불이 안된다는걸 감안한다면, 아무리 Core Logic IP가 비싸다고 해도 제조사에서 단가 만원 이상 지불할 가능성은 적다고 생각되다. Fabbing등이랑 R&D를 감안해도 꽤나 마진율이 높은 물건이다.)

(일본에서 아직도 Super-H와 ALP의 화려한 잘라파고스 조합을 사용하는 것을 욕하고 다녔는데, 한국 블랙박스 시장도 비슷한 양상을 보이고 있다는 사실에 살짝 충격.)