diff options
author | 2018-07-06 13:02:53 -0700 | |
---|---|---|
committer | 2018-07-06 13:05:04 -0700 | |
commit | 2ae2f5e725d10e18f668eadf039480022f4a3b32 (patch) | |
tree | 8abeb87fb6d120df15bd65f679689c68a93f914d /libs/binder/ProcessState.cpp | |
parent | 7e3e5b6868dbf6a471bf6b8b7bd3f28ab8ff0bba (diff) |
libbinder: auto-choose between binder/vndbinder.
Right now, a huge amount of client code has to manually
specify initWithDriver("/dev/vndbinder"). This is kind
of silly because every vendor process is not allowed to
talk to /dev/binder, and system processes are not allowed
to talk to /dev/vndbinder. On legacy devices,
__ANDROID_VNDK__ will not be set, so they will continue
to talk to /dev/binder.
Bug: 62956284
Test: boot Pixel 2, check for errors
Change-Id: Ic0d9da6d9b451aa8b1e62f24487d19478bff3d97
Diffstat (limited to 'libs/binder/ProcessState.cpp')
-rw-r--r-- | libs/binder/ProcessState.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libs/binder/ProcessState.cpp b/libs/binder/ProcessState.cpp index 6e7c427b12..c8cdb77b9c 100644 --- a/libs/binder/ProcessState.cpp +++ b/libs/binder/ProcessState.cpp @@ -43,6 +43,12 @@ #define BINDER_VM_SIZE ((1 * 1024 * 1024) - sysconf(_SC_PAGE_SIZE) * 2) #define DEFAULT_MAX_BINDER_THREADS 15 +#ifdef __ANDROID_VNDK__ +const char* kDefaultDriver = "/dev/vndbinder"; +#else +const char* kDefaultDriver = "/dev/binder"; +#endif + // ------------------------------------------------------------------------- namespace android { @@ -71,7 +77,7 @@ sp<ProcessState> ProcessState::self() if (gProcess != nullptr) { return gProcess; } - gProcess = new ProcessState("/dev/binder"); + gProcess = new ProcessState(kDefaultDriver); return gProcess; } |