diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-06-27 03:08:14 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-06-27 03:08:14 +0000 |
commit | a55403de222913b16d0772dc31593b51ef11d609 (patch) | |
tree | fe4f8dea9e06f8f57f4a87e18035848f918a53bc | |
parent | ba89370c6063ee6d8d92546fefa9072e62e529dd (diff) | |
parent | 20b3a8837f35b4476070dcb4a58a12d77247810f (diff) | |
download | muskie-android10-s2-release.tar.gz |
Snap for 5691606 from 20b3a8837f35b4476070dcb4a58a12d77247810f to qt-releaseandroid-vts-10.0_r9android-vts-10.0_r8android-vts-10.0_r7android-vts-10.0_r6android-vts-10.0_r5android-vts-10.0_r4android-vts-10.0_r3android-vts-10.0_r2android-vts-10.0_r16android-vts-10.0_r15android-vts-10.0_r14android-vts-10.0_r13android-vts-10.0_r12android-vts-10.0_r11android-vts-10.0_r10android-vts-10.0_r1android-security-10.0.0_r75android-security-10.0.0_r74android-security-10.0.0_r73android-security-10.0.0_r72android-security-10.0.0_r71android-security-10.0.0_r70android-security-10.0.0_r69android-security-10.0.0_r68android-security-10.0.0_r67android-security-10.0.0_r66android-security-10.0.0_r65android-security-10.0.0_r64android-security-10.0.0_r63android-security-10.0.0_r62android-security-10.0.0_r61android-security-10.0.0_r60android-security-10.0.0_r59android-security-10.0.0_r58android-security-10.0.0_r57android-security-10.0.0_r56android-security-10.0.0_r55android-security-10.0.0_r54android-security-10.0.0_r53android-security-10.0.0_r52android-security-10.0.0_r51android-security-10.0.0_r50android-security-10.0.0_r49android-security-10.0.0_r48android-cts-10.0_r9android-cts-10.0_r8android-cts-10.0_r7android-cts-10.0_r6android-cts-10.0_r5android-cts-10.0_r4android-cts-10.0_r3android-cts-10.0_r2android-cts-10.0_r16android-cts-10.0_r15android-cts-10.0_r14android-cts-10.0_r13android-cts-10.0_r12android-cts-10.0_r11android-cts-10.0_r10android-cts-10.0_r1android-10.0.0_r6android-10.0.0_r5android-10.0.0_r47android-10.0.0_r46android-10.0.0_r4android-10.0.0_r3android-10.0.0_r2android-10.0.0_r17android-10.0.0_r11android-10.0.0_r10android-10.0.0_r1android10-tests-releaseandroid10-security-releaseandroid10-s3-releaseandroid10-s2-releaseandroid10-s1-releaseandroid10-release
Change-Id: Ib7af181a8f9fef9c8afae838672ba395e5eb1b71
-rw-r--r-- | init-common.rc | 25 | ||||
-rw-r--r-- | recovery/Android.bp | 38 | ||||
-rw-r--r-- | recovery/recovery_ui.cpp | 58 | ||||
-rw-r--r-- | walleye/BoardConfig.mk | 5 |
4 files changed, 126 insertions, 0 deletions
diff --git a/init-common.rc b/init-common.rc index 0dcc3f0..f10721d 100644 --- a/init-common.rc +++ b/init-common.rc @@ -48,3 +48,28 @@ on property:persist.vendor.charge.stop.level=* && property:sys.all.modules.ready on property:persist.vendor.charge.start.level=* && property:sys.all.modules.ready=1 write /sys/module/htc_battery/parameters/charge_start_level ${persist.vendor.charge.start.level} + +# Write the dark theme magic (`theme-dark`, or 0x7468656d652d6461726b in hex string) to /misc +# partition. Offset 12360 (0x3048) in vendor space is effectively offset 14408 (0x3848) in /misc +# partition. +service vendor.darkboot /vendor/bin/misc_writer --vendor-space-offset 12360 --hex-string 0x7468656d652d6461726b + disabled + oneshot + +# Clear the 10-byte dark theme magic in /misc partition. Offset 0 in vendor space is effectively +# offset 2048 in /misc partition. +service vendor.darkboot_clear /vendor/bin/misc_writer --vendor-space-offset 12360 --hex-string 0x00000000000000000000 + disabled + oneshot + +# Set the dark boot flag on dark mode (UiModeManager.MODE_NIGHT_YES == 2). +on property:persist.sys.theme=2 + start vendor.darkboot + +# Clear the dark theme flag on light mode (UiModeManager.MODE_NIGHT_NO == 1) or auto mode +# (UiModeManager.MODE_NIGHT_AUTO == 0). +on property:persist.sys.theme=1 + start vendor.darkboot_clear + +on property:persist.sys.theme=0 + start vendor.darkboot_clear diff --git a/recovery/Android.bp b/recovery/Android.bp new file mode 100644 index 0000000..fffe848 --- /dev/null +++ b/recovery/Android.bp @@ -0,0 +1,38 @@ +// +// Copyright (C) 2019 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_walleye", + owner: "google", + cflags: [ + "-Wall", + "-Wextra", + "-Werror", + "-pedantic", + ], + srcs: [ + "recovery_ui.cpp", + ], + + static_libs: [ + "libbootloader_message", + ], + + shared_libs: [ + "libbase", + "librecovery_ui", + ], +} diff --git a/recovery/recovery_ui.cpp b/recovery/recovery_ui.cpp new file mode 100644 index 0000000..0ac214f --- /dev/null +++ b/recovery/recovery_ui.cpp @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2019 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 <string> + +#include <android-base/logging.h> +#include <bootloader_message/bootloader_message.h> +#include <recovery_ui/device.h> +#include <recovery_ui/screen_ui.h> + +// Wipes the provisioned flag as part of data wipe. +static bool WipeProvisionedFlag() { + // Must be consistent with the one in init.hardware.rc (10-byte `theme-dark`). The magic is at + // 0x3048 in vendor space, or (0x800 + 0x3048) since the start of /misc. + const std::string wipe_str(10, '\x00'); + constexpr size_t kProvisionedFlagOffsetInVendorSpace = 0x3048; + 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; +} + +class WalleyeDevice : public Device { + public: + WalleyeDevice(ScreenRecoveryUI* 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 total_success = true; + auto ui = GetUI(); + ui->Print("Wiping provisioned flag...\n"); + if (!WipeProvisionedFlag()) { + total_success = false; + } + return total_success; + } +}; + +Device* make_device() { + return new WalleyeDevice(new ScreenRecoveryUI); +} diff --git a/walleye/BoardConfig.mk b/walleye/BoardConfig.mk index cf98414..88b4896 100644 --- a/walleye/BoardConfig.mk +++ b/walleye/BoardConfig.mk @@ -35,3 +35,8 @@ BOARD_LISA_TARGET_SCRIPTS := device/google/wahoo/lisa/ BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=3 BOARD_EXT4_SHARE_DUP_BLOCKS := true + +TARGET_RECOVERY_UI_LIB := \ + librecovery_ui_walleye \ + libbootloader_message \ + libfstab |