기록

[GPT가 알려주는] FCM mismatch란? 본문

잡동사니/GPT가 알려주는

[GPT가 알려주는] FCM mismatch란?

heylo 2025. 12. 8. 19:11

좋아, **FCM mismatch(Framework Compatibility Matrix mismatch)**를 아주 쉽게, 너가 지금 작업 중인 Telechips Android 빌드 맥락에 맞게 설명해줄게.


🔥 FCM mismatch란?

Android 시스템이 “framework 쪽 요구사항”과 “device/vendor 쪽 선언”이 서로 맞지 않는 상황을 말해.

즉,

  • framework(시스템): 이런 HAL들이 있어야 한다고 요구함
  • device/vendor manifest: 실제로 포함된 HAL 목록
  • 둘의 목록이 서로 안 맞음 → mismatch 발생

그래서 빌드를 막아버리는 오류야.


📌 왜 이런 제도가 생겼냐?

Android는 Vendor(SoC 제조사) / Device 제조사 / Google(Android Framework)이 함께 돌아가는 구조라서

  • Vendor가 HAL을 아무렇게나 넣거나 빼면 시스템이 망가질 수 있음
  • Framework이 요구하는 HAL을 Vendor가 안 넣어도 부팅 불가
  • Vendor가 새로운 HAL을 추가해도 Framework이 모르기 때문에 검증 필요

그래서 Google이 “VINTF(Vendor Interface)” 규칙이라는 안전장치를 만든 거야.


📌 FCM mismatch가 터지는 상황 예시 (지금 너 상황)

지금 DDS HAL을 넣으면서 이렇게 됨:


✔ device/vendor manifest:

ivi.system.ccs.dds.ipc@1.0::IDDS/default

vendor 가 HAL 하나 추가한 것


✖ framework matrix에 없음

framework matrix(FCM)는 시스템이 요구하는 HAL 목록을 정의하는 파일이야.

여기에는 기본적으로 Google HAL들만 있음:

예)

  • android.hardware.power
  • android.hardware.usb
  • android.hardware.wifi

하지만 너가 넣은 DDS HAL은 system/framework이 모르는 HAL이므로 FCM에서 찾아보면 없음 → mismatch!


🤯 그래서 빌드 오류가 이렇게 나는 것:

The following instances are in the device manifest but not specified in framework compatibility matrix:
    ivi.system.ccs.dds.ipc@1.0::IDDS/default

Framework이 말하는 거:

“야, vendor 너는 DDS HAL 넣었다는데
나는 이 HAL 모른다???
framework compatibility matrix에 선언해줘!!”


📌 해결 방법

Vendor에서 HAL을 추가했으면

framework compatibility matrix에 "이 HAL 있어요"라고 알려줘야 함
✔ 그게 바로 vendor용 FCM 파일 만들고
✔ device.mk 에 등록하는 이유야.

파일 내용은 이런 형태:

<compatibility-matrix version="1.0" type="framework">
    <hal format="hidl">
        <name>ivi.system.ccs.dds.ipc</name>
        <version>1.0</version>
        <interface>
            <name>IDDS</name>
            <instance>default</instance>
        </interface>
    </hal>
</compatibility-matrix>

🔥 한 줄 요약

FCM mismatch = vendor manifest(HAL 목록)와 framework matrix(HAL 요구사항)가 서로 불일치해서 나는 에러.

추가한 DDS HAL을 framework compatibility matrix에 등록하면 해결됨.


원하면
👉 FCM / DM / VINTF 전체 구조를 Telechips Android 기준으로 그림으로 정리해줄까?