首页 / 教程
一起来了解 Applidium 如何破解 Siri 的通讯协议
2011-11-18 17:59:00
来自法国的移动开发商Applidium之前成功对iPhone4S与Siri服务器的通讯协议进行了反向工程。之后他们发布了一些简要的通讯协议方面的技术解答,并展示了一些使用Siri的语音到文本转换的范例代码。
根据他们的研究,Siri的语音识别工作其实并不是在iPhone上完成,而是在苹果的服务器上进行的。也就是说,理论上可以让Siri识别来自任何设备的音频。用户使用iPhone4S对Siri说话时,手机只是将音频录制下来,并通过Speex编码器进行压缩,然后通过一个特殊的HTTP请求把音频等信息打包传送给苹果服务器。随后服务器会返回一个经过zlib压缩的plist二进制文件,其中包含的就是答复数据。
Applidium开发者们上手的途径比较简单,就是在本地网络中截取Siri从iPhone发送到服务器的数据,并进行分析。他们建立了一个假冒的DNS服务器,以此让Siri把请求发送到自己的服务器上。请求是经过SSL加密的,不过他们在iPhone中加载了他们自己的SSL根证书,这样便可以使用自己的服务器进行分析了。
在他们的服务器上,运行着一个非常简单的HTTP代.理脚本(用Ruby编写),能够将发送到苹果服务器的请求进行延迟,同时将输入和输出结果echo到stdout中,这样就能知道两边都在发送什么数据了。由于需要造出一个自定的Siri请求,他们首先要搞清楚信息格式。实际发送的请求比较特殊,并且包含和HTTP标准不一致的特征。苹果使用的是一种被称作ACE的HTTP请求方法,这种方法可以使用任意长度的数值内容,包含一个自定的用户代理字符串,将自己的身份定义为Assistant。
请求的header部分也比较特殊,里面含有设备的唯一身份识别信息。 Applidium的研究者发现,header中必须含有合法的唯一身份识别信息,否则服务器不会处理此请求,因为目前服务器只接受来自iPhone4S的请求。这对开发第三方Siri应用而言是个极大的挑战。
换句话说,任何Siri客户端在发送请求时都必须含有真实的iPhone4S身份识别信息。而一旦开发者将某个iPhone4S身份识别信息放到他开发的应用中并广泛传播,苹果很可能会屏蔽掉该身份识别信息,以此禁用那款应用。
现在还无法知晓苹果会如何对待未授权的第三方Siri客户端,我们怀疑会很快将它们拖进黑名单。在苹果这边来看,如果突然出现大量计划之外的设备来使用Siri无疑会加重服务器的负担,而在尚未准备扩展服务器之前,这将影响iPhone4S用户的使用体验。
因此我们可以进一步推断,苹果目前只允许iPhone4S使用Siri的原因并不是硬件限制。所以理论上今后是有可能在老款iPhone上看到Siri的。
除了设备身份识别方面的数据之外(每台iPhone4S仅有一个身份),个人开发者们可以自由使用Applidium的研究成果,开发自己的应用,前提是苹果不修改Siri的通讯协议。在之后的探索中,有可能发掘出更多Siri的功能,不仅限于语音到文本的识别。 Applidium无私奉献出的代码让上手变得简单了许多,虽说代码大部分还没有进行归档整理,不过已经很好懂了。
他们公布的范例Siri客户端代码是用Ruby写的。同时也提供了非常简单的命令行工具代码,来使用Speex库生成压缩音频数据,以便传送给苹果服务器。所有范例代码已经上传到了GitHub。
最新内容
手机 |
相关内容
电脑主板诊断卡使用说明书(主板诊
电脑主板诊断卡使用说明书(主板诊断卡代码大全),主板,故障,代码,内存,测试,显卡,错误代码,解决方法,1. 主板诊断卡代码大全1、主板诊断卡跑如何让电脑读硬盘(如何读硬盘数据)
如何让电脑读硬盘(如何读硬盘数据),硬盘,数据,系统,读取,硬盘数据,接口,光盘,文件,如何读硬盘数据第一种方法:采用硬盘盒,用USB连接方式去读电脑音频输入线(电脑音频输入线怎
电脑音频输入线(电脑音频输入线怎么插),接口,输入,音频,功能,主板,接线,连接,输出,1. 电脑音频输入线怎么插你自己组装电脑,购买谁的零件,谁电脑数据库安装步骤(怎么安装数据
电脑数据库安装步骤(怎么安装数据库管理系统),安装,数据库,默认,服务器,点击,设置,前台,密码,怎么安装数据库管理系统具体操作步骤如下:1、海尔洗衣机e4是什么故障(显示e4代
海尔洗衣机e4是什么故障(显示e4代码的原因和处理方法),脱水,故障,放置,代码,调整,检查,情况,显示,洗衣机显示e4代表脱水异常。当洗衣机出现电脑mp3播放软件(电脑播放音频软件
电脑mp3播放软件(电脑播放音频软件),音乐,点击,录音机,录音软件,录制,录音,设置,音频,1. 电脑播放音频软件酷狗音乐软件:操作简单便捷,很容易如何设置dns服务器(DNS服务器设置
如何设置dns服务器(DNS服务器设置什么),点击,网络,地址,设置,属性,服务器,选择,局域网,1. DNS服务器设置什么1、网关:192.168.1.1(路由器LAN设置数据条(如何设置数据条)
设置数据条(如何设置数据条),数据,选择,点击,设置,格式,填充,条件格式,扇形,1. 如何设置数据条WPS表格新建的文档格式默认为.xls(或.et),这两