Add vndservicemanager.
vndservicemanager is the context manager for
binder services that are exclusively used from
the vendor binder domain, "/dev/vndbinder";
these services can only be registered and accessed
by vendor processes.
To facilitate code re-use, vndservicemanager
is just framework servicemanager accessing the
vendor binder devnode.
Bug: 36052864
Test: modified binder_test to use /dev/vndbinder
Change-Id: Iac19a1180321a5be78d7be5ceb4ba211c593dc47
diff --git a/cmds/servicemanager/service_manager.c b/cmds/servicemanager/service_manager.c
index 43c4c8b..5d44e87 100644
--- a/cmds/servicemanager/service_manager.c
+++ b/cmds/servicemanager/service_manager.c
@@ -360,14 +360,21 @@
return 0;
}
-int main()
+int main(int argc, char** argv)
{
struct binder_state *bs;
union selinux_callback cb;
+ char *driver;
- bs = binder_open(128*1024);
+ if (argc > 1) {
+ driver = argv[1];
+ } else {
+ driver = "/dev/binder";
+ }
+
+ bs = binder_open(driver, 128*1024);
if (!bs) {
- ALOGE("failed to open binder driver\n");
+ ALOGE("failed to open binder driver %s\n", driver);
return -1;
}