Binder: clearCallingIdentity is kernel binder

This method clears the calling identity of a kernel
binder call. However, there is now a generic API to
disallow the use of kernel binder calling identities.
This is used by RPC binder calls in order to ensure
that code doesn't accidentally assume the default
(<pid>, <uid>) calling identity means that the call
originated from another process.

In the C++ layer, this API is attached to
IPCThreadState. In the future, we could consider
expanding the scope of this API to code and restore
many types of calling IDs, but the current return
type may not have enough space, and I want to
push people away from thread locals (globals)
for now.

Bug: 237245600
Test: N/A
Change-Id: I6e293814769cbd3c41e72afd95385af31ceb099f
This commit is contained in:
Steven Moreland
2022-07-06 21:48:46 +00:00
parent c6350a111b
commit 5d7100a43b

View File

@@ -350,7 +350,7 @@ public class Binder implements IBinder {
}
/**
* Reset the identity of the incoming IPC on the current thread. This can
* Reset the kernel binder identity of the incoming IPC on the current thread. This can
* be useful if, while handling an incoming call, you will be calling
* on interfaces of other objects that may be local to your process and
* need to do permission checks on the calls coming into them (so they
@@ -369,7 +369,7 @@ public class Binder implements IBinder {
public static final native long clearCallingIdentity();
/**
* Restore the identity of the incoming IPC on the current thread
* Restore the kernel binder identity of the incoming IPC on the current thread
* back to a previously identity that was returned by {@link
* #clearCallingIdentity}.
*