Android 有没有办法获取IBinder实例的UID或PID?

Android 有没有办法获取IBinder实例的UID或PID?,android,ipc,android-binder,Android,Ipc,Android Binder,我需要对通过IPC从其他进程携带的IBinder实例进行安全检查。这个IBinder的创建者/接收者可能不是携带它的IPC的直接调用者,因此我不能简单地使用Binder.getCallingUid() 如何检测特定IBinder实例的UID或PID?我认为您必须为给定UID在IPC状态下插入一个钩子,并将其从复制发送到用户函数 您想从哪里获取呼叫者的UID或PID?注意,您正在获取活动绑定事务调用方的UID或PID(因此必须在onTransact方法内完成)@pskink IBinder实例不一

我需要对通过IPC从其他进程携带的
IBinder
实例进行安全检查。这个
IBinder
的创建者/接收者可能不是携带它的IPC的直接调用者,因此我不能简单地使用
Binder.getCallingUid()


如何检测特定
IBinder
实例的UID或PID?

我认为您必须为给定UID在IPC状态下插入一个钩子,并将其从复制发送到用户函数

您想从哪里获取呼叫者的UID或PID?注意,您正在获取活动绑定事务调用方的UID或PID(因此必须在
onTransact
方法内完成)@pskink IBinder实例不一定由调用方所有。它可能通过先前的IPC从另一个进程进行。您想从何处获取pid或uid?@pskink“我的活动”或“服务”中的代码。好的,您在何处创建
活页夹
?您的
Binder
具有
onTransact
方法,它是您应该调用
getCallingPid
/
getCallingUid的地方,
然后您可以将
Binder
传递给某个不同的进程
A
,流程
A
可以调用
transact
方法或将
活页夹
传递给流程
B
Binder
传递可以多次进行,但最后为了使用
Binder
必须使用
transact
方法,调用
onTransact
方法时,将在可以获取调用方pid/uid的位置执行该方法