فريق الإنقاذ

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

يتضمن Android 8.0 ميزة ترسل "حفلة إنقاذ" عندما تلاحظ أن مكونات النظام الأساسية عالقة في حلقات التعطل. يقوم فريق الإنقاذ بعد ذلك بالتصعيد من خلال سلسلة من الإجراءات لاستعادة الجهاز. كملاذ أخير، يقوم برنامج Rescue Party بإعادة تشغيل الجهاز في وضع الاسترداد ويطلب من المستخدم إجراء إعادة ضبط المصنع.

ميزات الإنقاذ هذه ليست مطلوبة في مستند تعريف توافق Android ، ولكنها قد تظل مفيدة لتقليل حالات الدعم.

تطبيق

يتم تمكين Rescue Party افتراضيًا في Android 8.0، ويتم التنفيذ في /services/core/java/com/android/server/RescueParty.java . يتلقى فريق الإنقاذ معلومات حول أحداث التمهيد والتعطل ويبدأ في حالة:

  • يتم إعادة تشغيل system_server أكثر من 5 مرات خلال 5 دقائق.
  • يتعطل تطبيق النظام المستمر أكثر من 5 مرات خلال 30 ثانية.

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

ليس هناك حاجة إلى دعم خاص للأجهزة لدعم Rescue Party. في حالة التنفيذ، يجب أن يستجيب نظام استرداد الجهاز للأمر --prompt_and_wipe_data ويجب أن تعرض الأجهزة طريقة للمستخدمين لتأكيد أي تدمير لبيانات المستخدم قبل المتابعة. يجب أن يمنح نظام الاسترداد أيضًا المستخدم خيار محاولة تشغيل أجهزته مرة أخرى.

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

تصديق

يتم منع جميع أحداث الإنقاذ عندما يكون لدى الجهاز اتصال بيانات USB نشط لأن هذه إشارة قوية إلى أن شخصًا ما يقوم بتصحيح أخطاء الجهاز.

لتجاوز هذا المنع، قم بتشغيل:

adb shell setprop persist.sys.enable_rescue 1

ومن هناك، يمكنك تشغيل حلقة تعطل النظام أو واجهة المستخدم.

لتشغيل حلقة تعطل system_server ذات المستوى المنخفض، قم بتشغيل:

adb shell setprop debug.crash_system 1

لتشغيل حلقة تعطل SystemUI متوسطة المستوى، قم بتشغيل:

adb shell setprop debug.crash_sysui 1

تبدأ كلتا حلقتي التعطل في منطق الإنقاذ. يتم أيضًا تسجيل جميع عمليات الإنقاذ في سجلات PackageManager المستمرة المخزنة في /data/system/uiderrors.txt للفحص وتصحيح الأخطاء لاحقًا. يتم أيضًا تضمين هذه السجلات الدائمة في كل تقرير خطأ ضمن قسم "رسائل تحذير الحزمة".