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

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

พื้นหลัง

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

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

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

แอนดรอยด์ 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

แอนดรอยด์ 13

ใน Android 13 ขึ้นไป ในอุปกรณ์ที่รองรับ MEP สล็อต eSIM จะมีพอร์ต eUICC หลายพอร์ตซึ่งพอร์ตสามารถมีโปรไฟล์ที่เปิดใช้งานได้ ดังแสดงในรูปที่ 3 ด้วยสถาปัตยกรรมนี้ eUICC เดียว (สล็อตฟิสิคัลเดียว) รองรับ dual SIM dual standby (DSDS) โดยให้แต่ละพอร์ต eUICC ลิงก์ไปยังเบสแบนด์ของโมเด็ม Android 13 HAL และ API เป็นตัวแปร 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 ใช้สำหรับซิมการ์ดทุกประเภท: SIM จริง (pSIM), SIM ในตัว (iSIM) และ SIM แบบฝัง (eSIM) สำหรับ eUICC ที่มีหลายพอร์ต ออบเจ็กต์ UiccSlot เดียวและออบเจ็ UiccCard จะแมปกับอินสแตนซ์ UiccPort หลายรายการ แต่ละอินสแตนซ์ UiccPort สามารถลิงก์ไปยังอินสแตนซ์ UiccProfile ได้สูงสุด 1 รายการ โฟลว์นี้อนุญาตให้ UiccPort แมปกับสล็อตลอจิคัลและ UiccSlot (สล็อตจริง) เพื่อแมปกับสล็อตลอจิคัลหลายช่อง

การไหลของข้อมูล MEP

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

การนำไปปฏิบัติ

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

ข้อกำหนดของฮาล

หากต้องการสนับสนุน 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 เพื่อตอบสนองต่อเมธอด getIccCardStatusResponse การตอบกลับจะต้องมีดัชนีพอร์ตและดัชนีสล็อตฟิสิคัลที่ระบุโดย SimPortSlotMapping

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

SimSlotStatus

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

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

setSimSlotMapping

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

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

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

ข้อมูล UiccCard

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

(Android 13 และสูงกว่า) UiccPortInfo

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

ข้อมูลการสมัครสมาชิก

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

Euicผู้จัดการ

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

ยูอิคเซอร์วิส

  • (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 ขั้นตอนการใช้งานสำหรับการเปิดใช้งานการสมัครสมาชิก SIM

คุณลักษณะธง

เพื่อรองรับ MEP อุปกรณ์จะต้องประกาศแฟล็กคุณสมบัติต่อไปนี้:

การดำเนินการ LPA

เพื่อสนับสนุน MEP ตรวจสอบให้แน่ใจว่าการใช้งาน LPA ของคุณตรงตามข้อกำหนดต่อไปนี้:

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

การตรวจสอบ

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

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

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

ข้อแนะนำสำหรับผู้ให้บริการ

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

  • การทำแผนที่ของเหลวของ IMEI และ SIM
  • ICCID หรือ SIM หลายอันสำหรับตัวระบุ eUICC แต่ละตัว (EID)