summaryrefslogtreecommitdiff
path: root/fastboot/Fastboot.cpp
diff options
context:
space:
mode:
authorJing-yan, Jang <josephjang@google.com>2020-11-03 07:06:19 +0000
committerJing-yan, Jang <josephjang@google.com>2020-11-03 07:06:19 +0000
commitfa39fec4b5de51d7b25dddbf68d3efe7eff34448 (patch)
tree1a75e6bb0e94ef9fa5031e7a7efe87b5a4095208 /fastboot/Fastboot.cpp
parent99132266897cedd6b098af5a08584285a8e02627 (diff)
Revert "Revert "fastboot: Use doOemSpecificErase() to erase Tita..."
Revert^2 "Organize citadel's setting" 0ed91028402fc1e0bdc179cbd01f2745cc92fa7c Change-Id: I2a81135b84be24133b7947d68ccdfa5bc2db16f8
Diffstat (limited to 'fastboot/Fastboot.cpp')
-rw-r--r--fastboot/Fastboot.cpp60
1 files changed, 27 insertions, 33 deletions
diff --git a/fastboot/Fastboot.cpp b/fastboot/Fastboot.cpp
index a29148d..93435d6 100644
--- a/fastboot/Fastboot.cpp
+++ b/fastboot/Fastboot.cpp
@@ -31,7 +31,7 @@
namespace android {
namespace hardware {
namespace fastboot {
-namespace V1_0 {
+namespace V1_1 {
namespace implementation {
constexpr const char* BRIGHTNESS_FILE = "/sys/class/backlight/panel0-backlight/brightness";
@@ -99,20 +99,36 @@ Result SetBrightnessLevel(const std::vector<std::string>& args) {
return { Status::FAILURE_UNKNOWN, "Unable to set display brightness" };
}
-Result PostWipeData(const std::vector<std::string>& args) {
- if (!args.size()||((args[0] != "userdata")&&(args[0] != "support"))) {
- return { Status::INVALID_ARGUMENT, "Invalid oem command" };
+Return<void> Fastboot::doOemCommand(const ::android::hardware::hidl_string& oemCmdArgs,
+ doOemCommand_cb _hidl_cb) {
+ const std::unordered_map<std::string, OEMCommandHandler> kOEMCmdMap = {
+ {FB_OEM_SET_BRIGHTNESS, SetBrightnessLevel},
+ };
+
+ auto args = android::base::Split(oemCmdArgs, " ");
+ if (args.size() < 2) {
+ _hidl_cb({ Status::INVALID_ARGUMENT, "Invalid OEM command" });
+ return Void();
}
- if (args[0] == "support") {
- return { Status::SUCCESS, "" };
+ // args[0] will be "oem", args[1] will be the command name
+ auto cmd_handler = kOEMCmdMap.find(args[1]);
+ if (cmd_handler != kOEMCmdMap.end()) {
+ _hidl_cb(cmd_handler->second(std::vector<std::string>(args.begin() + 2, args.end())));
+ } else {
+ _hidl_cb({ Status::FAILURE_UNKNOWN, "Unknown OEM command" });
}
+ return Void();
+}
+
+Return<void> Fastboot::doOemSpecificErase(V1_1::IFastboot::doOemSpecificErase_cb _hidl_cb) {
// Connect to Titan M
::nos::NuggetClient client;
client.Open();
if (!client.IsOpen()) {
- return { Status::FAILURE_UNKNOWN, "open Titan M fail" };
+ _hidl_cb({ Status::FAILURE_UNKNOWN, "open Titan M fail" });
+ return Void();
}
// Tell Titan M to wipe user data
@@ -124,34 +140,12 @@ Result PostWipeData(const std::vector<std::string>& args) {
const uint32_t status
= client.CallApp(APP_ID_NUGGET, NUGGET_PARAM_NUKE_FROM_ORBIT, magic, nullptr);
if (status == APP_SUCCESS) {
- return { Status::SUCCESS, "" };
+ _hidl_cb({ Status::SUCCESS, "" });
+ return Void();
}
}
- return { Status::FAILURE_UNKNOWN, "Titan M user data wipe failed" };
-}
-
-Return<void> Fastboot::doOemCommand(const ::android::hardware::hidl_string& oemCmdArgs,
- doOemCommand_cb _hidl_cb) {
- const std::unordered_map<std::string, OEMCommandHandler> kOEMCmdMap = {
- {FB_OEM_SET_BRIGHTNESS, SetBrightnessLevel},
- {FB_OEM_POST_WIPEDATA, PostWipeData},
- };
-
- auto args = android::base::Split(oemCmdArgs, " ");
- if (args.size() < 2) {
- _hidl_cb({ Status::INVALID_ARGUMENT, "Invalid OEM command" });
- return Void();
- }
-
- // args[0] will be "oem", args[1] will be the command name
- auto cmd_handler = kOEMCmdMap.find(args[1]);
- if (cmd_handler != kOEMCmdMap.end()) {
- _hidl_cb(cmd_handler->second(std::vector<std::string>(args.begin() + 2, args.end())));
- } else {
- _hidl_cb({ Status::FAILURE_UNKNOWN, "Unknown OEM command" });
- }
-
+ _hidl_cb({ Status::FAILURE_UNKNOWN, "Titan M user data wipe failed" });
return Void();
}
@@ -164,7 +158,7 @@ extern "C" IFastboot* HIDL_FETCH_IFastboot(const char* /* name */) {
}
} // namespace implementation
-} // namespace V1_0
+} // namespace V1_1
} // namespace fastboot
} // namespace hardware
} // namespace android