Applidium has reverse engineered Apple’s AI assistant, Siri and claims that it can be ported to almost any device by building applications that could talk to Apple’s Servers like Siri.
Applidium, a mobile development company has reverse engineered Siri, to know how it talks to Apple’s servers and how the Apple’s Servers responds back almost accurately. They were able to rip off the signatures that Siri uses while sending packets to the servers and how the voices are being processed on the iPhone 4S.
The developers have also explained the technical details of the protocols that are used by the application. They have also posted a sample code that demonstrates how you could use it to tap Siri’s conversations with Apple’s Servers. The developers have also explained a simple way to intercept Siri’s request to a local server from the iPhone.
Applidium has managed to capture the packets that Siri sends to Apple’s Servers using a custom DNS address that they had setup and then came to know that the assistant uses Speex Codec, an open audio format that would compress and synthesize the voice that Siri captures on iPhone 4S. The optimized speech would then be sent to the Apple’s Servers for processing. A major part of this work would be done on the device itself.
On reading this reverse engineering process, we could easily know that Apple has put on a lot of effort in the way Siri communicates with Apple’s Servers. But, if this reverse engineering can be worked on more, it would be possible to build applications that would use Siri’s technology and talk to Apple’s servers. Which in-turn means that applications can be built for any device on any platform.
How Siri Works?
Based on Applidium’s reverse engineering, when you talk to your iPhone 4S’ Siri, your voice is recorded and stored in a temporary location. The audio is then compressed on the device with Speex, and is transmitted to the servers for processing using a special and encrypted HTTP request. After the servers process the speech, the server sends back a zlib compressed package that contains the response for your question.
Every request that goes into the Apple’s Servers are SSL-encrypted and are highly secure. The technology uses a custom HTTP request called ACE. This has a high Content-Length value and also a special string that would let the server identify it as a assistant. Adding to the amount of security work that Apple has done on Siri and it’s servers, the packets also has a special header that sends the UDID of the device. Not the regular UDID you see on iTunes. The servers would process the request ONLY if it thinks that the UDID’s are correct and are valid and are coming from the actual iPhone 4S. But, if this could be replicated, then it would be not so difficult to port Siri onto other devices.
So, what’s next?
This is a very big finding that would allow any developer to port this technology onto their application and make them talk to Siri. And if this happens, Apple would be finding it difficult to block these requests. But Apple would find a way to block this.
Developers with iPhone will soon be able to develop on this research and code their own Siri client until Apple closes or moves to another protocol to establish communication between the server and Siri. If you are a developer, grab the code samples that the company has posted and start building on it!
Pingback: SiriProxy lets you add functionalities to answer your custom requests!()
Pingback: Solve Siri’s “Can’t Connect to the Network” error response!()