QEMU pipe设备分析

发布时间:2022-06-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了QEMU pipe设备分析脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1. QEMU piPE介绍

Qemu-pipe是一个通用的虚拟设备,完成guest OS和emulator的通信功能。它为通信提供了四种服务:

  • Tcp
  • Unix
  • Opengles
  • Qemud

Qemud也提供了一些子服务

  • "gsm" service
  • "gps" service
  • "hw-control" / "control" service
  • "sensors" service

传输数据格式如下:

Qemud service信息:

  • pipe:qemud:<arguments>

数据流向分析:

QEMU pipe设备分析

&nbsp;

 

QEMU pipe和goldFish pipe关系如下图

QEMU pipe设备分析

 

 

 

2. golDFish pipe初始化

文件:externalqemuandROId-qemu2-glueqemu-SETUP.cpp

main_impl

qemu_android_emulation_early_setup

qemu_android_pipe_inIT

         goldfish_pipe_set_service_ops                 //goldfishpipe对androidpipe service的调用

         android_pipe_set_hw_funcs                     //androidpipe service对goldfishpipe的调用

         android_pipe_set_hw_virtio_funcs

         android::AndroidPipe::initThreading       //启动androidpipe服务,

                    //设置定时器调用performDeviceoperation

qemud初始化

qemu

main_impl

qemu_android_emulation_early_setup

         android_qemu2_qemud_init

                   android_qemud_get_serial_line

                            android_qemud_init

                                     _android_qemud_serial_init                      //老式接口,为适应guest操作

                                     _android_qemud_pipe_init //androidpipe中添加qemud服务,和qemud  service的调用函数

guest

文件:driversplatformgoldfishgoldfish_pipe.c

module_platform_driver(goldfish_pipe_driver)

         goldfish_pipe_PRobe

                   devm_ioremap

                   goldfish_pipe_device_v2_init

                            init_miscdevice

最终会在guest中产生一个设备:

QEMU pipe设备分析

虚拟机内部,通过读写该设备与emulator通信;qemu侧注册了对应的事件,发送给对应的主机侧设备或模拟设备。

使用goldfish_pipe通信的进程信息如下:

QEMU pipe设备分析

 

脚本宝典总结

以上是脚本宝典为你收集整理的QEMU pipe设备分析全部内容,希望文章能够帮你解决QEMU pipe设备分析所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。