  
          if (isIBase()) {
              out << "// skipped getService, registerAsService, registerForNotifications\n";
-@@ -876,11 +885,15 @@ void AST::generateCppSource(Formatter& out) const {
-             std::string package = iface->fqName().package()
-                     + iface->fqName().atVersion();
- 
-+#if 0 // M3E:
-             implementServiceManagerInteractions(out, iface->fqName(), package);
-+#endif
+@@ -880,7 +897,9 @@ void AST::generateCppSource(Formatter& out) const {
          }
      }
  

             out << "return ::android::hardware::details::castInterface<";
             out << iface->localName() << ", "
                 << superType->fqName().cppName() << ", "
@@ -1744,8 +1758,12 @@ void AST::generateInterfaceSource(Formatter& out) const {
             out << "parent, \""
                 << iface->fqName().string()
                 << "\", emitError);\n";

         } } }, /* cppImpl */
         { { IMPL_INTERFACE, [this, digestType, chainType](auto &out) {
diff --git a/generateCpp.cpp b/generateCpp.cpp
index fa2a3ca5..112a5cac 100644
--- a/generateCpp.cpp
+++ b/generateCpp.cpp
@@ -144,11 +144,15 @@ static void implementGetService(Formatter &out,
         << "::android::sp<" << interfaceName << "> " << interfaceName << "::" << functionName << "("
         << "const std::string &serviceName, const bool getStub) ";
     out.block([&] {
+#if 0 // M3E:
         out << "return ::android::hardware::details::getServiceInternal<"
             << fqName.getInterfaceProxyName()
             << ">(serviceName, "
             << (!isTry ? "true" : "false") // retry
             << ", getStub);\n";
+#else
+        out << "return nullptr;\n";
+#endif
     }).endl().endl();
 }
 
@@ -160,6 +164,7 @@ static void implementServiceManagerInteractions(Formatter &out,
     implementGetService(out, fqName, true /* isTry */);
     implementGetService(out, fqName, false /* isTry */);
 
+#if 0 // M3E:
     out << "::android::status_t " << interfaceName << "::registerAsService("
         << "const std::string &serviceName) ";
     out.block([&] {
@@ -202,6 +207,7 @@ static void implementServiceManagerInteractions(Formatter &out,
         });
         out << "return success.isOk() && success;\n";
     }).endl().endl();
+#endif
 }
 
 void AST::generateInterfaceHeader(Formatter& out) const {
@@ -786,6 +792,7 @@ void AST::generateCppSource(Formatter& out) const {
         // This is a no-op for IServiceManager itself.
         out << "#include <android/hidl/manager/1.0/IServiceManager.h>\n";
 
