מסיבת הצלה

משתמשים רבים תלויים מאוד בטלפונים שלהם ודורשים מכשיר תקין בכל עת. עם זאת, לפעמים מכשירים מגיעים ללולאות אתחול מחדש, מה שגורם למשתמשים להגיש כרטיסי תמיכה או פניות לגבי אחריות. תהליך זה מתסכל עבור המשתמשים ויקר עבור יצרני המכשירים והספקים.

אנדרואיד 8.0 כולל תכונה ששולחת "מסיבת הצלה" כאשר היא מבחינה ברכיבי מערכת ליבה תקועים בלולאות התרסקות. לאחר מכן, מסיבת הצלה מסלימה באמצעות סדרה של פעולות כדי לשחזר את המכשיר. כמוצא אחרון, Rescue Party מאתחל את המכשיר למצב שחזור ומנחה את המשתמש לבצע איפוס להגדרות היצרן.

תכונות הצלה אלו אינן נדרשות על ידי מסמך הגדרת התאימות ל-Android , אך עדיין עשויות להיות שימושיות כדי לצמצם מקרי תמיכה.

יישום

Rescue Party מופעלת כברירת מחדל באנדרואיד 8.0, והיישום נמצא ב- /services/core/java/com/android/server/RescueParty.java . מסיבת הצלה מקבלת מידע על אירועי אתחול והתרסקות ומתחילה אם:

  • ה-system_server מופעל מחדש יותר מ-5 פעמים ב-5 דקות.
  • אפליקציית מערכת מתמשכת קורסת יותר מ-5 פעמים ב-30 שניות.

כאשר אחד מהמצבים הללו מזוהה, Rescue Party עולה לרמת ההצלה הבאה, מעבד את המשימה הקשורה לרמה זו ונותן למכשיר להמשיך ולראות אם הוא מתאושש. כל רמה אגרסיבית יותר בהדרגה במה שהיא מנקה או מאפסת. הרמה הסופית מבקשת מהמשתמש לאפס את המכשיר להגדרות היצרן.

לא נדרשת תמיכת חומרה מיוחדת כדי לתמוך ב-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 לבדיקה וניפוי באגים מאוחרים יותר. יומנים מתמשכים אלה כלולים גם בכל דוח באג בסעיף "הודעות אזהרה על חבילה".