diff --git a/media/jni/tuner/LnbClient.cpp b/media/jni/tuner/LnbClient.cpp
index 77583b8..df3fd60 100644
--- a/media/jni/tuner/LnbClient.cpp
+++ b/media/jni/tuner/LnbClient.cpp
@@ -51,8 +51,12 @@
         return TunerClient::getServiceSpecificErrorCode(s);
     }
 
-    mHidlCallback = new HidlLnbCallback(cb);
-    return mLnb->setCallback(mHidlCallback);
+    if (mLnb != NULL) {
+        mHidlCallback = new HidlLnbCallback(cb);
+        return mLnb->setCallback(mHidlCallback);
+    }
+
+    return Result::INVALID_STATE;
 }
 
 Result LnbClient::setVoltage(LnbVoltage voltage) {
diff --git a/media/jni/tuner/TunerClient.cpp b/media/jni/tuner/TunerClient.cpp
index 498ba0e..73a2cf2 100644
--- a/media/jni/tuner/TunerClient.cpp
+++ b/media/jni/tuner/TunerClient.cpp
@@ -37,7 +37,9 @@
 TunerClient::TunerClient() {
     // Get HIDL Tuner in migration stage.
     getHidlTuner();
-    updateTunerResources();
+    if (mTuner != NULL) {
+        updateTunerResources();
+    }
     // Connect with Tuner Service.
     ::ndk::SpAIBinder binder(AServiceManager_getService("media.tuner"));
     mTunerService = ITunerService::fromBinder(binder);
@@ -45,6 +47,9 @@
     mTunerService = NULL;
     if (mTunerService == NULL) {
         ALOGE("Failed to get tuner service");
+    } else {
+        // TODO: b/178124017 update TRM in TunerService independently.
+        mTunerService->updateTunerResources();
     }
 }
 
@@ -60,10 +65,8 @@
 
     if (mTunerService != NULL) {
         vector<int32_t> v;
-        int aidl_return;
-        Status s = mTunerService->getFrontendIds(&v, &aidl_return);
-        if (!s.isOk() || aidl_return != (int) Result::SUCCESS
-                || v.size() == 0) {
+        Status s = mTunerService->getFrontendIds(&v);
+        if (getServiceSpecificErrorCode(s) != Result::SUCCESS || v.size() == 0) {
             ids.clear();
             return ids;
         }
