10

Androiddev/binder也是为层级通信负责的。可以收听消息吗?我知道它们必须被解码,但是我怎样才能得到这些消息。例如,如果一个应用程序发送一条消息成为一个地理位置。我的安卓设备上也有根。

4

5 回答 5

4

Short:不,这不应该是可能的,即使是 root 也是如此。

网上没有太多关于 Binder 的详细信息,但有一些信息,尤其是关于安全性的信息。请参阅此处此处的第 3.8 点。您还可以阅读内核驱动程序的源代码和openbinder的源代码。

于 2012-02-17T18:04:09.687 回答
4

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

Jtrace - 不要与 bin 转储混淆 - 不需要对 Android 进行任何修改。它可以窥探活页夹消息 - 限制条件是您必须 jtrace'ing 端点之一。

Bindump 使用 debugfs,但只显示端点。@Adrian - 恐怕你得出了错误的结论。

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

而@Luminger - 在他的主题上 - 仅仅因为找不到信息,并不意味着没有信息。NewAndroidBook.com 上有很多关于 Binder 的信息 - 除了这本书,请查看 Binder 演示链接。

于 2017-08-02T17:03:55.930 回答
3

您可以使用此版本的 strace 解码过去的大多数 Binder 事务:https ://github.com/adetaylor/strace-android/tree/android

它增强了对调用的解码,这些ioctl调用是进程向 Binder 内核驱动程序发出请求的方式。确保您使用android分支,否则您将无法从这些更改中受益。

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

于 2013-02-05T22:04:13.473 回答
2

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

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 使这些成为有条件的,否则日志中会有很多内容。

于 2014-08-19T20:59:20.460 回答
2

@Adrian,其他开发人员/研究人员已经完成了一些很好的工作,因此您可以利用他们的结果。

首先,我建议看一看乔纳森·莱文(又名Technologeeks)的伟大著作,即他最近免费发布的关于Android内部原理的书,可以在该书的配套网站上访问:newandroidbook.com。从那里您将获得链接、描述和使用示例

  • 绑定转储

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

  • jtrace的增强版本strace,其优点之一strace

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

由Opersys(与Karim Yaghmour合作)完成的另一项伟大的工作绝对值得关注和关注

  • 活页夹资源管理器

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

于 2017-06-06T20:45:40.393 回答