Bu sayfada, Android 9'da bulunan kurumsal API'ler, özellikler ve davranış değişikliklerine genel bir bakış sunulmaktadır.
İş profili kullanıcı arayüzü
Android 9 (API düzeyi 28), kullanıcıların kişisel ve iş uygulamalarını ayırmalarına yardımcı olmak için varsayılan başlatıcıda kullanıcı arayüzü değişiklikleri içerir. Bunu destekleyen cihaz üreticileri, kullanıcıların uygulamalarını ayrı iş sekmelerinde ve kişisel sekmelerde sunabilir. Ayrıca, başlatıcının iş sekmesine bir anahtar ekleyerek cihaz kullanıcılarının iş profilini açıp kapatmalarını kolaylaştırdık.
Android 9, iş profilleri ve yönetilen cihazların temel hazırlığını yaparken cihaz kullanıcılarının bu özellikleri anlamasına yardımcı olacak animasyonlu resimler içerir.
Profiller arasında uygulamalar arasında geçiş yapma
Android 9, kullanıcıların hesaplar arasında geçiş yapmasına yardımcı olmak için farklı bir profilde bir uygulamanın başka bir örneğini başlatan API'ler içerir. Örneğin, bir e-posta uygulaması, kullanıcının iki e-posta hesabına erişmek için kişisel profil ile iş profili arasında geçiş yapmasını sağlayan bir kullanıcı arayüzü sağlayabilir. Aynı uygulamanın ana etkinliğini başlatmak için (diğer profilde zaten yüklüyse) tüm uygulamalar bu API'leri çağırabilir. Uygulamanıza profiller arası hesap geçişi eklemek için aşağıdaki CrossProfileApps
sınıfının çağrı yöntemleriyle ilgili adımları uygulayın:
- Uygulamanın başka bir örneğini başlatabileceğiniz profillerin listesini almak için
getTargetUserProfiles()
numaralı telefonu arayın. Bu yöntem, uygulamanın profillerde yüklü olup olmadığını kontrol eder. - Başka bir profili temsil etmek üzere kullanabileceğiniz bir simge almak için
getProfileSwitchingIconDrawable()
numaralı telefonu arayın. - Kullanıcının profil değiştirmesini isteyen yerelleştirilmiş bir metin almak için
getProfileSwitchingLabel()
numaralı telefonu arayın. - Uygulamanızın başka bir profilde bir örneğini başlatmak için
startMainActivity()
numaralı telefonu arayın.
Başlatmak istediğiniz ana etkinliğin, uygulamanızın manifest dosyasında ACTION_MAIN
intent işlemiyle tanımlandığından ve CATEGORY_LAUNCHER
amaç kategorisi içerdiğinden emin olun.
İş profillerini programlı olarak açma veya kapatma
Varsayılan başlatıcı (veya MANAGE_USERS
ya da MODIFY_QUIET_MODE
iznine sahip uygulamalar), UserManager.requestQuietModeEnabled()
çağrısı yaparak iş profilini açıp kapatabilir. Durum değişmeden önce kullanıcının kimlik bilgilerini onaylaması gerekip gerekmediğini öğrenmek için döndürülen değeri inceleyebilirsiniz. Değişiklik anında gerçekleşmeyebileceğinden, kullanıcı arayüzünün ne zaman güncelleneceğini öğrenmek için ACTION_MANAGED_PROFILE_AVAILABLE
veya ACTION_MANAGED_PROFILE_UNAVAILABLE
yayınını dinleyin.
Uygulamanız, UserManager.isQuietModeEnabled()
numaralı telefonu arayarak iş profilinin durumunu kontrol edebilir.
Herhangi bir uygulamayı bir cihazda kilitleme
Android 9'dan itibaren, cihaz sahipleri ve profil sahipleri (ikincil kullanıcıların) herhangi bir uygulamayı kilit görevi moduna alarak cihazın ekranına kilitleyebilir. Daha önce uygulama geliştiricilerin, uygulamalarında kilit görevi modu için destek eklemesi gerekiyordu. Android 9, kilitleme görevi API'lerini, ilişkili olmayan ikincil kullanıcıların profil sahiplerini de kapsayacak şekilde genişletir. Bir uygulamayı ekrana kilitlemek için aşağıdaki adımları uygulayın:
- Kilit görevi modundaki uygulamaları izin verilenler listesine eklemek için
DevicePolicyManager.setLockTaskPackages()
numaralı telefonu arayın. - İzin verilenler listesine eklenmiş bir uygulamayı kilit görevi modunda başlatmak için
ActivityOptions.setLockTaskEnabled()
numaralı telefonu arayın.
Bir uygulamayı kilit görev modunda durdurmak için DevicePolicyManager.setLockTaskPackages()
aracını kullanarak uygulamayı kilit görevi modundaki izin verilenler listesinden kaldırın.
Sistem kullanıcı arayüzü özelliklerini etkinleştir
Görev kilitleme modu etkinleştirildiğinde, cihaz sahipleri ve profil sahipleri DevicePolicyManager.setLockTaskFeatures()
çağrısı yaparak ve aşağıdaki özellik bayraklarının bit alanını ileterek cihazda belirli sistem kullanıcı arayüzü özelliklerini etkinleştirebilirler:
LOCK_TASK_FEATURE_NONE
LOCK_TASK_FEATURE_SYSTEM_INFO
LOCK_TASK_FEATURE_HOME
LOCK_TASK_FEATURE_NOTIFICATIONS
yalnızcaLOCK_TASK_FEATURE_HOME
ile birlikte kullanılabilir.LOCK_TASK_FEATURE_KEYGUARD
LOCK_TASK_FEATURE_OVERVIEW
yalnızcaLOCK_TASK_FEATURE_HOME
ile birlikte kullanılabilir.LOCK_TASK_FEATURE_GLOBAL_ACTIONS
Görev kilitleme modu etkinleştirildiğinde, cihazda kullanılabilen özelliklerin listesini almak için DevicePolicyManager.getLockTaskFeatures()
numaralı telefonu arayabilirsiniz. Bir cihaz kilit görevi modundan çıktığında diğer cihaz politikalarının zorunlu kıldığı duruma geri döner.
Hata iletişim kutularını gizle
Perakende tanıtımları veya genel bilgi ekranları gibi bazı ortamlarda kullanıcılara hata iletişim kutuları göstermek istemeyebilirsiniz. Cihaz politikası denetleyici (DPC), DISALLOW_SYSTEM_ERROR_DIALOGS
kullanıcı kısıtlamasını ekleyerek, çöken veya yanıt vermeyen uygulamalarla ilgili sistem hatası iletişim kutularını gizleyebilir. Bu kısıtlama, bir cihaz sahibi tarafından uygulandığında tüm iletişim kutularını etkiler. Ancak kısıtlama, profil sahipleri tarafından uygulandığında yalnızca birincil veya ikincil kullanıcıda gösterilen hata iletişim kutuları gizlenir. Bu kısıtlama, iş profillerini etkilemez.
Android 9'da, etkileyici tam ekran modunda çalışan uygulamalar kilit görevi modundayken hatırlatıcı balonunu göstermez. Hatırlatıcı balonu, kullanıcılara gösterilen (ilk lansmanda) yoğun içerik modundan nasıl çıkılacağını açıklayan bir paneldir.
Özel cihazlarda birden fazla kullanıcıyı destekleme
Android 9, özel cihazlar (eski adıyla COSU cihazlar) için geçici kullanıcı kavramını kullanıma sunuyor. Geçici kullanıcılar, birden fazla kullanıcının tek bir özel cihazı paylaştığı durumlar için tasarlanmış kısa süreli kullanıcılardır. Buna, kütüphane veya konaklama check-in kioskları gibi cihazlardaki herkese açık kullanıcı oturumları ve belirli cihazlarda (ör. vardiya çalışanları) sabit bir kullanıcı grubu arasındaki kalıcı oturumlar dahildir.
Geçici kullanıcılar arka planda oluşturulmalıdır. Bir cihazda ikincil kullanıcı olarak oluşturulurlar ve durdurulduğunda, geçiş yapıldığında veya cihaz yeniden başlatıldığında kaldırılır (ilişkili uygulamalar ve verilerle birlikte). Geçici kullanıcı oluşturmak için cihaz sahipleri şunları yapabilir:
DevicePolicyManager.createAndManageUser()
çağrısı yapılırkenMAKE_USER_EPHEMERAL
işaretini ayarlayın.- Geçici kullanıcıyı arka planda başlatmak için
DevicePolicyManager.startUserInBackground()
numaralı telefonu arayın.
Android 9'u hedefleyen uygulamaların createAndManageUser()
çağrısı yapılırken UserManager.UserOperationException
yakalaması gerektiğini unutmayın. Kullanıcının neden oluşturulmadığını öğrenmek için istisnanın getUserOperationResult()
yöntemini çağırın.
Etkinlik bildirimlerini alma
DeviceAdminReceiver
aşağıdaki etkinlikler için bildirim alır:
onUserStarted()
: Kullanıcı başladığında çağrılır.onUserSwitched()
: Kullanıcı geçişi tamamlandığında çağrılır.onUserStopped()
: Bir kullanıcı durduğunda veya oturumu kapattığındaonUserRemoved()
ile birlikte çağrılır.
Kullanıcılara etkinlik mesajları gösterin
Cihaz sahipleri, oturumlarını başlattıklarında ve sonlandırdıklarında kullanıcılara gösterilecek mesajları yapılandırabilir:
- Kullanıcının oturumu başladığında kullanıcıya gösterilecek mesajı ayarlamak için
DevicePolicyManager.setStartUserSessionMessage()
aracını kullanın. Mesajı almak içinDevicePolicyManager.getStartUserSessionMessage()
numaralı telefonu arayın. - Kullanıcının oturumu sona erdiğinde kullanıcıya gösterilecek mesajı ayarlamak için
DevicePolicyManager.setEndUserSessionMessage()
aracını kullanın. Mesajı almak içinDevicePolicyManager.getEndUserSessionMessage()
numaralı telefonu arayın.
Çıkış yap ve kullanıcıları durdur
Cihaz sahipleri, ikincil kullanıcılar için çıkış yapma özelliğinin etkinleştirilip etkinleştirilmeyeceğini belirtmek üzere DevicePolicyManager.setLogoutEnabled()
özelliğini kullanabilir. Çıkış yapma özelliğinin etkinleştirilip etkinleştirilmediğini kontrol etmek için DevicePolicyManager.isLogoutEnabled()
numaralı telefonu arayın.
İkincil kullanıcıların profil sahipleri, ikincil kullanıcıyı durdurmak ve birincil kullanıcıya geri dönmek için DevicePolicyManager.logoutUser()
numarasını arayabilir.
Cihaz sahipleri, belirli bir ikincil kullanıcıyı durdurmak için DevicePolicyManager.stopUser()
aracını kullanabilir.
Paket önbelleğe alma
Sabit bir kullanıcı grubuna sahip paylaşılan cihazlarda kullanıcı temel hazırlığını kolaylaştırmak için (ör. vardiyalı çalışanlara yönelik cihazlar) çok kullanıcılı oturumlar için gereken paketleri önbelleğe almak mümkündür:
APK olarak saklanacak paketlerin listesini belirtmek için
DevicePolicyManager.setKeepUninstalledPackages()
çağrısı yapın. Bu paketlerin listesini almak içinDevicePolicyManager.getKeepUninstalledPackages()
numaralı telefonu arayın.setKeepUninstalledPackages()
aracılığıyla kaldırıldıktan sonra saklanan bir paketi yüklemek içinDevicePolicyManager.installExistingPackage()
numaralı telefonu arayın.
Ek yöntemler ve sabit değerler
Android 9, paylaşılan cihazlardaki kullanıcı oturumlarını daha fazla desteklemek için aşağıdaki yöntemleri ve sabit değerleri de içerir:
DevicePolicyManager.getSecondaryUsers()
, bir cihazdaki tüm ikincil kullanıcıların listesini alır.DISALLOW_USER_SWITCH
, kullanıcı geçişini engellemek içinDevicePolicyManager.addUserRestriction()
yöntemini çağırarak etkinleştirebileceğiniz bir kullanıcı kısıtlamasıdır.LEAVE_ALL_SYSTEM_APPS_ENABLED
,DevicePolicyManager.createAndManageUser()
için kullanılabilen bir işarettir. Bu ayar ayarlandığında, kullanıcı temel hazırlığı sırasında sistem uygulamaları devre dışı bırakılmaz.- Bir kullanıcı oluşturulamadığında
UserManager.UserOperationException
,DevicePolicyManager.createAndManageUser()
tarafından atılır. İstisna, hatanın nedenini içerir.
Paket verilerini temizle ve hesapları kaldır
Cihaz sahipleri ve profil sahipleri, belirli bir paketteki kullanıcı verilerini temizlemek için clearApplicationUserData()
numarasını arayabilir. Bir hesabı AccountManager
'ten kaldırmak için cihaz ve profil sahipleri removeAccount()
numaralı telefonu arayabilir.
Kullanıcı kısıtlamaları ve ayarlar üzerinde daha fazla kontrol
Android 9, cihazda APN'ler, saat, saat dilimi ve sistem ayarlarını yapılandırabilme özelliğinin yanı sıra DPC'ler için bir dizi kullanıcı kısıtlaması sunar.
APN'leri yapılandırın
Cihaz sahipleri, bir cihazda APN'leri yapılandırmak için DevicePolicyManager
sınıfında aşağıdaki yöntemleri kullanabilir:
addOverrideApn()
updateOverrideApn()
removeOverrideApn()
getOverrideApns()
setOverrideApnEnabled()
isOverrideApnEnabled()
Saati ve saat dilimini yapılandır
Cihaz sahipleri, bir cihazda saati ve saat dilimini ayarlamak için DevicePolicyManager
sınıfında aşağıdaki yöntemleri kullanabilir:
Önemli ayarlarda kullanıcı kısıtlamalarını zorunlu kılma
Android 9, sistem özelliklerini ve ayarlarını devre dışı bırakmak için kullanıcı kısıtlamaları ekler. Kısıtlama eklemek için DevicePolicyManager.addUserRestriction()
değerini aşağıdaki UserManager
sabit değerlerinden biriyle çağırın:
DISALLOW_AIRPLANE_MODE
DISALLOW_AMBIENT_DISPLAY
DISALLOW_CONFIG_BRIGHTNESS
DISALLOW_CONFIG_DATE_TIME
DISALLOW_CONFIG_LOCATION
DISALLOW_CONFIG_SCREEN_TIMEOUT
DISALLOW_PRINTING
Bir cihazda DISALLOW_CONFIG_BRIGHTNESS
ve DISALLOW_CONFIG_SCREEN_TIMEOUT
zorunlu kılınırsa cihaz sahipleri, API'yi kullanarak cihazda ekran parlaklığı, ekran parlaklığı ve ekran zaman aşımı ayarlarını yine de belirleyebilir
DevicePolicyManager.setSystemSetting()
.
Ölçülen veriler
Cihaz sahipleri ve profil sahipleri, uygulamaların bir cihazın sayaçlı veri ağlarını kullanmasını engelleyebilir. Kullanıcı; maliyet, veri sınırları veya pil ve performans sorunları nedeniyle yoğun veri kullanımına karşı duyarlı olduğunda ağ sınırlı olarak kabul edilir. Uygulamaların sayaçlı ağları kullanmasını önlemek için paket adları listesini ileterek DevicePolicyManager.setMeteredDataDisabledPackages()
çağrısı yapın. Şu anda kısıtlanmış olan uygulamaları almak için DevicePolicyManager.getMeteredDataDisabledPackages()
numaralı telefonu arayın.
Android'de ölçülen veriler hakkında daha fazla bilgi edinmek için Ağ Veri Kullanımını Optimize Etme bölümünü okuyun.
DPC'leri taşıma
Cihaz politikası denetleyiciler (DPC'ler), bir cihaz veya iş profili sahipliğini başka bir DPC'ye aktarabilir. Bazı özellikleri Android Management API'ye taşımak, cihazları eski DPC'nizden taşımak veya BT yöneticilerinin EMM'nize geçmesine yardımcı olmak için sahipliği aktarabilirsiniz. Yalnızca DPC sahipliğini değiştirdiğiniz için bu özelliği, yönetim türünü (örneğin, yönetilen bir cihazdan iş profiline geçiş) değiştirmek için kullanamazsınız.
DPC'nizin bu sürümünün taşımayı desteklediğini belirtmek için cihaz yöneticisi politikaları XML kaynağını kullanabilirsiniz. Hedef DPC, <support-transfer-ownership>
adlı bir öğe ekleyerek sahiplik alabileceğini belirtir. Aşağıdaki örnekte, bunu DPC'nizin cihaz yöneticisi XML dosyasında nasıl yapabileceğiniz gösterilmektedir:
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<support-transfer-ownership />
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
</uses-policies>
</device-admin>
Sahipliği yeni DPC uygulamasına taşımak isteyen DPC'ler, DeviceAdminInfo
yöntemini supportsTransferOwnership()
çağırarak hedef DPC'nin sürümünün taşımayı destekleyip desteklemediğini kontrol edebilir. Sahipliği aktarmadan önce, uygulama imzalarını karşılaştırarak hedef DPC'yi doğrulamak kaynak DPC'nin sorumluluğundadır. PackageManager
sınıfı, kod imzalama imzalarıyla çalışma yöntemleri içerir.
Android, kaynak DPC'nin sistem ve kullanıcı politikalarını bir sahiplik aktarımı yoluyla korur. DPC'lerin bunları taşıması gerekmez. Kaynak DPC, PersistableBundle
içindeki anahtar/değer çiftlerini kullanarak hedef DPC'ye özel veriler aktarabilir. Aktarım başarılı olduktan sonra hedef DPC, DevicePolicyManager.getTransferOwnershipBundle()
çağrısı yaparak bu verileri alabilir.
Yönetilen bir cihazın veya iş profilinin sahipliğini aktarma adımları aynıdır:
- Kaynak DPC, hedef DPC sürümünün taşımayı destekleyip desteklemediğini kontrol eder ve hedef DPC'nin uygulama imzasının beklenen bir değerle eşleştiğini onaylar.
- Kaynak DPC, aktarımı başlatmak için
transferOwnership()
numarasını arar. - Sistem, hedef DPC'yi etkin yönetici yapar ve yönetilen cihazın veya iş profilinin sahibi olarak ayarlar.
- Hedef DPC,
onTransferOwnershipComplete()
geri çağırmasını alır vebundle
bağımsız değişkenindeki değerleri kullanarak kendini yapılandırabilir. - Aktarım sırasında bir sorun oluşursa sistem sahipliği kaynak DPC'ye geri verir. Kaynak DPC'nizin sahiplik aktarımının başarılı olduğunu onaylaması gerekiyorsa kaynak DPC'nin artık etkin yönetici olmadığından emin olmak için
isAdminActive()
numaralı telefonu arayın.
Profil sahibi değiştiğinde, iş profilinde çalışan tüm uygulamalar ACTION_PROFILE_OWNER_CHANGED
yayınını alır. Yönetilen bir cihazda çalışan uygulamalar, cihaz sahibi değiştiğinde ACTION_DEVICE_OWNER_CHANGED
yayınını alır.
Tamamen yönetilen cihazlarda iş profilleri
Cihaz sahibi ve profil sahibi olarak çalışan bir DPC'nin iki örneğinin aktarılması iki aşamada gerçekleşir. Kişisel profil ve iş profili ilişkilendirildiğinde aktarımı aşağıdaki sırayla tamamlayın:
- Öncelikle iş profilinin sahipliğini aktarın.
- İş profilinin hedef DPC'ye aktarıldığını onaylamak için
DeviceAdminReceiver
geri aramasınıonTransferAffiliatedProfileOwnershipComplete()
bekleyin. - Son olarak, yönetilen cihazın sahipliğini hedef DPC'ye aktarın.
İnternet üzerinden (OTA) güncellemeleri erteleme
Cihaz sahipleri, kritik dönemlerde (ör. tatil dönemlerinde) cihazlarda çalışan OS sürümünü dondurmak için OTA sistem güncellemelerini 90 güne kadar erteleyebilir. Sistem, cihazın süresiz olarak donmasını önlemek için tanımlı herhangi bir dondurma süresinden sonra 60 günlük zorunlu bir arabellek uygular.
Dondurulma döneminde:
- Cihazlar, bekleyen OTA güncellemeleriyle ilgili bildirim almaz.
- Cihazlar, işletim sistemine OTA güncellemelerini yüklemez.
- Cihaz kullanıcıları, Ayarlar'da OTA güncellemelerini manuel olarak kontrol edemez.
Dondurma süresi ayarlamak için SystemUpdatePolicy.setFreezePeriods()
numaralı telefonu arayın. Dondurma dönemi yıllık olarak tekrarlandığından, dönemin başlangıç ve bitiş tarihleri, yılın başlangıcından itibaren geçen gün sayısını sayan tam sayılarla temsil edilir. Başlangıç günü, önceki dondurma dönemlerinin bitişinden en az 60 gün sonra başlamalıdır. Cihaz sahipleri, daha önce sistem güncelleme politikası nesnesinde ayarlanan dondurma dönemlerinin listesini almak için SystemUpdatePolicy.getFreezePeriods()
'i çağırabilir.
DevicePolicyManager.getSystemUpdatePolicy()
, cihaz sahibi tarafından ayarlanan dondurma dönemlerini döndürecek şekilde güncellendi.
İş profilinde paylaşımı kısıtlama
Profil sahipleri, kullanıcı kısıtlamasını DISALLOW_SHARE_INTO_MANAGED_PROFILE
ekleyerek kullanıcıların kişisel verileri cihazdaki bir iş profilinde paylaşmasını engelleyebilir.
Bu kısıtlama, aşağıdaki intent'lerin işlenmesini ve paylaşılmasını engeller:
- İş profili uygulamalarıyla veri ve dosya paylaşan kişisel profil uygulamaları.
- Kişisel profilden öğe (örneğin, resimler veya dosyalar) seçen iş profili uygulamaları.
Bu kısıtlamayı ayarladıktan sonra DPC'niz addCrossProfileIntentFilter()
yöntemini çağırarak profiller arası etkinlik amaçlarına izin vermeye devam edebilir.
Donanımla korunan anahtarlar ve makine sertifikaları
Android 9, cihazları güvenli bir şekilde tanımlamak için birleştirebileceğiniz anahtar ve sertifikalarla çalışmanıza yardımcı olacak API'ler ekler. Profil sahibi veya cihaz sahibi modlarında çalışan bir DPC ya da yetki verilmiş bir sertifika yükleyici aşağıdaki görevleri tamamlayabilir:
- Android cihazın güvenli donanımında (ör. güvenilir yürütme ortamı (TEE) veya Secure Element (SE) gibi) anahtarlar ve sertifikalar oluşturun. Oluşturulan anahtarlar hiçbir zaman güvenli donanımdan dışarı çıkmaz ve Android KeyChain'den kullanılabilir. Algoritmayı (bkz.
KeyPairGenerator
) ve onaylanmasını istediğiniz donanım kimliklerini (ör. seri numarası veya IMEI) sağlayarakDevicePolicyManager.generateKeyPair()
numaralı telefonu arayın. Güvenli donanım değişiklikleri hakkında daha fazla bilgi edinmek için Android 9 güvenlik iyileştirmeleri sayfasına göz atın. - Sertifikayı cihaz tarafından oluşturulmuş mevcut bir anahtarla ilişkilendirme Mevcut anahtarın ve sertifika zincirinin takma adını (yaprak sertifikasından başlayarak ve sırayla güven zincirini dahil ederek) sağlayan
DevicePolicyManager.setKeyPairCertificate()
'i çağırın. - Kullanmadan önce güvenli donanımın anahtarı koruduğundan emin olun. Anahtarı hangi mekanizmaların koruduğunu kontrol etmek için Anahtar Onayı bölümündeki adımları uygulayın.
- Cihaz sahipleri ve yetki verilmiş sertifika yükleyiciler, Android sistem sürümlerine sahip cihazların donanım kimliklerinin imzalı bir bildirimini alabilir.
idAttestationFlags
bağımsız değişkenindeID_TYPE_BASE_INFO
,ID_TYPE_SERIAL
,ID_TYPE_IMEI
ya daID_TYPE_MEID
ifadelerinden birini veya daha fazlasını geçirenDevicePolicyManager.generateKeyPair()
çağrısı yapın. Döndürülen sertifika, onay kaydındaki donanım kimliklerini içerir. Donanım kimliklerinin dahil edilmesini istemiyorsanız0
parametresini iletin. Profil sahipleri yalnızca üretici bilgilerini alabilir (ID_TYPE_BASE_INFO
ileterek). Cihazın kimlikleri onaylayabildiğini kontrol etmek içinisDeviceIdAttestationSupported()
numaralı telefonu arayın. - Anahtar sertifikalarının seçilemez hale gelmesini sağlayarak cihaz kullanıcılarının kurumsal anahtarları kötüye kullanmasını (kurumsal olmayan görevlerde) önleyin. Sistem, seçici panelinde seçilemeyen sertifikalara yer vermez.
DeviceAdminReceiver.onChoosePrivateKeyAlias()
geri çağırma yönteminizde takma adı kurumsal anahtarınıza döndürün. Böylece sistem, sertifikayı kullanıcı adına otomatik olarak seçer. Bir anahtarı seçilemez hâle getirmek için aşağıdakiDevicePolicyManager
yöntemlerini çağırın:setKeyPairCertificate()
veisUserSelectable
bağımsız değişkeni içinfalse
değerini iletin.installKeyPair (ComponentName, PrivateKey, Certificate[], String, int)
veflags
bağımsız değişkenindenINSTALLKEY_SET_USER_SELECTABLE
çıkarın.
Kuruluşlar, bu API'leri birleştirerek erişim sağlamadan önce cihazları güvenli bir şekilde tanımlayabilir ve bütünlüklerini onaylayabilir:
- Android cihaz, güvenli donanımda yeni bir özel anahtar oluşturur. Özel anahtar hiçbir zaman güvenli donanımdan çıkmadığı için gizli kalır.
- Cihaz, sertifika imzalama isteği (CSR) oluşturmak ve sunucuya göndermek için bu anahtarı kullanır. CSR, cihaz kimliklerini içeren onay kaydını içerir.
- Sunucu, sertifika zincirini (Google sertifikasına rootlanmış) doğrular ve onay kaydından cihaz meta verilerini çıkarır.
- Sunucu, güvenli donanımın özel anahtarı koruduğunu ve cihaz kimliklerinin kuruluşun kayıtlarıyla eşleştiğini onaylar. Sunucu ayrıca Android sistem ve yama sürümlerinin herhangi bir gereksinimi karşılayıp karşılamadığını kontrol edebilir.
- Sunucu, CSR'den bir sertifika oluşturur ve sertifikayı cihaza gönderir.
- Cihaz, sertifikayı özel anahtarla eşleyerek (güvenli donanımda kalan) uygulamaların kurumsal hizmetlere bağlanmasını sağlar.
Daha fazla güvenlik API'si, özellik ve değişiklik
Güvenlik günlükleri ve ağ günlükleri için kimlikler
Android 9, güvenlik ve ağ etkinliği günlüklerine kimlikler ekler. Her etkinlik için sayısal kimlik monoton bir şekilde artarak BT yöneticilerinin günlüklerindeki boşlukları tespit etmesini kolaylaştırır. Güvenlik günlükleri ve ağ günlükleri ayrı koleksiyonlar olduğundan sistem ayrı kimlik değerleri tutar.
Kimlik değerini almak için SecurityEvent.getId()
, DnsEvent.getId()
veya ConnectEvent.getId()
numaralı telefonu arayın. DPC günlük kaydını etkinleştirdiğinde veya cihaz yeniden başlatıldığında, sistem kimliği sıfırlar.
DevicePolicyManager.retrievePreRebootSecurityLogs()
çağrısıyla getirilen güvenlik günlükleri bu kimlikleri içermez.
Güvenlik günlük kaydı
Güvenlik günlük kaydı, her SecurityEvent
öğesine bir günlük düzeyi atar. Günlük düzeyini öğrenmek için getLogLevel()
numaralı telefonu arayın. Bu yöntem, şunlardan biri olabilecek bir günlük düzeyi değeri döndürür: LEVEL_INFO
, LEVEL_WARNING
veya LEVEL_ERROR
.
Android 9, aşağıdaki tabloda listelenen etkinlikleri güvenlik günlüklerine kaydeder. Bir etkinliğin etiketini kontrol etmek için getTag()
çağrısı yapın. Etkinlik verilerini almak için getData()
numaralı telefonu arayın.
Etiketle | Etkinlik açıklaması |
---|---|
TAG_CERT_AUTHORITY_INSTALLED |
Sistemin kimlik bilgileri deposuna yeni bir kök sertifika yükleme girişimi. |
TAG_CERT_AUTHORITY_REMOVED |
Bir kök sertifikayı sistemin kimlik bilgileri deposundan kaldırma girişimi. |
TAG_CERT_VALIDATION_FAILURE |
Kablosuz sertifikası, bağlantı sırasında yapılan doğrulama kontrolünde başarısız oldu. |
TAG_CRYPTO_SELF_TEST_COMPLETED |
Sistem, kendi kriptografik testini tamamladı. |
TAG_KEYGUARD_DISABLED_FEATURES_SET |
Bir yönetici uygulaması, bir cihazın veya iş profili kilit ekranının özelliklerini devre dışı bıraktı. |
TAG_KEY_DESTRUCTION |
Şifreleme anahtarı silme girişimi. |
TAG_KEY_GENERATED |
Yeni bir şifreleme anahtarı oluşturma girişimi. |
TAG_KEY_IMPORT |
Yeni bir şifreleme anahtarını içe aktarma girişimi. |
TAG_KEY_INTEGRITY_VIOLATION |
Android, hasarlı bir şifreleme veya kimlik doğrulama anahtarı algıladı. |
TAG_LOGGING_STARTED |
Güvenlik günlük kaydı kaydedilmeye başladı. |
TAG_LOGGING_STOPPED |
Güvenlik günlük kaydı, kaydı durdurdu. |
TAG_LOG_BUFFER_SIZE_CRITICAL |
Güvenlik günlüğü arabelleği, kapasitesinin% 90'ına ulaştı. |
TAG_MAX_PASSWORD_ATTEMPTS_SET |
Bir yönetici uygulaması, izin verilen yanlış şifre denemesi sayısını belirliyor. |
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET |
Bir yönetici uygulaması, maksimum ekran kilidi zaman aşımı süresi ayarlamış olabilir. |
TAG_MEDIA_MOUNT |
Çıkarılabilir depolama medyası cihaza takıldı. |
TAG_MEDIA_UNMOUNT |
Cihaz, çıkarılabilir depolama medyasını çıkardı. |
TAG_OS_SHUTDOWN |
Android sistemi kapandı. |
TAG_OS_STARTUP |
Android sistemi başlatıldı. |
TAG_PASSWORD_COMPLEXITY_SET |
Bir yönetici uygulaması, şifre karmaşıklığıyla ilgili gereksinimleri belirliyor. |
TAG_PASSWORD_EXPIRATION_SET |
Bir yönetici uygulaması, şifrenin geçerlilik süresi için bir süre sonu belirledi. |
TAG_PASSWORD_HISTORY_LENGTH_SET |
Bir yönetici uygulaması, kullanıcıların eski şifreleri yeniden kullanmasını önleyerek şifre geçmişi uzunluğu belirledi. |
TAG_REMOTE_LOCK |
Bir yönetici uygulaması cihazı veya iş profilini kilitledi. |
TAG_USER_RESTRICTION_ADDED |
Bir yönetici uygulaması, kullanıcı kısıtlaması ayarladı. |
TAG_USER_RESTRICTION_REMOVED |
Bir yönetici uygulaması, kullanıcı kısıtlamasını kaldırdı. |
TAG_WIPE_FAILURE |
Bir cihazı veya iş profilini silme girişimi başarısız oldu. |
İş profili kilit ekranı sorgulaması
Android 9'dan itibaren profil sahipleri, DISALLOW_UNIFIED_PASSWORD
kullanıcı kısıtlamasını kullanarak kullanıcıların iş profilleri için ayrı bir kilit ekranı sorgulaması ayarlamasını zorunlu kılabilir. Bir kullanıcının cihazı ve iş profili için aynı kilit ekranı sorgulamasının ayarlanıp ayarlanmadığını kontrol etmek için DevicePolicyManager.isUsingUnifiedPassword()
numaralı telefonu arayın.
Bir cihazın ayrı bir iş profili kilit ekranı varsa DevicePolicyManager.setMaximumTimeToLock()
, cihazın tamamı yerine yalnızca iş profili için kilit ekranı zaman aşımı ayarlar.
Geliştirici araçlarına erişim
Android Debug Bridge (adb) aracı, iş verilerinin iş profilinde kalmasını sağlamak amacıyla iş profilindeki dizinlere ve dosyalara erişemez.
Daha fazla biyometrik seçenek için destek
Android 9, iş profilinin kilit ekranında biyometrik donanım kimlik doğrulaması üzerinde ayrıntılı denetim sağlar. KEYGUARD_DISABLE_FACE
ve KEYGUARD_DISABLE_IRIS
ile mevcut DevicePolicyManager.setKeyguardDisabledFeatures()
yöntemini çağırın.
Cihaz tarafından sağlanan tüm biyometrik kimlik doğrulama yöntemlerini devre dışı bırakmak için KEYGUARD_DISABLE_BIOMETRICS
ekleyin.
Cihaz yöneticisi politikalarının kullanımdan kaldırılması
Android 9, cihaz yöneticisi kullanan DPC'ler için aşağıda listelenen politikaları kullanımdan kaldırılmış olarak işaretler. Politikalar, Android 9'da daha önce olduğu gibi çalışmaya devam edecek. Android 10 sürümünden itibaren, bir cihaz yöneticisi tarafından çağrıldığında aynı politikalar bir SecurityException döndürür.
USES_POLICY_DISABLE_CAMERA
USES_POLICY_DISABLE_KEYGUARD_FEATURES
USES_POLICY_EXPIRE_PASSWORD
USES_POLICY_LIMIT_PASSWORD
Bazı uygulamalar, tüketici cihaz yönetimi için cihaz yöneticisini kullanır. Örneğin, kayıp bir cihazı kilitleme ve silme. Bunu mümkün kılmak için aşağıdaki politikalar kullanılmaya devam edecektir:
Bu değişiklikler hakkında daha fazla bilgi için Cihaz yöneticisi desteğinin sonlandırılması konusunu okuyun.
Basitleştirilmiş QR kodu kaydı
Yerleşik QR kitaplığı
Android 9, QR kodu cihaz temel hazırlığını kolaylaştırmak için QR kitaplığıyla birlikte gelir. BT yöneticilerinin artık cihaz kurulumu için kablosuz ağ bilgilerini manuel olarak girmesi gerekmez. Bunun yerine, Android 9'da bu kablosuz ağ bilgileri bir QR koduna eklenebilir. BT yöneticisi şirkete ait bir cihazla QR kodunu taradığında, cihaz otomatik olarak kablosuz ağa bağlanır ve herhangi bir ek manuel giriş olmadan temel hazırlık işlemine girer.
QR kodu temel hazırlık yöntemi, kablosuz ağ ayrıntılarını belirtmek için aşağıdaki temel hazırlık eklerini destekler:
EXTRA_PROVISIONING_WIFI_HIDDEN
EXTRA_PROVISIONING_WIFI_PAC_URL
EXTRA_PROVISIONING_WIFI_PASSWORD
EXTRA_PROVISIONING_WIFI_PROXY_BYPASS
EXTRA_PROVISIONING_WIFI_PROXY_HOST
EXTRA_PROVISIONING_WIFI_PROXY_PORT
EXTRA_PROVISIONING_WIFI_SECURITY_TYPE
EXTRA_PROVISIONING_WIFI_SSID
Temel hazırlık ek özelliklerini kullanarak tarih ve saat dilimi ayarlama
QR kodu temel hazırlık yöntemi, bir cihazda saat ve saat dilimini ayarlamak için ek özelliklerin temel hazırlığını destekler:
Veri silme seçenekleri
Cihaz yöneticileri, bir iş profilini veya ikincil kullanıcıyı kaldırırken kullanıcılara kişiselleştirilmiş bir mesaj gösterebilir. Bu mesaj, cihaz kullanıcılarının BT yöneticilerinin iş profilini veya ikincil kullanıcıyı kaldırdığını anlamalarına yardımcı olur. wipeData(int, CharSequence)
numaralı telefonu arayın ve kısa bir açıklayıcı mesaj sağlayın. Birincil kullanıcı veya cihaz sahibi tarafından çağrıldığında sistem bir mesaj göstermez ve cihazı fabrika ayarlarına sıfırlamaya başlar.
Abonelik verilerini yerleştirilmiş bir eUICC SIM kartından kaldırmak için wipeData()
numaralı telefonu arayın ve flags
bağımsız değişkenine WIPE_EUICC
ifadesini ekleyin.
Satış ortağı profil sahipleri için yöntemler
Aşağıdaki yöntemler ilişkili profil sahipleri tarafından kullanılabilir:
DevicePolicyManager.setKeyguardDisabled()
DevicePolicyManager.setStatusBarDisabled()
PackageInstaller.createSession()