From 73b983a7d41910031fc54467f39c077243a8d0a9 Mon Sep 17 00:00:00 2001 From: Subrahmanya Manikanta Venkateswarlu Bhamidipati Kameswara Sri Date: Tue, 13 Jun 2023 17:37:29 +0000 Subject: [PATCH] Check AServiceManager_isDeclared before AServiceManager_getService Call AServiceManager_isDeclared before calling AServiceManager_getService to avoid the waiting time when aidl service is not available. Bug: 286969060 Test: run VtsHalGatekeeperTarget (cherry picked from https://android-review.googlesource.com/q/commit:32e1c70f275991ec7fe4d4a2d6e3eeba2a172540) Merged-In: I7d652a546cb810a601338a68950f01d065aea7a5 Change-Id: I7d652a546cb810a601338a68950f01d065aea7a5 --- gatekeeperd/gatekeeperd.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gatekeeperd/gatekeeperd.cpp b/gatekeeperd/gatekeeperd.cpp index eb43a3378..d2fc65120 100644 --- a/gatekeeperd/gatekeeperd.cpp +++ b/gatekeeperd/gatekeeperd.cpp @@ -74,9 +74,13 @@ class GateKeeperProxy : public BnGateKeeperService { public: GateKeeperProxy() { clear_state_if_needed_done = false; - hw_device = IGatekeeper::getService(); - ::ndk::SpAIBinder ks2Binder(AServiceManager_getService(gatekeeperServiceName)); - aidl_hw_device = AidlIGatekeeper::fromBinder(ks2Binder); + if (AServiceManager_isDeclared(gatekeeperServiceName)) { + ::ndk::SpAIBinder ks2Binder(AServiceManager_waitForService(gatekeeperServiceName)); + aidl_hw_device = AidlIGatekeeper::fromBinder(ks2Binder); + } + if (!aidl_hw_device) { + hw_device = IGatekeeper::getService(); + } is_running_gsi = android::base::GetBoolProperty(android::gsi::kGsiBootedProp, false); if (!aidl_hw_device && !hw_device) {