ผู้ใช้จํานวนมากพึ่งพาโทรศัพท์เป็นอย่างมากและต้องใช้อุปกรณ์ที่ใช้งานได้ตลอดเวลา อย่างไรก็ตาม บางครั้งอุปกรณ์อาจรีบูตวนไปวนมา ซึ่งทำให้ผู้ใช้ต้องส่งคำขอแจ้งปัญหาหรือสอบถามเรื่องประกัน กระบวนการนี้สร้างความหงุดหงิดให้กับผู้ใช้และทำให้ผู้ผลิตอุปกรณ์และผู้ให้บริการรายต่างๆ ต้องเสียค่าใช้จ่าย
Android 8.0 มีฟีเจอร์ที่ส่ง "ทีมช่วยเหลือ" เมื่อตรวจพบคอมโพเนนต์หลักของระบบติดอยู่ในลูปข้อขัดข้อง จากนั้นทีมกู้ภัยจะส่งต่อผ่านการดำเนินการต่างๆ เพื่อกู้คืนอุปกรณ์ ในกรณีที่ไม่มีวิธีอื่นแล้ว Rescue Party จะรีบูตอุปกรณ์เป็นโหมดการกู้คืนและแจ้งให้ผู้ใช้รีเซ็ตเป็นค่าเริ่มต้น
เอกสารคำจำกัดความความเข้ากันได้ของ Android ไม่ได้กำหนดให้ต้องใช้ฟีเจอร์การกู้คืนเหล่านี้ แต่อาจยังเป็นประโยชน์ในการลดจำนวนเคสขอรับการสนับสนุน
การใช้งาน
Rescue Party จะเปิดใช้งานโดยค่าเริ่มต้นใน Android 8.0 และการใช้งานจะอยู่ใน
/services/core/java/com/android/server/RescueParty.java
Rescue Party จะได้รับข้อมูลเกี่ยวกับเหตุการณ์การบูตและการขัดข้อง และจะเริ่มต้นในกรณีต่อไปนี้
- system_server รีสตาร์ทมากกว่า 5 ครั้งใน 5 นาที
- แอประบบที่ทำงานอยู่ขัดข้องมากกว่า 5 ครั้งใน 30 วินาที
เมื่อตรวจพบสถานการณ์ใดสถานการณ์หนึ่งเหล่านี้ Rescue Party จะส่งต่อไปยังระดับการกู้คืนถัดไป ประมวลผลงานที่เชื่อมโยงกับระดับนั้น และปล่อยให้อุปกรณ์ดำเนินการต่อเพื่อดูว่าจะกู้คืนได้หรือไม่ แต่ละระดับจะล้างหรือรีเซ็ตข้อมูลต่างๆ มากขึ้นเรื่อยๆ ระดับสุดท้ายจะแจ้งให้ผู้ใช้รีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น
ไม่จำเป็นต้องมีฮาร์ดแวร์พิเศษเพื่อรองรับฟีเจอร์ช่วยเหลือ หากมีการใช้งาน ระบบการกู้คืนของอุปกรณ์ต้องตอบสนองต่อคำสั่ง --prompt_and_wipe_data
และอุปกรณ์ต้องแสดงวิธีให้ผู้ใช้ยืนยันการทำลายข้อมูลผู้ใช้ก่อนที่จะดำเนินการต่อ นอกจากนี้ ระบบการกู้คืนควรให้ตัวเลือกแก่ผู้ใช้ในการพยายามบูตอุปกรณ์อีกครั้งด้วย
เนื่องจากระดับการกู้คืนแต่ละระดับอาจใช้เวลาเพิ่มอีกสูงสุด 5 นาทีก่อนที่อุปกรณ์จะใช้งานได้อีกครั้ง ผู้ผลิตอุปกรณ์จึงไม่ควรเพิ่มระดับการกู้คืนที่กำหนดเอง การที่อุปกรณ์ใช้งานไม่ได้เป็นเวลานานทำให้ผู้ใช้มีแนวโน้มที่จะเริ่มขอรับการสนับสนุนหรือสอบถามเรื่องประกันแทนที่จะกู้คืนอุปกรณ์ด้วยตนเอง
การตรวจสอบความถูกต้อง
ระบบจะระงับเหตุการณ์การช่วยเหลือทั้งหมดเมื่ออุปกรณ์มีการเชื่อมต่อข้อมูล USB ที่ใช้งานอยู่ เนื่องจากเป็นสัญญาณที่ชัดเจนว่ามีคนกำลังแก้ไขข้อบกพร่องของอุปกรณ์
หากต้องการลบล้างการระงับนี้ ให้เรียกใช้
adb shell setprop persist.sys.enable_rescue 1
จากนั้นคุณสามารถทริกเกอร์ระบบหรือ UI ให้เข้าสู่ลูปข้อขัดข้อง
หากต้องการทริกเกอร์ลูปข้อขัดข้อง system_server
ระดับต่ำ ให้เรียกใช้คำสั่งต่อไปนี้
adb shell setprop debug.crash_system 1
หากต้องการทริกเกอร์ลูปข้อขัดข้องของ SystemUI ระดับกลาง ให้เรียกใช้คำสั่งต่อไปนี้
adb shell setprop debug.crash_sysui 1
ทั้งลูปข้อขัดข้องจะเริ่มต้นตรรกะการแก้ไข นอกจากนี้ ระบบจะบันทึกการดำเนินการกู้คืนทั้งหมดลงในบันทึก PackageManager ที่เก็บถาวรไว้ที่ /data/system/uiderrors.txt
เพื่อตรวจสอบและการแก้ไขข้อบกพร่องในภายหลัง
บันทึกถาวรเหล่านี้จะรวมอยู่ในรายงานข้อบกพร่องทุกฉบับในส่วน "ข้อความเตือนเกี่ยวกับแพ็กเกจ" ด้วย