Android 10'da kurumlar için yenilikler

Bu sayfa, yeni kurumsal API'ler, özellikler ve davranış değişiklikleri.

Şirkete ait cihazlar için iş profilleri

Android 10, şu hizmetler için yeni temel hazırlık ve onay özellikleri sunuyor: Şirkete ait olan ve yalnızca iş profili gerektiren cihazlar.

İş profilleri için gelişmiş temel hazırlık araçları

Android 10 ve sonraki sürümlerin yüklü olduğu cihazlarda iş profillerinin temel hazırlığını yapabilirsiniz. QR kodu veya El değmeden. Şirkete ait bir cihazın temel hazırlığı sırasında, ekstra bir amaç iş profilini başlatmak veya tümüyle yönetilen cihaz politikası denetleyici uygulamaları (DPC'ler) kurulumu. Bir iş profili oluşturulduktan veya tam yönetim belirlendikten sonra DPC'ler ilk politikaları uygulamak için politikalara uygunluk ekranları başlatmalıdır.

DPC'nizin manifest dosyasında, şunun için yeni bir intent filtresi tanımlayın: GET_PROVISIONING_MODE BIND_DEVICE_ADMIN ekleyin ve ve isteğe bağlı uygulamaların etkinliği başlatmasını engellemek için izin isteme. Örnek:

<activity
    android:name=".GetProvisioningModeActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action
            android:name="android.app.action.GET_PROVISIONING_MODE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

Temel hazırlık sırasında sistem intent filtresine dokunun. Bu etkinliğin amacı bir yönetim modu belirtmektir (iş profili veya tümüyle yönetilen).

yönetim modunu kullanabilirsiniz. Etkinlik telefon edebilir Almak için getIntent() şu:

DPC'ler ayrıca yeni bir sonuç niyeti oluşturabilir ve buna aşağıdaki ekstraları ekleyebilir:

Cihazda yönetim modunu ayarlamak için şu numarayı arayın: putExtra(DevicePolicyManager.EXTRA_PROVISIONING_MODE,desiredProvisioningMode), Burada desiredProvisioningMode şöyle olur:

  • İş profili: PROVISIONING_MODE_MANAGED_PROFILE
  • Tümüyle yönetilen: PROVISIONING_MODE_FULLY_MANAGED_DEVICE

Temel hazırlık işlemini göndererek iş profilini veya tümüyle yönetilen temel hazırlığı tamamlayın setResult(RESULT_OK, Intent) aracılığıyla kuruluma geri dönün ve tüm etkin ekranları finish().

Temel hazırlık tamamlandıktan sonra, DPC'lerin kullanıma sunulacağı yeni bir Intent kullanıma sunulur ve ilk politika ayarlarının uygulanması gerekir. İş profilinde cihazlarında, iş profilinde uyumluluk ekranları gösterilir. DPC'niz Kullanıcı çıkış yapsa bile uygunluk ekranlarının kullanıcılara gösterilmesini sağlar. adımlarına göz atın.

DPC'nizin manifest dosyasında, şunun için yeni bir intent filtresi tanımlayın: ADMIN_POLICY_COMPLIANCE BIND_DEVICE_ADMIN ekleyin ve ve isteğe bağlı uygulamaların etkinliği başlatmasını engellemek için izin isteme. Örnek:

<activity
    android:name=".PolicyComplianceActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action android:name="android.app.action.ADMIN_POLICY_COMPLIANCE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

DPC'niz aşağıdaki adımları dinlemek yerine bu yeni Intent'i kullanmalıdır: ACTION_PROFILE_PROVISIONING_COMPLETE yayınla.

Amaç filtresiyle ilişkilendirilen etkinlik Almak için getIntent() "the" EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE. Politikaya uygun hareket ettikten sonra ADMIN_POLICY_COMPLIANCE, setResult(RESULT_OK, Intent) değerini döndürmeli ve finish().

Tümüyle yönetilen cihazlar kullanıcıları ana ekrana döndürür. İş profili cihazları eve geri göndermeden önce kullanıcılardan kişisel hesaplarını eklemelerini isteyin tıklayın.

İş profili cihaz kimliği onayı

El değmeden kayıt kullanılarak temel hazırlığı yapılan bir iş profilinin yöneticisi olarak ayarlanan DPC'ler IMEI veya üreticinin güvenlik numarası gibi güvenli donanım tarafından onaylanmış cihaz kimlikleri alabilirler. seri numarası. Cihazda güvenli donanım (güvenilir bir donanım veya güvenlik unsuru (SE) veya cihaz kimliği desteği (cihaz kimliği desteği) onay ve el değmeden kayıt.

Bir iş profilinin yönetici bileşeni, idAttestationFlags bağımsız değişkeni için ID_TYPE_SERIAL, ID_TYPE_IMEI veya ID_TYPE_MEID özelliklerinden bir veya daha fazlasını ileterek DevicePolicyManager.generateKeyPair() yöntemini çağırabilir.

Cihaz kimliklerini ayıklama ve doğrulama hakkında daha fazla bilgi için Anahtar Onayı ile donanım destekli anahtar çiftlerini doğrulama başlıklı makaleyi inceleyin.

İş profili iyileştirmeleri

Profiller arası takvim görünürlüğünü desteklemek için yeni API'ler kullanıma sunuldu. Bilinmeyen kaynaklardan uygulama yüklemelerini cihaz genelinde engelleme.

İş profili, cihaz genelinde bilinmeyen kaynaklar

Google Play (veya başka bir güvenilir uygulama) dışındaki kaynaklardan indirilen uygulamalar bilinmeyen kaynaklardan gelen uygulamalar olarak adlandırılır. Android 10'da, iş yerlerinin yöneticileri profiller, herhangi bir kullanıcının veya profilin bilinmeyen uygulamalardan uygulama yüklemesini engelleyebilir yeni kullanıcı kısıtlaması ekleyerek cihazın herhangi bir yerindeki DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY. Ancak bu kısıtlamayı ekledikten sonra cihazı kullanan bir kişi yine de adb kullanarak uygulama yükleme.

Kullanıcıların bilinmeyen kaynaklardan gelen uygulamaları yanlışlıkla yüklemesini önlemek için Google Play gerekli olmadığı için bu kullanıcı kısıtlamasını eklemenizi öneririz yüklenmesidir. Eski Android sürümlerini desteklemek isterseniz Google Play için yönetilen bir yapılandırma değeri belirleyin.

İzin verilen giriş cihazlarını iş profilleriyle sınırla

İş profili yöneticileri DevicePolicyManager.setPermittedInputMethods() hizmetini aradığında kullanıcılar yalnızca kendi çalışmalarında izin verilen giriş yöntemleriyle kısıtlanır. profili sayesinde giriş üzerinde tam kontrol sahibi olmanızı sağlar. tarafından kullanılan bir yöntem de yoktur.

İş profillerini sessizce silme

WIPE_SILENTLY eklendi DevicePolicyManager.wipeData() olarak işaretleyin. İşaret ayarlanırsa kullanıcılara iş profilleri temizlendikten sonra bildirim gönderilmez wipeData() kullanılıyor.

Tümüyle yönetilen cihazlar için yeni özellikler

Android 10, tümüyle yönetilen cihazlar için yeni özellikler ve API'ler sunuyor. QR kodu ve NFC temel hazırlığının kapsamını genişletme, manuel sistem güncellemeleri ve EAP kablosuz ağına ilişkin kimlik bilgilerini ve TLS üzerinden DNS desteğini içermelidir.

Manuel sistem güncellemesini yükleme

Android 10'da tümüyle yönetilen cihazların yöneticileri, sistem güncellemelerini bir sistem güncelleme dosyası. Manuel sistem güncellemeleri, BT yöneticilerinin aşağıdakileri yapmasına olanak tanır:

  • Güncellemeyi geniş çapta yüklemeden önce az sayıda cihazda test edin.
  • Bant genişliği sınırlı ağlarda yinelenen indirmelerden kaçının.
  • Yüklemeleri birbirinden ayırın veya cihazları yalnızca kullanılmadıkları sırada güncelleyin.

Öncelikle bir BT yöneticisi ertelenmiş bir sistem güncelleme politikası belirler. otomatik yüklemeyi geciktirir (gerekirse). Ardından, cihazın DPC işlemi installSystemUpdate() cihaz üreticisinin sistem güncelleme dosyasının yolunu ekler. InstallSystemUpdateCallback geçin sistemin, cihazdan önce gerçekleşen hataları bildirmek için kullanabileceği nesne yeniden başlatılır. Bir sorun olursa sistem onInstallUpdateError() numarasını arar. hata kodu içerir.

Cihaz yeniden başlatıldıktan sonra DPC'nizin yükleme işleminin başarılı olduğunu onaylaması gerekir örneğin bir sürüm API'sı kullanarak Build.FINGERPRINT. Güncelleme bir BT yöneticisine bildirin.

EAP kablosuz ağ temel hazırlığı

Android 10'da cihaz temel hazırlığı için kullanılan QR kodları ve NFC verileri şunları içerebilir: EAP yapılandırması ve kimlik bilgileri (sertifikalar dahil). Bir kullanıcı bir QR kodunu taradığında bir NFC etiketine dokunduğunda veya cihaz bir yerel kablosuz ağın kimliğini otomatik olarak doğrular. herhangi bir ek gerek kalmadan, temel hazırlık işlemini başlatır. manuel giriş.

Kablosuz ağda EAP kullanarak kimlik doğrulaması yapmak için EXTRA_PROVISIONING_WIFI_SECURITY_TYPE fazladan "EAP" değerini kullanın. EAP kimlik doğrulamasını belirtmek için aşağıdaki temel hazırlık ekstralarını kullanabilirsiniz:

Gizli DNS desteği

Kuruluşlar TLS üzerinden DNS kullanabilir (Android cihazlarda Gizli DNS olarak adlandırılır) DNS sorgularının sızdırılmasını önlemek için dahili ana makine adları da dahil. Tümüyle yönetilen cihazların yönetici bileşenleri cihazın Gizli DNS ayarlarını denetleyebilir. Gizli DNS modunu ayarlamak için: arayın:

DPC'niz bu yöntemlerden birini çağırdığında sistem aşağıdaki durumlarda PRIVATE_DNS_SET_NO_ERROR değerini döndürür. arama başarılı oldu. Aksi takdirde hata döndürür.

Bir cihazda ayarlanan gizli DNS modunu ve barındırıcıyı almak için getGlobalPrivateDnsMode() numaralı telefonu arayın ve getGlobalPrivateDnsHost(). Kullanıcıların gizli DNS ayarlarını değiştirmesini önlemek için DISALLOW_CONFIG_PRIVATE_DNS kullanıcı kısıtlaması.

VPN tam gizlilik modu muafiyeti

VPN kilitleme modu, DPC'nin tüm ağları engellemesine olanak tanır kullanmayan VPN'e dokunun. Tamamının yöneticileri yönetilen cihazlar ve iş profilleri, uygulamaları tam kilitleme modundan muaf tutabilir. Muaf tutulan uygulamalar varsayılan olarak VPN kullanır, ancak diğer uygulamalara otomatik olarak ağlara yönlendirir. Muaf tutulan ve açıkça da erişimi reddetti VPN yalnızca diğer ağları kullanır.

Bir uygulamayı tam kilitleme modundan muaf tutmak için yeni DevicePolicyManager yöntem setAlwaysOnVpnPackage() uygulama paketlerinin listesini kabul eden bir e-posta alırsınız. DPC'nin eklediği tüm uygulama paketleri yöntem çağrıldığında cihaza yüklenmiş olmalıdır. Uygulama kaldırılıp yeniden yüklendiğinde, uygulamanın tekrar muaf tutulması gerekir. Uygulamaları edinmek için tam kilitleme modundan muaf olun, getAlwaysOnVpnLockdownWhitelist().

Tümüyle yönetilen cihazların ve iş profillerinin yöneticilerinin tam kilitleme modunu kullanmasına yardımcı olmak için Android 10, isAlwaysOnVpnLockdownEnabled() yöntemidir.

Yeni yetki kapsamları

Android 10, DPC'nin başka DPC'lere yetki verebileceği işlevlerin listesini genişletiyor. özel uygulamalar. Android, bir görev için gereken API yöntemlerini şu şekilde gruplandırır: kapsamlarını inceleyin. Kapsam yetkisi vermek için setDelegatedScopes() ve aşağıdaki kapsamlardan birini veya daha fazlasını iletebilirsiniz:

Android 10 ile yeni sınıf DelegatedAdminReceiver yetki verilmiş uygulamalar. Sistem, DPC benzeri bir yayın göndermek için bu yayın alıcısını kullanır yetki vermektir. Ağ etkinliği yetkisi verilmiş uygulamalar günlük kaydı ve sertifika seçimi bu sınıfı uygulamalıdır. Bunu eklemek için bileşenini yetki verilmiş bir uygulamaya eklemek için aşağıdaki adımları uygulayın:

  1. DelegatedAdminReceiver alt sınıfı ekleyin yetki verilmiş uygulamaya gönderilir.
  2. <receiver> özelliğini beyan edin: her geri çağırma için bir intent filtresi işlemi ekleyerek Örneğin, ACTION_NETWORK_LOGS_AVAILABLE veya ACTION_CHOOSE_PRIVATE_KEY_ALIAS.
  3. Yayın alıcısını BIND_DEVICE_ADMIN ile koruyun izni gerekir.

Aşağıdaki snippet'te, yetki verilmiş tek bir uygulamanın uygulama manifesti gösterilmektedir. hem ağ günlük kaydını hem de sertifika seçimini işler:

<receiver android:name=".app.DelegatedAdminReceiver"
        android:permission="android.permission.BIND_DELEGATED_ADMIN">
    <intent-filter>
        <action android:name="android.app.admin.action.NETWORK_LOGS_AVAILABLE">
        <action android:name="android.app.action.CHOOSE_PRIVATE_KEY_ALIAS">
    </intent-filter>
    </receiver>

Ağ etkinliği günlük kaydı

Kuruluşların kötü amaçlı yazılımları tespit edip izlemesine yardımcı olmak için DPC'ler TCP bağlantılarını günlüğe kaydedebilir arama ve DNS araması yapmanıza olanak tanır. Android 10'da tümüyle yönetilen yöneticileri cihazlar, özel bir uygulamaya ağ günlük kaydı yetkisi verebilir.

Sistemden sonra ağ günlüklerini almak için bir grubu kullanıma sunuyorsa yetki verilmiş uygulamalar birinci sınıf olmalıdır DelegatedAdminReceiver (daha önce açıklandığı gibi). Alt sınıfınızda onNetworkLogsAvailable() geri çağırma işlemini Günlükleri alma başlıklı makalede bulabilirsiniz.

Uygulamalara yetki verme aşağıdakileri çağırabilir: DevicePolicyManager yöntem (admin bağımsız değişkeni için null iletiliyor):

Günlükleri kaybetmemek için DPC'lerde ağ günlük kaydı etkinleştirilmemelidir yetkiyi başka bir uygulamaya vermeyi planlıyorsanız. Yetki verilmiş uygulama, ağ günlüklerini toplar. Bir DPC ağ günlük kaydı için yetki verdikten sonra başka onNetworkLogsAvailable() daha fazla bilgi edindiniz.

Yetki verilmiş bir uygulamadan ağ etkinliği günlük kaydının nasıl raporlanacağını öğrenmek için Ağ etkinliği günlük kaydı adlı geliştirici kılavuzu.

Sertifika seçimi

Android 10'da yöneticileri tam olarak yönetilen cihazlar, iş profilleri ve ikincil kullanıcılar sertifika seçimini özel bir uygulamaya dönüştürün.

Sertifika takma adı seçmek için yetki verilen uygulamaların birinci alt sınıf olması gerekir DelegatedAdminReceiver (daha önce açıklandığı gibi). Alt sınıfınızda onChoosePrivateKeyAlias() ile geri arama ve tercih edilen kullanıcı için takma ad döndürme sertifika seçmesini istemek için null değerini döndürün.

Cihaz yöneticisi politikalarının kullanımdan kaldırılması

Android 10, uygulamaların ve DPC'lerin eski cihazları uygulamasını engeller yönetici politikaları hakkında daha fazla bilgi edinin. Müşterilere, ve iş ortaklarınız tümüyle yönetilen cihazlara veya iş profillerine geçiş yapar. Aşağıdakiler politikalar bir SecurityException Android 10'u hedefleyen bir cihaz yöneticisi tarafından çağrıldığında:

ziyaret edin.

Bazı uygulamalar, tüketici cihaz yönetimi için cihaz yöneticisini kullanır. Örneğin, Örneğin, kayıp bir cihazı kilitleme ve silme. Bunu mümkün kılmak için kullanmaya devam edebilirsiniz:

Bu değişiklikler hakkında daha fazla bilgi edinmek için Cihaz yöneticisi desteğinin sonlandırılması.

Uygulamalar için yeni özellikler

Android 10'u hedefleyen uygulamalar, bir cihazda ayarlanan ekran kilidi karmaşıklığını sorgulayabilir . Arama yapan uygulamalar KeyChain API avantajı, davranış iyileştirmelerinin yanı sıra VPN uygulamaları için de yeni özellikler mevcut.

Ekran kilidi kalite kontrolü

Kritik özelliklere sahip olan ve ekran kilidi gerektiren uygulamalar Android 10'dan itibaren bir cihazın veya iş profilinin ekran kilidi karmaşıklığını sorgulayabilir. Aşağıdakilere ihtiyacı olan uygulamalar: güçlü bir ekran kilidi, kullanıcıyı sistem ekran kilidi ayarlarına yönlendirebilir güvenlik ayarlarını güncellemelerine olanak tanır.

Ekran kilidi kalitesini kontrol etmek için:

Sistem ekran kilidi ayarlarını başlatmak için şunu kullanın: ACTION_SET_NEW_PASSWORD ekstra EXTRA_PASSWORD_COMPLEXITY (var olmayan seçenekler) amaçta belirtilen karmaşıklık düzeyine sahip görseller devre dışı olarak görünür. Kullanıcılar şunları yapabilir: mevcut ekran kilidi seçeneklerinden birini belirleyin veya ekrandan çıkın.

En iyi uygulama: Sistemi başlatmadan önce uygulamanızda bir mesaj görüntüleyin ekran kilidi sayfasını ziyaret edin. Uygulamanız devam ettirildiğinde DevicePolicyManager.getPasswordComplexity() tekrar. Daha güçlü bir ekran kilidi kullanmanız gerekiyorsa Kullanıcılardan güvenlik ayarlarını güncellemelerini isteme.

VPN uygulamalarında HTTP proxy desteği

Android 10'da VPN uygulamaları bir HTTP proxy ayarlayabilir VPN bağlantısı için. HTTP proxy'si eklemek için VPN uygulamasının bir Bir ana makine ve bağlantı noktası içeren ProxyInfo örneği, aramadan önce VpnService.Builder.setHttpProxy(). Sistem ve birçok ağ iletişimi kitaplığı bu proxy ayarını kullanır, ancak , uygulamaları HTTP isteklerine proxy yapmaya zorlamaz.

HTTP proxy'sinin nasıl ayarlanacağını gösteren örnek kod için ToyVPN örnek uygulama.

VPN hizmet modları

VPN uygulamaları, her zaman açık olduğu için hizmetin VPN ve tam kilitleme varsa modu etkin olduğundan emin olun. Yeni yöntemler kullanıcı arayüzünüzü düzenlemenize yardımcı olabilir. Örneğin, Her zaman açık VPN, kullanım yaşam döngüsünü kontrol ettiğinde bağlantıyı kesme düğmenizi devre dışı bırakabilir. olabilir.

VPN uygulamaları aşağıdaki VpnService numarasını arayabilir. hizmete bağlandıktan sonra yeni yöntemler ve yerel arayüzün kurulmasıyla ilgili:

  • isAlwaysOn() - sistemin hizmeti her zaman açık VPN nedeniyle başlatıp başlatmadığını öğrenin
  • isLockdownEnabled() VPN kullanmayan bağlantıları sistemde engelleyip engellemediğini öğrenmek

Her zaman açık durumu hizmetiniz çalışırken aynı kalır ancak tam gizlilik modu durumu değişebilir.

Anahtar zinciri iyileştirmeleri

Android 10, KeyChain API.

KeyChain.choosePrivateKeyAlias(), Android 10 ve sonraki sürümleri çağıran bir uygulama olduğunda kullanılan sertifika listesine bağlı olarak kullanıcının aralarından seçim yapabileceği ve anahtar algoritmaları dahildir.

Örneğin, bir TLS sunucusu Sertifika İsteği gönderdiğinde bir TLS el sıkışması ve tarayıcı çağrılarının parçası olarak mesajı KeyChain.choosePrivateKeyAlias(), yalnızca sertifika seçimi istemi kartı veren kuruluşun parametresiyle eşleşen seçenekleri içerir. Eşleşen seçenek yoksa sertifika yoksa veya cihazda yüklü sertifika yoksa kullanıcıya gösterilmez.

Ayrıca, KeyChain artık geçerli değil Anahtarların veya CA sertifikalarının içe aktarıldı.