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

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

ฉากหลัง

AOSP มีให้บริการสำหรับอุปกรณ์ที่ใช้ Android 12 และต่ำกว่า การสนับสนุนแบบจำกัดในการอนุญาตให้ eSIM รายการเดียวรองรับหลายโปรไฟล์ได้ที่ ในเวลาเดียวกัน และแม้จะมีพื้นที่และต้นทุนที่ eSIM มีให้ประหยัดได้อย่างมาก การไม่มีการรองรับแบบ 2 ซิมทำให้ผู้ผลิตอุปกรณ์ใช้ 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 แต่ละรายการจะลิงก์ได้สูงสุด 1 รายการ UiccProfile โฟลว์นี้ช่วยให้ UiccPort แมปกับช่องโฆษณาแบบลอจิคัลและ UiccSlot (อุปกรณ์จริง slot) เพื่อจับคู่กับสล็อตแบบลอจิคัลหลายช่อง

โฟลว์ข้อมูล MEP

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

การใช้งาน

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

ข้อกำหนด HAL

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

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

สถานะการ์ด

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

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

สถานะช่องซิม

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

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

setSimSlotMapping

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

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

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

ข้อมูลการ์ด Uicc

  • (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 แสดงผลดัชนีสแต็กโมเด็มตรรกะที่ใช้งานอยู่

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

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

ผู้จัดการ Euicc

  • 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 ขึ้นไป

เครื่องมือจัดการโทรศัพท์

  • (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 โปรดตรวจสอบว่า แอลปา จะตรงตามข้อกำหนดต่อไปนี้

  • ใช้งาน 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 หรือซิมหลายรายการสำหรับตัวระบุ eUICC (EID) แต่ละรายการ