Merge "[MTE] Reset MTE state for userdata wipe in fastbootd"
This commit is contained in:
commit
d07f11168b
1 changed files with 15 additions and 0 deletions
|
|
@ -40,6 +40,8 @@
|
||||||
#include <storage_literals/storage_literals.h>
|
#include <storage_literals/storage_literals.h>
|
||||||
#include <uuid/uuid.h>
|
#include <uuid/uuid.h>
|
||||||
|
|
||||||
|
#include <bootloader_message/bootloader_message.h>
|
||||||
|
|
||||||
#include "BootControlClient.h"
|
#include "BootControlClient.h"
|
||||||
#include "constants.h"
|
#include "constants.h"
|
||||||
#include "fastboot_device.h"
|
#include "fastboot_device.h"
|
||||||
|
|
@ -154,6 +156,14 @@ static bool GetVarAll(FastbootDevice* device) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void PostWipeData() {
|
||||||
|
std::string err;
|
||||||
|
// Reset mte state of device.
|
||||||
|
if (!WriteMiscMemtagMessage({}, &err)) {
|
||||||
|
LOG(ERROR) << "Failed to reset MTE state: " << err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const std::unordered_map<std::string, std::function<bool(FastbootDevice*)>> kSpecialVars = {
|
const std::unordered_map<std::string, std::function<bool(FastbootDevice*)>> kSpecialVars = {
|
||||||
{"all", GetVarAll},
|
{"all", GetVarAll},
|
||||||
{"dmesg", GetDmesg},
|
{"dmesg", GetDmesg},
|
||||||
|
|
@ -232,6 +242,7 @@ bool EraseHandler(FastbootDevice* device, const std::vector<std::string>& args)
|
||||||
//Perform oem PostWipeData if Android userdata partition has been erased
|
//Perform oem PostWipeData if Android userdata partition has been erased
|
||||||
bool support_oem_postwipedata = false;
|
bool support_oem_postwipedata = false;
|
||||||
if (partition_name == "userdata") {
|
if (partition_name == "userdata") {
|
||||||
|
PostWipeData();
|
||||||
support_oem_postwipedata = OemPostWipeData(device);
|
support_oem_postwipedata = OemPostWipeData(device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -610,6 +621,10 @@ bool FlashHandler(FastbootDevice* device, const std::vector<std::string>& args)
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return device->WriteStatus(FastbootResult::FAIL, strerror(-ret));
|
return device->WriteStatus(FastbootResult::FAIL, strerror(-ret));
|
||||||
}
|
}
|
||||||
|
if (partition_name == "userdata") {
|
||||||
|
PostWipeData();
|
||||||
|
}
|
||||||
|
|
||||||
return device->WriteStatus(FastbootResult::OKAY, "Flashing succeeded");
|
return device->WriteStatus(FastbootResult::OKAY, "Flashing succeeded");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue