아이폰subinfo 서비스 연구

4162 단어

아이폰subinfo 관련 연구


개요: PhoneApp이 시작될 때 PhoneGlobals가 구축되고, PhoneGlobals가 구축될 때 PhoneFactory가 호출됩니다.makeDefaultPhones는 Phone 대상을 구축하는 동시에 ProxyController를 초기화하고 ProxyController는 PhoneSubInfoController를 구성합니다.
PhoneSubInfoController가 바로 본고의 주역이다. 이것은 서비스 아이폰subinfo의 실현자이며, PhoneSubInfoController가 창설될 때 Service Manager를 통해 아이폰subinfo 서비스의 binder 인터페이스를 시스템 서비스에 추가했다.
전반적으로 말하면 아이폰subinfo 서비스는SIM카드 정보 조회를 제공하는 인터페이스이다.

서비스의 주요 책임


서비스는 주로 SIM카드 정보를 대외적으로 제공하는 조회 기능으로 deviceId(IMEI for GSM),nai(공백 가능),imei,deviceSvn(IMEI/SV for GSM),SubscriberId(IMSI for GSM),IccId,Line 1Number(전화번호),Msisdn,Voice Mail Number,Complete Voice Mail Number,Isim 정보,Usim 정보를 포함하고 이에 국한되지 않는다.
다음은 주로 GSM 유형의 휴대전화에 대해 분석한다.

deviceId 디바이스 고유 ID


즉,SIM카드 슬롯의 IMEI 코드이고 CDMA 핸드폰에는 MEID 코드입니다.모든 카드 슬롯에는 IMEI 코드가 있고 카드를 바꾸는 IMEI는 변하지 않습니다.

NAI 액세스 포인트 네트워크 네트워크 네트워크 액세스 ID


NAI의 전칭은 Network Access Identifier로 접속점 네트워크를 위해 휴대전화는 NAI를 통해 인터넷에 접속한다.사용자는 모바일 터미널을 통해 서로 다른 NAI를 선택하면 서로 다른 네트워크 접속 방식을 실현할 수 있고 서로 다른 업무에 접근할 수 있다.
현재 중국 전신의 주요 NAI는 CTNET, CTWAP이다.

IMEI GSM 휴대폰의 장치 고유 식별 코드


설정이 없으면 비어 있을 수 있습니다.이 코드는 GSM을 지원하는 휴대전화에 모두 설정된다.

DeviceSvn IMEI/SV


핸드폰SIM카드 슬롯의 소프트웨어 버전 번호, 예를 들어 IMEI/SV;각 슬롯마다 IMEI/SV

SubscriberId 유일한 SubscriberId


SIM카드의 유일한 구독 ID입니다. GSM에서는 IMEI 코드입니다.

ICCID는 일련의 십진수와 일련의 십진수로 구성되어 있다


iccId는 16진수 문자를 포함하지 않는 iccId이고 fullIccId는 16진수를 포함하는 iccId입니다.

라인 넘버 핸드폰 번호


라인넘버는 카드의 휴대전화 번호를 표시하는데 GSm카드에서는 MSIDN, CDMA카드에서는 MDN이다.

MSIDN


GSM카드에서는 라인 넘버의 값과 같은 휴대전화 번호입니다.CDMA 카드는 독립된 MSIDN 코드입니다.따라서 MSIDN 코드가 필요하면 CDMA 카드에서 이 인터페이스를 통해 얻을 수 있습니다.

VoiceMailNumber 음성 사서함


음성사서함

Complete Voice Mail Number 전체 음성 사서함


네트워크 섹션 포함

ISIM (IMS Subscriber Identity Module)


멀티미디어 업무 신분 모듈
  • IMPI(IMS private user identity) IMS 서비스의 개인 사용자 id
  • Domain(IMS home network domain name) IMS 서비스 네트워크의 도메인 이름
  • IMPU(an array of IMS public user identities) 그룹의 사용자 id
  • IST(IMS Service Table) IMS 서비스 매트릭스
  • PCSCF(IMS Proxy Call Session Control Function) IMS 프록시 콜 세션 제어 기능
  • Challenge Response(the response of ISIM Authetification through RIL) ISIM이 RIL을 통해 검증한 결과
  • (MTK 추가) GBABP(GBA bootstrapping parameters) GBA 부트 매개변수
  • (MTK 추가) PSISMSC(the Public Service Identity of the SM-SC) SM-SC의 공공 서비스 id
  • USIM(Universal Subscriber Identity Module)


    공통 비즈니스 ID 모듈
  • getUsim 서비스(int 서비스, String calling Package) 서비스가 사용 가능한지 여부입니다. 전송된 서비스는 프레임워크/opt/telephony/src/java/com/android/internal/telephony/uicc/Usim Service Table입니다.java표에 열거된 색인 값입니다.
  • Gbabp(GBA bootstrapping parameters) GBA 부팅 매개변수
  • PSISMSC(the Public Service Identity of the SM-SC) SM-SC의 공공 서비스 id
  • SMSP Short Information Center
  • MNC 모바일 네트 번호
  • 서비스 호출


    다음은 호출 서비스의 예이다
            IPhoneSubInfo iPhoneSubInfo = IPhoneSubInfo.Stub.asInterface(ServiceManager.getService("iphonesubinfo"));
            try {
                android.util.Log.d("Seven", "My package name: " + getPackageName());
                String number = iPhoneSubInfo.getLine1NumberForSubscriber(
                        SubscriptionManager.getDefaultSubId(),
                        getPackageName()
                );
                android.util.Log.d("Seven", "My default phone number is: " + number);
            } catch (RemoteException e) {
                e.printStackTrace();
            }
    

    이 서비스는 System Service에 등록되지 않았기 때문에 시스템 컴파일에 의존하지 않는 제3자 응용 프로그램에서는 이 서비스에 직접 접근할 수 없습니다.ServiceManager를 통해서만 사용할 수 있기 때문입니다.Binder 인터페이스를 getService()로 가져옵니다.
    또 하나 설명해야 할 것은sim카드가 휴대전화에 꽂히면 데이터베이스에 Subscription 기록이 생성되고subId가 바로 이 기록의 ID이다.모든 휴대전화 카드의subId는 유일하며, 휴대전화 카드를 뽑아도 이 기록은 계속 존재한다.

    slotId, 아이폰Id,subId 관계


    slotId와 아이폰Id가 일일이 대응하고 2개의 슬롯이 있다고 가정하면 slotId는 0, 1이다.카드 슬롯 1의 아이폰Id는 0이고, 카드 슬롯 2의 아이폰Id는 1이다.
    하나의 슬롯은 여러 개의subId에 대응한다. 왜냐하면 이 슬롯은 여러 장의 다른 카드를 꽂은 적이 있기 때문이다.
    그래서 우리는 아이폰Id를 통해subId를 조회할 수 있다.

    좋은 웹페이지 즐겨찾기