summaryrefslogtreecommitdiff
path: root/recovery_main.cpp
diff options
context:
space:
mode:
authorHongguang Chen <hgchen@google.com>2020-04-21 20:58:04 -0700
committerHongguang Chen <hgchen@google.com>2020-05-19 19:11:13 +0000
commit4d0df88d88db381422ee912f2609258d72eca4cf (patch)
tree959cfb41f4a1a056fc8d08f6f301e43ca3e9e9da /recovery_main.cpp
parentb62ff1abe3f3cdaaefdc17a51cf6479428606c31 (diff)
Add EthernetDevice to manage ethernet connection.
The current fastbootd only supports USB protocol. But some Android TV devices are built without USB port. The fastbootd cannot be used on those ATV devices due to it. aosp/1295566 enables fastbootd over ethernet. This change adds an EthernetDevice to manage ethernet connection and set fastbootd protcol property fastbootd.protocol to enable fastbootd over ethernet in recovery mode. It uses IPv6 link-local address to not expose the devices out of the network segment. The devices who want to use this EthernetDevice should add “TARGET_RECOVERY_UI_LIB := librecovery_ui_ethernet” into BoardConfig.mk. BUG: 152544169 BUG: 155198345 Test: Enter and exit fastboot mode and check eth0 IPv6 link-local address on screen UI. Change-Id: I73fe44be3790bdba5a6059fbba3f7264b21eed99 Merged-In: I73fe44be3790bdba5a6059fbba3f7264b21eed99
Diffstat (limited to 'recovery_main.cpp')
-rw-r--r--recovery_main.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/recovery_main.cpp b/recovery_main.cpp
index 30a1fc0a..80cba61d 100644
--- a/recovery_main.cpp
+++ b/recovery_main.cpp
@@ -471,6 +471,11 @@ int main(int argc, char** argv) {
std::string usb_config =
fastboot ? "fastboot" : IsRoDebuggable() || IsDeviceUnlocked() ? "adb" : "none";
std::string usb_state = android::base::GetProperty("sys.usb.state", "none");
+ if (fastboot) {
+ device->PreFastboot();
+ } else {
+ device->PreRecovery();
+ }
if (usb_config != usb_state) {
if (!SetUsbConfig("none")) {
LOG(ERROR) << "Failed to clear USB config";