diff --git a/adb/Android.mk b/adb/Android.mk index 16ed9911c..fab8c8780 100644 --- a/adb/Android.mk +++ b/adb/Android.mk @@ -330,6 +330,7 @@ LOCAL_STRIP_MODULE := keep_symbols LOCAL_STATIC_LIBRARIES := \ libadbd \ libbase \ + libbootloader_message \ libfs_mgr \ libfec \ libfec_rs \ diff --git a/adb/services.cpp b/adb/services.cpp index 2fbc15a26..df1b134bf 100644 --- a/adb/services.cpp +++ b/adb/services.cpp @@ -39,6 +39,7 @@ #if !ADB_HOST #include +#include #include #include #endif @@ -133,17 +134,12 @@ static bool reboot_service_impl(int fd, const char* arg) { return false; } - const char* const recovery_dir = "/cache/recovery"; - const char* const command_file = "/cache/recovery/command"; - // Ensure /cache/recovery exists. - if (adb_mkdir(recovery_dir, 0770) == -1 && errno != EEXIST) { - D("Failed to create directory '%s': %s", recovery_dir, strerror(errno)); - return false; - } - - bool write_status = android::base::WriteStringToFile( - auto_reboot ? "--sideload_auto_reboot" : "--sideload", command_file); - if (!write_status) { + const std::vector options = { + auto_reboot ? "--sideload_auto_reboot" : "--sideload" + }; + std::string err; + if (!write_bootloader_message(options, &err)) { + D("Failed to set bootloader message: %s", err.c_str()); return false; }