الميزات الجديدة للمؤسسات في Android 10

تقدّم هذه الصفحة نظرة عامة على واجهات برمجة التطبيقات الجديدة في المؤسسة والميزات والتغييرات في السلوك التي تم تقديمها في Android 10.

الملفات الشخصية للعمل للأجهزة التي تملكها الشركة

يقدم Android 10 ميزات جديدة لإدارة الحسابات والمصادقة للأجهزة المملوكة للشركة التي لا تتطلب سوى ملف شخصي للعمل.

أدوات إدارة حسابات محسّنة للملفات الشخصية للعمل

يمكنك توفير الملفات الشخصية للعمل على أجهزة Android 10 والإصدارات الأحدث المسجّلة باستخدام رمز الاستجابة السريعة أو إعداد الأجهزة الجوّالة للمؤسسات دفعةً واحدة. أثناء توفير جهاز مملوك للشركة، يسمح الغرض الإضافي الجديد لتطبيقات وحدة التحكّم بسياسة الجهاز (DPC) ببدء الملف الشخصي للعمل أو الإعداد المُدار بالكامل. بعد إنشاء ملف شخصي للعمل أو تأسيس الإدارة الكاملة، على مسؤولي التحكّم بالبيانات إطلاق شاشات الامتثال للسياسات لفرض أي سياسات أولية.

في ملف البيان الخاص بوحدة التحكّم بسياسة الجهاز، عليك تحديد فلتر أهداف جديد للسمة GET_PROVISIONING_MODE في أحد الأنشطة وإضافة إذن BIND_DEVICE_ADMIN لمنع التطبيقات العشوائية من بدء النشاط. مثلاً:

<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>

أثناء توفير المتطلبات اللازمة، يبدأ النظام النشاط المرتبط بفلتر النية. الغرض من هذا النشاط هو تحديد وضع الإدارة (الملف الشخصي للعمل أو مُدار بالكامل).

قد يكون من المفيد استرداد الخيارات الإضافية لتوفير المتطلبات اللازمة قبل تحديد وضع الإدارة المناسب للجهاز. يمكن أن يطلب النشاط استدعاء getIntent() لاسترداد ما يلي:

يمكن لوحدات التحكّم بسياسة الجهاز أيضًا إنشاء هدف جديد لنتيجة البحث وإضافة الإضافات التالية إليها:

لضبط وضع الإدارة على الجهاز، يمكنك الاتصال بـ putExtra(DevicePolicyManager.EXTRA_PROVISIONING_MODE,desiredProvisioningMode)، حيث يكون desiredProvisioningMode:

  • الملف الشخصي للعمل: PROVISIONING_MODE_MANAGED_PROFILE
  • مُدار بالكامل: PROVISIONING_MODE_FULLY_MANAGED_DEVICE

يمكنك إكمال ملف شخصي للعمل أو توفير المتطلبات اللازمة بالكامل عن طريق إعادة إرسال تفاصيل توفير المتطلبات اللازمة للإعداد من خلال setResult(RESULT_OK, Intent) وإغلاق جميع الشاشات النشطة من خلال finish().

بعد اكتمال توفير المتطلبات اللازمة، يتوفّر هدف جديد لوحدات التحكّم بسياسة الجهاز (DPC) لإطلاق شاشات الامتثال وفرض إعدادات السياسة الأولية. في أجهزة الملف الشخصي للعمل، يتم عرض شاشات الامتثال في الملف الشخصي للعمل. يجب أن يتأكّد وحدة التحكّم بسياسة الجهاز (DPC) من عرض شاشات الامتثال الخاصة به للمستخدمين، حتى إذا هرب المستخدم من عملية الإعداد.

في ملف البيان الخاص بوحدة التحكّم بسياسة الجهاز، عليك تحديد فلتر أهداف جديد للسمة ADMIN_POLICY_COMPLIANCE في أحد الأنشطة وإضافة إذن BIND_DEVICE_ADMIN لمنع التطبيقات العشوائية من بدء النشاط. مثلاً:

<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) هذا الهدف الجديد بدلاً من الاستماع إلى ACTION_PROFILE_PROVISIONING_COMPLETE بث.

يمكن للنشاط المرتبط بفلتر الأهداف استدعاء getIntent() لاسترداد EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE. بعد الامتثال للسياسة، على ADMIN_POLICY_COMPLIANCE عرض setResult(RESULT_OK, Intent) وإغلاق جميع الشاشات النشطة باستخدام finish().

تعمل الأجهزة المُدارة بالكامل على إرجاع المستخدمين إلى الشاشة الرئيسية. تطلب أجهزة الملف الشخصي للعمل من المستخدمين إضافة حساباتهم الشخصية قبل إعادتهم إلى الشاشة الرئيسية.

مصادقة رقم تعريف الجهاز للملف الشخصي للعمل

يمكن لوحدات التحكّم بسياسة الجهاز التي يتم تعيينها كمشرفين لملف شخصي للعمل تم توفيره باستخدام برنامج "إعداد الأجهزة الجوّالة للمؤسّسات دفعةً واحدة" الحصول على أرقام تعريف الأجهزة التي تم التصديق على الأجهزة الآمنة منها، مثل رمز IMEI أو الرقم التسلسلي للشركة المصنّعة. يجب أن يتضمّن الجهاز معدّات آمنة (مثل بيئة تنفيذ موثوق بها (TEE) أو العنصر الآمن (SE)) وأن يتوافق مع مصادقة معرّف الجهاز وبرنامج "إعداد الأجهزة الجوّالة للمؤسّسات دفعةً واحدة".

يمكن لمكوِّن المشرف في الملف الشخصي للعمل استدعاء DevicePolicyManager.generateKeyPair()، أو تمرير رمز واحد أو أكثر من ID_TYPE_SERIAL، أو ID_TYPE_IMEI، أو ID_TYPE_MEID للوسيطة idAttestationFlags.

لمزيد من المعلومات حول استخراج أرقام تعريف الأجهزة والتحقق منها، يُرجى الاطّلاع على التحقُّق من أزواج المفاتيح المستندة إلى الأجهزة باستخدام مصادقة المفاتيح.

تحسينات على الملف الشخصي للعمل

تتوفر واجهات برمجة تطبيقات جديدة لإتاحة إمكانية رؤية تقويم جميع الملفات الشخصية وحظر عمليات تثبيت التطبيقات على مستوى الجهاز من مصادر غير معروفة.

الملف الشخصي للعمل، المصادر غير المعروفة على مستوى الجهاز

إنّ التطبيقات التي يتم تنزيلها من مصادر أخرى غير Google Play (أو غيرها من متاجر التطبيقات الموثوق بها) تُسمّى تطبيقات من مصادر غير معروفة. في نظام التشغيل Android 10، يمكن لمشرفي الملفات الشخصية للعمل منع أي مستخدم أو ملف شخصي من تثبيت التطبيقات من مصادر غير معروفة في أي مكان على الجهاز من خلال إضافة القيود الجديدة على المستخدم DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY. بعد إضافة هذا القيد، مع ذلك، سيظل بإمكان شخص يستخدم الجهاز تثبيت التطبيقات باستخدام adb.

لمنع المستخدمين من تثبيت التطبيقات التي تأتي من مصادر غير معروفة عن طريق الخطأ، ننصحك بإضافة تقييد المستخدم هذا لأنه لا يتطلب تثبيت خدمات Google Play. إذا كنت تريد إتاحة إصدارات Android القديمة، يمكنك ضبط قيمة ضبط مُدار لتطبيق Google Play.

حصر أجهزة الإدخال المسموح بها على الملفات الشخصية للعمل

عندما يطلب مشرفو الملفات الشخصية للعمل DevicePolicyManager.setPermittedInputMethods()، يقتصر المستخدمون على أساليب الإدخال المسموح بها داخل الملف الشخصي للعمل بدلاً من استخدام الجهاز بالكامل، ما يمنح المستخدمين إمكانية التحكّم الكامل في أساليب الإدخال على الجانب الشخصي من أجهزتهم.

حجب بيانات الملفات الشخصية للعمل بدون تنبيه صوتي

تمت إضافة العلم WIPE_SILENTLY إلى DevicePolicyManager.wipeData(). في حال تم ضبط العلامة، لن يتم إشعار المستخدمين بعد حجب بيانات الملف الشخصي للعمل باستخدام wipeData().

ميزات جديدة للأجهزة المُدارة بالكامل

يقدّم Android 10 ميزات وواجهات برمجة تطبيقات جديدة للأجهزة المُدارة بالكامل، بما في ذلك التحديثات اليدوية للنظام، وتوسيع نطاق توفير رمز الاستجابة السريعة وتقنية NFC، لتضمين بيانات اعتماد شبكة Wi-Fi لبروتوكول EAP، وتوفير الدعم لنظام أسماء النطاقات عبر بروتوكول أمان طبقة النقل (TLS).

التثبيت اليدوي لتحديث النظام

في Android 10، يمكن لمشرفي الأجهزة المُدارة بالكامل تثبيت تحديثات النظام من خلال ملف تحديث النظام. تتيح تحديثات النظام اليدوية لمشرفي تكنولوجيا المعلومات تنفيذ ما يلي:

  • اختبِر أحد التحديثات على عدد صغير من الأجهزة قبل تثبيتها على نطاق واسع.
  • تجنَّب إجراء عمليات تنزيل مكرّرة على الشبكات ذات النطاق الترددي المحدود.
  • يمكنك ترتيب عمليات التثبيت أو تحديث الأجهزة فقط في حال عدم استخدامها.

أولاً، يحدِّد أحد مشرفي تكنولوجيا المعلومات سياسة مؤجلة لتحديث النظام لتأخير التثبيت التلقائي (إذا لزم الأمر). بعد ذلك، يستدعي وحدة التحكّم بسياسة الجهاز (DPC) installSystemUpdate() مع المسار إلى ملف تحديث نظام الشركة المصنّعة للجهاز. مرِّر كائن InstallSystemUpdateCallback يمكن للنظام استخدامه للإبلاغ عن الأخطاء التي تحدث قبل إعادة تشغيل الجهاز. إذا حدث خطأ ما، يقوم النظام باستدعاء onInstallUpdateError() مع رمز الخطأ.

بعد إعادة تشغيل الجهاز، تحتاج وحدة التحكّم بسياسة الجهاز إلى تأكيد عملية التثبيت بنجاح باستخدام إصدار من واجهة برمجة تطبيقات، مثل Build.FINGERPRINT. إذا فشل التحديث، فأبلغ أحد مشرفي تكنولوجيا المعلومات بالفشل.

توفير شبكة EAP Wi-Fi

في نظام Android 10، يمكن أن تحتوي رموز الاستجابة السريعة وبيانات NFC المستخدمة لإدارة الأجهزة على إعدادات بروتوكول المصادقة القابلة للتوسيع (EAP) وبيانات الاعتماد، بما في ذلك الشهادات. عندما يمسح مستخدم رمز الاستجابة السريعة ضوئيًا أو ينقر على علامة NFC، يعمل الجهاز تلقائيًا على مصادقة شبكة Wi-Fi محلية باستخدام بروتوكول EAP ويبدأ عملية توفير المتطلبات اللازمة بدون أي إدخال يدوي إضافي.

لمصادقة شبكة Wi-Fi باستخدام بروتوكول المصادقة القابلة للتوسيع (EAP)، أضِف عنصر EXTRA_PROVISIONING_WIFI_SECURITY_TYPE إضافيًا بالقيمة "EAP". لتحديد مصادقة بروتوكول المصادقة القابلة للتوسيع (EAP)، يمكنك إضافة خصائص توفير المتطلبات اللازمة التالية إلى الغرض:

دعم نظام أسماء النطاقات الخاص

يمكن للمؤسسات استخدام نظام أسماء النطاقات عبر بروتوكول أمان طبقة النقل (TLS) (يُسمى نظام أسماء النطاقات الخاص على أجهزة Android) لتجنب تسريب طلبات بحث نظام أسماء النطاقات، بما في ذلك طلبات أسماء المضيف الداخلية. يمكن لمكونات المشرف للأجهزة المُدارة بالكامل التحكّم في إعدادات "نظام أسماء النطاقات الخاص" للجهاز. لضبط وضع "نظام أسماء النطاقات الخاص"، اطلب:

عندما تستدعي وحدة التحكّم بسياسة الجهاز أيًا من هاتين الطريقتين، يعرض النظام الخطأ PRIVATE_DNS_SET_NO_ERROR إذا نجح الاتصال. وبخلاف ذلك، سيتم عرض خطأ.

لاسترداد وضع "نظام أسماء النطاقات الخاص" والمضيف الذي تم ضبطه على أحد الأجهزة، اتصل بالرمزَين getGlobalPrivateDnsMode() وgetGlobalPrivateDnsHost(). يمكنك منع المستخدمين من تغيير إعدادات نظام أسماء النطاقات الخاصة عن طريق إضافة قيد المستخدم في DISALLOW_CONFIG_PRIVATE_DNS.

استثناء من "وضع الإغلاق لشبكة VPN"

يسمح "وضع إلغاء قفل الشبكة الافتراضية الخاصة" لوحدة التحكّم بسياسة الجهاز (DPC) بحظر أي حركة مرور على الشبكة لا تستخدم شبكة VPN. ويمكن لمشرفي الأجهزة المُدارة بالكامل والملفات الشخصية للعمل استثناء التطبيقات من وضع التأمين. تستخدم التطبيقات المستثناة شبكة VPN بشكل تلقائي، ولكنها تتصل تلقائيًا بالشبكات الأخرى إذا لم تكن شبكة VPN متاحة. وستستخدم التطبيقات المستثناة التي تم رفض وصولها صراحةً إلى شبكة VPN الشبكات الأخرى فقط.

لاستثناء تطبيق من "وضع الإغلاق"، عليك استدعاء طريقة DevicePolicyManager الجديدة setAlwaysOnVpnPackage() التي تقبل قائمة حِزم التطبيقات المستثناة. يجب تثبيت أي حزم تطبيقات تضيفها وحدة التحكّم بسياسة الجهاز على الجهاز عند استدعاء الطريقة. إذا تم إلغاء تثبيت أحد التطبيقات وإعادة تثبيته، فيجب استثناء التطبيق مرة أخرى. للحصول على التطبيقات التي تم استثناؤها سابقًا من "وضع الإغلاق"، اتصل بالرقم getAlwaysOnVpnLockdownWhitelist().

لمساعدة مشرفي الأجهزة المُدارة بالكامل والملفات الشخصية للعمل في الحصول على حالة "وضع الإغلاق"، يضيف نظام التشغيل Android 10 طريقة isAlwaysOnVpnLockdownEnabled().

نطاقات التفويض الجديدة

ويوسّع Android 10 قائمة الوظائف التي يمكن لوحدة التحكّم بسياسة الجهاز (DPC) تفويضها للتطبيقات الأخرى الأكثر تخصصًا. يجمع Android طرق واجهة برمجة التطبيقات اللازمة لأي مهمة في النطاقات. لتفويض نطاق، يمكنك استدعاء النطاق setDelegatedScopes() وتمرير نطاق واحد أو أكثر من النطاقات التالية:

يقدم Android 10 الفئة الجديدة DelegatedAdminReceiver لتفويض التطبيقات. يستخدم النظام جهاز استقبال البث هذا لإرسال طلبات استدعاء شبيهة بوحدة التحكّم بسياسة الجهاز (DPC) لتفويض التطبيقات. يجب على التطبيقات التي تم تفويض تسجيل أنشطة الشبكة واختيار الشهادات تنفيذها هذه الفئة. لإضافة هذا المكون إلى تطبيق مفوض، اتبع الخطوات التالية:

  1. أضف فئة فرعية من DelegatedAdminReceiver إلى التطبيق المفوَّض.
  2. عرِّف <receiver> في بيان التطبيق، وأضِف إجراءً لفلتر الأهداف لكل معاودة اتصال. على سبيل المثال، ACTION_NETWORK_LOGS_AVAILABLE أو ACTION_CHOOSE_PRIVATE_KEY_ALIAS.
  3. عليك حماية جهاز استقبال البث باستخدام إذن BIND_DEVICE_ADMIN.

يعرض المقتطف التالي بيان التطبيق لتطبيق مفوَّض واحد يعالج كل من تسجيل الشبكة واختيار الشهادة:

<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>

تسجيل أنشطة الشبكة

لمساعدة المؤسسات على اكتشاف البرامج الضارة وتتبّعها، يمكن لوحدات التحكّم بسياسة الجهاز تسجيل اتصالات بروتوكول التحكم بالنقل وعمليات بحث نظام أسماء النطاقات من خلال النظام. في نظام التشغيل Android 10، يمكن لمشرفي الأجهزة المُدارة بالكامل تفويض تسجيل الدخول إلى الشبكة لتطبيق متخصص.

لاسترداد سجلات الشبكة بعد أن يتيح النظام دفعة، يجب أن تمنح تفويض التطبيقات الفئة الفرعية أولاً DelegatedAdminReceiver (الموضّحة سابقًا). في فئتك الفرعية، يمكنك تنفيذ استدعاء onNetworkLogsAvailable() باتّباع الإرشادات الواردة في استرداد السجلات.

يمكن لتفويض التطبيقات استدعاء طرق DevicePolicyManager التالية (بتمرير null للوسيطة admin):

لتجنّب فقدان السجلات، يجب ألا يعمل وحدة التحكّم بسياسة الجهاز (DPC) على تفعيل تسجيل بيانات الشبكة في حال التخطيط لتفويض تطبيق آخر، بل يجب أن يفعِّل التطبيق المفوَّض سجلات الشبكة ويجمعها. بعد أن يفوّض وحدة التحكّم بسياسة الجهاز تسجيل بيانات الشبكة، لن تتلقّى أي استدعاءات onNetworkLogsAvailable() أخرى.

للتعرّف على طريقة الإبلاغ عن تسجيل أنشطة الشبكة من تطبيق مفوّض، يمكنك الاطّلاع على دليل المطوّر حول تسجيل أنشطة الشبكة.

اختيار الشهادة

في نظام التشغيل Android 10، يمكن لمشرفي الأجهزة المُدارة بالكامل والملفات الشخصية للعمل والمستخدمين الثانويين تفويض اختيار الشهادات لتطبيق متخصص.

لاختيار اسم مستعار للشهادة، يجب أن يكون لتفويض التطبيقات الفئة الفرعية أولاً DelegatedAdminReceiver (الموضّحة سابقًا). في فئتك الفرعية، نفِّذ معاودة الاتصال onChoosePrivateKeyAlias() وأدخِل اسمًا مستعارًا لشهادة مفضَّلة، أو أرجع العلامة null إلى المستخدم لطلب اختيار شهادة.

إيقاف سياسات مشرف الجهاز

يمنع Android 10 التطبيقات ووحدات التحكّم بسياسة الجهاز (DPC) من تطبيق سياسات مشرف الجهاز القديمة. نقترح على العملاء والشركاء الانتقال إلى استخدام أجهزة مُدارة بالكامل أو ملفات شخصية للعمل. تعرض السياسات التالية علامة SecurityException عند استدعائها من قِبل مشرف جهاز يستهدف Android 10:

تستخدم بعض التطبيقات مشرف الجهاز لإدارة أجهزة المستهلك. على سبيل المثال، قفل جهاز مفقود وحجب بياناته. ولتفعيل هذا الإجراء، لا تزال السياسات التالية متاحة:

لمزيد من المعلومات عن هذه التغييرات، يُرجى الاطّلاع على الإيقاف النهائي لمشرف الجهاز.

ميزات جديدة للتطبيقات

يمكن للتطبيقات التي تستهدف الإصدار 10 من نظام التشغيل Android الاستعلام عن مدى تعقيد قفل الشاشة الذي تم ضبطه على الجهاز قبل عرض البيانات السرية أو تشغيل الميزات المهمة. تستفيد التطبيقات التي تتصل بواجهة برمجة تطبيقات KeyChain من التحسينات على السلوك، في حين تتوفّر أيضًا ميزات جديدة لتطبيقات شبكة VPN.

التحقّق من جودة قفل الشاشة

بدءًا من نظام التشغيل Android 10، يمكن للتطبيقات التي تتضمّن ميزات مهمة تتطلّب قفل الشاشة طلب معرفة مدى تعقيد قفل شاشة الجهاز أو الملف الشخصي للعمل. ويمكن للتطبيقات التي تحتاج إلى قفل شاشة أقوى توجيه المستخدم إلى إعدادات قفل شاشة النظام، مما يسمح لها بتحديث إعدادات الأمان.

للتحقّق من جودة قفل الشاشة، عليك اتّباع الخطوات التالية:

لتفعيل إعدادات قفل الشاشة للنظام، استخدِم ACTION_SET_NEW_PASSWORD مع المزيد من EXTRA_PASSWORD_COMPLEXITY، مع العلم بأنّ الخيارات التي لا تلبي مستوى التعقيد المحدد في الغرض الإضافي غير متاحة. يمكن للمستخدمين الاختيار من بين خيارات قفل الشاشة المتاحة أو الخروج من الشاشة.

أفضل الممارسات: يمكنك عرض رسالة في تطبيقك قبل تشغيل صفحة قفل شاشة النظام. عند استئناف التطبيق، اتصل بـ DevicePolicyManager.getPasswordComplexity() مجددًا. إذا كان لا يزال مطلوبًا استخدام قفل شاشة أقوى، عليك حظر الوصول بدلاً من الطلب بشكل متكرّر من المستخدمين تعديل إعدادات الأمان لديهم.

دعم خادم HTTP الوكيل في تطبيقات شبكة VPN

في نظام التشغيل Android 10، يمكن لتطبيقات الشبكة الافتراضية الخاصة ضبط خادم وكيل HTTP لاتصال الشبكة الافتراضية الخاصة. لإضافة خادم وكيل HTTP، يجب أن يضبط تطبيق شبكة VPN مثيل ProxyInfo مع مضيف ومنفذ قبل طلب VpnService.Builder.setHttpProxy(). يستخدم النظام والعديد من مكتبات الشبكات إعداد الخادم الوكيل هذا إلا أن النظام لا يفرض على التطبيقات إرسال طلبات HTTP للخادم الوكيل.

للاطّلاع على الرمز النموذجي الذي يعرض كيفية ضبط خادم وكيل HTTP، يُرجى مراجعة نموذج تطبيق ToyVPN.

أوضاع خدمة VPN

يمكن لتطبيقات شبكة VPN أن تكتشف ما إذا كانت الخدمة قيد التشغيل بسبب تفعيل شبكة VPN قيد التشغيل دائمًا وما إذا كان وضع الإغلاق مفعَّلاً. يمكن أن تساعدك الطرق الجديدة التي تمت إضافتها في Android 10 في تعديل واجهة المستخدم. على سبيل المثال، يمكنك إيقاف زر قطع الاتصال عندما تتحكم شبكة VPN التي يتم تشغيلها دائمًا في مراحل نشاط خدمتك.

يمكن لتطبيقات شبكة VPN استدعاء طرق VpnService التالية بعد الاتصال بالخدمة وإنشاء الواجهة المحلية:

  • isAlwaysOn() لمعرفة ما إذا كان النظام قد بدأ الخدمة بسبب شبكة VPN التي تكون قيد التشغيل دائمًا
  • isLockdownEnabled() لمعرفة ما إذا كان النظام يحظر الاتصالات التي لا تستخدم شبكة VPN

تظلّ حالة "قيد التشغيل دائمًا" كما هي أثناء تشغيل الخدمة، ولكن قد تتغيّر حالة وضع التأمين.

تحسينات على سلسلة المفاتيح

يقدّم Android 10 العديد من التحسينات المتعلّقة بواجهة برمجة التطبيقات KeyChain.

عندما يطلب أحد التطبيقات KeyChain.choosePrivateKeyAlias()، تعمل أجهزة Android 10 والإصدارات الأحدث على فلترة قائمة الشهادات التي يمكن للمستخدم الاختيار من بينها بناءً على جهات الإصدار والخوارزميات الرئيسية المحددة في المكالمة.

على سبيل المثال، عندما يرسل خادم بروتوكول أمان طبقة النقل (TLS) رسالة طلب شهادة كجزء من تأكيد اتصال بروتوكول أمان طبقة النقل (TLS) ويطلب المتصفّح KeyChain.choosePrivateKeyAlias()، لن تتضمّن رسالة طلب اختيار الشهادة سوى الخيارات التي تطابق معلَمة جهات الإصدار. إذا لم تتوفر أي خيارات مطابقة أو لم تكن هناك شهادات مثبتة على الجهاز، لن يتم عرض مطالبة الاختيار للمستخدم.

بالإضافة إلى ذلك، لم تعُد أداة KeyChain تتطلّب ضبط قفل الشاشة على الجهاز قبل استيراد المفاتيح أو شهادات CA.