Files
android_bootable_recovery/Android.bp
Hridya Valsaraju 20c81b308d Add fastboot mode to recovery
Add a fastboot mode to recovery that can be
entered with command line args or with the ui.

Add usb property triggers to switch between
fastboot and adb configurations.

Allow switching between fastboot and adb through
usb commands by opening a unix socket. adbd/fastbootd
writes to this socket, which interrupts the ui and
switches to the new mode.

Test: Use fastboot mode
Bug: 78793464
Change-Id: I7891bb84427ec734a21a872036629b95ab3fb13c
2018-08-13 21:18:18 -07:00

302 lines
5.3 KiB
Plaintext

// 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_defaults {
name: "recovery_defaults",
cflags: [
"-D_FILE_OFFSET_BITS=64",
// Must be the same as RECOVERY_API_VERSION.
"-DRECOVERY_API_VERSION=3",
"-Wall",
"-Werror",
],
}
cc_library {
name: "librecovery_ui",
recovery_available: true,
defaults: [
"recovery_defaults",
],
srcs: [
"device.cpp",
"screen_ui.cpp",
"ui.cpp",
"vr_ui.cpp",
"wear_ui.cpp"
],
static_libs: [
"libminui",
"libotautil",
],
shared_libs: [
"libbase",
"libpng",
"libz",
],
}
// Generic device that uses ScreenRecoveryUI.
cc_library_static {
name: "librecovery_ui_default",
recovery_available: true,
defaults: [
"recovery_defaults",
],
srcs: [
"default_device.cpp",
],
}
// The default wear device that uses WearRecoveryUI.
cc_library_static {
name: "librecovery_ui_wear",
recovery_available: true,
defaults: [
"recovery_defaults",
],
srcs: [
"wear_device.cpp",
],
}
// The default VR device that uses VrRecoveryUI.
cc_library_static {
name: "librecovery_ui_vr",
recovery_available: true,
defaults: [
"recovery_defaults",
],
srcs: [
"vr_device.cpp",
],
}
cc_library_static {
name: "librecovery_fastboot",
recovery_available: true,
defaults: [
"recovery_defaults",
],
srcs: [
"fastboot/fastboot.cpp",
],
shared_libs: [
"libbase",
"libbootloader_message",
"libcutils",
"liblog",
],
static_libs: [
"librecovery_ui_default",
],
}
cc_defaults {
name: "librecovery_defaults",
defaults: [
"recovery_defaults",
],
shared_libs: [
"libbase",
"libbootloader_message",
"libcrypto",
"libcrypto_utils",
"libcutils",
"libext4_utils",
"libfs_mgr",
"libfusesideload",
"libhidl-gen-utils",
"liblog",
"libpng",
"libselinux",
"libsparse",
"libtinyxml2",
"libutils",
"libz",
"libziparchive",
],
static_libs: [
"librecovery_fastboot",
"libminui",
"libverifier",
"libotautil",
"libvintf_recovery",
"libvintf",
// TODO(b/80132328): Remove the dependency on static health HAL.
"libhealthd.default",
"android.hardware.health@2.0-impl",
"android.hardware.health@2.0",
"android.hardware.health@1.0",
"android.hardware.health@1.0-convert",
"libhealthstoragedefault",
"libhidltransport",
"libhidlbase",
"libhwbinder_noltopgo",
"libbatterymonitor",
],
}
cc_library_static {
name: "librecovery",
recovery_available: true,
defaults: [
"librecovery_defaults",
],
srcs: [
"adb_install.cpp",
"fsck_unshare_blocks.cpp",
"fuse_sdcard_provider.cpp",
"install.cpp",
"recovery.cpp",
"roots.cpp",
],
include_dirs: [
"system/vold",
],
}
cc_library_static {
name: "libverifier",
recovery_available: true,
defaults: [
"recovery_defaults",
],
srcs: [
"asn1_decoder.cpp",
"verifier.cpp",
],
shared_libs: [
"libbase",
"libcrypto",
"libcrypto_utils",
],
static_libs: [
"libotautil",
],
}
cc_binary {
name: "recovery",
recovery: true,
defaults: [
"librecovery_defaults",
],
srcs: [
"logging.cpp",
"recovery_main.cpp",
],
shared_libs: [
"libminadbd_services",
"librecovery_ui",
],
static_libs: [
"librecovery",
"librecovery_ui_default",
],
required: [
"e2fsdroid.recovery",
"librecovery_ui_ext",
"mke2fs.conf",
"mke2fs.recovery",
"recovery_deps",
],
}
// The dynamic executable that runs after /data mounts.
cc_binary {
name: "recovery-persist",
defaults: [
"recovery_defaults",
],
srcs: [
"logging.cpp",
"recovery-persist.cpp",
],
shared_libs: [
"libbase",
"liblog",
],
static_libs: [
"libotautil",
],
init_rc: [
"recovery-persist.rc",
],
}
// The dynamic executable that runs at init.
cc_binary {
name: "recovery-refresh",
defaults: [
"recovery_defaults",
],
srcs: [
"logging.cpp",
"recovery-refresh.cpp",
],
shared_libs: [
"libbase",
"liblog",
],
static_libs: [
"libotautil",
],
init_rc: [
"recovery-refresh.rc",
],
}