Use libbinderthreadstateutils.

Clients needing to differentiate between system/vendor used to be able
to use isServingCall. However, this was expensive to implement. This
alternative approach instead requires users of this API to use
libbinderthreadstateutils which does a slighty different operation.

Bug: 148692216
Test: boot
Change-Id: I2c926107e43a47bd4e20e08f16a293e707ab03f7
Merged-In: I2c926107e43a47bd4e20e08f16a293e707ab03f7
This commit is contained in:
Steven Moreland
2020-01-31 14:59:06 -08:00
parent 05cf3e896c
commit 4c15e0359f
2 changed files with 3 additions and 1 deletions

View File

@@ -233,6 +233,7 @@ cc_library_shared {
static_libs: [
"libasync_safe",
"libbinderthreadstateutils",
"libdmabufinfo",
"libgif",
"libseccomp_policy",

View File

@@ -37,6 +37,7 @@
#include <binder/Parcel.h>
#include <binder/ProcessState.h>
#include <binder/Stability.h>
#include <binderthreadstate/CallerUtils.h>
#include <cutils/atomic.h>
#include <log/log.h>
#include <utils/KeyedVector.h>
@@ -946,7 +947,7 @@ static jint android_os_Binder_getCallingUid()
static jboolean android_os_Binder_isHandlingTransaction()
{
return IPCThreadState::self()->isServingCall();
return getCurrentServingCall() == BinderCallType::BINDER;
}
static jlong android_os_Binder_clearCallingIdentity()