summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTao Bao <tbao@google.com>2018-05-04 08:01:13 +0200
committerTao Bao <tbao@google.com>2018-05-04 08:18:38 +0200
commit2c52639d01cb2ff9f0a805e0dda72d39a5487d88 (patch)
treef376f2005a2bc514781e4f94ca176378ab9a9f68
parentotautil: Rename dir/sys/thermal utils. (diff)
downloadandroid_bootable_recovery-2c52639d01cb2ff9f0a805e0dda72d39a5487d88.tar
android_bootable_recovery-2c52639d01cb2ff9f0a805e0dda72d39a5487d88.tar.gz
android_bootable_recovery-2c52639d01cb2ff9f0a805e0dda72d39a5487d88.tar.bz2
android_bootable_recovery-2c52639d01cb2ff9f0a805e0dda72d39a5487d88.tar.lz
android_bootable_recovery-2c52639d01cb2ff9f0a805e0dda72d39a5487d88.tar.xz
android_bootable_recovery-2c52639d01cb2ff9f0a805e0dda72d39a5487d88.tar.zst
android_bootable_recovery-2c52639d01cb2ff9f0a805e0dda72d39a5487d88.zip
-rw-r--r--Android.mk1
-rw-r--r--common.h2
-rw-r--r--otautil/Android.bp1
-rw-r--r--otautil/include/otautil/sysutil.h4
-rw-r--r--otautil/sysutil.cpp10
-rw-r--r--recovery.cpp9
-rw-r--r--ui.cpp6
-rw-r--r--updater/install.cpp8
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<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")
diff --git a/ui.cpp b/ui.cpp
index 3c9ded735..8983d7692 100644
--- a/ui.cpp
+++ b/ui.cpp
@@ -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);