Kurtarma ekibi

Birçok kullanıcı büyük ölçüde telefonlarına bağımlıdır ve her zaman çalışan bir cihaza ihtiyaç duyar. Ancak bazen cihazlar yeniden başlatma döngülerine girer ve bu da kullanıcıların destek bildirimleri veya garanti sorguları göndermesine neden olur. Bu süreç kullanıcılar için sinir bozucu, cihaz üreticileri ve taşıyıcılar için ise pahalıdır.

Android 8.0, çekirdek sistem bileşenlerinin kilitlenme döngülerinde sıkışıp kaldığını fark ettiğinde bir "kurtarma ekibi" gönderen bir özellik içeriyor. Kurtarma Ekibi daha sonra cihazı kurtarmak için bir dizi eylem gerçekleştirir. Son çare olarak Rescue Party, cihazı kurtarma modunda yeniden başlatır ve kullanıcıdan fabrika ayarlarına sıfırlama yapmasını ister.

Bu kurtarma özellikleri, Android Uyumluluk Tanımı Belgesi tarafından gerekli değildir ancak yine de destek vakalarının azaltılması açısından faydalı olabilir.

Uygulama

Rescue Party, Android 8.0'da varsayılan olarak etkindir ve uygulama /services/core/java/com/android/server/RescueParty.java bulunur. Kurtarma Ekibi, önyükleme ve kilitlenme olayları hakkında bilgi alır ve şu durumlarda başlar:

  • System_server 5 dakika içinde 5 defadan fazla yeniden başlatılıyor.
  • Kalıcı bir sistem uygulaması 30 saniyede 5 defadan fazla çöküyor.

Bu durumlardan biri tespit edildiğinde, Kurtarma Ekibi bir sonraki kurtarma seviyesine yükselir, o seviyeyle ilişkili görevi işler ve cihazın iyileşip iyileşmediğini görmek için ilerlemesine izin verir. Her seviye, temizlediği veya sıfırladığı şeyler açısından giderek daha agresif hale gelir. Son seviye, kullanıcıdan cihazı fabrika ayarlarına sıfırlamasını ister.

Rescue Party'yi desteklemek için özel bir donanım desteği gerekmez. Uygulanırsa, bir cihazın kurtarma sistemi --prompt_and_wipe_data komutuna yanıt vermeli ve cihazlar, devam etmeden önce kullanıcıların kullanıcı verilerinin yok edildiğini onaylamaları için bir yol göstermelidir. Kurtarma sistemi ayrıca kullanıcıya cihazını yeniden başlatmayı deneme seçeneğini de sunmalıdır.

Her bir kurtarma seviyesi, cihazın tekrar çalışır duruma gelmesine kadar 5 dakikaya kadar ek süre verebileceğinden, cihaz üreticileri özel kurtarma seviyeleri eklememelidir. Çalışmayan bir cihazla geçirilen sürenin artması, kullanıcıların cihazlarını kendi kendine kurtarmak yerine bir destek veya garanti araştırması başlatma olasılığını artırır.

Doğrulama

Cihazda etkin bir USB veri bağlantısı olduğunda tüm kurtarma olayları bastırılır çünkü bu, birisinin cihazda hata ayıklama yaptığına dair güçlü bir sinyaldir.

Bu engellemeyi geçersiz kılmak için şunu çalıştırın:

adb shell setprop persist.sys.enable_rescue 1

Buradan bir sistem veya kullanıcı arayüzü kilitlenme döngüsünü tetikleyebilirsiniz.

Düşük seviyeli bir system_server kilitlenme döngüsünü tetiklemek için şunu çalıştırın:

adb shell setprop debug.crash_system 1

Orta düzey bir SystemUI kilitlenme döngüsünü tetiklemek için şunu çalıştırın:

adb shell setprop debug.crash_sysui 1

Her iki kilitlenme döngüsü de kurtarma mantığını başlatır. Tüm kurtarma işlemleri, daha sonra inceleme ve hata ayıklama için /data/system/uiderrors.txt dosyasında saklanan kalıcı PackageManager günlüklerine de kaydedilir. Bu kalıcı günlükler aynı zamanda "Paket uyarı mesajları" bölümü altındaki her hata raporuna da dahil edilir.