Merge "Disallow fastboot to modify locked DSU" into main
This commit is contained in:
commit
66b68dde92
1 changed files with 11 additions and 0 deletions
|
|
@ -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");
|
||||
|
|
@ -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…
Add table
Reference in a new issue