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

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

ฉากหลัง

ในอุปกรณ์ที่ใช้ Android 12 และต่ำกว่า AOSP มี การรองรับแบบจำกัดในการอนุญาตให้ eSIM เดียวรองรับหลายโปรไฟล์ในเวลา เดียวกัน แม้ว่า eSIM จะช่วยประหยัดพื้นที่และค่าใช้จ่ายได้มาก แต่การไม่รองรับ Dual SIM ทำให้ผู้ผลิตอุปกรณ์ไม่สามารถนำ อุปกรณ์ที่ใช้ 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 เดียว (ช่องเสียบจริงช่องเดียว) รองรับ 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 รองรับ) และส่งข้อมูลคำสั่ง ES10 APDU ระหว่างการดำเนินการช่องตรรกะ ICC

CardStatus

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

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

SimSlotStatus

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

สำหรับอุปกรณ์ที่ใช้ 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

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

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

อุปกรณ์ต้องประกาศฟีเจอร์แฟล็กต่อไปนี้เพื่อรองรับ 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) แต่ละรายการ