APN 및 CarrierConfig

이동통신사는 Android 오픈소스 프로젝트(AOSP)에서 액세스포인트 네임(APN) 정보와 이동통신사별 구성 설정(CarrierConfig)을 업데이트할 수 있습니다.

회사 이메일 주소를 사용하는 Google 계정

APN 정보나 CarrierConfig를 업데이트하려면 활성화된 회사 이메일 주소가 포함된 Google 계정을 사용하여 요청을 제출해야 합니다. 예를 들어 Acme Company의 APN 업데이트 요청은 foobar@acme.com과 같은 이메일 주소에서 제출되어야 합니다.

회사 이메일 주소에 연결되는 Google 계정이 없는 경우에는 브라우저의 모든 Gmail 계정에서 로그아웃(시크릿 창과 같은 시크릿 브라우징 기능을 사용하여 다른 계정과의 혼동을 피하는 것이 좋음)한 다음 회사 이메일 주소로 Google 계정을 생성하세요.

로컬 개발 환경 준비

전에 코드를 AOSP에 제출한 적이 없는 경우 빌드 환경을 초기화하고 도구를 익히며 패치 제출 방법을 이해해야 합니다.

또한 Google Issue Tracker를 사용하여 변경사항을 추적하는 것이 좋습니다.

버그 신고

  1. issuetracker.google.com으로 이동한 후 회사 이메일 주소를 사용하여 로그인합니다(회사 이메일 주소를 사용하는 Google 계정 참고).
  2. 로그인한 후에는 화면 왼쪽에서 Create issue를 클릭합니다.
  3. Component에서 Android Public Tracker > Framework를 선택합니다.
  4. 적절하게 APN update 또는 CarrierConfig update로 계속 진행하여 제목 및 설명을 입력합니다.

APN 버그

다음과 같이 버그 속성을 설정합니다.

Title: Add/Modify/Remove APNs for CarrierXYZ

Description: 요청한 변경사항에 관한 상세한 설명을 추가하고, 이때 APN 설정 자체를 포함합니다.

CarrierConfig 버그

다음과 같이 버그 속성을 설정합니다.

Title: Config changes for CarrierXYZ

Description: 요청한 변경사항에 관한 상세한 설명을 추가합니다.

변경사항 제출

변경 방법:

  1. 변경할 파일을 식별합니다.
  2. 파일을 변경합니다.
  3. 패치 제출 안내에 따라 로컬 저장소에 변경사항을 커밋하고, 이때 권장 형식을 비롯한 커밋 메시지 가이드라인에 유의합니다.
  4. 변경사항을 개인 기록에 커밋한 후에는 repo upload 명령어를 사용하여 Gerrit에 업로드합니다.
  5. 업로드에 성공하면 repo는 Gerrit의 새 페이지 URL을 제공합니다. 이 URL을 사용하여 다음을 실행할 수 있습니다.
    • 검토 서버에서 패치 확인
    • 의견 추가
    • 패치와 관련하여 특정 검토자를 요청

APN 구문

Android 프로젝트 이름 - 기기/샘플

파일 이름 - etc/apns-full-conf.xml(Google Git 마스터 링크)

파일은 XML 형식의 APN 설정을 포함하며 샘플 파일로 기능합니다. 따라서 Android 기기의 동작에는 변화가 없습니다.

일반적인 APN config은 다음과 같습니다.

<apn carrier="CarrierXYZ"
      mcc="123"
      mnc="123"
      apn="carrierxyz"
      type="default,supl,mms,ims,cbs"
      mmsc="http://mms.carrierxyz.com"
      mmsproxy="0.0.0.0"
      mmsport="80"
      bearer_bitmask="4|5|6|7|8|12"
/>

테스트

  1. 본인이 루트 액세스를 보유한 모든 Android 기기를 연결합니다.
  2. 설정을 /etc/apns-conf.xml에 추가합니다.
  3. APN 설정을 재설정합니다.
  4. APN 설정에서 프로필이 올바르게 로드되었는지 확인합니다.
  5. 각 프로필의 데이터 연결, Wi-Fi 핫스팟 및 MMS를 테스트하여 올바르게 작동하는지 확인합니다.

메시지 커밋

[Example - "Add CarrierXYZ apns to sample apns"]
Bug: [Issue ID from Google Issue Tracker]
Test: No change to behavior as this is only a sample file

샘플 CL

CL 예는 샘플 BICS APN을 참고하세요.

CarrierConfig 구문

프로젝트 이름 - platform/packages/apps/CarrierConfig

파일 이름 - assets/carrier_config_.xml(Google Git 마스터 링크)

관련 MCC/MNC tuple로 애셋 폴더의 관련 XML 파일을 식별합니다. 파일에는 XML 형식의 이동통신사 config 객체가 포함됩니다. 속성 이름은 CarrierConfigManager 아래의 키로 정의되며, 값 유형(int/string/bool)은 접미사로 표시됩니다.

일반적인 int/string/bool 속성은 다음과 같습니다.

<int name="vvm_port_number_int" value="5499" />
<string name="vvm_type_string">vvm_type_omtp</string >
<boolean name="vvm_cellular_data_required_bool" value="true" />

메시지 커밋

[Example - "Add VVM settings for CarrierXYZ"]

[Example - "Updated <mccmnc> carrier config file to include VVM settings
as defined by CarrierXYZ."]

Bug: [Issue ID from Google Issue Tracker]
Test: [Testing notes]

샘플 CL

CL 예는 업데이트된 이동통신사 구성 파일을 참고하세요.

검토 요청

검토 요청 방법:

  • 변경사항의 Gerrit URL로 이동한 후 android-carrier-config-review@google.com을 검토자로 추가합니다.
  • 본인의 Google 연락처를 Gerrit의 CC 목록에 추가할 수도 있습니다.
  • 추적을 위해 문제를 할당받는 대상을 android-carrier-config-review@google.com으로 변경할 수 있습니다.

제출한 내용이 검토 및 인증 프로세스를 거치고 나면 Gerrit은 자동으로 변경사항을 공개 저장소에 병합합니다. 다른 사용자는 repo sync 를 실행하여 업데이트를 로컬 클라이언트로 가져올 수 있습니다.