当前位置: 首页 > 知识库问答 >
问题:

qemu中不支持的ioctl调用

沈凡
2023-03-14

井。我交叉编译了android的qemu,当我使用用户模式运行程序时,它显示有一个不受支持的ioctl调用。例如,我运行:

./qemu-aarch64 /system/bin/wificond  

它给了我

Unsupported ioctl: cmd=0xffffffffc0046209
Unsupported ioctl: cmd=0x40046205
Binder driver could not be opened.  Terminating.

因此,我认为我可能想要做的是手动添加ioctl调用。但问题是我只知道cmd号码,我怎么能弄清楚我应该添加什么?谢谢!

共有1个答案

壤驷安和
2023-03-14

您需要做的第一件事是找出它是哪个ioctl。遗憾的是,这有点尴尬。一种方法是使用本机strace来跟踪二进制文件,并希望它为您打印ioctl符号。或者您可以在内核头文件中寻找它。通常,ioctl是使用include/uapi/ASM-generic/ioctl . h中的_IOC宏定义的,这是从一组字段中构造的,因此您必须尝试通过猜测和grep从数字中找出正确的一个。这里0xc0046209的“类型”为0x62,即ASCII“b ”,编号为0x09,即

#define BINDER_VERSION  _IOWR('b', 9, struct binder_version)

(事实上,我们可能已经从无法打开活页夹驱动程序的错误消息中猜到了)。

因此,您在这里需要做的是在QEMU仿真中实现Android绑定器API ioctls。希望您的主机系统也是Android,因为非Android主机内核不会有绑定器设备。

添加额外IOCTL的困难很大程度上取决于它们的参数是什么,因为参数需要从来宾的数据布局转换到主机的数据布局。如果ioctl参数是简单类型,那么主要是在linux用户/ioctls中提供ioctl()行。h并在linux用户/syscall_ defs中定义TARGET_。h——例如上游QEMU提交D6D6FE17FA,其添加RND*IOCTL。当参数是由基本类型组成的结构时,事情就不会复杂得多了——例如提交21992cb6794a5f8。在最坏的情况下,您需要提供一个自定义函数来转换参数,如提交2b74f621f1c780中的TIOCGPPEER所示。

 类似资料:
  • 问题内容: 我正在开发一个需要与Video4Linux抽象交互的应用程序。该应用程序使用mono框架以C#开发。 我面临的问题是我无法P /调用系统调用。或者,更准确地说,我可以P /调用它,但是它崩溃严重。 extern声明如下: 到目前为止,一切都很好。 使用的实际例程如下: 以上所有代码似乎都不错。该类用于按照标头规范计算I / O请求代码(基本上,它遵循处声明的宏)。 该参数是一个结构,声

  • 提示 视频 PPT 下载 本文的目的和背景 VS Code(全称 Visual Studio Code)是一个轻量且强大的代码编辑器,支持 Windows,OS X 和 Linux。内置 JavaScript、TypeScript 和 Node.js 支持,而且拥有丰富的插件生态系统,可通过安装插件来支持 C++、C#、Python、PHP 等其他语言。 本文主要介绍在 Windows 平台使用

  • 也许这会适得其反,我不知道,但现在我需要一个IntelliJ中的调试器,它可以了解EasyMock Mock,尤其是mocks方法实际返回的内容。 例如,我有一个传输接口,其中有一些必须被模拟的方法,并且我只希望一些方法返回一些东西。例如。 我要我的交通工具。getID()返回模拟的ID 10。 对于ID 10,我希望调用一次方法, transport类中的某些内容中断,并且没有调用myTrans

  • 描述 (Description) 此函数使用系统函数ioctl()执行函数FUNCTION,使用SCALAR在适当时设置或接收信息。 FUNCTION的可用值完全独立于系统。 对于合适的值,您应该参考您的ioctl.h C头文件(如果有的话)。 语法 (Syntax) 以下是此函数的简单语法 - ioctl FILEHANDLE, FUNCTION, SCALAR 返回值 (Return Val

  • 我需要在JAX-WS中通过客户端连接到外部服务器。客户端在Wildfly 8上运行。使用Java8连接是正常的。但我在Java7中连接到服务器时遇到了问题(我尝试了u45、67、79)。服务器端安全性的属性为https://www.ssllabs.com/ssltest/analyze.html?d=app.bundesnetzagentur.de 在部分“密码套件”中有四个密码。源代码不应支持J

  • 问题内容: 我刚刚发现了CSS属性,它为我解决了一堆跨浏览器布局问题。 我现在唯一的问题是IE7似乎不支持它。是否有破解程序可以使IE7支持它? 问题答案: 我假设您正在使用它来解决IE6盒模型。不幸的是,实际上没有通用的方法可以诱骗早期版本的IE支持任意CSS属性。 我建议不要使用该属性,因为除IE6之外的所有浏览器都将正确实现box模型。在维基百科的文章做了解释如何IE6不同的一个好工作。 为