diff options
author | David Anderson <dvander@google.com> | 2019-01-15 14:38:20 -0800 |
---|---|---|
committer | David Anderson <dvander@google.com> | 2019-01-17 18:33:14 +0000 |
commit | 1d504e3342b2960066739ea66fac6625b07560fb (patch) | |
tree | 0efac4787a95a99f95c0125765da6a3bc3c33cf8 /fastboot/device/commands.cpp | |
parent | 0e330f12bc7f693933b96ad729d296a92ffd80b7 (diff) | |
download | system_core-1d504e3342b2960066739ea66fac6625b07560fb.tar.gz system_core-1d504e3342b2960066739ea66fac6625b07560fb.tar.bz2 system_core-1d504e3342b2960066739ea66fac6625b07560fb.zip |
fastbootd: Add command to remove GSI installs
Note: this only removes the bootable marker, since we're unable to
remove the userdata files within recovery.
Bug: 121210348
Test: fastboot gsi wipe
fastboot gsi disable
Change-Id: I64fe848c787d426ae9d18a1557a9d6b340bfc2cf
Diffstat (limited to 'fastboot/device/commands.cpp')
-rw-r--r-- | fastboot/device/commands.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/fastboot/device/commands.cpp b/fastboot/device/commands.cpp index e91598d01..a2336bf7b 100644 --- a/fastboot/device/commands.cpp +++ b/fastboot/device/commands.cpp @@ -28,6 +28,7 @@ #include <cutils/android_reboot.h> #include <ext4_utils/wipe.h> #include <fs_mgr.h> +#include <libgsi/libgsi.h> #include <liblp/builder.h> #include <liblp/liblp.h> #include <uuid/uuid.h> @@ -460,3 +461,22 @@ bool UpdateSuperHandler(FastbootDevice* device, const std::vector<std::string>& bool wipe = (args.size() >= 3 && args[2] == "wipe"); return UpdateSuper(device, args[1], wipe); } + +bool GsiHandler(FastbootDevice* device, const std::vector<std::string>& args) { + if (!android::gsi::IsGsiInstalled()) { + return device->WriteStatus(FastbootResult::FAIL, "No GSI is installed"); + } + if (args.size() != 2) { + return device->WriteFail("Invalid arguments"); + } + if (args[1] == "wipe") { + if (!android::gsi::UninstallGsi()) { + return device->WriteStatus(FastbootResult::FAIL, strerror(errno)); + } + } else if (args[1] == "disable") { + if (!android::gsi::DisableGsi()) { + return device->WriteStatus(FastbootResult::FAIL, strerror(errno)); + } + } + return device->WriteStatus(FastbootResult::OKAY, "Success"); +} |