diff options
Diffstat (limited to 'fastboot/device/variables.cpp')
-rw-r--r-- | fastboot/device/variables.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fastboot/device/variables.cpp b/fastboot/device/variables.cpp index a5dead212..65cfea327 100644 --- a/fastboot/device/variables.cpp +++ b/fastboot/device/variables.cpp @@ -123,10 +123,14 @@ bool GetHasSlot(FastbootDevice* device, const std::vector<std::string>& args) { } std::string slot_suffix = device->GetCurrentSlot(); if (slot_suffix.empty()) { - return device->WriteFail("Invalid slot"); + return device->WriteOkay("no"); } - std::string result = (args[0] == "userdata" ? "no" : "yes"); - return device->WriteOkay(result); + std::string partition_name = args[0] + slot_suffix; + if (FindPhysicalPartition(partition_name) || + LogicalPartitionExists(partition_name, slot_suffix)) { + return device->WriteOkay("yes"); + } + return device->WriteOkay("no"); } bool GetPartitionSize(FastbootDevice* device, const std::vector<std::string>& args) { |