diff --git a/base/HidlInternal.cpp b/base/HidlInternal.cpp
index e5c8f70..e38a664 100644
--- a/base/HidlInternal.cpp
+++ b/base/HidlInternal.cpp
@@ -18,9 +18,6 @@
 
 #include <hidl/HidlInternal.h>
 
-#ifdef __ANDROID__
-#include <android/api-level.h>
-#endif
 #include <android-base/logging.h>
 #include <android-base/properties.h>
 #include <android-base/stringprintf.h>
@@ -53,16 +50,9 @@
     LOG(FATAL) << message;
 }
 
-std::string getVndkSpHwPath(const char* lib) {
-    static std::string vndk_version = base::GetProperty("ro.vndk.version", "");
-#ifdef __ANDROID__
-    static int api_level = android_get_device_api_level();
-    if (api_level >= __ANDROID_API_R__) {
-        return android::base::StringPrintf("/apex/com.android.vndk.v%s/%s/hw/",
-                                           vndk_version.c_str(), lib);
-    }
-#endif
-    return android::base::StringPrintf("/system/%s/vndk-sp-%s/hw/", lib, vndk_version.c_str());
+std::string getVndkVersionStr() {
+    static std::string vndkVersion = base::GetProperty("ro.vndk.version", "");
+    return vndkVersion;
 }
 
 // ----------------------------------------------------------------------
@@ -143,7 +133,8 @@
     if (instrumentationLibPath.size() > 0) {
         instrumentationLibPaths.push_back(instrumentationLibPath);
     } else {
-        static std::string halLibPathVndkSp = getVndkSpHwPath();
+        static std::string halLibPathVndkSp = android::base::StringPrintf(
+            HAL_LIBRARY_PATH_VNDK_SP_FOR_VERSION, getVndkVersionStr().c_str());
 #ifndef __ANDROID_VNDK__
         instrumentationLibPaths.push_back(HAL_LIBRARY_PATH_SYSTEM);
 #endif
diff --git a/base/include/hidl/HidlInternal.h b/base/include/hidl/HidlInternal.h
index 3cd246a..ee87b87 100644
--- a/base/include/hidl/HidlInternal.h
+++ b/base/include/hidl/HidlInternal.h
@@ -44,12 +44,8 @@
 //to avoid creating dependencies on liblog.
 void logAlwaysFatal(const char *message);
 
-// Returns VNDK-SP hw path according to "ro.vndk.version"
-#if defined(__LP64__)
-std::string getVndkSpHwPath(const char* lib = "lib64");
-#else
-std::string getVndkSpHwPath(const char* lib = "lib");
-#endif
+// Returns vndk version from "ro.vndk.version"
+std::string getVndkVersionStr();
 
 // Explicitly invokes the parameterized element's destructor;
 // intended to be used alongside the placement new operator.
@@ -118,18 +114,22 @@
 };
 
 #define HAL_LIBRARY_PATH_SYSTEM_64BIT "/system/lib64/hw/"
+#define HAL_LIBRARY_PATH_VNDK_SP_64BIT_FOR_VERSION "/apex/com.android.vndk.v%s/lib64/hw/"
 #define HAL_LIBRARY_PATH_VENDOR_64BIT "/vendor/lib64/hw/"
 #define HAL_LIBRARY_PATH_ODM_64BIT    "/odm/lib64/hw/"
 #define HAL_LIBRARY_PATH_SYSTEM_32BIT "/system/lib/hw/"
+#define HAL_LIBRARY_PATH_VNDK_SP_32BIT_FOR_VERSION "/apex/com.android.vndk.v%s/lib/hw/"
 #define HAL_LIBRARY_PATH_VENDOR_32BIT "/vendor/lib/hw/"
 #define HAL_LIBRARY_PATH_ODM_32BIT    "/odm/lib/hw/"
 
 #if defined(__LP64__)
 #define HAL_LIBRARY_PATH_SYSTEM HAL_LIBRARY_PATH_SYSTEM_64BIT
+#define HAL_LIBRARY_PATH_VNDK_SP_FOR_VERSION HAL_LIBRARY_PATH_VNDK_SP_64BIT_FOR_VERSION
 #define HAL_LIBRARY_PATH_VENDOR HAL_LIBRARY_PATH_VENDOR_64BIT
 #define HAL_LIBRARY_PATH_ODM    HAL_LIBRARY_PATH_ODM_64BIT
 #else
 #define HAL_LIBRARY_PATH_SYSTEM HAL_LIBRARY_PATH_SYSTEM_32BIT
+#define HAL_LIBRARY_PATH_VNDK_SP_FOR_VERSION HAL_LIBRARY_PATH_VNDK_SP_32BIT_FOR_VERSION
 #define HAL_LIBRARY_PATH_VENDOR HAL_LIBRARY_PATH_VENDOR_32BIT
 #define HAL_LIBRARY_PATH_ODM    HAL_LIBRARY_PATH_ODM_32BIT
 #endif
