summaryrefslogtreecommitdiff
path: root/fastboot/Fastboot.cpp
diff options
context:
space:
mode:
authorJeffrey Carlyle <jcarlyle@google.com>2022-08-26 03:56:14 +0000
committerJeffrey Carlyle <jcarlyle@google.com>2022-08-26 03:56:14 +0000
commitec03006e5dd6c94cc057c4c1f771bde6ccef88e3 (patch)
tree4163a324a2572a35df738844eff421b7eea9475f /fastboot/Fastboot.cpp
parent6e7361b7f72c0de51757ec061c8a0fb016c6070d (diff)
Revert "attempt to wipe digital car keys when clearing userdata from fastbootd"
This reverts commit 6e7361b7f72c0de51757ec061c8a0fb016c6070d. Reason for revert: see b/243864778 Change-Id: Iff77acb996008c21fc7d5e731d5852b1b240ac86
Diffstat (limited to 'fastboot/Fastboot.cpp')
-rw-r--r--fastboot/Fastboot.cpp49
1 files changed, 8 insertions, 41 deletions
diff --git a/fastboot/Fastboot.cpp b/fastboot/Fastboot.cpp
index 913d82d..922334b 100644
--- a/fastboot/Fastboot.cpp
+++ b/fastboot/Fastboot.cpp
@@ -16,16 +16,15 @@
#include "fastboot/Fastboot.h"
+#include <string>
+#include <unordered_map>
+#include <vector>
+#include <map>
+
#include <android-base/file.h>
#include <android-base/logging.h>
#include <android-base/strings.h>
#include <android-base/unique_fd.h>
-#include <dlfcn.h>
-
-#include <map>
-#include <string>
-#include <unordered_map>
-#include <vector>
// FS headers
#include <ext4_utils/wipe.h>
@@ -170,35 +169,11 @@ enum WipeVolumeStatus wipe_volume(const std::string &volume) {
return WIPE_OK;
}
-// Attempt to reuse a WipeKeys function that might be found in the recovery
-// library in order to clear any digital car keys on the secure element.
-bool WipeDigitalCarKeys(void) {
- static constexpr const char *kDefaultLibRecoveryUIExt = "librecovery_ui_ext.so";
- void *librecovery_ui_ext = dlopen(kDefaultLibRecoveryUIExt, RTLD_NOW);
- if (librecovery_ui_ext == nullptr) {
- // Dynamic library not found. Returning true since this likely
- // means target does not support DCK.
- return true;
- }
-
- bool *(*WipeKeysFunc)(void *const);
- reinterpret_cast<void *&>(WipeKeysFunc) = dlsym(librecovery_ui_ext, "WipeKeys");
- if (WipeKeysFunc == nullptr) {
- // No WipeKeys implementation found. Returning true since this likely
- // means target does not support DCK.
- return true;
- }
-
- return (*WipeKeysFunc)(nullptr);
-}
-
Return<void> Fastboot::doOemSpecificErase(V1_1::IFastboot::doOemSpecificErase_cb _hidl_cb) {
// Erase metadata partition along with userdata partition.
// Keep erasing Titan M even if failing on this case.
auto wipe_status = wipe_volume("/metadata");
- bool dck_wipe_success = WipeDigitalCarKeys();
-
// Connect to Titan M
::nos::NuggetClient client;
client.Open();
@@ -213,27 +188,19 @@ Return<void> Fastboot::doOemSpecificErase(V1_1::IFastboot::doOemSpecificErase_cb
memcpy(magic.data(), &magicValue, sizeof(magicValue));
const uint8_t retry_count = 5;
uint32_t nugget_status;
- for (uint8_t i = 0; i < retry_count; i++) {
+ for(uint8_t i = 0; i < retry_count; i++) {
nugget_status = client.CallApp(APP_ID_NUGGET, NUGGET_PARAM_NUKE_FROM_ORBIT, magic, nullptr);
- if (nugget_status == APP_SUCCESS && wipe_status == WIPE_OK && dck_wipe_success) {
+ if (nugget_status == APP_SUCCESS && wipe_status == WIPE_OK) {
_hidl_cb({Status::SUCCESS, wipe_vol_ret_msg[wipe_status]});
return Void();
}
}
// Return exactly what happened
- if (nugget_status != APP_SUCCESS && wipe_status != WIPE_OK && !dck_wipe_success) {
- _hidl_cb({Status::FAILURE_UNKNOWN, "Fail on wiping metadata, Titan M user data, and DCK"});
- } else if (nugget_status != APP_SUCCESS && wipe_status != WIPE_OK) {
+ if (nugget_status != APP_SUCCESS && wipe_status != WIPE_OK) {
_hidl_cb({Status::FAILURE_UNKNOWN, "Fail on wiping metadata and Titan M user data"});
- } else if (nugget_status != APP_SUCCESS && !dck_wipe_success) {
- _hidl_cb({Status::FAILURE_UNKNOWN, "Titan M user data and DCK wipe failed"});
} else if (nugget_status != APP_SUCCESS) {
_hidl_cb({Status::FAILURE_UNKNOWN, "Titan M user data wipe failed"});
- } else if (wipe_status != WIPE_OK && !dck_wipe_success) {
- _hidl_cb({Status::FAILURE_UNKNOWN, "Fail on wiping metadata and DCK"});
- } else if (!dck_wipe_success) {
- _hidl_cb({Status::FAILURE_UNKNOWN, "DCK wipe failed"});
} else {
if (wipe_vol_ret_msg.find(wipe_status) != wipe_vol_ret_msg.end())
_hidl_cb({Status::FAILURE_UNKNOWN, wipe_vol_ret_msg[wipe_status]});