이동통신사 ID

Android 9를 실행하는 기기는 구독 이동통신사 정보를 인식하여 ID 및 이동통신사 이름을 제공할 수 있습니다. Android는 각 이동통신사와 고유한 이동통신사 ID의 매칭 규칙으로 이동통신사 ID 데이터베이스를 유지합니다. AOSP의 carrier_list.textpb 파일에는 이동통신사 ID 데이터베이스의 콘텐츠가 포함됩니다. 통합 데이터베이스는 이동통신사를 식별해야 하는 앱의 중복 로직을 최소화하고 이동통신사를 식별하는 속성의 노출을 제한합니다.

이동통신사 ID의 범위 및 정확성을 개선하기 위해 Android는 대역 외 업데이트 및 이동통신사 ID 테이블 업데이트를 지원합니다. 각 업데이트는 버전 번호와 함께 제공되며 AOSP에 게시됩니다.

구현

대역 외 업데이트를 구현하려는 사용자는 AOSP에서 carrier_list.pb 바이너리를 다운로드할 수 있습니다. 읽을 수 있는 테이블 형식을 보려면 carrier_list.textpb를 확인하세요.

이동통신사 ID 테이블을 기기의 /data/misc/carrierid/ 데이터 파티션에 배치합니다. 이동통신사 ID 테이블이 기존 버전보다 최신이면 기기는 테이블을 이동통신사 ID 데이터베이스 클래스에 유지합니다. 이동통신사 ID 데이터베이스의 최신 정보는 공개 메서드 getSimCarrierId()getSimCarrierIdName()을 통해 가져올 수 있습니다.

데이터베이스에 이동통신사 ID 정보 추가

이동통신사 ID를 데이터베이스에 추가하거나 업데이트하려면 이동통신사 ID 정보 양식을 사용하여 요청을 제출합니다.

요청이 검토 및 승인되면 변경사항이 carrier_list.pb의 ASOP 코드베이스로 푸시됩니다. 그러면 업데이트된 목록을 복사한 후 맞춤설정된 빌드에 통합할 수 있습니다.

CarrierConfig와 이동통신사 ID 통합

Android 10부터는 이동통신사 구성에서 이동통신사 ID를 키로 사용하여 CarrierService에서 이동통신사 관련 구성을 가져오도록 지원합니다.

이동통신사 ID를 CarrierConfig와 통합하면 다음과 같은 이점을 얻을 수 있습니다.

  • 각 이동통신사의 모든 MCC/MNC 쌍을 단일 위치로 통합하여 중복 또는 불일치 데이터를 삭제할 수 있습니다.
  • 각 이동통신사의 표준 식별자를 생성하여 모호함을 없앨 수 있습니다.
  • 구성을 MNO(Mobile Network Operator)의 일부로 보유하는 대신 개별 ID로 MVNO(Mobile Virtual Network Operator)를 식별할 수 있습니다.

구성 데이터를 이동통신사 ID로 이전

MCC/MNC 쌍의 구성 데이터를 이동통신사 ID로 이전하려면 아래의 단계를 따릅니다.

  1. 단일 이동통신사의 carrier_config_mccmnc.xml 파일을 함께 그룹화합니다. carrier_list.textpb를 참조로 사용하여 MCC, MNC 및 MVNO 정보를 특정 이동통신사에 매핑합니다.

  2. 구성을 단일 파일로 병합합니다.

  3. (선택사항) MNO의 데이터를 상속합니다. MVNO는 레거시 carrier_config_mccmnc.xml 파일에서 MNO의 구성을 상속합니다. 이동통신사 ID를 사용하면 MVNO를 포함한 모든 이동통신사가 전용 구성 파일을 보유할 수 있으므로 이전 도중에 MNO 데이터를 포함하는 것이 좋습니다.

  4. MVNO 이동통신사 ID의 구성이 존재하지 않으면 getCarrierIdFromSimMccMnc를 사용하여 MNO 이동통신사 ID에서 구성을 가져옵니다.

  5. 새 파일의 이름을 carrier_config_carrierid_carrierid_carriername.xml로 변경합니다. 여기서 carrieridcanonical_id와 일치해야 하며, carriernamecarrier_list.textpbcarrier_name과 일치해야 합니다.