diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp index 129b8af85ffe6..cbae2da042810 100644 --- a/core/jni/android_os_HwBinder.cpp +++ b/core/jni/android_os_HwBinder.cpp @@ -284,28 +284,17 @@ static void JHwBinder_native_registerService( } sp binder = JHwBinder::GetNativeBinder(env, thiz); - - /* TODO(b/33440494) this is not right */ sp base = new hidl::base::V1_0::BpHwBase(binder); - auto manager = hardware::defaultServiceManager(); - - if (manager == nullptr) { - LOG(ERROR) << "Could not get hwservicemanager."; - signalExceptionForError(env, UNKNOWN_ERROR, true /* canThrowRemoteException */); - return; - } - - Return ret = manager->add(str.c_str(), base); - - bool ok = ret.isOk() && ret; + bool ok = hardware::details::registerAsServiceInternal(base, str.c_str()) == OK; if (ok) { LOG(INFO) << "HwBinder: Starting thread pool for " << str.c_str(); ::android::hardware::ProcessState::self()->startThreadPool(); } - signalExceptionForError(env, (ok ? OK : UNKNOWN_ERROR), true /* canThrowRemoteException */); + // avoiding richer error exceptions to stick with legacy behavior + signalExceptionForError(env, (ok ? OK : UNKNOWN_ERROR), true /*canThrowRemoteException*/); } static jobject JHwBinder_native_getService(