getCallingUid 是一个native方法,定义在:
frameworks/base/core/jni/android_util_Binder.cpp
static jint android_os_Binder_getCallingUid()
{
return IPCThreadState::self()->getCallingUid();
}
IPCThreadState::self()->getCallingUid() 返回的是它的一个变量 mCallingUid。
mCallingUid 在BInder收到驱动信息处理的时候赋值:
IPCThreadState::getAndExecuteCommand() 到 IPCThreadState::executeCommand
而这个值最开始是在binder驱动binder.c的 binder_transaction 函数中赋值,表示的是调用进程的有效用户ID。
binder.c的路径: kernel/drivers/android/binder.c