diff --git a/rsCompatibilityLib.cpp b/rsCompatibilityLib.cpp
new file mode 100644
index 0000000..fa9f07e
--- /dev/null
+++ b/rsCompatibilityLib.cpp
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "rsCompatibilityLib.h"
+#include <string.h>
+#include <sys/system_properties.h>
+
+// Implementation of property_get from libcutils
+int property_get(const char *key, char *value, const char *default_value) {
+    int len;
+
+    len = __system_property_get(key, value);
+    if (len > 0) {
+        return len;
+    }
+
+    if (default_value) {
+        len = strlen(default_value);
+        memcpy(value, default_value, len + 1);
+    }
+    return len;
+}
+
diff --git a/rsCompatibilityLib.h b/rsCompatibilityLib.h
new file mode 100644
index 0000000..785ee96
--- /dev/null
+++ b/rsCompatibilityLib.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _RS_RSCOMPATIBILITYLIB_H
+#define _RS_RSCOMPATIBILITYLIB_H
+
+#ifndef RS_COMPATIBILITY_LIB
+#error "THIS HEADER IS ONLY VALID FOR BUILDING OUR COMPATIBILITY LIBRARY"
+#endif
+
+#define PROPERTY_KEY_MAX 32
+#define PROPERTY_VALUE_MAX 92
+
+int property_get(const char *key, char *value, const char *default_value);
+
+#endif  // _RS_RSCOMPATIBILITYLIB_H
diff --git a/rsContext.cpp b/rsContext.cpp
index 74c40c5..dd795a6 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -34,10 +34,14 @@
 #include <dlfcn.h>
 #include <unistd.h>
 
-#if !defined(RS_SERVER)
+#if !defined(RS_SERVER) && !defined(RS_COMPATIBILITY_LIB)
 #include <cutils/properties.h>
 #endif
 
+#ifdef RS_COMPATIBILITY_LIB
+#include "rsCompatibilityLib.h"
+#endif
+
 #ifdef RS_SERVER
 // Android exposes gettid(), standard Linux does not
 static pid_t gettid() {
