Android 5.1 đã giới thiệu cơ chế cấp các đặc quyền đặc biệt cho các API liên quan đến chủ sở hữu của các ứng dụng thẻ mạch tích hợp đa năng (UICC). Nền tảng Android tải các chứng chỉ được lưu trữ trên UICC và cấp quyền cho các ứng dụng được ký bởi các chứng chỉ này để thực hiện lệnh gọi đến một số API đặc biệt.
Android 7.0 đã mở rộng tính năng này để hỗ trợ các nguồn lưu trữ khác cho các quy tắc đặc quyền của nhà cung cấp dịch vụ UICC, tăng đáng kể số lượng nhà cung cấp dịch vụ có thể sử dụng API. Để tham khảo API, hãy xem CarrierConfigManager ; để biết hướng dẫn, hãy xem Cấu hình nhà cung cấp dịch vụ .
Các nhà cung cấp dịch vụ có toàn quyền kiểm soát UICC, do đó, cơ chế này cung cấp một cách an toàn và linh hoạt để quản lý các ứng dụng từ nhà khai thác mạng di động (MNO) được lưu trữ trên các kênh phân phối ứng dụng chung (chẳng hạn như Google Play) trong khi vẫn giữ được các đặc quyền trên thiết bị và không cần để ký ứng dụng bằng chứng chỉ nền tảng cho mỗi thiết bị hoặc cài đặt sẵn dưới dạng ứng dụng hệ thống.
Quy tắc về UICC
Bộ nhớ trên UICC tương thích với thông số kỹ thuật Kiểm soát truy cập yếu tố bảo mật GlobalPlatform . Số nhận dạng ứng dụng (AID) trên thẻ là A00000015141434C00
và lệnh GET DATA
chuẩn được sử dụng để tìm nạp các quy tắc được lưu trữ trên thẻ. Bạn có thể cập nhật các quy tắc này thông qua cập nhật thẻ qua mạng (OTA).
Phân cấp dữ liệu
Các quy tắc UICC sử dụng cấu trúc phân cấp dữ liệu sau (kết hợp chữ cái và số gồm hai ký tự trong ngoặc đơn là thẻ đối tượng). Mỗi quy tắc là REF-AR-DO
( E2
) và bao gồm kết hợp của REF-DO
và AR-DO
:
-
REF-DO
(E1
) chứaDeviceAppID-REF-DO
hoặc kết hợp củaDeviceAppID-REF-DO
vàPKG-REF-DO
.-
DeviceAppID-REF-DO
(C1
) lưu trữ chữ ký SHA-1 (20 byte) hoặc SHA-256 (32 byte) của chứng chỉ. -
PKG-REF-DO
(CA
) là chuỗi tên gói đầy đủ được xác định trong tệp kê khai, được mã hóa ASCII, độ dài tối đa 127 byte.
-
-
AR-DO
(E3
) được mở rộng để bao gồmPERM-AR-DO
(DB
), là một mặt nạ bit 8 byte đại diện cho 64 quyền riêng biệt.
Nếu không PKG-REF-DO
, bất kỳ ứng dụng nào được chứng chỉ ký đều được cấp quyền truy cập; nếu không thì cả chứng chỉ và tên gói cần phải khớp.
Ví dụ về quy tắc
Tên ứng dụng là com.google.android.apps.myapp
và chứng chỉ SHA-1 trong chuỗi hex là:
AB:CD:92:CB:B1:56:B2:80:FA:4E:14:29:A6:EC:EE:B6:E5:C1:BF:E4
Quy tắc về UICC trong chuỗi hex là:
E243 <= 43 is value length in hex E135 C114 ABCD92CBB156B280FA4E1429A6ECEEB6E5C1BFE4 CA1D 636F6D2E676F6F676C652E616E64726F69642E617070732E6D79617070 E30A DB08 0000000000000001
Truy cập hỗ trợ tệp quy tắc
Android 7.0 bổ sung hỗ trợ đọc các quy tắc đặc quyền của nhà cung cấp dịch vụ từ tệp quy tắc truy cập (ARF).
Nền tảng Android trước tiên cố gắng chọn ứng dụng quy tắc truy cập (ARA) AID A00000015141434C00
. Nếu nó không tìm thấy AID trên UICC, nó sẽ quay trở lại ARF bằng cách chọn PKCS15 AID A000000063504B43532D3135
. Sau đó, Android đọc tệp quy tắc kiểm soát truy cập (ACRF) ở 0x4300
và tìm kiếm các mục nhập có AID FFFFFFFFFFFF
. Các mục nhập có AID khác nhau bị bỏ qua, vì vậy các quy tắc cho các trường hợp sử dụng khác có thể cùng tồn tại.
Nội dung ACRF mẫu trong chuỗi hex:
30 10 A0 08 04 06 FF FF FF FF FF FF 30 04 04 02 43 10
Nội dung tệp điều kiện kiểm soát truy cập ví dụ (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
Trong ví dụ trên, 0x4310
là địa chỉ cho ACCF, chứa băm chứng chỉ 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
. Các ứng dụng được ký bởi chứng chỉ này được cấp đặc quyền của nhà cung cấp dịch vụ.
API đã bật
Android hỗ trợ các API sau.
TelephonyManager
- Phương pháp để ứng dụng của nhà cung cấp dịch vụ yêu cầu UICC thực hiện một thử thách / phản hồi:
getIccAuthentication
. - Phương pháp kiểm tra xem ứng dụng gọi điện đã được cấp đặc quyền của nhà mạng hay chưa:
hasCarrierPrivileges
. - Phương pháp ghi đè nhãn hiệu và số:
- Các phương pháp giao tiếp UICC trực tiếp:
- Phương pháp đặt chế độ thiết bị thành toàn cầu:
setPreferredNetworkTypeToGlobal
. - Các phương pháp lấy danh tính thiết bị hoặc mạng:
- Nhận dạng thiết bị di động quốc tế (IMEI):
getImei
- Số nhận dạng thiết bị di động (MEID):
getMeid
- Mã định danh truy cập mạng (NAI):
getNai
- Số sê-ri của SIM:
getSimSerialNumber
- Nhận dạng thiết bị di động quốc tế (IMEI):
- Phương pháp lấy cấu hình nhà cung cấp dịch vụ:
getCarrierConfig
- Phương pháp lấy loại mạng để truyền dữ liệu:
getDataNetworkType
- Phương pháp lấy loại mạng cho dịch vụ thoại:
getVoiceNetworkType
- Các phương pháp nhận thông tin về ứng dụng UICC SIM (USIM):
- Số sê-ri của SIM:
getSimSerialNumber
- Thông tin thẻ:
getUiccCardsInfo
- GID1 (ID nhóm cấp 1):
getGroupIdLevel1
- Chuỗi số điện thoại cho dòng 1:
getLine1Number
- Mạng di động mặt đất công cộng bị cấm (PLMN):
getForbiddenPlmns
- PLMN tại nhà tương đương:
getEquivalentHomePlmns
- Số sê-ri của SIM:
- Các phương pháp lấy hoặc đặt số thư thoại:
- Phương thức gửi mã quay số đặc biệt:
sendDialerSpecialCode
- Phương pháp đặt lại modem radio:
rebootModem
- Các phương pháp để lấy hoặc đặt các chế độ lựa chọn mạng:
- Phương pháp yêu cầu quét mạng:
requestNetworkScan
- Các phương pháp để lấy hoặc đặt các loại mạng được phép / ưa thích:
- Các phương pháp để kiểm tra xem dữ liệu di động hoặc chuyển vùng có được bật theo cài đặt của người dùng hay không:
- Phương pháp kiểm tra hoặc thiết lập kết nối dữ liệu với lý do:
- Phương pháp lấy danh sách số khẩn cấp:
getEmergencyNumberList
- Các phương pháp kiểm soát các mạng cơ hội:
- Các phương pháp để đặt hoặc xóa yêu cầu cập nhật cường độ tín hiệu di động:
TelephonyCallback
TelephonyCallback
có giao diện với phương thức gọi lại để thông báo cho ứng dụng gọi khi các trạng thái đã đăng ký thay đổi:
- Chỉ báo chờ tin nhắn đã thay đổi:
onMessageWaitingIndicatorChanged
- Chỉ báo chuyển tiếp cuộc gọi đã thay đổi:
onCallForwardingIndicatorChanged
- Nguyên nhân ngắt kết nối cuộc gọi của hệ thống đa phương tiện IP (IMS) đã thay đổi:
onImsCallDisconnectCauseChanged
- Trạng thái kết nối dữ liệu chính xác đã thay đổi:
onPreciseDataConnectionStateChanged
- Danh sách số điện thoại khẩn cấp hiện tại đã thay đổi:
onEmergencyNumberListChanged
- ID đăng ký dữ liệu hoạt động đã thay đổi:
onActiveDataSubscriptionIdChanged
- Mạng của nhà cung cấp dịch vụ đã thay đổi:
onCarrierNetworkChange
- Đăng ký mạng hoặc cập nhật vị trí / định tuyến / khu vực theo dõi không thành công:
onRegistrationFailed
- Thay đổi thông tin cấm:
onBarringInfoChanged
- Cấu hình kênh vật lý hiện tại đã thay đổi:
onPhysicalChannelConfigChanged
SubscriptionManager
- Các phương pháp nhận thông tin đăng ký khác nhau:
- Phương pháp nhận số lượng đăng ký đang hoạt động:
getActiveSubscriptionInfoCount
- Các phương pháp quản lý nhóm đăng ký:
- Các phương pháp để lấy hoặc thiết lập mô tả về gói mối quan hệ thanh toán giữa nhà cung cấp dịch vụ và một người đăng ký cụ thể:
- Phương pháp tạm thời ghi đè gói mối quan hệ thanh toán giữa nhà cung cấp dịch vụ và một người đăng ký cụ thể được coi là không bị tính:
setSubscriptionOverrideUnmetered
- Phương pháp tạm thời ghi đè gói quan hệ thanh toán giữa nhà cung cấp dịch vụ và một người đăng ký cụ thể được coi là tắc nghẽn:
setSubscriptionOverrideCongested
- Phương pháp để kiểm tra xem ứng dụng với ngữ cảnh nhất định có được ủy quyền quản lý đăng ký nhất định theo siêu dữ liệu của nó hay không:
canManageSubscription
SmsManager
- Phương pháp cho phép người gọi tạo tin nhắn SMS đến mới:
injectSmsPdu
. - Phương pháp gửi tin nhắn SMS dựa trên văn bản mà không cần viết vào nhà cung cấp SMS:
sendTextMessageWithoutPersisting
CarrierConfigManager
- Phương thức thông báo cấu hình đã thay đổi:
notifyConfigChangedForSubId
. - Phương pháp nhận cấu hình nhà cung cấp dịch vụ cho đăng ký mặc định:
getConfig
- Phương pháp nhận cấu hình nhà cung cấp dịch vụ cho đăng ký được chỉ định:
getConfigForSubId
Để biết hướng dẫn, hãy xem Cấu hình nhà cung cấp dịch vụ .
BugreportManager
Phương pháp bắt đầu báo cáo lỗi kết nối, là phiên bản chuyên biệt của báo cáo lỗi chỉ bao gồm thông tin để gỡ lỗi các vấn đề liên quan đến kết nối: startConnectivityBugreport
NetworkStatsManager
- Phương pháp truy vấn tóm tắt sử dụng mạng:
querySummary
- Phương pháp truy vấn lịch sử sử dụng mạng:
queryDetails
- Phương pháp đăng ký hoặc hủy đăng ký sử dụng mạng gọi lại:
ImsMmTelManager
- Phương pháp đăng ký hoặc hủy đăng ký gọi lại đăng ký IMS MmTel:
ImsRcsManager
- Phương pháp đăng ký hoặc hủy đăng ký gọi lại đăng ký IMS RCS:
- Các phương pháp để nhận trạng thái đăng ký IMS hoặc loại phương tiện:
ProvisoningManager
- Phương pháp đăng ký và hủy đăng ký các bản cập nhật cấp phép tính năng IMS gọi lại:
- Các phương pháp liên quan đến trạng thái cung cấp cho khả năng IMS MmTel hoặc RCS:
EuiccManager
Phương pháp chuyển sang (bật) đăng ký đã cho: switchToSubscription
CarrierMessagingService
Dịch vụ nhận cuộc gọi từ hệ thống khi gửi hoặc nhận SMS và MMS mới. Để mở rộng lớp này, hãy khai báo dịch vụ trong tệp kê khai của bạn với quyền android.Manifest.permission#BIND_CARRIER_MESSAGING_SERVICE
và bao gồm bộ lọc ý định với hành động #SERVICE_INTERFACE
. Các phương pháp bao gồm:
- Phương pháp lọc tin nhắn SMS đến:
onFilterSms
- Phương pháp chặn tin nhắn SMS văn bản được gửi từ thiết bị:
onSendTextSms
- Phương pháp chặn tin nhắn SMS nhị phân được gửi từ thiết bị:
onSendDataSms
- Phương pháp chặn tin nhắn SMS dài được gửi từ thiết bị:
onSendMultipartTextSms
- Phương pháp chặn tin nhắn MMS được gửi từ thiết bị:
onSendMms
- Phương pháp tải xuống tin nhắn MMS nhận được:
onDownloadMms
CarrierService
Dịch vụ thể hiện các chức năng cụ thể của nhà cung cấp dịch vụ cho hệ thống. Để mở rộng lớp này, hãy khai báo dịch vụ trong tệp kê khai ứng dụng với quyền android.Manifest.permission#BIND_CARRIER_SERVICES
và bao gồm bộ lọc ý định với hành động CARRIER_SERVICE_INTERFACE
. Nếu dịch vụ có ràng buộc lâu dài, hãy đặt android.service.carrier.LONG_LIVED_BINDING
thành true
trong siêu dữ liệu của dịch vụ.
Nền tảng liên kết CarrierService
với các cờ đặc biệt để cho phép quy trình dịch vụ của nhà cung cấp dịch vụ chạy trong một nhóm ứng dụng chờ đặc biệt. Điều này giúp ứng dụng dịch vụ của nhà cung cấp dịch vụ không bị hạn chế khi ứng dụng không hoạt động và giúp ứng dụng này có nhiều khả năng duy trì hoạt động khi bộ nhớ thiết bị gần hết. Tuy nhiên, nếu ứng dụng dịch vụ của nhà cung cấp dịch vụ bị lỗi vì bất kỳ lý do gì, ứng dụng đó sẽ mất tất cả các đặc quyền trên cho đến khi ứng dụng khởi động lại và liên kết được thiết lập lại. Vì vậy, điều quan trọng là phải giữ cho ứng dụng dịch vụ của nhà cung cấp dịch vụ ổn định.
Các phương thức trong CarrierService
bao gồm:
- Để ghi đè và đặt cấu hình cụ thể của nhà cung cấp dịch vụ:
onLoadConfig
- Để thông báo cho hệ thống về sự thay đổi mạng của nhà cung cấp dịch vụ có chủ ý sắp tới bởi ứng dụng của nhà cung cấp dịch vụ :
notifyCarrierNetworkChange
Nhà cung cấp điện thoại
Các API của nhà cung cấp nội dung để cho phép sửa đổi (chèn, xóa, cập nhật, truy vấn) đối với cơ sở dữ liệu điện thoại. Các trường giá trị được xác định tại Telephony.Carriers
; để biết thêm chi tiết, tham khảo tài liệu tham khảo lớp Telephony
WifiNetworkSuggestion
Khi tạo đối tượng WifiNetworkSuggestion
, hãy sử dụng các phương pháp sau để đặt ID đăng ký hoặc nhóm đăng ký:
- Phương pháp đặt ID đăng ký:
setSubscriptionId
- Metohd để đặt một nhóm đăng ký:
setSubscriptionGroup
Nền tảng Android
Trên một UICC được phát hiện, nền tảng xây dựng các đối tượng UICC nội bộ bao gồm các quy tắc đặc quyền của nhà cung cấp dịch vụ như một phần của UICC. UiccCarrierPrivilegeRules.java
tải các quy tắc, phân tích cú pháp chúng từ thẻ UICC và lưu chúng vào bộ nhớ. Khi cần kiểm tra đặc quyền, UiccCarrierPrivilegeRules
so sánh từng chứng chỉ người gọi với các quy tắc riêng của nó. Nếu UICC bị loại bỏ, các quy tắc sẽ bị hủy cùng với đối tượng UICC.
Thẩm định
Để xác thực việc triển khai thông qua Bộ kiểm tra tương thích (CTS) bằng CtsCarrierApiTestCases.apk
, bạn phải có UICC nhà phát triển với các quy tắc UICC chính xác hoặc hỗ trợ ARF. Yêu cầu nhà cung cấp thẻ SIM bạn chọn chuẩn bị UICC dành cho nhà phát triển với ARF phù hợp như được mô tả trong phần này và sử dụng UICC đó để chạy thử nghiệm. UICC không yêu cầu dịch vụ di động đang hoạt động để vượt qua các bài kiểm tra CTS.
Chuẩn bị UICC
Đối với Android 11 trở xuống, CtsCarrierApiTestCases.apk
được ký bởi aosp-testkey
, với giá trị băm 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
.
Bắt đầu từ Android 12, CtsCarrierApiTestCases.apk
được ký bởi cts-uicc-2021-testkey
, giá trị băm 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
.
Để chạy kiểm tra API của nhà cung cấp dịch vụ CTS trong Android 12, thiết bị cần sử dụng SIM có đặc quyền của nhà cung cấp dịch vụ CTS đáp ứng các yêu cầu được chỉ định trong phiên bản mới nhất của thông số kỹ thuật Hồ sơ kiểm tra GSMA TS.48 của bên thứ ba.
Cũng có thể sử dụng cùng một SIM cho các phiên bản trước Android 12.
Sửa đổi cấu hình SIM CTS
- Thêm: Đặc quyền của nhà cung cấp dịch vụ CTS trong ứng dụng quy tắc truy cập chính (ARA-M) hoặc ARF. Cả hai chữ ký phải được mã hóa trong các quy tắc đặc quyền của nhà cung cấp dịch vụ:
- Hash1 (SHA1):
61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
- Hash2 (SHA256):
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
- Hash1 (SHA1):
- Tạo: Tệp cơ bản ADF USIM (EF) không có trong TS.48 và cần thiết cho CTS:
- EF_MBDN (6FC7), kích thước bản ghi: 28, số bản ghi: 4
- Nội dung
- Rec1: 566F696365204D61696CFFFFFFFF06915155555555FF… FF
- Rec2-n: FF… FF
- Nội dung
- EF_EXT6 (6FC8), kích thước bản ghi: 13, số bản ghi: 1
- Nội dung: 00FF… FF
- EF_MBI (6FC9), kích thước bản ghi: 4, số bản ghi: 1
- Nội dung: Rec1: 01010101
- EF_MWIS (6FCA), kích thước bản ghi: 5, số bản ghi: 1
- Nội dung: 0000000000
- Nội dung: 00FF… FF
- EF_MBDN (6FC7), kích thước bản ghi: 28, số bản ghi: 4
- Sửa đổi: Bảng dịch vụ USIM: Bật dịch vụ n ° 47, n ° 48
- EF_UST (6F38)
- Nội dung:
9EFFBF1DFFFE0083410310010400406E01
- Nội dung:
- EF_UST (6F38)
- Sửa đổi: tệp DF-5GS và DF-SAIP
- DF-5GS - EF_5GS3GPPLOCI (USIM / 5FC0 / 4F01)
- Nội dung:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- Nội dung:
- DF-5GS - EF_5GSN3GPPLOCI (USIM / 5FC0 / 4F02)
- Nội dung:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- Nội dung:
- DF-5GS - EF SUCI_Calc_Info (USIM / 5FC0 / 4F07)
- Nội dung:
A0020000FF…FF
- Nội dung:
- DF-SAIP - EF SUCI_Calc_Info_USIM (USIM / 5FD0 / 4F01)
- Nội dung:
A0020000FF…FF
- Nội dung:
- DF-5GS - EF_5GS3GPPLOCI (USIM / 5FC0 / 4F01)
- Sửa đổi: Sử dụng chuỗi tên nhà cung cấp dịch vụ Android CTS trong các EF tương ứng có chứa ký hiệu này:
- EF_SPN (USIM / 6F46)
- Nội dung:
01416E64726F696420435453FF..FF
- Nội dung:
- EF_PNN (USIM / 6FC5)
- Nội dung:
Rec1 430B83413759FE4E934143EA14FF..FF
- Nội dung:
- EF_SPN (USIM / 6F46)
Phù hợp với cấu trúc hồ sơ kiểm tra
Tải xuống và khớp phiên bản mới nhất của cấu trúc hồ sơ kiểm tra chung sau đây. Những hồ sơ này sẽ không có quy tắc Đặc quyền của nhà cung cấp dịch vụ CTS được cá nhân hóa hoặc các sửa đổi khác được liệt kê ở trên.
Chạy thử nghiệm
Để thuận tiện, CTS hỗ trợ mã thông báo thiết bị hạn chế các thử nghiệm chỉ chạy trên các thiết bị được định cấu hình với cùng mã thông báo. Các bài kiểm tra CTS API của nhà cung cấp dịch vụ hỗ trợ mã thông báo thiết bị sim-card-with-certs
. Ví dụ: mã thông báo thiết bị sau hạn chế các thử nghiệm API của nhà cung cấp dịch vụ chỉ chạy trên thiết bị abcd1234
:
cts-tradefed run cts --device-token abcd1234:sim-card-with-certs
Khi chạy thử nghiệm mà không sử dụng mã thông báo thiết bị, thử nghiệm sẽ chạy trên tất cả các thiết bị.
Câu hỏi thường gặp
Làm cách nào để cập nhật chứng chỉ trên UICC?
A: Sử dụng cơ chế cập nhật OTA thẻ hiện có.
UICC có thể cùng tồn tại với các quy tắc khác không?
A: Sẽ tốt khi có các quy tắc bảo mật khác trên UICC trong cùng một AID; nền tảng tự động lọc chúng ra.
Điều gì xảy ra khi UICC bị xóa đối với một ứng dụng dựa vào các chứng chỉ trên đó?
Đ: Ứng dụng mất đặc quyền vì các quy tắc liên quan đến UICC bị hủy khi xóa UICC.
Có giới hạn về số lượng chứng chỉ trên UICC không?
A: Nền tảng không giới hạn số lượng chứng chỉ; nhưng vì séc là tuyến tính, quá nhiều quy tắc có thể gây ra độ trễ cho séc.
Có giới hạn về số lượng API mà chúng tôi có thể hỗ trợ bằng phương pháp này không?
A: Không, nhưng chúng tôi giới hạn phạm vi đối với các API liên quan đến nhà cung cấp dịch vụ.
Có một số API bị cấm sử dụng phương pháp này không? Nếu vậy, làm thế nào để bạn thực thi chúng? (nghĩa là bạn có kiểm tra để xác thực API nào được hỗ trợ với phương pháp này không?)
Đ: Xem phần Tương thích hành vi API của Tài liệu Định nghĩa Tương thích Android (CDD). Chúng tôi có một số thử nghiệm CTS để đảm bảo rằng mô hình quyền của các API không bị thay đổi.
Tính năng này hoạt động như thế nào với tính năng đa SIM?
A: SIM mặc định do người dùng chỉ định được sử dụng.
Điều này theo bất kỳ cách nào có tương tác hoặc chồng chéo với các công nghệ truy cập SE khác, chẳng hạn như SEEK?
Đ: Ví dụ, SEEK sử dụng AID giống như trên UICC. Vì vậy, các quy tắc cùng tồn tại và được lọc bởi các đặc quyền của SEEK hoặc UiccCarrierPrivileges
.
Khi nào là thời điểm tốt để kiểm tra các đặc quyền của nhà cung cấp dịch vụ?
A: Sau khi trạng thái SIM được tải chương trình phát sóng.
OEM có thể vô hiệu hóa một phần API của nhà cung cấp dịch vụ không?
A: Không. Chúng tôi tin rằng các API hiện tại là tập hợp tối thiểu và chúng tôi dự định sử dụng mặt nạ bit để kiểm soát mức độ chi tiết tốt hơn trong tương lai.
setOperatorBrandOverride
có ghi đè TẤT CẢ các dạng chuỗi tên toán tử khác không? Ví dụ: SE13, UICC SPN hoặc NITZ dựa trên mạng?
Có, ghi đè nhãn hiệu của nhà điều hành có mức độ ưu tiên cao nhất. Khi được đặt, nó sẽ ghi đè TẤT CẢ các dạng chuỗi tên toán tử khác.
Lời gọi phương thức injectSmsPdu
làm gì?
Đ: Phương pháp này tạo điều kiện thuận lợi cho việc sao lưu / khôi phục SMS trên đám mây. injectSmsPdu
gọi injectionSmsPdu kích hoạt chức năng khôi phục.
Để lọc SMS, cuộc gọi onFilterSms
có dựa trên lọc cổng SMS UDH không? Hay các ứng dụng của nhà cung cấp dịch vụ có quyền truy cập TẤT CẢ SMS đến?
A: Các nhà cung cấp dịch vụ có quyền truy cập vào tất cả dữ liệu SMS.
Phần mở rộng của DeviceAppID-REF-DO
để hỗ trợ 32 byte dường như không tương thích với thông số GP hiện tại (chỉ cho phép 0 hoặc 20 byte), vậy tại sao bạn lại đưa ra thay đổi này? SHA-1 không đủ để tránh va chạm? Bạn đã đề xuất thay đổi này cho GP chưa, vì điều này có thể không tương thích ngược với ARA-M / ARF hiện có?
Đ: Để cung cấp bảo mật chống lại tương lai, tiện ích mở rộng này giới thiệu SHA-256 cho DeviceAppID-REF-DO
ngoài SHA-1, hiện là tùy chọn duy nhất trong tiêu chuẩn GP SEAC. Chúng tôi thực sự khuyên bạn nên sử dụng SHA-256.
Nếu DeviceAppID
là 0 (trống), bạn có áp dụng quy tắc cho tất cả các ứng dụng thiết bị không nằm trong quy tắc cụ thể không?
Đ: API của nhà cung cấp dịch vụ yêu cầu phải điền DeviceAppID-REF-DO
. Để trống là nhằm mục đích thử nghiệm và không được khuyến nghị cho các triển khai hoạt động.
Theo thông số kỹ thuật của bạn, không nên chấp nhận PKG-REF-DO
được sử dụng bởi chính nó, không có DeviceAppID-REF-DO
. Nhưng nó vẫn được mô tả trong Bảng 6-4 của thông số kỹ thuật là mở rộng định nghĩa của REF-DO
. Đây có phải là mục đích không? Mã hoạt động như thế nào khi chỉ PKG-REF-DO
được sử dụng trong REF-DO
?
A: Tùy chọn có PKG-REF-DO
làm một mục giá trị duy nhất trong REF-DO
đã bị xóa trong phiên bản mới nhất. PKG-REF-DO
chỉ nên xảy ra khi kết hợp với DeviceAppID-REF-DO
.
Chúng tôi giả định rằng chúng tôi có thể cấp quyền truy cập vào tất cả các quyền dựa trên nhà cung cấp dịch vụ hoặc có quyền kiểm soát chi tiết hơn. Nếu vậy, điều gì xác định ánh xạ giữa mặt nạ bit và các quyền thực sự? Một quyền cho mỗi lớp? Một quyền cho mỗi phương thức? 64 quyền riêng biệt về lâu dài có đủ không?
A: Điều này được dành cho tương lai và chúng tôi hoan nghênh các đề xuất.
Bạn có thể định nghĩa thêm DeviceAppID
cho Android cụ thể không? Đây là giá trị băm SHA-1 (20 byte) của chứng chỉ Nhà xuất bản được sử dụng để ký ứng dụng đã cho, vì vậy, tên không phải phản ánh mục đích đó sao? (Tên có thể gây nhầm lẫn cho nhiều người đọc vì quy tắc sau đó có thể áp dụng cho tất cả các ứng dụng được ký bằng cùng một chứng chỉ Nhà xuất bản đó.)
A: Các chứng chỉ lưu trữ DeviceAppID
được hỗ trợ bởi thông số kỹ thuật hiện có. Chúng tôi đã cố gắng giảm thiểu các thay đổi về thông số kỹ thuật để giảm bớt rào cản cho việc áp dụng. Để biết chi tiết, hãy xem Quy tắc về UICC .