สำหรับอุปกรณ์ที่ใช้ 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 จะเลือกพอร์ต
รูปที่ 1 โมเดลการเลือก MEP-A1 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 ไม่อิสระ
รูปที่ 3 สถาปัตยกรรมชิป eSIM ที่รองรับ MEP (Android 13 ขึ้นไป)
Android 12 และต่ำกว่า
สำหรับอุปกรณ์ที่ใช้ Android 12 หรือต่ำกว่าโดยไม่มี MEP ดังที่แสดงในรูปที่ 4 ช่อง eSIM รองรับโปรไฟล์ที่เปิดใช้ได้ทีละโปรไฟล์และสำหรับอุปกรณ์เท่านั้น ไม่รองรับ DSDS
รูปที่ 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) เพื่อจับคู่กับสล็อตแบบลอจิคัลหลายช่อง
รูปที่ 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 นี้
รูปที่ 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) แต่ละรายการ