Difference between revisions of "Siri"

From The iPhone Wiki
Jump to: navigation, search
(Files: 5.0~General Assistant.plist has been removed in iOS 7.)
(Files: Correction.)
Line 14: Line 14:
 
* /System/Library/CoreServices/SpringBoard.app/Assistant* (iOS 5)
 
* /System/Library/CoreServices/SpringBoard.app/Assistant* (iOS 5)
 
* /System/Library/DataClassMigrators/Siri.migrator/ (iOS 6 and 7)
 
* /System/Library/DataClassMigrators/Siri.migrator/ (iOS 6 and 7)
* /System/Library/LaunchDaemons/com.apple.assistant*.plist
+
* /System/Library/LaunchDaemons/com.apple.assistantd.plist
  +
* /System/Library/LaunchDaemons/com.apple.assistant_service.plist
  +
* /System/Library/LaunchDaemons/com.apple.assistant.analyzer.plist (iOS 6 and 7)
 
* /System/Library/PrivateFrameworks/AssistantServices.framework/
 
* /System/Library/PrivateFrameworks/AssistantServices.framework/
 
* /System/Library/PrivateFrameworks/AssistantUI.framework/
 
* /System/Library/PrivateFrameworks/AssistantUI.framework/
* /System/Library/PrivateFrameworks/Preferences.framework/*.lproj/AssistantShared.strings (iOS 5 and 6)
+
* /System/Library/PrivateFrameworks/Preferences.framework/*.lproj/AssistantShared.strings
 
* /System/Library/PrivateFrameworks/SAObjects.framework/
 
* /System/Library/PrivateFrameworks/SAObjects.framework/
 
* /System/Library/PrivateFrameworks/SiriUI.framework/ (iOS 7)
 
* /System/Library/PrivateFrameworks/SiriUI.framework/ (iOS 7)
Line 23: Line 25:
 
* /System/Library/SpringBoardPlugins/Assistant.uibundle/ (iOS 6 and 7)
 
* /System/Library/SpringBoardPlugins/Assistant.uibundle/ (iOS 6 and 7)
 
* /System/Library/UserEventPlugins/AssistantUEA.plugin/
 
* /System/Library/UserEventPlugins/AssistantUEA.plugin/
Although other iOS 5 devices are capable of running Siri, they do not include the above files that are required for it to work.
+
Although other devices are capable of running Siri, they do not include the above files that are required for it to work.
   
 
In iOS 5 and 6, an additional key in the capabilities section of [[Model definition file|/System/Library/CoreServices/SpringBoard.app/XXXAP.plist]] must be added for the device to enable Siri:
 
In iOS 5 and 6, an additional key in the capabilities section of [[Model definition file|/System/Library/CoreServices/SpringBoard.app/XXXAP.plist]] must be added for the device to enable Siri:

Revision as of 10:58, 2 November 2013

Siri is a voice assistant feature found in the iPad 3, iPad mini 1G, iPhone 4S, iPod touch 5G, and their successors. Siri has been present since iOS 5 (with the iPhone 4S) A port to older devices has been completed by stroughtonsmith with the help of chpwn, and is available in Cydia as Spire.

Files

Siri is an integral part of iOS 5 for the iPhone 4S and any supported iDevices. Files and folders include:

  • /Applications/Preferences.app/*.lproj/*Assistant.strings
  • /Applications/Preferences.app/5.0~General Assistant.plist (iOS 5 and 6)
  • /Applications/Preferences.app/5.0~Passcode Lock Assistant.plist
  • /Applications/Preferences.app/5.0~Restriction-Assistant.plist
  • /Applications/SiriViewService.app (iOS 7)
  • /System/Library/AccessibilityBundles/AssistantUI.axbundle/ (iOS 5 and 6)
  • /System/Library/AccessibilityBundles/AXExtraExtras.axbundle/ (iOS 5 and 6)
  • /System/Library/AccessibilityBundles/*-Assistant.axbundle/
  • /System/Library/Assistant/
  • /System/Library/CoreServices/SpringBoard.app/Assistant* (iOS 5)
  • /System/Library/DataClassMigrators/Siri.migrator/ (iOS 6 and 7)
  • /System/Library/LaunchDaemons/com.apple.assistantd.plist
  • /System/Library/LaunchDaemons/com.apple.assistant_service.plist
  • /System/Library/LaunchDaemons/com.apple.assistant.analyzer.plist (iOS 6 and 7)
  • /System/Library/PrivateFrameworks/AssistantServices.framework/
  • /System/Library/PrivateFrameworks/AssistantUI.framework/
  • /System/Library/PrivateFrameworks/Preferences.framework/*.lproj/AssistantShared.strings
  • /System/Library/PrivateFrameworks/SAObjects.framework/
  • /System/Library/PrivateFrameworks/SiriUI.framework/ (iOS 7)
  • /System/Library/PreferenceBundles/Assistant.bundle/
  • /System/Library/SpringBoardPlugins/Assistant.uibundle/ (iOS 6 and 7)
  • /System/Library/UserEventPlugins/AssistantUEA.plugin/

Although other devices are capable of running Siri, they do not include the above files that are required for it to work.

In iOS 5 and 6, an additional key in the capabilities section of /System/Library/CoreServices/SpringBoard.app/XXXAP.plist must be added for the device to enable Siri:

<key>assistant</key>
<true/>

In iOS 6 (and above), Siri is supported by the 3rd generation iPad, 4th generation iPad, iPad Air, iPad mini 1G, iPad mini 2G, iPhone 4S, iPhone 5, iPhone 5c, iPhone 5s and iPod touch 5G. For iOS 6 and 7, Apple included the Siri bundle that moves both Siri's UI and Mic artwork from /System/Library/CoreServices/SpringBoard.app/ to:

  • /System/Library/SpringBoardPlugins/Assistant.uibundle/

Also new migrator bundle for Siri:

  • /System/Library/DataClassMigrators/Siri.migrator/

Another key, "Raise to Speak" capability for iPhone with iOS 6+ only, that allow you to activate Siri when you raise your phone to your ear. (in DeviceTree for iOS 7):

<key>siri-gesture</key>
<true/>

Installation

The installation of Siri on other devices requires access to the iPhone 4S (or supported iDevices) filesystem, to copy over the files above to a jailbroken device running the same iOS version. Then assistant is enabled in the capabilities plist (iOS 5 or 6) as above, and the device is rebooted.

Holding down the home button for a second should activate the Siri tray at the bottom of the screen, but saying anything will make it say it can't connect. This is due to the device requiring an identifier that the Siri servers generate every 24 hours for Siri-capable iDevices. SiriProxy can overcome this if you have access to a Siri-capable iDevices.

The stock assistant images from the 4S are only available in Retina size. (iOS 5, non-Retina for iPad mini 1G running iOS 6) On non-Retina devices (iPad and iPhone 3GS), this means many interface features may look different. The theme for iOS 5, Siri Graphics for iPhone 3GS and iPad in Cydia fixes this.

Changing Server

The server that Siri sends its data through can be changed in a number of ways. The most reliable method is to use a DNS server, as demonstrated by plamoni.

An easier approach is to edit the com.apple.assistant.plist file in the device's /var/mobile/Library/Preferences folder. It can be changed either on a jailbroken device with iFile, or via an iPhone backup reading utility. The hostname string simply needs to be replaced with the URL of your SiriProxy (i.e. your computer's IP address). This method could also allow for your SiriProxy to work outside of your Wi-Fi network, if you set up forwarding for port 443 to your computer in your router, and use your external IP address. However, some routers don't do port forwarding inside of their network, so you would need to change this setting yourself when you arrive or leave home. A static IP or dynamic DNS address (such as one from Dyn) is recommended.

The /etc/hosts file on a jailbroken device can also be modified. This can also be used externally, like the above method, though domain redirects are disallowed in host files, so a static IP is required. For instance, if you have a server which has the IP 192.168.1.5, enter this on a new line:

192.168.1.5 guzzoni.apple.com

Make sure there is at least one blank line at the very end of the file, or this will fail.

References

See Also