From 376a55973530cb26a3f15a0ccf9f5ad269580466 Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Tue, 19 Dec 2017 15:42:16 -0800 Subject: Default to /dev/binder if binder node doesn't exist. Some devices don't have vndbinder yet. Bug: 67975337 Test: media cas doesn't crash loop on bullhead Change-Id: I381771ff971fadeae75a78b5d45d6d067adced44 --- libs/binder/ProcessState.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'libs/binder/ProcessState.cpp') diff --git a/libs/binder/ProcessState.cpp b/libs/binder/ProcessState.cpp index 11dd5258a7..da806aa25d 100644 --- a/libs/binder/ProcessState.cpp +++ b/libs/binder/ProcessState.cpp @@ -86,6 +86,12 @@ sp ProcessState::initWithDriver(const char* driver) } LOG_ALWAYS_FATAL("ProcessState was already initialized."); } + + if (access(driver, R_OK) == -1) { + ALOGE("Binder driver %s is unavailable. Using /dev/binder instead.", driver); + driver = "/dev/binder"; + } + gProcess = new ProcessState(driver); return gProcess; } @@ -420,7 +426,7 @@ ProcessState::ProcessState(const char *driver) mVMStart = mmap(0, BINDER_VM_SIZE, PROT_READ, MAP_PRIVATE | MAP_NORESERVE, mDriverFD, 0); if (mVMStart == MAP_FAILED) { // *sigh* - ALOGE("Using /dev/binder failed: unable to mmap transaction memory.\n"); + ALOGE("Using %s failed: unable to mmap transaction memory.\n", mDriverName.c_str()); close(mDriverFD); mDriverFD = -1; mDriverName.clear(); -- cgit v1.2.3-59-g8ed1b