From 2c52639d01cb2ff9f0a805e0dda72d39a5487d88 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 3 May 2018 23:01:13 -0700 Subject: Move reboot() from common.h into otautil/sysutil.h. This breaks the dependency on common.h (which belongs to recovery/librecovery) from librecovery_ui. reboot() is now owned by libotautil, which is expected to be a leaf node to be depended on. With the change, recovery and updater also share the same reboot() code now. Test: mmma -j bootable/recovery Change-Id: I1cc5d702cfe49302048db33d31c9c87ddc97ac71 --- Android.mk | 1 + common.h | 2 -- otautil/Android.bp | 1 + otautil/include/otautil/sysutil.h | 4 ++++ otautil/sysutil.cpp | 10 ++++++++++ recovery.cpp | 9 +-------- ui.cpp | 6 ++---- 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),) diff --git a/common.h b/common.h index 33c5ba08f..de536fdb4 100644 --- a/common.h +++ b/common.h @@ -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 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 #include +#include #include #include +#include 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") diff --git a/ui.cpp b/ui.cpp index 3c9ded735..8983d7692 100644 --- a/ui.cpp +++ b/ui.cpp @@ -36,14 +36,12 @@ #include #include #include -#include #include -#include #include -#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 #include #include -#include #include #include #include @@ -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