diff options
author | Alistair Strachan <astrachan@google.com> | 2018-11-20 18:09:27 -0800 |
---|---|---|
committer | Alistair Strachan <astrachan@google.com> | 2019-01-15 18:10:21 -0800 |
commit | 10c509c2c6592da469f49c358360bf995fd2da1a (patch) | |
tree | 88ca286656a9b260ae8190241d12697f9fe9e3f6 /recovery | |
parent | 7047ecac48c83c36c185421ed4fa19dcb74936a3 (diff) | |
download | hikey-10c509c2c6592da469f49c358360bf995fd2da1a.tar.gz |
Optionally build recovery for hikey{,960}.
Bug: 117293412
Change-Id: Ic4c5119bc10827484a49a39b895bd82e678c6cf0
Diffstat (limited to 'recovery')
-rw-r--r-- | recovery/Android.bp | 32 | ||||
-rw-r--r-- | recovery/recovery_ui.cpp | 49 |
2 files changed, 81 insertions, 0 deletions
diff --git a/recovery/Android.bp b/recovery/Android.bp new file mode 100644 index 00000000..17dde5f0 --- /dev/null +++ b/recovery/Android.bp @@ -0,0 +1,32 @@ +// +// 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_hikey", + owner: "linaro", + cflags: [ + "-Wall", + "-Wextra", + "-Werror", + "-pedantic", + ], + srcs: [ + "recovery_ui.cpp", + ], + include_dirs: [ + "bootable/recovery" + ], +} diff --git a/recovery/recovery_ui.cpp b/recovery/recovery_ui.cpp new file mode 100644 index 00000000..d67ff5f8 --- /dev/null +++ b/recovery/recovery_ui.cpp @@ -0,0 +1,49 @@ +/* + * 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 <device.h> +#include <screen_ui.h> + +namespace android { +namespace device { +namespace linaro { +namespace hikey { + +class HikeyUI : public ::ScreenRecoveryUI +{ + RecoveryUI::KeyAction CheckKey(int key, bool is_long_press) { + // Recovery core can't tolerate using KEY_POWER as an alias for + // KEY_DOWN, and a reboot is always triggered. Remap any power + // key press to KEY_DOWN to allow us to use the power key as + // a regular key. + if (key == KEY_POWER && !is_long_press) { + RecoveryUI::EnqueueKey(KEY_DOWN); + return RecoveryUI::IGNORE; + } + + return RecoveryUI::CheckKey(key, is_long_press); + } +}; + +} // namespace hikey +} // namespace linaro +} // namespace device +} // namespace android + +Device *make_device() +{ + return new Device(new ::android::device::linaro::hikey::HikeyUI()); +} |