summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTianjie Xu <xunchang@google.com>2019-11-07 14:36:21 -0800
committerandroid-build-merger <android-build-merger@google.com>2019-11-07 14:36:21 -0800
commit1594e1c78d792d18dabd4b83a2325d371613e0e7 (patch)
tree4dc6b9400deca7c285275d5939940502fb499f84
parent14dfe8a94e59ea80af5275548733961320426b95 (diff)
parent78817f21ba98c842b68078ba2b04f9c1f91d170e (diff)
downloadbonito-1594e1c78d792d18dabd4b83a2325d371613e0e7.tar.gz
Unify the recovery UI for pixel 3+ am: 82b21c2581 am: 6c9c6b2f30
am: 78817f21ba Change-Id: I9742c95d4b91a48757feb79d6f6d450bf9f17103
-rw-r--r--BoardConfig-common.mk2
-rw-r--r--recovery/Android.bp40
-rw-r--r--recovery/recovery_ui.cpp116
3 files changed, 1 insertions, 157 deletions
diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk
index 7f9c2a18..95ec76ba 100644
--- a/BoardConfig-common.mk
+++ b/BoardConfig-common.mk
@@ -91,7 +91,7 @@ TARGET_RECOVERY_WIPE := device/google/bonito/recovery.wipe
TARGET_RECOVERY_FSTAB := device/google/bonito/fstab.hardware
TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
TARGET_RECOVERY_UI_LIB := \
- librecovery_ui_bonito \
+ librecovery_ui_pixel \
libnos_citadel_for_recovery \
libnos_for_recovery \
libbootloader_message \
diff --git a/recovery/Android.bp b/recovery/Android.bp
deleted file mode 100644
index f87dc95c..00000000
--- a/recovery/Android.bp
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// Copyright (C) 2018 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-cc_library_static {
- name: "librecovery_ui_bonito",
- owner: "google",
- cflags: [
- "-Wall",
- "-Wextra",
- "-Werror",
- "-pedantic",
- ],
- srcs: [
- "recovery_ui.cpp",
- ],
-
- static_libs: [
- "libbase",
- "libbootloader_message",
- "libnos_for_recovery",
- "libnos_citadel_for_recovery",
- ],
-
- shared_libs: [
- "librecovery_ui",
- ],
-}
diff --git a/recovery/recovery_ui.cpp b/recovery/recovery_ui.cpp
deleted file mode 100644
index e3f16f20..00000000
--- a/recovery/recovery_ui.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stdint.h>
-#include <string.h>
-
-#include <string>
-#include <string_view>
-#include <vector>
-
-#include <android-base/endian.h>
-#include <android-base/logging.h>
-#include <app_nugget.h>
-#include <bootloader_message/bootloader_message.h>
-#include <nos/NuggetClient.h>
-#include <nos/debug.h>
-#include <recovery_ui/device.h>
-#include <recovery_ui/screen_ui.h>
-
-namespace android {
-namespace device {
-namespace google {
-namespace bonito {
-
-namespace {
-
-/** Wipe user data from Titan M. */
-bool WipeTitanM() {
- // Connect to Titan M
- ::nos::NuggetClient client;
- client.Open();
- if (!client.IsOpen()) {
- LOG(ERROR) << "Failed to connect to Titan M";
- return false;
- }
-
- // Tell it to wipe user data
- const uint32_t magicValue = htole32(ERASE_CONFIRMATION);
- std::vector<uint8_t> magic(sizeof(magicValue));
- memcpy(magic.data(), &magicValue, sizeof(magicValue));
- const uint32_t status
- = client.CallApp(APP_ID_NUGGET, NUGGET_PARAM_NUKE_FROM_ORBIT, magic, nullptr);
- if (status != APP_SUCCESS) {
- LOG(ERROR) << "Titan M user data wipe failed: " << ::nos::StatusCodeString(status)
- << " (" << status << ")";
- return false;
- }
-
- LOG(INFO) << "Titan M wipe successful";
- return true;
-}
-
-// Wipes the provisioned flag as part of data wipe.
-bool WipeProvisionedFlag() {
- // Must be consistent with the one in init.hardware.rc (10-byte `theme-dark`).
- const std::string wipe_str(10, '\x00');
- constexpr size_t kProvisionedFlagOffsetInVendorSpace = 0;
- if (std::string err; !WriteMiscPartitionVendorSpace(
- wipe_str.data(), wipe_str.size(), kProvisionedFlagOffsetInVendorSpace, &err)) {
- LOG(ERROR) << "Failed to write wipe string: " << err;
- return false;
- }
- LOG(INFO) << "Provisioned flag wiped successful";
- return true;
-}
-
-} // namespace
-
-class BonitoDevice : public ::Device
-{
-public:
- BonitoDevice(::ScreenRecoveryUI* const ui) : ::Device(ui) {}
-
- /** Hook to wipe user data not stored in /data */
- bool PostWipeData() override {
- // Try to do everything but report a failure if anything wasn't successful
- bool totalSuccess = true;
- ::RecoveryUI* const ui = GetUI();
-
- ui->Print("Wiping Titan M...\n");
- if (!WipeTitanM()) {
- totalSuccess = false;
- }
-
- if (!WipeProvisionedFlag()) {
- totalSuccess = false;
- }
-
- // Extendable to wipe other components
-
- return totalSuccess;
- }
-};
-
-} // namespace bonito
-} // namespace google
-} // namespace device
-} // namespace android
-
-Device *make_device()
-{
- return new ::android::device::google::bonito::BonitoDevice(new ::ScreenRecoveryUI);
-}