Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Pesta Penyelamatan

Banyak pengguna sangat bergantung pada ponsel mereka dan membutuhkan perangkat yang berfungsi setiap saat. Namun, terkadang perangkat berakhir di loop reboot, yang menyebabkan pengguna mengajukan tiket dukungan atau pertanyaan garansi. Proses ini membuat frustrasi pengguna dan mahal bagi produsen dan operator perangkat.

Android 8.0 menyertakan fitur yang mengirimkan "pihak penyelamat" saat mengetahui komponen sistem inti terhenti di loop error. Rescue Party kemudian meningkat melalui serangkaian tindakan untuk memulihkan perangkat. Sebagai upaya terakhir, Rescue Party akan melakukan boot ulang perangkat ke mode pemulihan dan meminta pengguna untuk melakukan reset pabrik.

Fitur penyelamatan ini tidak diperlukan oleh Dokumen Definisi Kompatibilitas Android , tetapi mungkin masih berguna untuk mengurangi kasus dukungan.

Penerapan

Rescue Party diaktifkan secara default di Android 8.0, dan implementasinya ada di /services/core/java/com/android/server/RescueParty.java . Rescue Party menerima informasi tentang peristiwa boot dan crash dan dimulai jika:

  • System_server restart lebih dari 5 kali dalam 5 menit.
  • Aplikasi sistem yang terus-menerus mogok lebih dari 5 kali dalam 30 detik.

Ketika salah satu dari situasi ini terdeteksi, Rescue Party akan naik ke level penyelamatan berikutnya, memproses tugas yang terkait dengan level tersebut, dan membiarkan perangkat melanjutkan untuk melihat apakah pulih. Setiap level semakin agresif dalam apa yang dihapus atau disetel ulang. Level terakhir meminta pengguna untuk mengembalikan perangkat ke setelan pabrik.

Tidak ada dukungan perangkat keras khusus yang diperlukan untuk mendukung Rescue Party. Jika diterapkan, sistem pemulihan perangkat harus merespons perintah --prompt_and_wipe_data dan perangkat harus memunculkan cara bagi pengguna untuk mengonfirmasi pemusnahan data pengguna sebelum melanjutkan. Sistem pemulihan juga harus memberi pengguna opsi untuk mencoba mem-boot perangkat mereka lagi.

Karena setiap level penyelamatan dapat bertambah hingga 5 menit sebelum perangkat dapat dioperasikan kembali, produsen perangkat tidak boleh menambahkan level penyelamatan khusus. Waktu yang lebih lama dengan perangkat yang tidak dapat dioperasikan membuat pengguna lebih cenderung memulai pertanyaan dukungan atau garansi daripada memulihkan perangkat mereka sendiri.

Validasi

Semua peristiwa penyelamatan disembunyikan ketika perangkat memiliki koneksi data USB aktif karena itu adalah sinyal kuat bahwa seseorang sedang men-debug perangkat.

Untuk mengganti penekanan ini, jalankan:

adb shell setprop persist.sys.enable_rescue 1

Dari sana, Anda dapat memicu loop kerusakan sistem atau UI.

Untuk memicu loop kerusakan system_server tingkat system_server , jalankan:

adb shell setprop debug.crash_system 1

Untuk memicu loop kerusakan SystemUI tingkat menengah, jalankan:

adb shell setprop debug.crash_sysui 1

Kedua crash loop memulai logika penyelamatan. Semua operasi penyelamatan juga dicatat ke log PackageManager persisten yang disimpan di /data/system/uiderrors.txt untuk pemeriksaan dan debugging nanti. Log persisten ini juga disertakan dalam setiap laporan bug di bawah bagian "Pesan peringatan paket".