Loading fastboot/device/commands.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -639,6 +639,12 @@ bool UpdateSuperHandler(FastbootDevice* device, const std::vector<std::string>& return UpdateSuper(device, args[1], wipe); } static bool IsLockedDsu() { std::string active_dsu; android::gsi::GetActiveDsu(&active_dsu); return android::base::EndsWith(active_dsu, ".lock"); } bool GsiHandler(FastbootDevice* device, const std::vector<std::string>& args) { if (args.size() != 2) { return device->WriteFail("Invalid arguments"); Loading @@ -653,6 +659,11 @@ bool GsiHandler(FastbootDevice* device, const std::vector<std::string>& args) { return device->WriteStatus(FastbootResult::FAIL, "No GSI is installed"); } if ((args[1] == "wipe" || args[1] == "disable") && GetDeviceLockStatus() && IsLockedDsu()) { // Block commands that modify the states of locked DSU return device->WriteFail("Command not available on locked DSU/devices"); } if (args[1] == "wipe") { if (!android::gsi::UninstallGsi()) { return device->WriteStatus(FastbootResult::FAIL, strerror(errno)); Loading Loading
fastboot/device/commands.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -639,6 +639,12 @@ bool UpdateSuperHandler(FastbootDevice* device, const std::vector<std::string>& return UpdateSuper(device, args[1], wipe); } static bool IsLockedDsu() { std::string active_dsu; android::gsi::GetActiveDsu(&active_dsu); return android::base::EndsWith(active_dsu, ".lock"); } bool GsiHandler(FastbootDevice* device, const std::vector<std::string>& args) { if (args.size() != 2) { return device->WriteFail("Invalid arguments"); Loading @@ -653,6 +659,11 @@ bool GsiHandler(FastbootDevice* device, const std::vector<std::string>& args) { return device->WriteStatus(FastbootResult::FAIL, "No GSI is installed"); } if ((args[1] == "wipe" || args[1] == "disable") && GetDeviceLockStatus() && IsLockedDsu()) { // Block commands that modify the states of locked DSU return device->WriteFail("Command not available on locked DSU/devices"); } if (args[1] == "wipe") { if (!android::gsi::UninstallGsi()) { return device->WriteStatus(FastbootResult::FAIL, strerror(errno)); Loading