diff --git a/Interface.cpp b/Interface.cpp
index 35cbce3..b72018d 100644
--- a/Interface.cpp
+++ b/Interface.cpp
@@ -45,6 +45,7 @@
     /////////////////// HIDL reserved
     FIRST_HIDL_TRANSACTION  = 0x00f00000,
     HIDL_DESCRIPTOR_CHAIN_TRANSACTION = FIRST_HIDL_TRANSACTION,
+    HIDL_SYSPROPS_CHANGED_TRANSACTION,
     LAST_HIDL_TRANSACTION   = 0x00ffffff,
 };
 
@@ -53,6 +54,24 @@
       mSuperType(super),
       mIsJavaCompatibleInProgress(false) {
     mReservedMethods.push_back(createDescriptorChainMethod());
+    mReservedMethods.push_back(createSyspropsChangedMethod());
+}
+
+Method *Interface::createSyspropsChangedMethod() const {
+    return new Method("notifySyspropsChanged",
+            new std::vector<TypedVar *>() /*args */,
+            new std::vector<TypedVar *>() /*results */,
+            true /*oneway */,
+            new std::vector<Annotation *>(),
+            HIDL_SYSPROPS_CHANGED_TRANSACTION,
+            [this](auto &out) { /*cppImpl */
+                out << "::android::report_sysprop_change();\n";
+                out << "return ::android::hardware::Void();";
+            },
+            [this](auto &out) { /* javaImpl */
+                out << "android.os.SystemProperties.reportSyspropChanged();";
+            }
+    );
 }
 
 Method *Interface::createDescriptorChainMethod() const {
diff --git a/Interface.h b/Interface.h
index f1f10d5..5da326c 100644
--- a/Interface.h
+++ b/Interface.h
@@ -104,6 +104,7 @@
     std::vector<Method *> mReservedMethods;
     mutable bool mIsJavaCompatibleInProgress;
     Method *createDescriptorChainMethod() const;
+    Method *createSyspropsChangedMethod() const;
 
     DISALLOW_COPY_AND_ASSIGN(Interface);
 };
diff --git a/generateCpp.cpp b/generateCpp.cpp
index f40a9d1..c9683b2 100644
--- a/generateCpp.cpp
+++ b/generateCpp.cpp
@@ -175,7 +175,8 @@
         out << "#include <hidl/Status.h>\n";
     }
 
-    out << "#include <utils/NativeHandle.h>\n\n";
+    out << "#include <utils/NativeHandle.h>\n";
+    out << "#include <utils/misc.h>\n\n"; /* for report_sysprop_change() */
 
     enterLeaveNamespace(out, true /* enter */);
     out << "\n";
diff --git a/generateJava.cpp b/generateJava.cpp
index 03ce7c7..ee76e18 100644
--- a/generateJava.cpp
+++ b/generateJava.cpp
@@ -408,10 +408,13 @@
     out.unindent();
     out << "}\n\n";
 
-    // b/32383557 this is a hack. We need to change this if we have more reserved methods.
     for (Method *method : iface->hidlReservedMethods()) {
+        // b/32383557 this is a hack. We need to change this if we have more reserved methods.
+        CHECK_LE(method->results().size(), 1u);
+        std::string resultType = method->results().size() == 0 ? "void" :
+                method->results()[0]->type().getJavaType();
         out << "public final "
-            << method->results()[0]->type().getJavaType()
+            << resultType
             << " "
             << method->name()
             << "() {\n";
