يتوافق Android 11 مع عمليات إعادة التشغيل البسيطة، وهي
عمليات إعادة تشغيل وقت التشغيل للعمليات في مساحة المستخدم المستخدمة لتطبيق التحديثات التي
تتطلّب إعادة التشغيل (مثل تحديثات حِزم APEX). حاليًا، ناعم
تقتصر إعادة التشغيل على العمليات التي بدأت بعد تثبيت userdata
.
يُطلب إعادة التشغيل السهلة بالطرق التالية:
من
PowerManager
، من خلال الاتصالPowerManager.reboot(PowerManager.REBOOT_USERSPACE)
من واجهة الأوامر، باستخدام
adb shell svc power reboot userspace
أوadb reboot userspace
بعد إعادة التشغيل السريعة، تظل مساحة التخزين المشفَّرة لبيانات الاعتماد مفتوحة.
إذا كان الجهاز متوافقًا مع عمليات إعادة التشغيل السريعة،
تعرض طريقة واجهة برمجة التطبيقات PowerManager.isRebootingUserspace()
القيمة true
، والقيمة
لخاصية النظام init.userspace_reboot.is_supported
تساوي 1
.
إذا كانت عمليات إعادة التشغيل السهلة لا تتيح على الجهاز، عندها
تعذّر PowerManager.reboot(PowerManager.REBOOT_USERSPACE)
وadb reboot
userspace
وadb shell svc power reboot userspace
.
تنفيذ إعادة التشغيل السريعة
بعد طلب إعادة تشغيل بسيطة (من خلال PowerManager
أو من واجهة أوامر)،
ينفذ init
الخطوات التالية:
سيتم استلام
sys.powerctl=reboot,userspace
.شوكة منفصلة
UserspaceRebootWatchdogThread()
مراقبة عملية إعادة التشغيل البسيطة.تؤدي هذه السياسة لتنفيذ إجراء
userspace-reboot-requested
إلى إعادة ضبط كل النظام. قد تؤثر في عملية إعادة التشغيل البسيطة. المواقع المتأثرة: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
يجب ضبط الخصائص المذكورة أعلاه مرة أخرى أثناء تسلسل التمهيد. إذا لزم الأمر، يمكنك إعادة ضبط خصائص إضافية. على سبيل المثال، راجع إجراء "
on userspace-reboot-requested
" فيrootdir/init.rc
تشغيل
DoUserspaceReboot
التي تنفّذ الإجراءات التالية:- لإرسال
SIGTERM
إلى العمليات التي بدأت بعد تثبيتuserdata
تنتظر أن يتوقف. - بعد انتهاء المهلة، يتم إرسال "
SIGKILL
" لإنهاء أي عملية ركض. والعمليات. - يتصل بالرقم
/system/bin/vdc volume reset
. - إلغاء تثبيت الجهاز الاحتياطي zRAM
- لإلغاء تثبيت حزم APEX النشطة.
- للتبديل مرة أخرى إلى مساحة اسم تثبيت التمهيد
- تؤدي إلى تشغيل
userspace-reboot-resume
اتخاذ القرار.
- لإرسال
إذا طُلب منك تحديد نظام الملفات قبل إجراء إعادة التشغيل الأساسية،
تمت إعادة تثبيت "userdata
" في وضع "نقاط التفتيش" خلال
الإجراء userspace-reboot-fs-remount
(يُرجى الاطّلاع على القسم التالي لمعرفة التفاصيل). حاسمة
تُؤخذ عملية إعادة التشغيل السهلة في الاعتبار بعد ضبط sys.boot_completed property
.
إلى 1
. في نهاية عملية إعادة التشغيل السهلة، يتم إطفاء الشاشة
يلزم تفاعل صريح من المستخدم لتنشيطه.
فحص نظام الملفات
إذا تم طلب نقطة فحص لنظام الملفات قبل إعادة التشغيل الأولي،
تمت إعادة تثبيت "userdata
" في وضع "نقطة التحقّق" أثناء إعادة التشغيل السريعة.
يتم تنفيذ منطق إعادة التثبيت في
fs_mgr_remount_userdata_into_checkpointing
وتختلف بين طرق النقاط المرجعية. على وجه التحديد، عندما
يتوافق "userdata
" مع:
الفحص على مستوى نظام الملفات (على سبيل المثال،
f2fs
)،userdata
هو مُعاد تحميلها باستخدام الخيارcheckpoint=disable
.النقاط المرجعية على مستوى الحظر (مثل
ext4
)، ثم يتم إلغاء تثبيت/data
. وجميع أجهزة مصممي خرائط الأجهزة الرئيسية التي تم تثبيتها فوقها، وتدميرها. بعد ذلك، يتم تثبيتuserdata
باستخدام مسار الرمز نفسه المستخدَم في. تشغيل نقطة تفتيش عادية.
إذا تم استخدام سلسلة مفاتيح على مستوى نظام الملفات لإدارة بيانات الاعتماد المشفّرة (CE)
مفاتيح مشفَّرة على الجهاز (DE)، ثم تُفقد المفاتيح بعد إلغاء تثبيت userdata
. إلى
السماح باستعادة المفتاح، عند تثبيت مفتاح في سلسلة مفاتيح نظام الملفات، vold
أيضًا تثبيت المفتاح نفسه من النوع fscrypt-provisioning
على مستوى الجلسة
حلقة المفاتيح. عند استدعاء الدالة init_user0
، يعيد vold
تثبيت المفاتيح في الملف.
مفتاح النظام.
رجوع إلى إعادة التشغيل الصعبة
للتأكّد من أنّ إعادة التشغيل السهلة لا تؤدي إلى ترك الجهاز في حالة غير قابلة للاستخدام، يتضمن Android 11 إجراءً احتياطيا لإعادة التشغيل الثابت يتم تشغيله عند استيفاء أحد الشروط التالية:
- يتعذّر على الجهاز إعادة تشغيل الجهاز (أي
sys.init.userspace_reboot.in_progress=1
) خلال مهلة محددة. - حيث يتعذر إيقاف العملية خلال مهلة معينة.
- تعذَّر إتمام عملية
/system/bin/vdc volume reset
. - تعذَّر إلغاء تثبيت جهاز zRAM.
- هناك حزمة APEX نشطة يتم إلغاء تثبيتها بشكل غير صحيح.
- تعذّرت محاولة إعادة تثبيت "
userdata
" في وضع "نقطة التحقّق". - يتعذّر تشغيل جهاز بنجاح (أي
sys.boot_completed=1
) خلال المهلة المحددة.
الإعدادات حسب الجهاز
يمكن ضبط بعض جوانب إعادة التشغيل البسيطة من خلال تغيير قيم ما يلي: المواقع:
- يتحكّم "
init.userspace_reboot.is_supported
" في الحالات التي يمكن للجهاز فيها تنفيذ إعادة تشغيل سريعة. إذا كانت قيمة هذه السمةfalse
أو0
أو لم يتم تحديدها، ثم يتم رفض محاولات إعادة التشغيل. - يتحكّم
init.userspace_reboot.sigkill.timeoutmillis
في المهلة خلال مللي ثانية للعمليات التي تلقت إشارةSIGKILL
لإيقافها. إذا كانت إحدى فشل العمليات في التوقف خلال المهلة المحددة، ثم الرجوع إلى إعادة التشغيل. - يتحكّم
init.userspace_reboot.sigterm.timeoutmillis
في المهلة خلال مللي ثانية للعمليات التي تلقت إشارةSIGTERM
على الانتهاء. الكل تتلقى العمليات التي لم يتم إنهاؤها خلال المهلة المحددة إشارة واحدة (SIGKILL
) - يتحكّم
init.userspace_reboot.started.timeoutmillis
في المهلة خلال ملي ثانية لبدء إعادة التشغيل السهلة (أيsys.init.userspace_reboot.in_progress=1
). إذا تعذّر تشغيل الجهاز بسهولة إعادة التشغيل ضمن المهلة المحددة، يتم تشغيل إجراء احتياطي لإعادة التشغيل الثابت. - يتحكّم
init.userspace_reboot.userdata_remount.timeoutmillis
في المهلة خلال بالملي ثانية لإلغاء تثبيتuserdata
. في حال تعذّر إلغاء تثبيت جهازuserdata
خلال المهلة المحددة، يتم بدء إجراء احتياطي لإعادة التشغيل الثابت. - يتحكّم
init.userspace_reboot.watchdog.timeoutmillis
في المهلة الجهاز لتشغيله بنجاح (أيsys.boot_completed=1
). إذا كان هناك جهاز الأخطاء في التشغيل خلال المهلة المحددة، فإن الإجراء الاحتياطي لإعادة التشغيل الثابت مُشغَّلة.
تخصيص الصورة المتحركة أثناء إعادة التشغيل السهلة
يتضمن التنفيذ المرجعي لعملية إعادة التشغيل البسيطة القدرة على تخصيص تظهر خلال عملية إعادة التشغيل البسيطة.
في نهاية إجراء userspace-reboot-fs-remount
، تبدأ init
خدمة bootanim
. تبحث هذه الخدمة عن وجود ما يلي:
ملفات الصور المتحركة بالترتيب المذكور، وتُشغِّل أول ملف تعثر عليه:
/product/media/userspace-reboot.zip
/oem/media/userspace-reboot.zip
/system/media/userspace-reboot.zip
في حال عدم تحديد ملفات صور متحركة معيّنة لعملية إعادة التشغيل السريعة، يعرض bootanim
صورة متحركة تلقائية من نوع android
.
الاختبار
يتضمّن Android 11 تنفيذًا مرجعيًا
إعادة تشغيل سريعة. بالإضافة إلى ذلك، يمكنك التحقّق من عملية إعادة التشغيل البسيطة باستخدام CTS.
اختبارات في
UserspaceRebootHostTest