如何收听开发/粘合剂?

时间:2012-02-17 16:51:50

标签: android android-source android-binder

Android dev/binder也用于负责的图层通信。是否可以收听消息?我知道它们必须被解码,但我怎么能得到这些消息。例如,如果应用程序发送消息成为地理位置。我也在我的Android设备上root。

5 个答案:

答案 0 :(得分:5)

简短:不,即使是root,也不可能。

网上没有太多关于Binder的信息,但有一些,特别是关于安全性。请参阅thisto point 3.8 here。您还可以阅读内核驱动程序的源代码和openbinder的源代码。

答案 1 :(得分:3)

您可以解码使用此版本的strace过去的大部分Binder交易:https://github.com/adetaylor/strace-android/tree/android

它具有解码ioctl调用的增强功能,这些调用是进程向Binder内核驱动程序发出请求的方式。确保使用android分支,否则您将无法获得这些更改的好处。

您应该能够使用NDK独立工具链来构建它。请参阅Android NDK文档中的docs/STANDALONE-TOOLCHAIN.html

答案 2 :(得分:3)

为什么,一次又一次,错误的答案被批准为正确?

Jtrace - 不要与bin dump混淆 - 不需要修改Android。它可以窥探活页夹消息 - 限制你必须jtrace其中一个端点。

Bindump使用debugfs,但只显示端点。 @Adrian - 我担心你得错了。

Jtrace捕获进出的sys调用 - 然后通过检查进程内存来解析绑定器消息(使用ptrace(2))。如果您的内核中有ptrace(2)(因为调试服务器愚蠢地需要它),并且您是root用户,则可以窥探消息。再次 - 你必须在一个端点上。

和@Luminger - 虽然他的主题 - 只是因为找不到信息,并不意味着没有信息。在NewAndroidBook.com上有关于Binder的大量信息 - 除了本书之外,还可以看看Binder演示链接。

答案 3 :(得分:2)

如果您正在安装自定义内核,则绑定程序驱动程序代码(drivers/staging/android/binder.c)具有非常好的调试功能,包括条件消息和可以打印活页夹事务的函数等。

具体来说,您可以通过使用以下枚举器的适当组合设置binder_debug_mask来获取内核日志中的各种调试消息:

BINDER_DEBUG_USER_ERROR
BINDER_DEBUG_FAILED_TRANSACTION
BINDER_DEBUG_DEAD_TRANSACTION
BINDER_DEBUG_OPEN_CLOSE
BINDER_DEBUG_DEAD_BINDER
BINDER_DEBUG_DEATH_NOTIFICATION
BINDER_DEBUG_READ_WRITE
BINDER_DEBUG_USER_REFS
BINDER_DEBUG_THREADS
BINDER_DEBUG_TRANSACTION
BINDER_DEBUG_TRANSACTION_COMPLETE
BINDER_DEBUG_FREE_BUFFER
BINDER_DEBUG_INTERNAL_REFS
BINDER_DEBUG_BUFFER_ALLOC
BINDER_DEBUG_PRIORITY_CAP
BINDER_DEBUG_BUFFER_ALLOC_ASYNC

您还可以在代码中的战略位置撒出print_binder_*中包含的一些binder.c函数。例如,print_binder_buffer()print_binder_transaction()。您可能希望根据特定的uid或pid制作这些条件,因为否则会有很多东西在日志中飞行。

答案 4 :(得分:2)

@Adrian,一些好的工作,其他开发人员/研究人员已经解决了这个问题,所以你可以利用他们的结果。

首先,我建议您查看 Jonathan Levin (又名Technologeeks)的精彩作品,即他关于 Android 最近成为免费的内部人员可以在本书的配套网站上访问:newandroidbook.com。从那里,您将获得

的链接,描述和用法示例
  • bindump
      

    这是service命令的简单衍生物,它获取所选系统服务的句柄,然后在/sys/kernel/debug/binder/proc目录中检查自己的条目。由于所有活页夹调试数据都是全局可读的,因此您也可以在无根设备上运行此工具。

  • jtracestrace的增强版,其优于strace的优势之一是
      

    活页夹消息解析(自动检测到)。

Opersys(与 Karim Yaghmour 一起完成的另一项伟大工作,绝对值得注意和看待

  • Binder Explorer
      

    此工具可用作应用程序,或与 HTML GUI一起用于实时显示连接的图形视图。