본문 바로가기
Android

eSIM 구현

by OKOK 2021. 6. 25.

https://source.android.com/devices/tech/connect/esim-overview#make-carrier-app

 

eSIM 구현

임베디드 SIM기술을 사용하여 휴대기기 사용자는 실물 SIM카드 없이 이동통신사 프로필으 다운로드하고 이동 통신사의 서비스를 활성화할 수 있음.

이동통신사 앱을 만들려는 모바일 네트워크 운영자는 downloadSubscription(), switchToSubscription() 및 deleteSubscription()과 같은 상위 수준의 프로필 관리 자겁을 제공하는 EuiccManager의 API를 살펴봐야 함. 

자체 LPA 시스템 앱을 만들려는 기기 OEM은 Android 프레임워크가 LPA 서비스에 연결되도록 EuiccService를 확장해야 함. 또한 GSMA RSP v2.0 기반의 ES10x 함수를 제공하는 EuiccCardManager의 API를 사용해야 함. 이러한 함수는 prepareDownload(), loadBoundProfilePackage(), retrieveNotificationList() 및 resetMemory()와 같은 명령어를 eUICC 칩에 실행하는 데 사용됨. EuiccManager의 API는 제대로 구현된 LPA 앱이 있어야 작동하며 EuiccCardManager API의 호출자는 LPA여야 함. 현재 심 인식이 되는 것 까지 되어 있으니 아키텍처는 완성된 것 아닌가.

 

이동통신사 앱 만들기

Android9의 eUICC API를 사용하면 모바일 네트워크 운영자가 이동통신사 브랜드의 앱을 만들어 프로필을 직접 관리할 수 있음. 이동통신사가 소유한 구독 프로필을 다운로드 및 삭제하고 이러한 프로필로 전화하는 등의 관리가 가능함. EuiccManager는 앱이 LPA와 상호작용하는 기본 진입점입니다. 여기에는 이동통신사가 소유한 구독을 다운로드 및 삭제하고 이러한 구독으로 전환하는 이동통시사 앱이 포함됨. 또한 삽입된 모든 구독을 한곳의 UI에서 관리할 수 있는 LUI시스템 앱이 포함됨. 이는 EuiccService를 제공하는 앱과는 별도의 앱일 수 있음. 공개 API를 사용하려면 먼저 이동통신사 앱에서 다음과 같이 COntext#getSystemServie를 통해 EuiccManager의 인스턴스를 가져와야 함. eSIM 작업을 실행하기 전에 기기에서 eSIM을 지원하는지 확인해야 함. android.hardware.telephony.euicc 기능이 정의되어 있고 LPA 패키지가 있다면 EuiccManager#isEnabled() 일반적으로 true를 반환합니다. downloadSubscription(), switchToSubscription()과 같은 많은 API는 완료하는 데 몇 초 또는 몇 분이 걸릴 수 있개 때문에 PendingIntent 콜백을 사용함. EuiccManager API와 코드 예의 전체 목록은 eUICC API에서 볼 수 있음. 

 

이동통신사 권한

EuiccManager를 호출하여 기기에 프로필을 다운로드하는 자체 이동통신사 앱을 개발하는 이동통신사라면 메타데이터의 이동통신사 앱에 상응하는 이동통신사 권한 규칙을 프로필에 포함해야 함. 

 

EuiccCardManager

eSIM칩과 통신하기 위한 인터페이스임. EuiccCardManager는 시스템 API이며 시스템 권한을 가진 앱에서만 호출할 수 있음. 

 

이동통신사 앱을 통해 eSIM 활성화

이동통신사 앱의 ICarrierEuiccProvisioningService 구현에 결합한 후 LPA는 getActivationCode 또는 getActiviationCodeForEid를 호출하여 IGetActivationCodeCallback 스터브 클래스의 구현을 전달함으로써 이동통신사 앱에서 활성화 코드를 가져옴. getActivaitonCode와 getActivationCodeForEid의 차이점은 바로 getActivationCodeForEid는 다우로드 프로세스가 시작되기 전에 이동통신사가 프로필을 기기의 EID에 미리 결합할 수 있도록 한다는 것임. 보안상의 이유로 LPA는 비 LPA호출자가 이동통신사 앱에서 활성화 코드를 가져올 수 없도록 결과 인텐트에 제공된 활성화 코드를 직접 받아서는 안됨.

'Android' 카테고리의 다른 글

eSIM  (0) 2021.07.12
adb 사용 예  (0) 2021.07.09
android-developer-phone-sms-course.pdf  (0) 2021.06.24
SL4A(Scripting Layer for Android) (2)  (0) 2021.06.23
SL4A(Scripting Layer for Android) (1)  (0) 2021.06.23

댓글