Merge "Support 'adb reboot fastboot' command conditionally."

This commit is contained in:
Treehugger Robot 2018-09-25 17:17:08 +00:00 committed by Gerrit Code Review
commit 6544056d54
2 changed files with 9 additions and 1 deletions

View file

@ -103,7 +103,9 @@ void reboot_service(unique_fd fd, const std::string& arg) {
if (reboot_arg.empty()) reboot_arg = "adb";
std::string reboot_string = android::base::StringPrintf("reboot,%s", reboot_arg.c_str());
if (reboot_arg == "fastboot" && access("/dev/socket/recovery", F_OK) == 0) {
if (reboot_arg == "fastboot" &&
android::base::GetBoolProperty("ro.boot.logical_partitions", false) &&
access("/dev/socket/recovery", F_OK) == 0) {
LOG(INFO) << "Recovery specific reboot fastboot";
/*
* The socket is created to allow switching between recovery and

View file

@ -464,6 +464,12 @@ bool HandlePowerctlMessage(const std::string& command) {
cmd = ANDROID_RB_RESTART2;
if (cmd_params.size() >= 2) {
reboot_target = cmd_params[1];
// adb reboot fastboot should boot into bootloader for devices not
// supporting logical partitions.
if (reboot_target == "fastboot" &&
!android::base::GetBoolProperty("ro.boot.logical_partitions", false)) {
reboot_target = "bootloader";
}
// When rebooting to the bootloader notify the bootloader writing
// also the BCB.
if (reboot_target == "bootloader") {