الْمَقَايِيسُ الْحَيَوِيَّة
آخر تعديل | الإصدار المستقر | إصدار مرشح | الإصدار التجريبي | الإصدار الأولي |
---|---|---|---|---|
21 أيلول (سبتمبر) 2022 | 1.1.0 | - | - | 1.2.0-alpha05 |
تعريف التبعيات
لإضافة تبعية إلى المقاييس الحيوية، يجب إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven الذي يضم أدوات Google للحصول على مزيد من المعلومات.
أضف التبعيات للعناصر التي تحتاجها في ملف build.gradle
لتطبيقك أو وحدتك:
رائع
dependencies { // Java language implementation implementation "androidx.biometric:biometric:1.1.0" // Kotlin implementation "androidx.biometric:biometric-ktx:1.2.0-alpha05" }
Kotlin
dependencies { // Java language implementation implementation("androidx.biometric:biometric:1.1.0") // Kotlin implementation("androidx.biometric:biometric:1.2.0-alpha05") }
للمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على مقالة إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.
راجع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.
الإصدار 1.2.0
الإصدار 1.2.0-alpha05
21 أيلول (سبتمبر) 2022
تم إصدار androidx.biometric:biometric:1.2.0-alpha05
وandroidx.biometric:biometric-ktx:1.2.0-alpha05
. يحتوي الإصدار 1.2.0-alpha05 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة دعم "
CryptoObject
" لـandroid.security.identity.PresentationSession
في Android 13. (C5f1ec، b/197965513)
إصلاح الأخطاء
- تمت إزالة خيارات الموارد غير الضرورية لتقليل حجم المكتبة. (I3601e، b/220178553)
- تم إصلاح مشكلة
BiometricPrompt
المستضافة في سياقات عدم النشاط. (Ife255)
الإصدار 1.2.0-alpha04
17 تشرين الثاني (نوفمبر) 2021
تم إصدار androidx.biometric:biometric:1.2.0-alpha04
وandroidx.biometric:biometric-ktx:1.2.0-alpha04
. يحتوي الإصدار 1.2.0-alpha04 على هذه الالتزامات.
الميزات الجديدة
- توافق محسّن مع المقاييس الحيوية للأجزاء التي تتم استضافتها من خلال سياقات عدم النشاط (I9312b)
تغييرات واجهة برمجة التطبيقات
- تمت إضافة توافق مع واجهة برمجة التطبيقات BiometricManager.Strings لنظام التشغيل Android 12 (I12f2d).
- تم تغيير التوافق مع المصدر والهدف من Java 7 إلى Java 8 (I16129)
إصلاح الأخطاء
- تم حل مشكلة واجهة برمجة التطبيقات 29 التي كانت تتلقى فيها بعض الأجهزة (بما في ذلك أدوات المحاكاة) خطأ الإلغاء عند الرجوع إلى استخدام رقم التعريف الشخصي/النمط/كلمة المرور. يُرجى العلم أنّه في بعض الأجهزة التي تستخدم API 29، قد يُطلب من المستخدم ضبط قفل الشاشة حتى في حال توفّر مقياس حيوي وتسجيله. (b/142740104)
- تم إصلاح مشكلة في واجهة برمجة التطبيقات 29 المتمثلة في عدم رجوع الأجهزة التي لا تحتوي على أجهزة مقاييس حيوية إلى رقم التعريف الشخصي/النمط/كلمة المرور بشكل صحيح (b/170517889).
الإصدار 1.2.0-alpha03
24 شباط (فبراير) 2021
تم إصدار androidx.biometric:biometric:1.2.0-alpha03
وandroidx.biometric:biometric-ktx:1.2.0-alpha03
. يحتوي الإصدار 1.2.0-alpha03 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة تعليق إضافات الكوروتين في صفحة CredentialAuthPrompt كما كانت مشابهة لتلك المتوفّرة لأنواع AuthPrompt الأخرى. (I9ac70)
الإصدار 1.2.0-alpha02
27 كانون الثاني (يناير) 2021
تم إصدار androidx.biometric:biometric:1.2.0-alpha02
وandroidx.biometric:biometric-ktx:1.2.0-alpha02
. يحتوي الإصدار 1.2.0-alpha02 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تحويل بعض حقول
AuthPrompt
التي تم إعدادها سابقًا من خلال أداة إنشاء إلى وسيطات طريقةstartAuthentication(...)
. (I18896، b/174098373) - تمت إضافة الحد الأدنى لمتطلبات مستوى واجهة برمجة التطبيقات لأنواع
AuthPrompt
مع دعم محدود أو عدم دعمه على إصدارات Android القديمة. (I18896) - تمت إضافة طُرق الاستلام لجميع حقول
AuthPrompt
التي تم ضبطها من خلال أداة إنشاء. (I18896) - تمت إضافة تعليق إضافات الكوروتين في لغة Kotlin للمصادقة بالمقاييس الحيوية من خلال واجهات برمجة تطبيقات
AuthPrompt
. ستعرض هذه الدوال رمز الاستجابةAuthenticationResult
مباشرةً عند نجاح الإجراء أو تعرض استثناءً عند حدوث خطأ أو تعذُّر (رفض بيانات الاعتماد). (Iffc9e)
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثلة في عرض
BiometricManager.canAuthenticate(int)
أحيانًا لرمز الحالة الخطأ لجهاز يتضمن أداة استشعار بصمة الإصبع على نظام التشغيل Android 10 (مستوى واجهة برمجة التطبيقات 29). (I72420، b/176921662) - تم إصلاح المشكلة المتمثّلة في عرض
BiometricManager.canAuthenticate(int)
لرمز الحالة الخاطئ لجهاز لا يحتوي على أجهزة مقاييس حيوية وبدون رقم تعريف شخصي أو نقش أو كلمة مرور مسجّلة على نظام التشغيل Android 10 (مستوى واجهة برمجة التطبيقات 29) وإصدارات حزمة تطوير البرامج (SDK) السابقة. (I79b7d، b/174505824) - تم إصلاح تسرّب الذاكرة الذي يحدث عند استضافة
BiometricPrompt
في جزء تكون دورة حياة المنتج أقصر من النشاط المرتبط به. (I70864، b/167014923)
الإصدار 1.2.0-alpha01
2 كانون الأول (ديسمبر) 2020
تم إصدار androidx.biometric:biometric:1.2.0-alpha01
وandroidx.biometric:biometric-ktx:1.2.0-alpha01
. يحتوي الإصدار 1.2.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
- تم إطلاق وحدة
androidx.biometric:biometric-ktx
التي تضيف واجهات برمجة تطبيقات وإضافات خاصة بلغة Kotlin إلى جانبandroidx.biometric:biometric
.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهات برمجة تطبيقات
AuthPrompt
جديدة لإنشاءBiometricPrompt
وإجراء المصادقة. لا تتطلّب واجهات برمجة التطبيقات هذه إنشاءBiometricPrompt
في معاودة الاتصال بمراحل نشاط مبكرة، مثلonCreate
. (I19022) - تم إدراج إضافات Kotlin في
Fragment
وFragmentActivity
لواجهات برمجة تطبيقاتAuthPrompt
الجديدة. (Iaf98c)
الإصدار 1.1.0
الإصدار 1.1.0
27 كانون الثاني (يناير) 2021
تم إصدار "androidx.biometric:biometric:1.1.0
". يحتوي الإصدار 1.1.0 على هذه الالتزامات.
التغييرات الرئيسية منذ الإصدار 1.0.0
- تمت إضافة توافق متوافق مع الأنظمة القديمة لميزات المصادقة بالمقاييس الحيوية وتحديثات واجهة برمجة التطبيقات الجديدة التي تم طرحها في Android 11.
- تم تقليل حجم التطبيق في المكتبة بشكل كبير (بمقدار أكثر من 100 كيلوبايت، في بعض الحالات).
- تمت إزالة المصادر المختلفة لتسرّب الذاكرة التي كانت تتسبب فيها المكتبة في السابق.
- تم إصلاح حالات إخفاق التحقق من الصف التي قد تؤثر في أداء إصدارات Android القديمة.
- تم إدخال تحسينات إضافية متعددة على استقرار المكتبة وسلوكها.
الإصدار 1.1.0-rc01
11 تشرين الثاني (نوفمبر) 2020
تم إصدار "androidx.biometric:biometric:1.1.0-rc01
". يحتوي الإصدار 1.1.0-rc01 على هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح مشكلة في بعض الأجهزة التي تؤدي أحيانًا إلى ظهور
NullPointerException
بسبب إجراءات معيّنة (مثل المصادقة والإلغاء وما إلى ذلك). (b/151316421) - تم إصلاح المشكلة المتمثَّلة في إبلاغ بعض أجهزة Pixel عن الحالة غير الصحيحة عند استخدام
BiometricManager#canAuthenticate(int)
للتحقّق من المقاييس الحيوية الفئة 3 على Android 10. (b/170406186)
الإصدار 1.1.0-beta01
1 تشرين الأول (أكتوبر) 2020
تم إصدار "androidx.biometric:biometric:1.1.0-beta01
". يتضمّن الإصدار 1.1.0-beta01 هذه الالتزامات.
الميزات الجديدة
- تم تقليل حجم حزمة APK في المكتبة بشكل كبير (بحجم أكثر من 100 كيلوبايت مضغوط في بعض الحالات) عن طريق استبدال الصور المتحركة لمربّعات الحوار بمواد عرض ثابتة في نظام التشغيل Android 8.1 والإصدارات الأقدم. (I4844e)
- تتم الآن إعادة استخدام
BiometricPrompt
تلقائيًا لمصادقة بيانات اعتماد الجهاز (في حال السماح بذلك) على جميع إصدارات Android المتوافقة عند قفل المصادقة بالمقاييس الحيوية. (b/149579143)
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثلة في تسبب
BiometricPrompt
في حدوث عطل على بعض أجهزة Android 9 بدون أداة استشعار بصمة الإصبع. (b/151443237) - تم إصلاح
NullPointerException
محتمَل فيFingerprintDialogFragment
. (b/167951429) - تم إصلاح المشكلة المتمثلة في استخدام نوع
CryptoObject
غير صحيح لاستدعاء طريقة انعكاسية فيBiometricManager
. (b/165824669) - تم إصلاح المشكلة المتمثلة في عرض الرمز
BiometricPrompt
مرة أخرى بعد فترة قصيرة من الإغلاق، والتي أدّت إلى إغلاق الطلب الجديد تلقائيًا على بعض أجهزة Android 10. (b/157783075) - تم إصلاح تسرّبات الذاكرة المرتبطة باستخدام
FingerprintManagerCompat
. (b/165840273) - تم إصلاح المشاكل المتمثلة في إخفاء واجهة مستخدم مربّع حوار بصمة الإصبع أو عرضها بشكل غير صحيح على بعض الأجهزة التي تعمل بنظام التشغيل Android 9. (b/154868505، b/148350291)
الإصدار 1.1.0-alpha02
19 آب (أغسطس) 2020
تم إصدار "androidx.biometric:biometric:1.1.0-alpha02
". يحتوي الإصدار 1.1.0-alpha02 على هذه الالتزامات.
الميزات الجديدة
- قد يعرض
BiometricManager#canAuthenticate()
الآن العلامةBIOMETRIC_STATUS_UNKNOWN
للإشارة إلى أنّ المستخدم قد لا يزال بإمكانه المصادقة، أوBIOMETRIC_ERROR_UNSUPPORTED
للإشارة إلى أنّ الجهاز لا يتوافق مع مجموعة معيّنة من خدمات المصادقة. - يمكن الآن استخدام
BiometricPrompt#authenticate()
لمصادقة بيانات اعتماد الجهاز معCryptoObject
مرتبط على Android 11 (المستوى 30 من واجهة برمجة التطبيقات) والإصدارات الأحدث فقط.
تغييرات واجهة برمجة التطبيقات
- تم جعلها اختيارية لتوفير
Executor
صريح عند إنشاء مثيلBiometricPrompt
. (I6bb8a) - تمت إضافة طريقة
BiometricManager#canAuthenticate(int)
من نظام التشغيل Android 11. (Ia3f1c) - تم تحديث
BiometricPrompt
لإتاحة استخدام ثوابتBiometricManager.Authenticators
من Android 11. (I39bd8) - تمت إضافة طريقة
BiometricPrompt.AuthenticationResult#getAuthenticationType()
من نظام التشغيل Android 11. (Icfad5) - تمت إضافة رمز الخطأ
BiometricPrompt.ERROR_SECURITY_UPDATE_REQUIRED
من نظام التشغيل Android 11. (I6610b) - تم تحديث
BiometricPrompt.CryptoObject
للتوافق معIdentityCredential
على Android 11 (المستوى 30 لواجهة برمجة التطبيقات) والإصدارات الأحدث فقط. (I1d9f6)
إصلاح الأخطاء
- تم إصلاح تسرّب الذاكرة الذي تم الإبلاغ عنه من قِبل LeakCanary في
BiometricFragment
وBiometricViewModel
. (b/144919472) - تم التأكد من أنّ
BiometricViewModel
لن يتصل بـMutableLiveData#setValue()
من سلسلة محادثات في الخلفية بعد الآن. (b/159983244) - تم إصلاح المشكلة المتمثلة في عدم معالجة
BiometricPrompt
للحظر المؤقت بشكل صحيح على بعض مستويات واجهة برمجة التطبيقات. (9acfce9) - تم إصلاح المشكلة المتمثلة في عرض
BiometricPrompt
لرمز خطأ غير صحيح لجهاز غير مؤمّن ببيانات اعتماد قفل الشاشة في بعض مستويات واجهة برمجة التطبيقات. (b/148626482) - تم إصلاح المشكلة المتمثلة في عرض
BiometricManager
وBiometricPrompt
لرموز الخطأ الخاطئة لجهاز لم يتم تنفيذ قفل مفاتيح التشفير عليه في بعض مستويات واجهة برمجة التطبيقات. (891c6e0)
الإصدار 1.1.0-alpha01
24 حزيران (يونيو) 2020
تم إصدار "androidx.biometric:biometric:1.1.0-alpha01
". يحتوي الإصدار 1.1.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
- تمت إعادة هيكلة تنفيذ المكتبة الداخلية لمعالجة المصادر المحتملة لتسرّب الذاكرة والسلوكيات الأخرى غير المقصودة:
- تشارك الأجزاء الداخلية الآن البيانات وتحتفظ بها باستخدام
ViewModel
المرتبط بدورة حياة تطبيق العميل. - لم تعد مصادقة بيانات اعتماد الجهاز قبل Android 10 (مستوى واجهة برمجة التطبيقات 29) تبدأ نشاطًا شفافًا داخل تطبيق العميل.
- تشارك الأجزاء الداخلية الآن البيانات وتحتفظ بها باستخدام
إصلاح الأخطاء
- تم حلّ تحذيرات الإيقاف النهائي المتعلّقة باستخدام
FingerprintManagerCompat
. (b/142967618) - تم تغيير طريقة استدعاء طُرق الأنظمة الأساسية المستندة إلى حِزم تطوير البرامج (SDK) لتجنُّب مشاكل إثبات ملكية الصف على إصدارات Android القديمة. (94beb4b)
- لم تعد المكتبة تصدّر تبعيات Gradle التي ليست جزءًا من واجهة برمجة التطبيقات العامة. (f289d9e)
الإصدار 1.0.1
الإصدار 1.0.1
18 كانون الأول (ديسمبر) 2019
تم إصدار "androidx.biometric:biometric:1.0.1
". يحتوي الإصدار 1.0.1 على هذه الالتزامات.
إصلاح الأخطاء
- تم توسيع نطاق الحل البديل الحالي لبصمة الإصبع للمصادقة المستندة إلى التشفير ليشمل المورّدين المعنيين معروفين، مع حصره أيضًا بواجهة برمجة التطبيقات 28 (b/143361271)
- تم إصلاح مشكلة في أجهزة معيَّنة كان يتم فيها عرض مربّع حوار المقاييس الحيوية أسفل شاشة النظام (b/143230260).
- تم حل عدة مشاكل في
setDeviceCredentialAllowed(true)
(b/143091227 وb/143097321 وb/143653944). - تم إصلاح مشكلة في بعض إصدارات Android حيث لا يتم دائمًا استدعاء
onAuthenticationSuccess
بعد تأكيد المستخدم لبيانات اعتماد الجهاز (b/145232806) - تم إصلاح مشكلة في بعض إصدارات Android حيث لا يتم دائمًا استدعاء
onAuthenticationError
عند رفض المطالبة عند التناوب (b/145230042) - تم إصلاح مشكلة في بعض إصدارات Android حيث لم يتم إغلاق رسالة المطالبة عند تلقّي رموز خطأ معيّنة (b/143683687)
- تم إصلاح مشكلة
NullPointerException
محتملة فيBiometricFragment
(b/142599311).
الإصدار 1.0.0
الإصدار 1.0.0
7 تشرين الثاني (نوفمبر) 2019
تم إصدار androidx.biometric:biometric:1.0.0
بدون أي تغييرات منذ 1.0.0-rc02
. يحتوي الإصدار 1.0.0 على هذه الالتزامات.
الميزات الرئيسية للإصدار 1.0.0
- إصدار متوافق مع واجهة برمجة التطبيقات
BiometricPrompt
وBiometricManager
كما تم تنفيذه في نظام التشغيل Android 10، مع إتاحة جميع الميزات بدءًا من الإصدار Android 6.0 (واجهة برمجة التطبيقات 23) - إدارة مدمجة لمراحل النشاط في
BiometricPrompt
داخلFragment
أوFragmentActivity
- معالجة خاصة للأجهزة المعروفة بتقديم مقاييس حيوية ضعيفة بشكل غير صحيح أثناء المصادقة المستندة إلى التشفير
الإصدار 1.0.0-rc02
23 تشرين الأول (أكتوبر) 2019
تم إصدار "androidx.biometric:biometric:1.0.0-rc02
". يحتوي الإصدار 1.0.0-rc02 على هذه الالتزامات.
إصلاح الأخطاء
- تمت إضافة حل بديل لبعض الأجهزة التي تُعرف بتقديم مقاييس حيوية ضعيفة بشكل غير صحيح عند استدعاء المصادقة المستندة إلى التشفير في الإصدارين 28 و29 من واجهة برمجة التطبيقات (b/142150327).
الإصدار 1.0.0-rc01
9 تشرين الأول (أكتوبر) 2019
تم إصدار "androidx.biometric:biometric:1.0.0-rc01
". يحتوي الإصدار 1.0.0-rc01 على هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح عطل محتمل في
FingerprintDialogFragment
عند إغلاقه أثناء تدوير الشاشة (b/141356362) - تم إصلاح المشكلة المتمثلة في تلقّي قيمة
AuthenticationResult
خالية من واجهة برمجة تطبيقات إطار العمل (b/138862251) - تم إصلاح الأعطال الناتجة عن إغلاق
BiometricPrompt
بعدonSaveInstanceState()
(b/138825362، b/140447194)
الإصدار 1.0.0-beta02
18 أيلول (سبتمبر) 2019
تم إصدار "androidx.biometric:biometric:1.0.0-beta02
". يتضمّن الإصدار 1.0.0-beta02 هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح المشاكل المتعلقة بدعم بيانات اعتماد الجهاز في الإصدار
1.0.0-beta01
. - تمت إزالة تبعيات Java 8 وتم التبديل إلى اعتمادًا على Java 7 (b/140508526)
- يطرح "
FingerprintHelperFragment
" الآنERROR_HW_NOT_PRESENT
بشكلٍ صحيح عند عدم رصد أي بصمة إصبع (b/140427586).
الإصدار 1.0.0-beta01
29 آب (أغسطس) 2019
تم إصدار "androidx.biometric:biometric:1.0.0-beta01
". يتضمّن الإصدار 1.0.0-beta01 هذه الالتزامات.
الميزات الجديدة
لقد قدمنا دالة إنشاء ثانية لـ BiometricPrompt يمكن استضافتها في Fragment (على عكس الدالة الإنشائية الحالية التي تتطلب FragmentActivity).
يسعدنا أيضًا توفير الوظائف التالية من نظام التشغيل Android 10 في مكتبة المقاييس الحيوية لنظام التشغيل AndroidX:
BiometricManager#canAuthenticate
BiometricPrompt.PromptInfo#setConfirmationRequired
BiometricPrompt.PromptInfo#setDeviceCredentialAllowed
في نظام التشغيل Android 10، ستستدعِ المكتبة الطُرق المناسبة من واجهة برمجة التطبيقات للنظام الأساسي. أمّا في مستويات واجهة برمجة التطبيقات الأقدم، فستحاكي المكتبة السلوك.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة دالة إنشاء خاصة بالأجزاء لطلب المقاييس الحيوية (b/131980596).
- راجِع قسم "الميزات الجديدة" أعلاه.
إصلاح الأخطاء
- إضافة دعم بيانات اعتماد الجهاز BiometricPrompt لـ L+
- تم حل مشكلة BiometricPrompt لاستخدام ثوابت الخطأ العامة (b/137788194)
- إصلاح الخطأ
NullPointerException
فيBiometricPrompt.onAttach()
(b/136103103) - تم تغيير السلوك إلى عدم السماح بإلغاء ميزة BiometricPrompt من خلال حدث لمس خارج الطلب (b/135684487).
- تم إصلاح تعطُّل onAuthError عند عرض قيمة خطأ فارغة في Kotlin (b/128350861).
- بصمة الإصبع DialogFragment يمكن الآن تغيير النمط (b/127878106)
- بصمة الإصبع قابلة للتمرير الآن (b/126367887)
- تم إصلاح الخطأ الذي يؤدي إلى ظهور خطأ
IllegalStateException
عند تدوير مربّع حوار المقاييس الحيوية (b/124153656)، (b/123811924). - تم إصلاح السلوك غير المتسق على مستويات واجهة برمجة التطبيقات من 23 إلى 27. (b/124066957)
- تم إصلاح المشكلة المتمثلة في قراءة مربع حوار تسجيل الدخول باستخدام بصمة الإصبع للنص غير الصحيح باستخدام Talkback. (b/123572331)
الإصدار 1.0.0-alpha04
3 نيسان (أبريل) 2019
تم إصدار "androidx.biometric:biometric:1.0.0-alpha04
". يمكن الاطّلاع هنا على الالتزامات المضمَّنة في هذا الإصدار.
إصلاح الأخطاء
- لا يتم تنظيف أجزاء المقاييس الحيوية التي تم إصلاحها في جميع الحالات. (b/121117380)
- لا تسمح قيمة
BiometricPrompt
الثابتة إلا بمثيل واحد منBiometricPrompt.AuthenticationCallback
(b/123857949). - تم إصلاح سلوك خطأ
BiometricPrompt
غير المتّسق بين إصدارات النظام والإصدارات المتوافقة. (b/123572326) - إصلاح استدعاء
onAuthenticationError()
مع@NotNull errString
يؤدي إلىNullPointerException
في وقت التشغيل (b/123167217) - تم إصلاح أعطال زر
androidx.BiometricPrompt
الإلغاء (b/122054485) - لم يتم تغيير عنوان أو وصف
androidx.biometric.PromptInfo
بشكل ثابت على Android P (b/122856773)
الإصدار 1.0.0-alpha03
17 كانون الأول (ديسمبر) 2018
إصلاح الأخطاء
- تم إصلاح المشاكل المتعلقة بالأجزاء
- على الأجهزة التي تستخدم نظام O والإصدارات الأقدم، يتم عرض أخطاء التأمين على الفور لتكون متوافقة مع P والإصدارات الأحدث.