diff options
-rw-r--r-- | Android.mk | 1 | ||||
-rw-r--r-- | common.h | 2 | ||||
-rw-r--r-- | otautil/Android.bp | 1 | ||||
-rw-r--r-- | otautil/include/otautil/sysutil.h | 4 | ||||
-rw-r--r-- | otautil/sysutil.cpp | 10 | ||||
-rw-r--r-- | recovery.cpp | 9 | ||||
-rw-r--r-- | ui.cpp | 6 | ||||
-rw-r--r-- | updater/install.cpp | 8 |
8 files changed, 21 insertions, 20 deletions
diff --git a/Android.mk b/Android.mk index acff24a73..abe1b838f 100644 --- a/Android.mk +++ b/Android.mk @@ -65,6 +65,7 @@ LOCAL_MODULE := librecovery_ui LOCAL_STATIC_LIBRARIES := \ libminui \ + libotautil \ libbase ifneq ($(TARGET_RECOVERY_UI_MARGIN_HEIGHT),) @@ -48,6 +48,4 @@ void ui_print(const char* format, ...) __printflike(1, 2); bool is_ro_debuggable(); -bool reboot(const std::string& command); - #endif // RECOVERY_COMMON_H diff --git a/otautil/Android.bp b/otautil/Android.bp index 0be019c06..b058f7b35 100644 --- a/otautil/Android.bp +++ b/otautil/Android.bp @@ -48,6 +48,7 @@ cc_library_static { static_libs: [ "libselinux", + "libcutils", ], }, }, diff --git a/otautil/include/otautil/sysutil.h b/otautil/include/otautil/sysutil.h index 52f6d20a7..649f8ffae 100644 --- a/otautil/include/otautil/sysutil.h +++ b/otautil/include/otautil/sysutil.h @@ -50,4 +50,8 @@ class MemMapping { std::vector<MappedRange> ranges_; }; +// Wrapper function to trigger a reboot, by additionally handling quiescent reboot mode. The +// command should start with "reboot," (e.g. "reboot,bootloader" or "reboot,"). +bool reboot(const std::string& command); + #endif // _OTAUTIL_SYSUTIL diff --git a/otautil/sysutil.cpp b/otautil/sysutil.cpp index e6385c4e9..ab1513088 100644 --- a/otautil/sysutil.cpp +++ b/otautil/sysutil.cpp @@ -28,8 +28,10 @@ #include <android-base/file.h> #include <android-base/logging.h> +#include <android-base/properties.h> #include <android-base/strings.h> #include <android-base/unique_fd.h> +#include <cutils/android_reboot.h> bool MemMapping::MapFD(int fd) { struct stat sb; @@ -201,3 +203,11 @@ MemMapping::~MemMapping() { }; ranges_.clear(); } + +bool reboot(const std::string& command) { + std::string cmd = command; + if (android::base::GetBoolProperty("ro.boot.quiescent", false)) { + cmd += ",quiescent"; + } + return android::base::SetProperty(ANDROID_RB_PROPERTY, cmd); +} diff --git a/recovery.cpp b/recovery.cpp index d8f56b83e..7219771cb 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -70,6 +70,7 @@ #include "otautil/dirutil.h" #include "otautil/error_code.h" #include "otautil/paths.h" +#include "otautil/sysutil.h" #include "roots.h" #include "rotate_logs.h" #include "screen_ui.h" @@ -177,14 +178,6 @@ bool is_ro_debuggable() { return android::base::GetBoolProperty("ro.debuggable", false); } -bool reboot(const std::string& command) { - std::string cmd = command; - if (android::base::GetBoolProperty("ro.boot.quiescent", false)) { - cmd += ",quiescent"; - } - return android::base::SetProperty(ANDROID_RB_PROPERTY, cmd); -} - // command line args come from, in decreasing precedence: // - the actual command line // - the bootloader control block (one per line, after "recovery") @@ -36,14 +36,12 @@ #include <android-base/file.h> #include <android-base/logging.h> #include <android-base/parseint.h> -#include <android-base/properties.h> #include <android-base/strings.h> -#include <cutils/android_reboot.h> #include <minui/minui.h> -#include "common.h" -#include "roots.h" #include "device.h" +#include "otautil/sysutil.h" +#include "roots.h" static constexpr int UI_WAIT_KEY_TIMEOUT_SEC = 120; static constexpr const char* BRIGHTNESS_FILE = "/sys/class/leds/lcd-backlight/brightness"; diff --git a/updater/install.cpp b/updater/install.cpp index b41d48c48..bd22467ab 100644 --- a/updater/install.cpp +++ b/updater/install.cpp @@ -48,7 +48,6 @@ #include <android-base/strings.h> #include <applypatch/applypatch.h> #include <bootloader_message/bootloader_message.h> -#include <cutils/android_reboot.h> #include <ext4_utils/wipe.h> #include <openssl/sha.h> #include <selinux/label.h> @@ -62,6 +61,7 @@ #include "otautil/error_code.h" #include "otautil/mounts.h" #include "otautil/print_sha1.h" +#include "otautil/sysutil.h" #include "updater/updater.h" // Send over the buffer to recovery though the command pipe. @@ -874,11 +874,7 @@ Value* RebootNowFn(const char* name, State* state, const std::vector<std::unique return StringValue(""); } - std::string reboot_cmd = "reboot," + property; - if (android::base::GetBoolProperty("ro.boot.quiescent", false)) { - reboot_cmd += ",quiescent"; - } - android::base::SetProperty(ANDROID_RB_PROPERTY, reboot_cmd); + reboot("reboot," + property); sleep(5); return ErrorAbort(state, kRebootFailure, "%s() failed to reboot", name); |