โปรไฟล์ที่เปิดใช้หลายรายการ

สำหรับอุปกรณ์ที่ใช้ Android 13 ขึ้นไป Android จะรองรับโปรไฟล์ที่เปิดใช้หลายรายการ (MEP) สำหรับ eUICC ฟีเจอร์นี้ช่วยให้อุปกรณ์รองรับ 2 ซิมโดยใช้ชิป eSIM เดียว ซึ่งอาจมีโปรไฟล์ซิมหลายโปรไฟล์และเชื่อมต่อกับผู้ให้บริการ 2 รายพร้อมกันได้ ผู้ผลิตอุปกรณ์ต้องทำงานร่วมกับผู้ให้บริการ SoC และผู้ให้บริการชิปเซ็ต eSIM เพื่อผสานรวมฟีเจอร์นี้ในอุปกรณ์

ฉากหลัง

ในอุปกรณ์ที่ใช้ Android 12 และต่ำกว่า AOSP ให้การสนับสนุนแบบจำกัดในการอนุญาตให้ eSIM รายการเดียวรองรับหลายโปรไฟล์พร้อมกัน แม้ว่า eSIM จะช่วยประหยัดพื้นที่และค่าใช้จ่ายได้เป็นอย่างมาก แต่การไม่รองรับซิมคู่นี้ทำให้ผู้ผลิตอุปกรณ์ไม่สามารถใช้อุปกรณ์แบบ eSIM เท่านั้นได้ หากต้องการรองรับ 2 ซิมในอุปกรณ์แบบ eSIM เท่านั้น ผู้ผลิตอุปกรณ์จะต้องบรรจุองค์ประกอบ eSIM 2 รายการไว้ในอุปกรณ์ ซึ่งจะเพิ่มต้นทุนใบแจ้งหนี้วัสดุ (BOM) และทำให้ผู้ใช้ได้รับประสบการณ์ที่ไม่ดีในการจัดการการสมัครใช้บริการ ฟีเจอร์ MEP ที่มีให้ใช้งานใน AOSP ตั้งแต่ Android 13 จะแก้ไขปัญหานี้ได้

สถาปัตยกรรม eUICC

ส่วนนี้จะอธิบายสถาปัตยกรรมชิป eSIM สำหรับอุปกรณ์ที่มี MEP สำหรับ Android เวอร์ชันต่างๆ และสถาปัตยกรรมชิป eSIM สำหรับอุปกรณ์ที่ไม่มี MEP

Android 14

สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป Android จะรองรับตัวเลือก MEP-A1 และ MEP-B สำหรับการเลือกรูทโดเมนความปลอดภัยของผู้ออกบัตร (ISD-R) และการเลือกพอร์ต eSIM ตามที่ระบุไว้ใน GSMA SGP V22 3.0 ข้อมูลต่อไปนี้อธิบายรูปแบบการเลือก MEP-A1 และ MEP-B ISD-R

  • MEP-A1: เลือก ISD-R ในพอร์ต 0 (พอร์ตคำสั่งคือ 0) และเลือกโปรไฟล์ในพอร์ต eSIM 1 ขึ้นไป ระบบจะส่งคำสั่ง ES10 ไปยังพอร์ต 0 เสมอ และพอร์ตคำสั่งกับพอร์ตเป้าหมายจะแตกต่างกันเสมอ LPA จะเลือกพอร์ต

    รูปแบบการเลือก MEP-A1 ISD-R

    รูปที่ 1 รูปแบบการเลือก MEP-A1 ISD-R

  • MEP-B: เลือก ISD-R ในพอร์ตใดก็ได้และกำหนดโปรไฟล์ให้กับพอร์ตใดก็ได้ ระบบจะส่งคำสั่งเปิดใช้และปิดใช้ไปยังพอร์ตที่ต้องเปิดหรือปิดใช้โปรไฟล์ (ซึ่งรอการรีเฟรช) พอร์ตคำสั่งและพอร์ตเป้าหมายจะเหมือนกันเสมอ

    รูปแบบการเลือก MEP-B ISD-R

    รูปที่ 2 รูปแบบการเลือก MEP-B ISD-R

Android 13

ใน Android 13 ขึ้นไป อุปกรณ์ที่รองรับ MEP จะมีช่อง eSIM ที่มีพอร์ต eUICC หลายพอร์ต ซึ่งพอร์ตแต่ละพอร์ตจะมีโปรไฟล์ที่เปิดใช้ ดังที่แสดงในรูปที่ 3 สถาปัตยกรรมนี้ทำให้ eUICC 1 รายการ (สล็อตจริง 1 ช่อง) รองรับ Dual SIM Dual Standby (DSDS) โดยมีพอร์ต eUICC แต่ละพอร์ตลิงก์กับแบนด์ฐานของโมเด็ม HAL และ API ของ Android 13 จะไม่ขึ้นอยู่กับตัวแปร MEP

สถาปัตยกรรมชิป eSIM ที่รองรับ MEP

รูปที่ 3 สถาปัตยกรรมชิป eSIM ที่รองรับ MEP (Android 13 ขึ้นไป)

Android 12 และต่ำกว่า

สำหรับอุปกรณ์ที่ใช้ Android 12 หรือต่ำกว่าที่ไม่มี MEP ดังที่แสดงในรูปที่ 4 ช่อง eSIM จะรองรับโปรไฟล์ที่เปิดใช้เพียงโปรไฟล์เดียวในแต่ละครั้ง และอุปกรณ์จะรองรับ DSDS ไม่ได้

สถาปัตยกรรมชิป eSIM ที่ไม่รองรับ MEP

รูปที่ 4 สถาปัตยกรรมชิป eSIM ที่ไม่รองรับ MEP (Android 12 หรือต่ำกว่า)

การรับส่งข้อมูล API สําหรับโปรไฟล์ที่เปิดใช้หลายรายการ

รูปที่ 5 อธิบายการไหลของข้อมูลสำหรับ MEP สำหรับ eUICC ใน Android 13 เฟรมเวิร์กโทรศัพท์ประกอบด้วยคลาส UiccPort ซึ่งแสดงโครงสร้างทางกายภาพของ eUICC คลาส UiccPort ใช้กับซิมการ์ดทุกประเภท ได้แก่ ซิมการ์ดจริง (pSIM), ซิมแบบรวม (iSIM) และซิมแบบฝัง (eSIM) สำหรับ eUICC ที่มีพอร์ตหลายพอร์ต ออบเจ็กต์ UiccSlot และออบเจ็กต์ UiccCard รายการเดียวจะแมปกับอินสแตนซ์ UiccPort หลายรายการ อินสแตนซ์ UiccPort แต่ละรายการลิงก์กับอินสแตนซ์ UiccProfile ได้สูงสุด 1 รายการ ขั้นตอนนี้ช่วยให้ UiccPort แมปกับสล็อตตรรกะได้ และ UiccSlot (สล็อตจริง) แมปกับสล็อตตรรกะได้หลายช่อง

ขั้นตอนข้อมูล MEP

รูปที่ 5 ขั้นตอนการส่งข้อมูลสำหรับ eUICC ที่รองรับ MEP

การใช้งาน

ส่วนนี้จะอธิบายวิธีใช้ฟีเจอร์ MEP รวมถึงรายละเอียดเกี่ยวกับข้อกําหนดของ HAL, API และอินเทอร์เฟซผู้ใช้ ผู้ผลิตอุปกรณ์ควรทำงานร่วมกับผู้ให้บริการ SoC และผู้ให้บริการชิปเซ็ต eSIM เพื่อรองรับ MEP

ข้อกำหนด HAL

หากต้องการรองรับ MEP สำหรับ eUICC ให้ใช้ IRadio AIDL HAL API ต่อไปนี้ ซึ่งอยู่ใน /platform/hardware/interfaces/radio/aidl/aidl_api

อุปกรณ์ที่ใช้ Android 14 ขึ้นไปต้องใช้อินเทอร์เฟซ HAL เวอร์ชัน IRadio 2.1 ซึ่งใช้ MultipleEnabledProfileMode (รูปแบบการเลือก ISD-R ที่โมเด็มหรือ eUICC รองรับ) และส่งข้อมูลคำสั่ง APDU ของ ES10 ระหว่างการดำเนินการของช่องตรรกะ ICC

CardStatus

โมเด็มต้องรองรับ CardStatus getIccCardStatusResponse ในการตอบสนองต่อเมธอด การตอบกลับต้องมีดัชนีพอร์ตและดัชนีสล็อตจริงที่ระบุโดย SimPortSlotMapping

สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป โมเด็มต้องผ่านโหมด MEP ที่รองรับพร้อมเหตุการณ์ CardStatus ทั้งหมด

SimSlotStatus

โมเด็มต้องรองรับ SimSlotStatus API เพื่อตอบสนองต่อเมธอด getSimSlotsStatus สถานะช่อง SIM มีอาร์เรย์ของอินเทอร์เฟซ SimPortInfo ซึ่งประกอบด้วยดัชนีพอร์ต, ICCID สำหรับโปรไฟล์ที่เปิดใช้ และสถานะพอร์ต โมเด็มต้องแสดงผลออบเจ็กต์ SimPortInfo อย่างน้อย 2 รายการ

สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป โมเด็มต้องผ่านโหมด MEP ที่รองรับพร้อมด้วยเหตุการณ์ CardStatus ทั้งหมด

setSimSlotMapping

เมธอด setSimSlotMapping ต้องส่งอาร์เรย์ของ SimPortSlotMapping ดัชนีของอาร์เรย์คือสล็อตเชิงตรรกะ และ SimPortSlotMapping จะระบุพอร์ตที่แมปและดัชนีสล็อตจริงที่เกี่ยวข้อง เมธอด setSimSlotMapping จะตั้งค่าการแมปจากพอร์ตไปยังช่องเชิงตรรกะ แอป LPA ใช้วิธีนี้เพื่อเลือกพอร์ตที่ใช้งานอยู่

API ที่รองรับ MEP สำหรับ eUICC

อุปกรณ์ Android ที่รองรับโปรไฟล์ที่เปิดใช้หลายรายการซึ่งเป็นส่วนหนึ่งของสแต็กการโทรของ AOSP จะต้องรองรับ API ต่อไปนี้

UiccCardInfo

  • (Android 13 ขึ้นไป) isMultipleEnabledProfilesSupported : แสดงผลว่า UICC นี้รองรับ MEP หรือไม่
  • (Android 13 ขึ้นไป) getPorts: แสดงรายการพอร์ตที่เป็นไปได้ทั้งหมดสำหรับ UICC หนึ่งๆ หาก UICC เป็น pSIM หรือ eSIM ที่ไม่รองรับ MEP ระบบจะแสดงรายการที่มีองค์ประกอบเดียว
  • (เลิกใช้งานแล้ว) getIccId: แสดงผล ICCID เนื่องจาก UICC อาจมี ICCID มากกว่า 1 รายการสำหรับอุปกรณ์ที่มี MEP ให้ใช้ UiccPortInfo.getIccId() แทน

(Android 13 ขึ้นไป) UiccPortInfo

  • getIccId: แสดงผล ICCID หากมีการสมัครใช้บริการที่เปิดใช้ในพอร์ตนี้
  • getPortIndex: แสดงผลดัชนีพอร์ต
  • getLogicalSlotIndex: แสดงผลดัชนีสแต็กโมเด็มเชิงตรรกะที่ใช้งานอยู่

SubscriptionInfo

  • (Android 13 ขึ้นไป) getPortIndex: แสดงผลลัพธ์เป็นดัชนีพอร์ตที่เปิดใช้การสมัครใช้บริการ หากการสมัครใช้บริการปิดอยู่ ระบบจะแสดงผล INVALID_PORT_ID -1

EuiccManager

  • switchToSubscription: สลับไปยังการสมัครใช้บริการที่ระบุ ใช้โดยแอปที่ไม่มีสิทธิ์ของผู้ให้บริการในการสมัครใช้บริการที่ใช้งานอยู่ เมื่อเรียกใช้ แพลตฟอร์มจะแก้ไขดัชนีพอร์ตเป็นการภายในผ่านกล่องโต้ตอบที่มี 3 ตัวเลือกเพื่อปิดใช้การสมัครใช้บริการที่ใช้งานอยู่ซึ่งเลือกไว้หากไม่มีพอร์ตที่ใช้ได้ แอปที่กําหนดเป้าหมายเป็น Android 13 ขึ้นไปต้องไม่ใช้ API นี้เพื่อปิดใช้การสมัครใช้บริการโดยการส่งรหัสการสมัครใช้บริการที่ไม่ถูกต้อง แต่ต้องใช้เมธอด switchToSubscription (เพิ่มใน Android 13) พร้อมระบุดัชนีพอร์ตแทน
  • (Android 13 ขึ้นไป) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback): สลับไปยังการสมัครใช้บริการที่ระบุ แอปการโทรที่มีสิทธิ์ของผู้ให้บริการสำหรับการสมัครใช้บริการที่ใช้งานอยู่สามารถระบุพอร์ตที่จะเปิดใช้การสมัครใช้บริการได้
  • (Android 13 ขึ้นไป) isSimPortAvailable: แสดงผลว่าดัชนีพอร์ตที่ส่งผ่านพร้อมใช้งานหรือไม่ พอร์ตจะพร้อมใช้งานหากไม่ได้เปิดใช้การสมัครใช้บริการหรือแอปการโทรมีสิทธิ์ของผู้ให้บริการเหนือการสมัครใช้บริการที่ติดตั้งในพอร์ตที่เลือก

EuiccService

  • (Android 13 ขึ้นไป) onSwitchToSubscriptionWithPort: สลับไปยังการสมัครใช้บริการที่ระบุในพอร์ตที่ระบุ การใช้งาน LPA ต้องรองรับการดำเนินการนี้ใน Android 13 ขึ้นไป

TelephonyManager

  • (Android 13 ขึ้นไป) getSimApplicationState: แสดงผลคงที่ซึ่งระบุสถานะของการสมัครบัตร API นี้จะส่งทั้งดัชนีสล็อตจริงและดัชนีพอร์ต เมธอด (เลิกใช้งานแล้ว) getSimApplicationState(int physicalSlotIndex) จะส่งเฉพาะดัชนีสล็อตจริงเพื่อรับออบเจ็กต์ simApplicationState
  • (Android 13 ขึ้นไป) setSimSlotMapping(Collection<UiccSlotMapping> slots): แมปสล็อตเชิงตรรกะกับสล็อตและพอร์ตจริง
  • (Android 13 ขึ้นไป) Collection<UiccSlotMapping> getSimSlotMapping: รับการแมปจากสล็อตเชิงตรรกะไปยังสล็อตซิมจริงและดัชนีพอร์ต

ส่วนติดต่อผู้ใช้

เพื่อแก้ไขความคลุมเครือของการเลือกพอร์ต eSIM ในอุปกรณ์ที่รองรับ MEP ผู้ใช้ต้องปิดใช้การสมัครใช้บริการที่ใช้งานอยู่รายการใดรายการหนึ่งเพื่อเปิดใช้การสมัครใช้บริการใหม่ ใน Android 13 AOSP มีขั้นตอนของผู้ใช้ที่มีกล่องโต้ตอบ 3 ตัวเลือกซึ่งนำไปใช้กับขั้นตอนของผู้ใช้ที่เปิดใช้การสมัครใช้บริการได้จากแอปการตั้งค่า รูปที่ 6 แสดงตัวอย่างขั้นตอน UX นี้

โฟลว์ผู้ใช้สำหรับการสมัครใช้บริการ MEP SIM

รูปที่ 6 โฟลว์ผู้ใช้สำหรับการเปิดใช้การสมัครใช้บริการซิม

แฟล็กฟีเจอร์

อุปกรณ์ต้องประกาศ Flag ฟีเจอร์ต่อไปนี้เพื่อรองรับ MEP

การติดตั้งใช้งาน LPA

หากต้องการรองรับ MEP โปรดตรวจสอบว่าการติดตั้งใช้งาน LPA เป็นไปตามข้อกำหนดต่อไปนี้

  • ใช้ API จาก EuiccService เพื่อรองรับพอร์ตหลายพอร์ต
  • ใช้ API สำหรับการเลือกพอร์ตและการเปิดใช้โปรไฟล์
  • ให้ UX ที่ช่วยให้แอปของผู้ให้บริการเปิดใช้โปรไฟล์ในพอร์ตที่เลือกได้

การตรวจสอบความถูกต้อง

หากต้องการทดสอบการติดตั้งใช้งานฟีเจอร์ MEP ให้ตรวจสอบว่าบิลด์ผ่านเฟรมเวิร์กการทดสอบ CTS ต่อไปนี้ (สําหรับ API สาธารณะ) /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts

ผู้ผลิตอุปกรณ์ควรทำงานร่วมกับผู้ให้บริการโมเด็ม ชิป eUICC และระบบปฏิบัติการ eSIM เพื่อให้แน่ใจว่าอุปกรณ์จะทําสิ่งต่อไปนี้ได้

  • คุณเปิดใช้และแนบโปรไฟล์ eSIM 2 โปรไฟล์กับเครือข่าย 2 เครือข่ายที่แตกต่างกันได้
  • คุณเปิดใช้งานและปิดใช้งานโปรไฟล์ eSIM ได้ในพอร์ต eSIM ใดก็ได้
  • มีแฟลว์ UX ที่เรียกให้แสดงโดยแอปของผู้ให้บริการ ซึ่งช่วยให้ผู้ใช้เปลี่ยนโปรไฟล์ได้

คําแนะนําสําหรับผู้ให้บริการขนส่ง

เราขอแนะนำให้ผู้ให้บริการรองรับสิ่งต่อไปนี้เพื่อให้ผู้ใช้ไม่เสียบริการเมื่อย้ายโปรไฟล์ eSIM จากพอร์ตหนึ่งไปยังอีกพอร์ตหนึ่ง

  • การแมป IMEI และซิมแบบลื่นไหล
  • ICCID หรือ SIM หลายรายการสำหรับตัวระบุ eUICC (EID) แต่ละรายการ