Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 018ddd7a authored by Nikita Ioffe's avatar Nikita Ioffe
Browse files

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
parent 5bc7941b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
    }
+1 −1
Original line number Diff line number Diff line
@@ -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 {
+4 −2
Original line number Diff line number Diff line
@@ -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.