Android liblog 关于 Unix domain socket 证书的疑问?

发布于 2022-09-04 03:43:42 字数 606 浏览 22 评论 0

最近在查看 Android 的 log 系统,Java 端的 logcat 的所有读写操作最终会调用 liblog 作为 client 端与 logd 这个 server 端进行通讯,使用的是 Unix domain socket。

然后在查看源码的时候发现,当调用 liblog 的写操作的时候(./system/core/liblog/logd_write.c),最终使用的是 writev() 这个函数,但是在 server 端(./system/core/logd/LogListener.cpp)进行接收的时候,却是调用 recvmsg()LogListener.cppaccept() 之后调用 onDataAvailable(),首先会进行一个 struct ucred 证书的检查。但是 liblog 如上面所说的在 writev() 的时候是没有准备这个证书的,这就会导致 server 端检查到没有证书而退出。但是事实上是不会的。

所以想请教各位,是不是我遗漏了什么地方,特此请教各位,在此先行感谢了!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

知足的幸福 2022-09-11 03:43:43

ucred是内核写入的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文