Google, Siyah topluluklar için ırksal eşitliği ilerletmeye kararlıdır. Nasıl olduğunu gör.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

UICC Taşıyıcı Ayrıcalıkları

Android 5.1, evrensel tümleşik devre kartı (UICC) uygulamalarının sahipleriyle ilgili API'lara özel ayrıcalıklar tanımaya yönelik bir mekanizma başlattı. Android platformu, bir UICC'de depolanan sertifikaları yükler ve bu sertifikalarla imzalanan uygulamalara birkaç özel API'yi aramak için izin verir.

Android 7.0, bu özelliği UICC operatör ayrıcalık kuralları için diğer depolama kaynaklarını destekleyecek şekilde genişleterek API'leri kullanabilen operatör sayısını önemli ölçüde artırdı. Bir API başvurusu için, bkz. CarrierConfigManager ; talimatlar için Taşıyıcı Yapılandırması'na bakın.

Operatörler UICC'nin tam kontrolüne sahiptir, bu nedenle bu mekanizma, cihazlarda ve gerekli olmaksızın özel ayrıcalıkları korurken, genel uygulama dağıtım kanallarında (Google Play gibi) barındırılan mobil ağ operatörünün (MNO) uygulamaları yönetmek için güvenli ve esnek bir yol sağlar. uygulamaları cihaz başına platform sertifikasıyla imzalamak veya sistem uygulaması olarak önceden yüklemek için.

UICC Kuralları

UICC'deki depolama alanı GlobalPlatform Güvenli Eleman Erişim Kontrolü spesifikasyonu ile uyumludur. Karttaki uygulama tanımlayıcısı (AID) A00000015141434C00 ve standart GET DATA komutu kartta depolanan kuralları almak için kullanılır. Bu kuralları kablosuz kart (OTA) güncellemeleriyle güncelleyebilirsiniz.

Veri hiyerarşisi

UICC kuralları aşağıdaki veri hiyerarşisini kullanır (parantez içindeki iki karakterli harf ve sayı kombinasyonu nesne etiketidir). Her kural REF-AR-DO ( E2 ) şeklindedir ve REF-DO ve AR-DO birleşiminden oluşur:

  • REF-DO ( E1 ) DeviceAppID-REF-DO veya DeviceAppID-REF-DO ile PKG-REF-DO birleşimini içerir.
    • DeviceAppID-REF-DO ( C1 ), sertifikanın SHA-1 (20 bayt) veya SHA-256 (32 bayt) imzasını saklar.
    • PKG-REF-DO ( CA ) manifestte tanımlanmış tam paket adı dizesidir, ASCII kodlu, maksimum uzunluk 127 bayt.
  • AR-DO ( E3 ), 64 ayrı izni temsil eden 8 baytlık bir bit maskesi olan PERM-AR-DO ( DB ) içerecek şekilde genişletilmiştir.

PKG-REF-DO mevcut değilse, sertifika tarafından imzalanan uygulamalara erişim izni verilir; aksi takdirde hem sertifika hem de paket adının eşleşmesi gerekir.

Kural örneği

Uygulama adı com.google.android.apps.myapp ve onaltılı dizede SHA-1 sertifikası:

AB:CD:92:CB:B1:56:B2:80:FA:4E:14:29:A6:EC:EE:B6:E5:C1:BF:E4

Hex dizgisinde UICC kuralı:

E243 <= 43 is value length in hex
  E135
    C114 ABCD92CBB156B280FA4E1429A6ECEEB6E5C1BFE4
    CA1D 636F6D2E676F6F676C652E616E64726F69642E617070732E6D79617070
  E30A
    DB08 0000000000000001

Erişim kuralı dosyası (ARF) desteği

Android 7.0, erişim kuralı dosyasından (ARF) taşıyıcı ayrıcalık kurallarını okumak için destek ekler.

Android platformu önce erişim kuralı uygulaması (ARA) uygulama tanımlayıcısını (AID) A00000015141434C00 . A000000063504B43532D3135 AID A000000063504B43532D3135 seçerek A000000063504B43532D3135 geri A000000063504B43532D3135 . Android daha sonra 0x4300 adresindeki erişim denetim kuralları dosyasını (ACRF) 0x4300 ve AID FFFFFFFFFFFF içeren girdileri arar. Farklı AID'leri olan girişler yok sayılır, bu nedenle diğer kullanım durumları için kurallar birlikte bulunabilir.

Onaltılık dizede örnek ACRF içeriği:

30 10 A0 08 04 06 FF FF FF FF FF FF 30 04 04 02 43 10

Erişim kontrol koşulları dosyası (ACCF) içeriği örneği:

30 16 04 14 61 ED 37 7E 85 D3 86 A8 DF EE 6B 86 4B D8 5B 0B FA A5 AF 81

Yukarıdaki örnekte, 0x4310 belgesi karma içeren ACCF için adresi, 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81 . Bu sertifika ile imzalanan uygulamalara operatör ayrıcalıkları verilir.

Etkin API'lar

Android, aşağıdaki API'ları destekler.

TelephonyManager

SmsManager

Arayanın yeni gelen SMS mesajları oluşturmasına izin verme yöntemi: injectSmsPdu .

CarrierConfigManager

Yapılandırmayı bildirme yöntemi değişti: notifyConfigChangedForSubId . Talimatlar için Taşıyıcı Yapılandırması'na bakın.

CarrierMessagingService

Yeni SMS ve MMS gönderildiğinde veya alındığında sistemden çağrı alan servis. Bu sınıfı genişletmek için android.Manifest.permission#BIND_CARRIER_MESSAGING_SERVICE izniyle manifest dosyanızdaki hizmeti android.Manifest.permission#BIND_CARRIER_MESSAGING_SERVICE ve #SERVICE_INTERFACE eylemiyle bir niyet filtresi #SERVICE_INTERFACE . Yöntemler şunları içerir:

Telefon sağlayıcısı

Telefon veritabanında değişiklik yapılmasına (ekleme, silme, güncelleme, sorgulama) izin veren içerik sağlayıcı API'leri. Değer alanları Telephony.Carriers ; daha fazla ayrıntı için developer.android.com adresindeki Telefon API referansına bakın.

Android platformu

Algılanan bir UICC'de platform, UICC'nin bir parçası olarak taşıyıcı ayrıcalık kurallarını içeren dahili UICC nesneleri oluşturur. UiccCarrierPrivilegeRules.java kuralları yükler, bunları UICC kartından ayrıştırır ve bellekte önbelleğe alır. Bir ayrıcalık denetimi gerektiğinde, UiccCarrierPrivilegeRules arayan sertifikasını kendi kuralları ile tek tek karşılaştırır. UICC kaldırılırsa, kurallar UICC nesnesiyle birlikte yok edilir.

onaylama

Uyumluluk Test Paketi (CTS) , CtsCarrierApiTestCases.apk operatör API'leri için testler içerir. Bu özellik UICC'deki sertifikalara bağlı olduğundan, bu testleri geçmek için UICC'yi hazırlamanız gerekir.

UICC'nin hazırlanması

Varsayılan olarak, CtsCarrierApiTestCases.apk , 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81 Android geliştirici anahtarı tarafından imzalanır. 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81 . Testler ayrıca UICC uyumsuzluğundaki sertifikalar için beklenen sertifika karmasını da yazdırır.

Örnek çıktı:

junit.framework.AssertionFailedError: This test requires a SIM card with carrier privilege rule on it.
Cert hash: 61ed377e85d386a8dfee6b864bd85b0bfaa5af81

Uygulamayı CtsCarrierApiTestCases.apk kullanarak CTS aracılığıyla doğrulamak için doğru UICC kurallarına veya ARF desteğine sahip bir geliştirici CtsCarrierApiTestCases.apk sahip olmanız gerekir. Seçtiğiniz SIM kart satıcısından bu bölümde açıklandığı gibi doğru ARF'ye sahip bir geliştirici UICC hazırlamasını ve testleri çalıştırmak için bu UICC'yi kullanabilirsiniz. UICC, CTS testlerini geçmek için aktif hücresel hizmet gerektirmez.

Koşu testleri

Kolaylık sağlamak için CTS, testlerin yalnızca aynı belirteçle yapılandırılmış cihazlarda çalışmasını kısıtlayan bir cihaz belirtecini destekler. Operatör API CTS testleri, cihaz sim-card-with-certs . Örneğin, aşağıdaki cihaz belirteci, taşıyıcı API testlerinin yalnızca abcd1234 cihazında abcd1234 :

cts-tradefed run cts  --device-token abcd1234:sim-card-with-certs

Bir cihaz belirteci kullanmadan bir test çalıştırırken, test tüm cihazlarda çalışır.

SSS

UICC'de sertifikalar nasıl güncellenebilir?

C: Mevcut kart OTA güncelleme mekanizmasını kullanın.

UICC diğer kurallarla birlikte bulunabilir mi?

C: UICC'de aynı AID kapsamında başka güvenlik kurallarına sahip olmak iyidir; platform bunları otomatik olarak filtreler.

UICC, üzerindeki sertifikalara dayanan bir uygulama için kaldırıldığında ne olur?

C: UICC ile ilişkili kurallar UICC kaldırıldığında yok edildiğinden uygulama ayrıcalıklarını kaybeder.

UICC'deki sertifika sayısında bir sınır var mı?

C: Platform sertifika sayısını sınırlamaz; ancak denetim doğrusal olduğundan, çok fazla kural denetim için gecikmeye neden olabilir.

Bu yöntemle destekleyebileceğimiz API sayısının bir sınırı var mı?

Y: Hayır, ancak kapsamı operatörle ilgili API'larla sınırlandırıyoruz.

Bu yöntemi kullanması yasaklanan bazı API'lar var mı? Eğer öyleyse, onları nasıl uygularsınız? (yani, bu yöntemle hangi API'lerin desteklendiğini doğrulamak için testleriniz var mı?)

Y: Android Uyumluluk Tanımlama Belgesi'nin (CDD) "API Davranışsal Uyumluluk" bölümüne bakın. API'lerin izin modelinin değiştirilmediğinden emin olmak için bazı CTS testlerimiz var.

Bu, çoklu SIM özelliğiyle nasıl çalışır?

C: Kullanıcı tarafından belirtilen varsayılan SIM kullanılır.

Bu, SEEK gibi diğer SE erişim teknolojileriyle herhangi bir şekilde etkileşime giriyor mu?

Y: Örnek olarak, SEEK, UICC'deki ile aynı AID'yi kullanır. Böylece kurallar bir arada bulunur ve SEEK veya UiccCarrierPrivileges tarafından filtrelenir.

Operatör ayrıcalıklarını kontrol etmek için ne zaman uygun bir zamandır?

C: SIM durumu yüklendikten sonra yayın.

OEM'ler operatör API'larının bir bölümünü devre dışı bırakabilir mi?

Y: Hayır. Mevcut API'lerin minimum küme olduğuna inanıyoruz ve gelecekte daha küçük ayrıntı düzeyi kontrolü için bit maskesini kullanmayı planlıyoruz.

setOperatorBrandOverride diğer TÜM operatör adı dizelerinin formlarını geçersiz kılar mı? Örneğin, SE13, UICC SPN veya ağ tabanlı NITZ?

A: TelephonyManager'daki SPN girişine bakın

injectSmsPdu yöntemi çağrısı ne yapıyor?

C: Bu yöntem bulutta SMS yedeklemeyi / geri yüklemeyi kolaylaştırır. injectSmsPdu çağrısı geri yükleme işlevini etkinleştirir.

SMS filtreleme için, onFilterSms çağrısı SMS UDH bağlantı noktası filtrelemesine dayanıyor mu? Veya operatör uygulamalarının TÜM gelen SMS'lere erişimi var mı?

C: Taşıyıcıların tüm SMS verilerine erişimi vardır.

DeviceAppID-REF-DO 32 baytı desteklemesi için geçerli GP spesifikasyonu ile uyumlu olmadığı anlaşılıyor (sadece 0 veya 20 bayta izin veriyor), neden bu değişikliği yapıyorsunuz? SHA-1 çarpışmalardan kaçınmak için yeterli değil mi? Mevcut ARA-M / ARF ile geriye dönük uyumsuz olabileceğinden, GP'de bu değişikliği zaten önerdiniz mi?

Y: Geleceğe yönelik güvenlik sağlamak için, bu uzantı şu anda GP SEAC standardında tek seçenek olan SHA-1'e ek olarak DeviceAppID-REF-DO için SHA- DeviceAppID-REF-DO . SHA-256 kullanmanızı önemle tavsiye ederiz.

DeviceAppID 0 (boş) ise, kuralı belirli bir kural kapsamında olmayan tüm cihaz uygulamalarına uygular mısınız?

A: Operatör API'larının DeviceAppID-REF-DO doldurulması gerekir. Boş olması test amaçlıdır ve operasyonel dağıtımlar için önerilmez.

Spesifikasyonunuza göre, DeviceAppID-REF-DO olmadan sadece kendi başına kullanılan PKG-REF-DO kabul edilmemelidir. Ancak yine de Tablo 6-4'te REF-DO tanımını genişletmek olarak tanımlanmaktadır. Bu bilerek mi? Nasıl yalnızca kod davranan ne zaman PKG-REF-DO kullanılır REF-DO ?

C: sahip seçeneği PKG-REF-DO tek değer öğesi olarak REF-DO son sürümünde çıkarıldı. PKG-REF-DO yalnızca DeviceAppID-REF-DO ile birlikte DeviceAppID-REF-DO .

Operatör tabanlı tüm izinlere erişim verebileceğimizi veya daha hassas bir kontrole sahip olabileceğimizi varsayıyoruz. Öyleyse, bit maskesi ile gerçek izinler arasındaki eşlemeyi ne tanımlar? Sınıf başına bir izin? Yöntem başına bir izin? 64 ayrı izin uzun vadede yeterli mi?

C: Bu gelecek için ayrıldı ve önerileri memnuniyetle karşılıyoruz.

Özellikle Android için DeviceAppID tanımlayabilir DeviceAppID ? Bu, verilen uygulamayı imzalamak için kullanılan Publisher sertifikasının SHA-1 (20 bayt) karma değeridir, bu nedenle ad bu amacı yansıtmamalıdır mı? (Kural daha sonra aynı Yayıncı sertifikasıyla imzalanan tüm uygulamalar için geçerli olduğundan, ad birçok okuyucu için kafa karıştırıcı olabilir.)

C: DeviceAppID depolama sertifikaları mevcut özellikler tarafından desteklenir. Evlat edinme engelini azaltmak için spesifikasyon değişikliklerini en aza indirmeye çalıştık. Ayrıntılar için bkz . UICC Kuralları .