diff options
author | Tianjie Xu <xunchang@google.com> | 2019-11-07 14:36:21 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-11-07 14:36:21 -0800 |
commit | 1594e1c78d792d18dabd4b83a2325d371613e0e7 (patch) | |
tree | 4dc6b9400deca7c285275d5939940502fb499f84 | |
parent | 14dfe8a94e59ea80af5275548733961320426b95 (diff) | |
parent | 78817f21ba98c842b68078ba2b04f9c1f91d170e (diff) | |
download | bonito-1594e1c78d792d18dabd4b83a2325d371613e0e7.tar.gz |
Unify the recovery UI for pixel 3+ am: 82b21c2581 am: 6c9c6b2f30
am: 78817f21ba
Change-Id: I9742c95d4b91a48757feb79d6f6d450bf9f17103
-rw-r--r-- | BoardConfig-common.mk | 2 | ||||
-rw-r--r-- | recovery/Android.bp | 40 | ||||
-rw-r--r-- | recovery/recovery_ui.cpp | 116 |
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); -} |