Unify logic for resetting properties before userspace reboot

Since I was there, added two more properties to reset, and switched
ordering of sys.init.updatable_crashing and
sys.init.updatable_crashing_process_name setprops to make sure that
process name is already set when apexd/PackageWatchdog get's notified
about sys.init.updatable_crashing.

Also fixed a typo in what HandleUserspaceReboot function.

Test: adb reboot userspace
Bug: 135984674
Change-Id: I954ec49aae0734cda1bd833ad68f386ecd808f73
This commit is contained in:
Nikita Ioffe 2019-12-20 16:34:48 +00:00
parent 5bc7941be3
commit 018ddd7a6f
3 changed files with 6 additions and 4 deletions

View File

@ -834,7 +834,7 @@ static void UserspaceRebootWatchdogThread() {
}
static void HandleUserspaceReboot() {
if (!android::sysprop::InitProperties::userspace_reboot_in_progress().value_or(false)) {
if (!android::sysprop::InitProperties::is_userspace_reboot_supported().value_or(false)) {
LOG(ERROR) << "Attempted a userspace reboot on a device that doesn't support it";
return;
}

View File

@ -325,8 +325,8 @@ void Service::Reap(const siginfo_t& siginfo) {
LOG(ERROR) << "updatable process '" << name_ << "' exited 4 times "
<< (boot_completed ? "in 4 minutes" : "before boot completed");
// Notifies update_verifier and apexd
SetProperty("sys.init.updatable_crashing", "1");
SetProperty("sys.init.updatable_crashing_process_name", name_);
SetProperty("sys.init.updatable_crashing", "1");
}
}
} else {

View File

@ -978,9 +978,11 @@ on init && property:ro.debuggable=1
on userspace-reboot-requested
# TODO(b/135984674): reset all necessary properties here.
setprop sys.boot_completed 0
setprop sys.init.updatable_crashing 0
setprop sys.boot_completed ""
setprop sys.init.updatable_crashing ""
setprop sys.init.updatable_crashing_process_name ""
setprop apexd.status ""
setprop sys.user.0.ce_available ""
on userspace-reboot-fs-remount
# Make sure that vold is running.