Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63928c31 authored by Sandeep Dhavale's avatar Sandeep Dhavale
Browse files

Fastboot: Use AServiceManager_waitForService instead of AServiceManager_getService



AServiceManager_getService waits unncessarily waits for 5 seconds if
service is not available. Use isDeclared() and waitForService() instead.

Bug: 261759425
Test: build and flash
Change-Id: I20a5f422ca0c26c6e9e183e6636b30a2f19e76d3
Signed-off-by: default avatarSandeep Dhavale <dhavale@google.com>
parent aeee1c62
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -70,12 +70,15 @@ std::shared_ptr<aidl::android::hardware::fastboot::IFastboot> get_fastboot_servi
    using HidlFastboot = android::hardware::fastboot::V1_1::IFastboot;
    using aidl::android::hardware::fastboot::FastbootShim;
    auto service_name = IFastboot::descriptor + "/default"s;
    ndk::SpAIBinder binder(AServiceManager_getService(service_name.c_str()));
    if (AServiceManager_isDeclared(service_name.c_str())) {
        ndk::SpAIBinder binder(AServiceManager_waitForService(service_name.c_str()));
        std::shared_ptr<IFastboot> fastboot = IFastboot::fromBinder(binder);
        if (fastboot != nullptr) {
        LOG(INFO) << "Using AIDL fastboot service";
            LOG(INFO) << "Found and using AIDL fastboot service";
            return fastboot;
        }
        LOG(WARNING) << "AIDL fastboot service is declared, but it cannot be retrieved.";
    }
    LOG(INFO) << "Unable to get AIDL fastboot service, trying HIDL...";
    android::sp<HidlFastboot> hidl_fastboot = HidlFastboot::getService();
    if (hidl_fastboot != nullptr) {