Android 11, yumuşak yeniden başlatmaları destekler.
yeniden başlatma işlemini gerçekleştirmek için kullanıcı alanındaki işlemlerin,
yeniden başlatma gerektirmesi (örneğin, APEX paketlerinin güncellenmesi). Şu anda düşük
Yeniden başlatma işlemi, userdata
eklendikten sonra başlatılan işlemlerle sınırlıdır.
Kontrollü yeniden başlatma aşağıdaki şekillerde istenir:
PowerManager
adlı satıcıdan telefonla aramaPowerManager.reboot(PowerManager.REBOOT_USERSPACE)
Kabuktan,
adb shell svc power reboot userspace
veyaadb reboot userspace
kullanılarak
Kolay bir yeniden başlatma sonrasında, kimlik bilgileri ile şifrelenmiş depolama alanının kilidi açık kalır.
Cihaz, kolay şekilde yeniden başlatma işlemini destekliyorsa
PowerManager.isRebootingUserspace()
API yöntemi, true
ve şu değeri döndürür:
init.userspace_reboot.is_supported
sistem özelliğinin değeri 1
değerine eşit.
Cihaz kolay şekilde yeniden başlatmayı desteklemiyorsa
PowerManager.reboot(PowerManager.REBOOT_USERSPACE)
, adb reboot
userspace
ve adb shell svc power reboot userspace
başarısız.
Geçici yeniden başlatma yürütme
Yavaş bir yeniden başlatma isteğinde bulunduktan sonra (PowerManager
aracılığıyla veya bir kabuk üzerinden),
init
şu adımları gerçekleştirir:
sys.powerctl=reboot,userspace
alır.Ayrı bir
UserspaceRebootWatchdogThread()
rahatça yeniden başlatma işlemini izlemek için gerçekleştirilir.Tüm sistemi sıfırlayan bir
userspace-reboot-requested
işlemini tetikler çalışmaya devam edebilir. Etkilenen tesisler:sys.usb.config
sys.usb.state
sys.boot_completed
dev.bootcomplete
sys.init.updatable_crashing
sys.init.updatable_crashing_process_name
apexd.status
sys.user.0.ce_available
sys.shutdown.requested
service.bootanim.exit
Yukarıdaki özellikler, başlatma sırası sırasında tekrar ayarlanmalıdır. Gerekirse ek özellikleri sıfırlayabilir. Örnekler için
on userspace-reboot-requested
işlemrootdir/init.rc
Şunu çalıştırır:
DoUserspaceReboot
işlevini sağlayan işlevi devreye sokmaktır:userdata
eklendikten sonra başlatılan işlemlereSIGTERM
gönderir ve durmasını bekler.- Zaman aşımına ulaşıldığında, çalışan tüm işlemleri sonlandırmak için
SIGKILL
gönderir. daha fazla bilgi edineceksiniz. /system/bin/vdc volume reset
numaralı telefonu arar.- zRAM yedekleme cihazının bağlantısını keser.
- Etkin APEX paketlerinin bağlantısını keser.
- Önyükleme eklemesi ad alanına geri döner.
userspace-reboot-resume
tetikleyicisi eyleme dökülebilir.
Kolay yeniden başlatmadan önce dosya sistemi kontrol noktası istendiyse
userdata
,
userspace-reboot-fs-remount
işlemi (ayrıntılar için aşağıdaki bölüme bakın). CEVAP
sys.boot_completed property
ayarlandıktan sonra kolay yeniden başlatma dikkate alınır
Hedef: 1
. Kolay yeniden başlatmanın sonunda ekran kapalı kalır ve
uyandırmak için açık kullanıcı etkileşimi gerekir.
Dosya sistemi kontrol noktası
Kolay erişilen yeniden başlatmadan önce bir dosya sistemi kontrol noktası istendiyse
userdata
, kolay yeniden başlatma sırasında kontrol noktası modunda yeniden eklendi.
Yeniden ekleme mantığı
fs_mgr_remount_userdata_into_checkpointing
işlevinden ve kontrol noktası yöntemlerinden farklıdır. Özellikle,
userdata
aşağıdakileri destekler:
Dosya sistemi düzeyinde kontrol noktası (örneğin,
f2fs
),userdata
checkpoint=disable
seçeneğiyle yeniden eklenir.Blok seviyesinde kontrol noktaları (örneğin,
ext4
), ardından/data
kaldırılır ve üzerine monte edildiği tüm üst cihaz eşleyici cihazları yok. Daha sonrauserdata
, normal kontrol noktası başlatması.
Kimlik bilgisi ile şifrelenmiş (CE) ve
şifreli (DE) anahtarlar, ardından userdata
bağlantısı kesildikten sonra anahtarlar kaybolur. Alıcı:
anahtarın geri yüklenmesine izin ver, dosya sistemi anahtarlığına anahtar yüklerken vold
oturum düzeyinde, aynı fscrypt-provisioning
türündeki anahtarı da yükler
anahtarlık. init_user0
çağrıldığında, vold
dosyadaki anahtarları yeniden yükler
sistem anahtarlığı.
Donanımdan yeniden başlatmaya dön
Sorunsuz yeniden başlatmanın cihazı kullanılamaz durumda bırakmasını önlemek için Android 11'de tam yeniden başlatma için aşağıdaki koşullardan biri karşılandığında tetiklenir:
- Cihazın kolay şekilde yeniden başlatma işlemini başlatamaması (yani
sys.init.userspace_reboot.in_progress=1
) belirli bir zaman aşımı süresi içindedir. - İşlem, belirtilen bir zaman aşımı süresi içinde durdurulamaz.
/system/bin/vdc volume reset
işlemi başarısız oldu.- ZRAM cihazının bağlantısı kesilemiyor.
- Etkin bir APEX paketinin bağlantısı yanlış şekilde kesiliyor.
userdata
öğesini kontrol noktası moduna yeniden ekleme girişimi başarısız oldu.- Bir cihazın (
sys.boot_completed=1
), belirtilen zaman aşımına uğradı.
Cihaz başına yapılandırma
Kontrollü yeniden başlatmayla ilgili bazı özellikler, aşağıdaki değerler değiştirilerek ayarlanabilir özellikler:
init.userspace_reboot.is_supported
, bir cihazın ne zaman şunları gerçekleştirebileceğini kontrol eder: kolay bir şekilde yeniden başlatın. Bu özelliğin değerifalse
veya0
ise veya belirtilmemişse yeniden başlatma denemeleri reddedilir.init.userspace_reboot.sigkill.timeoutmillis
zaman aşımını şu süre içinde kontrol ediyor: milisaniye cinsindenSIGKILL
sinyali alan işlemlerin durmasına neden olur. Aşağıdakilerden biri işlemlerin belirtilen zaman aşımı süresinde duramadığı durumlarda, ve yeniden başlatma tetiklenir.init.userspace_reboot.sigterm.timeoutmillis
zaman aşımını şu süre içinde kontrol ediyor:SIGTERM
sinyali alan işlemlerin sona ermesi için milisaniye cinsinden süre. Tümü belirtilen zaman aşımı süresinde sonlandırılamayan işlemler,SIGKILL
sinyali.init.userspace_reboot.started.timeoutmillis
zaman aşımını şu süre içinde kontrol ediyor: yavaş şekilde yeniden başlatmanın milisaniye cinsinden (yanisys.init.userspace_reboot.in_progress=1
) tıklayın. Cihaz yavaş şekilde başlatılamazsa belirtilen zaman aşımı süresi içinde yeniden başlatılırsa tam yeniden başlatma yedeği tetiklenir.init.userspace_reboot.userdata_remount.timeoutmillis
zaman aşımını şu süre içinde kontrol ediyor:userdata
bağlantısını kesmek için milisaniye. Bir cihazuserdata
bağlantısını kesemezse belirtilen zaman aşımı süresi içinde bir donanım yeniden başlatma işlemi tetiklenir.init.userspace_reboot.watchdog.timeoutmillis
, şunun için zaman aşımını kontrol ediyor: cihazın başarıyla başlatılmasına (yanisys.boot_completed=1
) izin verin. Bir cihaz belirtilen zaman aşımı süresi içinde başlatılamazsa, donanım yeniden başlatma yedeği tetiklendi.
Yavaş yeniden başlatma sırasında animasyonu özelleştir
Geçici yeniden başlatmanın referans uygulaması, kullanıcı davranışını özelleştirme rahatça yeniden başlatma sırasında gösterilen animasyon.
userspace-reboot-fs-remount
işleminin sonunda, init
bootanim
hizmeti. Bu hizmet, aşağıdaki öğelerin mevcut olup olmadığını kontrol eder:
animasyon dosyalarını listelenen sırada düzenler ve bulduğu ilk dosyayı oynatır:
/product/media/userspace-reboot.zip
/oem/media/userspace-reboot.zip
/system/media/userspace-reboot.zip
Geçici yeniden başlatma için herhangi bir animasyon dosyası belirtilmemişse bootanim
, bir komut dosyası olarak
varsayılan android
animasyonu.
Test
Android 11, bir
kolay bir şekilde yeniden başlatın. Ayrıca, CTS'yi kullanarak kolay şekilde yeniden başlatma işlemini doğrulayabilirsiniz.
için yapılan testler
UserspaceRebootHostTest
.