Add simple fake for native service manager.

Reusing the existing binder-based native service manager has
proved problematic in host/test environments.

So as a workaround, this commit creates a IServiceManager native
implementation that can be communicated with directly.

Bug: 147595993
Test: m fakeservicemanager_test; fakeservicemanager_test
Change-Id: Icfa6f2fd314bd5a7b3d5e8a064b487f92b99b133
diff --git a/libs/fakeservicemanager/Android.bp b/libs/fakeservicemanager/Android.bp
new file mode 100644
index 0000000..de32ff4
--- /dev/null
+++ b/libs/fakeservicemanager/Android.bp
@@ -0,0 +1,25 @@
+cc_defaults {
+    name: "fakeservicemanager_defaults",
+    srcs: [
+        "ServiceManager.cpp",
+    ],
+
+    shared_libs: [
+        "libbinder",
+        "libutils",
+    ],
+}
+
+cc_library {
+    name: "libfakeservicemanager",
+    defaults: ["fakeservicemanager_defaults"],
+}
+
+cc_test_host {
+    name: "fakeservicemanager_test",
+    defaults: ["fakeservicemanager_defaults"],
+    srcs: [
+        "test_sm.cpp",
+    ],
+    static_libs: ["libgmock"],
+}