Android 5.1 memperkenalkan mekanisme untuk memberikan hak istimewa khusus untuk API yang relevan dengan pemilik aplikasi universal integrated circuit card (UICC). Platform Android memuat sertifikat yang disimpan di UICC dan memberikan izin ke aplikasi yang ditandatangani oleh sertifikat ini untuk melakukan panggilan ke beberapa API khusus.
Android 7.0 memperluas fitur ini untuk mendukung sumber penyimpanan lain untuk aturan hak istimewa operator UICC, secara dramatis meningkatkan jumlah operator yang dapat menggunakan API. Untuk referensi API, lihat CarrierConfigManager ; untuk petunjuk, lihat Konfigurasi Operator .
Operator memiliki kendali penuh atas UICC, sehingga mekanisme ini memberikan cara yang aman dan fleksibel untuk mengelola aplikasi dari operator jaringan seluler (MNO) yang dihosting di saluran distribusi aplikasi umum (seperti Google Play) sambil mempertahankan hak istimewa khusus pada perangkat dan tanpa perlu untuk menandatangani aplikasi dengan sertifikat platform per perangkat atau melakukan prainstal sebagai aplikasi sistem.
Aturan tentang UICC
Penyimpanan di UICC kompatibel dengan spesifikasi Kontrol Akses Elemen Aman GlobalPlatform . Pengidentifikasi aplikasi (AID) pada kartu adalah A00000015141434C00
, dan perintah GET DATA
standar digunakan untuk mengambil aturan yang disimpan pada kartu. Anda dapat memperbarui peraturan ini melalui pembaruan kartu over-the-air (OTA).
Hirarki data
Aturan UICC menggunakan hierarki data berikut (kombinasi huruf dan angka dua karakter dalam tanda kurung adalah tag objek). Setiap aturan adalah REF-AR-DO
( E2
) dan terdiri dari gabungan REF-DO
dan AR-DO
:
-
REF-DO
(E1
) berisiDeviceAppID-REF-DO
atau gabungan dariDeviceAppID-REF-DO
danPKG-REF-DO
.-
DeviceAppID-REF-DO
(C1
) menyimpan tanda tangan sertifikat SHA-1 (20 byte) atau SHA-256 (32 byte). -
PKG-REF-DO
(CA
) adalah string nama paket lengkap yang ditentukan dalam manifes, dikodekan ASCII, panjang maksimal 127 byte.
-
-
AR-DO
(E3
) diperluas untuk menyertakanPERM-AR-DO
(DB
), yang merupakan topeng bit 8-byte yang mewakili 64 izin terpisah.
Jika PKG-REF-DO
tidak ada, aplikasi apa pun yang ditandatangani oleh sertifikat akan diberi akses; jika tidak, sertifikat dan nama paket harus cocok.
Contoh aturan
Nama aplikasinya adalah com.google.android.apps.myapp
dan sertifikat SHA-1 dalam string hex adalah:
AB:CD:92:CB:B1:56:B2:80:FA:4E:14:29:A6:EC:EE:B6:E5:C1:BF:E4
Aturan UICC dalam string hex adalah:
E243 <= 43 is value length in hex E135 C114 ABCD92CBB156B280FA4E1429A6ECEEB6E5C1BFE4 CA1D 636F6D2E676F6F676C652E616E64726F69642E617070732E6D79617070 E30A DB08 0000000000000001
Akses dukungan file aturan
Android 7.0 menambahkan dukungan untuk membaca aturan hak istimewa operator dari file aturan akses (ARF).
Platform Android pertama kali mencoba memilih aplikasi aturan akses (ARA) AID A00000015141434C00
. Jika tidak menemukan AID di UICC, kembali ke ARF dengan memilih PKCS15 AID A000000063504B43532D3135
. Android kemudian membaca file aturan kontrol akses (ACRF) pada 0x4300
dan mencari entri dengan AID FFFFFFFFFFFF
. Entri dengan AID yang berbeda akan diabaikan, sehingga aturan untuk kasus penggunaan lainnya dapat berdampingan.
Contoh konten ACRF dalam string hex:
30 10 A0 08 04 06 FF FF FF FF FF FF 30 04 04 02 43 10
Contoh konten file kondisi kontrol akses (ACCF):
30 16 04 14 61 ED 37 7E 85 D3 86 A8 DF EE 6B 86 4B D8 5B 0B FA A5 AF 81
Pada contoh di atas, 0x4310
adalah alamat untuk ACCF, yang berisi hash sertifikat 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
. Aplikasi yang ditandatangani oleh sertifikat ini diberi hak istimewa operator.
API yang diaktifkan
Android mendukung API berikut.
Manajer Telepon
- Metode untuk membiarkan aplikasi operator meminta UICC untuk tantangan/tanggapan:
getIccAuthentication
. - Metode untuk memeriksa apakah aplikasi pemanggil telah diberikan hak operator:
hasCarrierPrivileges
. - Metode untuk mengganti merek dan nomor:
- Metode untuk komunikasi UICC langsung:
- Metode untuk menyetel mode perangkat ke global:
setPreferredNetworkTypeToGlobal
. - Metode untuk mendapatkan identitas perangkat atau jaringan:
- Identitas Peralatan Seluler Internasional (IMEI):
getImei
- Pengidentifikasi Peralatan Seluler (MEID):
getMeid
- Pengidentifikasi Akses Jaringan (NAI):
getNai
- Nomor seri SIM:
getSimSerialNumber
- Identitas Peralatan Seluler Internasional (IMEI):
- Metode untuk mendapatkan konfigurasi operator:
getCarrierConfig
- Metode untuk mendapatkan tipe jaringan untuk transmisi data:
getDataNetworkType
- Metode untuk mendapatkan jenis jaringan untuk layanan suara:
getVoiceNetworkType
- Cara mendapatkan informasi tentang aplikasi UICC SIM (USIM):
- Nomor seri SIM:
getSimSerialNumber
- Informasi kartu:
getUiccCardsInfo
- GID1 (ID grup level1):
getGroupIdLevel1
- String nomor telepon untuk baris 1:
getLine1Number
- Jaringan seluler darat publik terlarang (PLMN):
getForbiddenPlmns
- PLMN rumah yang setara:
getEquivalentHomePlmns
- Nomor seri SIM:
- Metode untuk mendapatkan atau menyetel nomor pesan suara:
- Metode untuk mengirim kode dialer khusus:
sendDialerSpecialCode
- Metode untuk mengatur ulang modem radio:
rebootModem
- Metode untuk mendapatkan atau menyetel mode pemilihan jaringan:
- Metode untuk meminta pemindaian jaringan:
requestNetworkScan
- Metode untuk mendapatkan atau menyetel jenis jaringan yang diizinkan/disukai:
- Metode untuk memeriksa apakah data seluler atau roaming diaktifkan per pengaturan pengguna:
- Metode untuk memeriksa atau mengatur koneksi data dengan alasan:
- Metode untuk mendapatkan daftar nomor darurat:
getEmergencyNumberList
- Metode untuk mengontrol jaringan oportunistik:
- Metode untuk menyetel atau menghapus permintaan pembaruan kekuatan sinyal seluler:
TelephonyCallback
TelephonyCallback
memiliki antarmuka dengan metode callback untuk memberi tahu aplikasi pemanggil saat status terdaftar berubah:
- Indikator menunggu pesan berubah:
onMessageWaitingIndicatorChanged
- Indikator penerusan panggilan berubah:
onCallForwardingIndicatorChanged
- Penyebab pemutusan panggilan sistem multimedia IP (IMS) berubah:
onImsCallDisconnectCauseChanged
- Status koneksi data yang tepat berubah:
onPreciseDataConnectionStateChanged
- Daftar nomor darurat saat ini berubah:
onEmergencyNumberListChanged
- ID langganan data aktif berubah:
onActiveDataSubscriptionIdChanged
- Jaringan operator berubah:
onCarrierNetworkChange
- Registrasi jaringan atau pembaruan lokasi/perutean/area pelacakan gagal:
onRegistrationFailed
- Perubahan informasi pembatasan:
onBarringInfoChanged
- Konfigurasi saluran fisik saat ini berubah:
onPhysicalChannelConfigChanged
Pengelola Langganan
- Metode untuk mendapatkan berbagai informasi langganan:
- Metode untuk mendapatkan jumlah langganan aktif:
getActiveSubscriptionInfoCount
- Metode untuk mengelola grup langganan:
- Metode untuk mendapatkan atau menetapkan deskripsi rencana hubungan penagihan antara operator dan pelanggan tertentu:
- Metode untuk mengganti sementara rencana hubungan penagihan antara operator dan pelanggan tertentu agar dianggap tidak berbayar:
setSubscriptionOverrideUnmetered
- Metode untuk mengesampingkan sementara rencana hubungan penagihan antara operator dan pelanggan tertentu agar dianggap padat:
setSubscriptionOverrideCongested
- Metode untuk memeriksa apakah aplikasi dengan konteks tertentu diizinkan untuk mengelola langganan tertentu sesuai dengan metadatanya:
canManageSubscription
SmsManager
- Metode untuk membiarkan penelepon membuat pesan SMS masuk baru:
injectSmsPdu
. - Metode untuk mengirim pesan SMS berbasis teks tanpa menulis ke penyedia SMS:
sendTextMessageWithoutPersisting
CarrierConfigManager
- Metode untuk memberitahukan perubahan konfigurasi:
notifyConfigChangedForSubId
. - Metode untuk mendapatkan konfigurasi operator untuk langganan default:
getConfig
- Metode untuk mendapatkan konfigurasi operator untuk langganan yang ditentukan:
getConfigForSubId
Untuk petunjuk, lihat Konfigurasi Operator .
BugreportManager
Metode untuk memulai laporan bug konektivitas, yang merupakan versi khusus dari laporan bug yang hanya menyertakan informasi untuk men-debug masalah terkait konektivitas: startConnectivityBugreport
NetworkStatsManager
- Metode untuk menanyakan ringkasan penggunaan jaringan:
querySummary
- Metode untuk menanyakan riwayat penggunaan jaringan:
queryDetails
- Metode untuk mendaftarkan atau membatalkan pendaftaran panggilan balik penggunaan jaringan:
ImsMmTelManager
- Tata cara registrasi atau unregister callback registrasi MmTel IMS:
ImsRcsManager
- Metode untuk mendaftarkan atau membatalkan pendaftaran callback pendaftaran IMS RCS:
- Metode untuk mendapatkan status registrasi atau jenis transportasi IMS:
ProvisioningManager
- Metode untuk mendaftarkan dan membatalkan pendaftaran callback pembaruan penyediaan fitur IMS:
- Metode yang terkait dengan status penyediaan untuk kemampuan IMS MmTel atau RCS:
EuiccManager
Metode untuk beralih ke (mengaktifkan) langganan yang diberikan: switchToSubscription
Layanan Pesan Pembawa
Layanan yang menerima panggilan dari sistem saat SMS dan MMS baru dikirim atau diterima. Untuk memperluas kelas ini, nyatakan layanan dalam file manifes Anda dengan izin android.Manifest.permission#BIND_CARRIER_MESSAGING_SERVICE
dan sertakan filter maksud dengan tindakan #SERVICE_INTERFACE
. Metode meliputi:
- Metode untuk memfilter pesan SMS masuk:
onFilterSms
- Metode untuk mencegat pesan teks SMS yang dikirim dari perangkat:
onSendTextSms
- Metode untuk mencegat pesan SMS biner yang dikirim dari perangkat:
onSendDataSms
- Metode untuk mencegat pesan SMS panjang yang dikirim dari perangkat:
onSendMultipartTextSms
- Metode untuk mencegat pesan MMS yang dikirim dari perangkat:
onSendMms
- Metode untuk mengunduh pesan MMS yang diterima:
onDownloadMms
Layanan Operator
Layanan yang memperlihatkan fungsionalitas khusus operator ke sistem. Untuk memperluas kelas ini, deklarasikan layanan dalam file manifes aplikasi dengan izin android.Manifest.permission#BIND_CARRIER_SERVICES
dan sertakan filter maksud dengan tindakan CARRIER_SERVICE_INTERFACE
. Jika layanan memiliki pengikatan jangka panjang, setel android.service.carrier.LONG_LIVED_BINDING
ke true
dalam metadata layanan.
Platform mengikat CarrierService
dengan bendera khusus agar proses layanan operator berjalan di keranjang siaga aplikasi khusus . Ini membebaskan aplikasi layanan operator dari pembatasan aplikasi menganggur dan membuatnya lebih mungkin untuk tetap hidup saat memori perangkat rendah. Namun, jika aplikasi layanan operator mogok karena alasan apa pun, semua hak istimewa di atas akan hilang hingga aplikasi dimulai ulang dan pengikatan dibuat kembali. Jadi sangat penting untuk menjaga agar aplikasi layanan operator tetap stabil.
Metode dalam CarrierService
meliputi:
- Untuk mengganti dan menyetel konfigurasi khusus operator:
onLoadConfig
- Untuk memberi tahu sistem tentang perubahan jaringan operator mendatang yang disengaja oleh aplikasi operator:
notifyCarrierNetworkChange
Penyedia telepon
API penyedia konten untuk memungkinkan modifikasi (menyisipkan, menghapus, memperbarui, meminta) ke database telepon. Bidang nilai ditentukan di Telephony.Carriers
; untuk lebih jelasnya, lihat referensi kelas Telephony
Saran Jaringan Wifi
Saat membuat objek WifiNetworkSuggestion
, gunakan metode berikut untuk menyetel ID langganan atau grup langganan:
- Metode untuk menetapkan ID langganan:
setSubscriptionId
- Metode untuk mengatur grup langganan:
setSubscriptionGroup
Platform Android
Pada UICC yang terdeteksi, platform membuat objek UICC internal yang menyertakan aturan hak istimewa operator sebagai bagian dari UICC. UiccCarrierPrivilegeRules.java
memuat aturan, mem-parsingnya dari kartu UICC, dan menyimpannya dalam memori. Saat pemeriksaan hak istimewa diperlukan, UiccCarrierPrivilegeRules
membandingkan sertifikat penelepon dengan aturannya sendiri satu per satu. Jika UICC dihapus, aturannya akan dihancurkan bersama dengan objek UICC.
Validasi
Untuk memvalidasi penerapan melalui Compatibility Test Suite (CTS) menggunakan CtsCarrierApiTestCases.apk
, Anda harus memiliki pengembang UICC dengan aturan UICC yang benar atau dukungan ARF. Minta vendor kartu SIM pilihan Anda untuk menyiapkan UICC pengembang dengan ARF yang tepat seperti yang dijelaskan di bagian ini dan gunakan UICC tersebut untuk menjalankan pengujian. UICC tidak memerlukan layanan seluler aktif untuk lulus tes CTS.
Siapkan UICC
Untuk Android 11 dan lebih rendah, CtsCarrierApiTestCases.apk
ditandatangani oleh aosp-testkey
, dengan nilai hash 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
.
Mulai Android 12, CtsCarrierApiTestCases.apk
ditandatangani oleh cts-uicc-2021-testkey
, nilai hash CE:7B:2B:47:AE:2B:75:52:C8:F9:2C:C2:91:24:27:98:83:04:1F:B6:23:A5:F1:94:A8:2C:9B:F1:5D:49:2A:A0
Untuk menjalankan pengujian API operator CTS di Android 12, perangkat harus menggunakan SIM dengan hak istimewa operator CTS yang memenuhi persyaratan yang ditentukan dalam versi terbaru spesifikasi Profil Pengujian GSMA TS.48 pihak ketiga.
SIM yang sama juga dapat digunakan untuk versi sebelum Android 12.
Memodifikasi Profil SIM CTS
- Tambahkan: hak istimewa operator CTS dalam master aplikasi aturan akses (ARA-M) atau ARF. Kedua tanda tangan harus dikodekan dalam aturan hak istimewa operator:
-
61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
-
CE:7B:2B:47:AE:2B:75:52:C8:F9:2C:C2:91:24:27:98:83:04:1F:B6:23:A5:F1:94:A8:2C:9B:F1:5D:49:2A:A0
-
- Buat: File dasar USIM ADF (EF) tidak ada di TS.48 dan diperlukan untuk CTS:
- EF_MBDN (6FC7), ukuran rekaman: 28, nomor rekaman: 4
- Isi
- Rec1: 566F696365204D61696CFFFFFFFF06915155555555FF…FF
- Rec2-n: FF…FF
- Isi
- EF_EXT6 (6FC8), ukuran rekaman:13, nomor rekaman: 1
- Konten: 00FF…FF
- EF_MBI (6FC9), ukuran rekaman: 4, nomor rekaman: 1
- Isi: Rec1: 01010101
- EF_MWIS (6FCA), ukuran rekaman: 5, nomor rekaman: 1
- Isi: 0000000000
- Konten: 00FF…FF
- EF_MBDN (6FC7), ukuran rekaman: 28, nomor rekaman: 4
- Ubah: Tabel layanan USIM: Aktifkan layanan n°47, n°48
- EF_UST (6F38)
- Konten:
9EFFBF1DFFFE0083410310010400406E01
- Konten:
- EF_UST (6F38)
- Ubah: file DF-5GS dan DF-SAIP
- DF-5GS - EF_5GS3GPPLOCI (USIM/5FC0/4F01)
- Konten:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- Konten:
- DF-5GS - EF_5GSN3GPPLOCI (USIM/5FC0/4F02)
- Konten:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- Konten:
- DF-5GS - EF SUCI_Calc_Info (USIM/5FC0/4F07)
- Konten:
A0020000FF…FF
- Konten:
- DF-SAIP - EF SUCI_Calc_Info_USIM (USIM/5FD0/4F01)
- Konten:
A0020000FF…FF
- Konten:
- DF-5GS - EF_5GS3GPPLOCI (USIM/5FC0/4F01)
- Ubah: Gunakan string nama operator Android CTS di masing-masing EF yang berisi penunjukan ini:
- EF_SPN (USIM/6F46)
- Isi:
01416E64726F696420435453FF..FF
- Isi:
- EF_PNN (USIM/6FC5)
- Isi:
Rec1 430B83413759FE4E934143EA14FF..FF
- Isi:
- EF_SPN (USIM/6F46)
Mencocokkan struktur profil uji
Unduh dan cocokkan versi terbaru dari struktur profil pengujian generik berikut. Profil ini tidak akan memiliki aturan CTS Carrier Privilege yang dipersonalisasi atau modifikasi lain yang tercantum di atas.
Menjalankan tes
Untuk kenyamanan, CTS mendukung token perangkat yang membatasi pengujian agar hanya berjalan pada perangkat yang dikonfigurasi dengan token yang sama. Tes Carrier API CTS mendukung perangkat token sim-card-with-certs
. Misalnya, token perangkat berikut membatasi pengujian API operator agar hanya berjalan di perangkat abcd1234
:
cts-tradefed run cts --device-token abcd1234:sim-card-with-certs
Saat menjalankan pengujian tanpa menggunakan token perangkat, pengujian berjalan di semua perangkat.
FAQ
Bagaimana sertifikat dapat diperbarui di UICC?
A: Gunakan mekanisme pembaruan OTA kartu yang ada.
Bisakah UICC berdampingan dengan aturan lain?
J: Tidak apa-apa memiliki aturan keamanan lain di UICC di bawah AID yang sama; platform menyaringnya secara otomatis.
Apa yang terjadi jika UICC dihapus untuk aplikasi yang bergantung pada sertifikatnya?
J: Aplikasi kehilangan hak istimewanya karena aturan yang terkait dengan UICC dihancurkan saat UICC dihapus.
Apakah ada batasan jumlah sertifikat di UICC?
A: Platform tidak membatasi jumlah sertifikat; tetapi karena pemeriksaannya linier, terlalu banyak aturan dapat menimbulkan latensi untuk pemeriksaan.
Apakah ada batasan jumlah API yang dapat kami dukung dengan metode ini?
J: Tidak, tetapi kami membatasi ruang lingkup untuk API terkait operator.
Apakah ada beberapa API yang dilarang menggunakan metode ini? Jika ya, bagaimana Anda menegakkannya? (yaitu, apakah Anda memiliki pengujian untuk memvalidasi API mana yang didukung dengan metode ini?)
J: Lihat bagian Kompatibilitas Perilaku API dari Android Compatibility Definition Document (CDD). Kami memiliki beberapa pengujian CTS untuk memastikan bahwa model izin API tidak diubah.
Bagaimana cara kerjanya dengan fitur multi-SIM?
A: SIM default yang ditentukan oleh pengguna akan digunakan.
Apakah ini berinteraksi atau tumpang tindih dengan teknologi akses SE lainnya, misalnya, SEEK?
J: Sebagai contoh, SEEK menggunakan AID yang sama dengan UICC. Jadi aturan hidup berdampingan dan difilter oleh SEEK atau UiccCarrierPrivileges
.
Kapan saat yang tepat untuk memeriksa hak istimewa operator?
A: Setelah siaran status SIM dimuat.
Bisakah OEM menonaktifkan bagian dari API operator?
J: Tidak. Kami percaya bahwa API saat ini adalah set minimal, dan kami berencana menggunakan bit mask untuk kontrol perincian yang lebih baik di masa mendatang.
Apakah setOperatorBrandOverride
mengesampingkan SEMUA bentuk lain dari string nama operator? Misalnya, SE13, UICC SPN, atau NITZ berbasis jaringan?
Ya, penggantian merek operator memiliki prioritas tertinggi. Saat disetel, ini menimpa SEMUA bentuk string nama operator lainnya.
Apa yang dilakukan pemanggilan metode injectSmsPdu
?
A: Metode ini memfasilitasi backup/restore SMS di cloud. Panggilan injectSmsPdu
mengaktifkan fungsi pemulihan.
Untuk pemfilteran SMS, apakah panggilan onFilterSms
didasarkan pada pemfilteran port UDH SMS? Atau apakah aplikasi operator memiliki akses ke SEMUA SMS yang masuk?
A: Operator memiliki akses ke semua data SMS.
Ekstensi DeviceAppID-REF-DO
untuk mendukung 32 byte tampaknya tidak kompatibel dengan spesifikasi GP saat ini (yang hanya mengizinkan 0 atau 20 byte), jadi mengapa Anda memperkenalkan perubahan ini? Bukankah SHA-1 cukup untuk menghindari tabrakan? Sudahkah Anda mengusulkan perubahan ini ke GP, karena ini mungkin tidak kompatibel dengan ARA-M/ARF yang ada?
J: Untuk memberikan keamanan bukti masa depan, ekstensi ini memperkenalkan SHA-256 untuk DeviceAppID-REF-DO
selain SHA-1, yang saat ini merupakan satu-satunya opsi dalam standar GP SEAC. Kami sangat menyarankan menggunakan SHA-256.
Jika DeviceAppID
adalah 0 (kosong), apakah Anda menerapkan aturan ke semua aplikasi perangkat yang tidak dicakup oleh aturan tertentu?
J: Carrier API memerlukan DeviceAppID-REF-DO
diisi. Menjadi kosong dimaksudkan untuk tujuan pengujian dan tidak direkomendasikan untuk penerapan operasional.
Menurut spesifikasi Anda, PKG-REF-DO
digunakan begitu saja, tanpa DeviceAppID-REF-DO
, tidak boleh diterima. Namun masih dijelaskan dalam Tabel 6-4 spesifikasi sebagai perluasan definisi REF-DO
. Apakah ini sengaja? Bagaimana perilaku kode ketika hanya PKG-REF-DO
yang digunakan di REF-DO
?
J: Opsi untuk menjadikan PKG-REF-DO
sebagai item nilai tunggal di REF-DO
telah dihapus di versi terbaru. PKG-REF-DO
harus terjadi hanya dalam kombinasi dengan DeviceAppID-REF-DO
.
Kami berasumsi bahwa kami dapat memberikan akses ke semua izin berbasis operator atau memiliki kontrol yang lebih baik. Jika demikian, apa yang mendefinisikan pemetaan antara topeng bit dan izin yang sebenarnya? Satu izin per kelas? Satu izin per metode? Apakah 64 izin terpisah cukup untuk jangka panjang?
J: Ini dicadangkan untuk masa depan, dan kami menerima saran.
Bisakah Anda mendefinisikan lebih lanjut DeviceAppID
untuk Android secara khusus? Ini adalah nilai hash SHA-1 (20 byte) dari sertifikat Penerbit yang digunakan untuk menandatangani aplikasi yang diberikan, jadi bukankah namanya mencerminkan tujuan itu? (Nama tersebut dapat membingungkan banyak pembaca karena aturan tersebut berlaku untuk semua aplikasi yang ditandatangani dengan sertifikat Penerbit yang sama.)
J: Sertifikat penyimpanan DeviceAppID
didukung oleh spesifikasi yang ada. Kami mencoba meminimalkan perubahan spesifikasi untuk menurunkan penghalang untuk adopsi. Untuk detailnya, lihat Aturan di UICC .