Merge "Stop registering android.hidl.token" into main
diff --git a/hwservicemanager.xml b/hwservicemanager.xml
index 65220d8..2bff501 100644
--- a/hwservicemanager.xml
+++ b/hwservicemanager.xml
@@ -8,7 +8,7 @@
             <instance>default</instance>
         </interface>
     </hal>
-    <hal>
+    <hal max-level="8">
         <name>android.hidl.token</name>
         <transport>hwbinder</transport>
         <version>1.0</version>
diff --git a/service.cpp b/service.cpp
index 3766bc5..6b11372 100644
--- a/service.cpp
+++ b/service.cpp
@@ -36,6 +36,7 @@
 
 #include "ServiceManager.h"
 #include "TokenManager.h"
+#include "Vintf.h"
 
 // libutils:
 using android::sp;
@@ -166,9 +167,17 @@
         ALOGE("Failed to register hwservicemanager with itself.");
     }
 
-    sp<TokenManager> tokenManager = new TokenManager();
-    if (!manager->add(serviceName, tokenManager).withDefault(false)) {
-        ALOGE("Failed to register ITokenManager with hwservicemanager.");
+    // Check to make sure we should be registering tokenManager first. Only if
+    // it's declared in the manifest.
+    sp<TokenManager> tokenManager;
+    if (android::vintf::Transport::EMPTY !=
+        android::hardware::getTransport(TokenManager::descriptor, serviceName)) {
+        tokenManager = new TokenManager();
+        if (!manager->add(serviceName, tokenManager).withDefault(false)) {
+            ALOGE("Failed to register ITokenManager with hwservicemanager.");
+        }
+    } else {
+        ALOGW("Not registering android.hidl.token service because it is no longer supported");
     }
 
     // Tell IPCThreadState we're the service manager