Difference between revisions of "Siri"

From The iPhone Wiki
Jump to: navigation, search
m (Installation: Easier to understand.)
m (Revision.)
Line 1: Line 1:
'''Siri''' is a voice assistant feature found in the [[iPad 3]], [[iPad mini 1G]], [[n94ap|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 [https://twitter.com/stroughtonsmith stroughtonsmith] with the help of [[User:Chpwn|chpwn]], and is available in Cydia as [cydia://package/com.chpwn.spire Spire]. (Compatible only with iOS 5.0.1)
+
'''Siri''' is a voice assistant feature found in the [[iPad 3]], [[iPad mini 1G]], [[n94ap|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 [https://twitter.com/stroughtonsmith stroughtonsmith] with the help of [[User:Chpwn|chpwn]], and is available in Cydia as [cydia://package/com.chpwn.spire Spire]. (Compatible only with iOS 5.0.1) Any others ports are compatible with more iOS versions, but they're maybe unstable, slow, incompleted or scam. Almost all of them are illegal.
  +
  +
In iOS 6 (and above), Siri is supported by the [[iPad 3|3rd generation iPad]], [[iPad 4|4th generation iPad]], [[iPad Air]], [[iPad mini 1G]], [[iPad mini 2G]], [[n94ap|iPhone 4S]], [[iPhone 5]], [[iPhone 5c]], [[iPhone 5s]] and [[iPod touch 5G]].
   
 
== Files ==
 
== Files ==
Siri is an integral part of iOS 5 for the [[n94ap|iPhone 4S]] and any supported iDevices. Files and folders include:
+
Siri is an integral part as of iOS 5 for the [[n94ap|iPhone 4S]] or any supported iDevices. Files and folders include:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! rowspan="2" | Location
 
! rowspan="2" | Location
  +
! rowspan="2" | Type
  +
! rowspan="2" | Comments
 
! colspan="3" | iOS
 
! colspan="3" | iOS
 
|-
 
|-
Line 13: Line 17:
 
|-
 
|-
 
| /Applications/Preferences.app/*.lproj/*Assistant.strings
 
| /Applications/Preferences.app/*.lproj/*Assistant.strings
  +
| Localization file
  +
| Localization for Siri preferences.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 18: Line 24:
 
|-
 
|-
 
| /Applications/Preferences.app/5.0~General Assistant.plist
 
| /Applications/Preferences.app/5.0~General Assistant.plist
  +
| [[PList File Format]]
  +
| Siri settings injection file.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 23: Line 31:
 
|-
 
|-
 
| /Applications/Preferences.app/5.0~Passcode Lock Assistant.plist
 
| /Applications/Preferences.app/5.0~Passcode Lock Assistant.plist
  +
| PList File Format
  +
| Siri Lockscreen settings injection file.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 28: Line 38:
 
|-
 
|-
 
| /Applications/Preferences.app/5.0~Restriction-Assistant.plist
 
| /Applications/Preferences.app/5.0~Restriction-Assistant.plist
  +
| PList File Format
  +
| Siri Restriction settings injection file.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 33: Line 45:
 
|-
 
|-
 
| /Applications/SiriViewService.app
 
| /Applications/SiriViewService.app
  +
| Application
  +
| Presumably a Siri controller.
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 38: Line 52:
 
|-
 
|-
 
| /System/Library/AccessibilityBundles/AssistantUI.axbundle
 
| /System/Library/AccessibilityBundles/AssistantUI.axbundle
  +
| Bundle
  +
| Siri Accessibility plugin.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 43: Line 59:
 
|-
 
|-
 
| /System/Library/AccessibilityBundles/AXExtraExtras.axbundle
 
| /System/Library/AccessibilityBundles/AXExtraExtras.axbundle
  +
| Bundle
  +
| Siri Accessibility plugin.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 48: Line 66:
 
|-
 
|-
 
| /System/Library/AccessibilityBundles/*-Assistant.axbundle
 
| /System/Library/AccessibilityBundles/*-Assistant.axbundle
  +
| Bundle
  +
| Siri Accessibility plugins.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 53: Line 73:
 
|-
 
|-
 
| /System/Library/Assistant
 
| /System/Library/Assistant
  +
| System Folder
  +
| Contains most Siri plugins or functionality resources.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 58: Line 80:
 
|-
 
|-
 
| /System/Library/CoreServices/SpringBoard.app/Assistant*
 
| /System/Library/CoreServices/SpringBoard.app/Assistant*
  +
| PNG or ARTWORK file
  +
| Siri images and ARTWORK file for iOS 5
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
Line 63: Line 87:
 
|-
 
|-
 
| /System/Library/DataClassMigrators/Siri.migrator
 
| /System/Library/DataClassMigrators/Siri.migrator
  +
| Bundle
  +
| ?
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
Line 68: Line 94:
 
|-
 
|-
 
| /System/Library/LaunchDaemons/com.apple.assistantd.plist
 
| /System/Library/LaunchDaemons/com.apple.assistantd.plist
  +
| Daemon
  +
| Handling communication between Siri (also Dictation) and Apple Server.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 73: Line 101:
 
|-
 
|-
 
| /System/Library/LaunchDaemons/com.apple.assistant_service.plist
 
| /System/Library/LaunchDaemons/com.apple.assistant_service.plist
  +
| Daemon
  +
| Handling Siri plugins or trivial stuffs.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 78: Line 108:
 
|-
 
|-
 
| /System/Library/LaunchDaemons/com.apple.assistant.analyzer.plist
 
| /System/Library/LaunchDaemons/com.apple.assistant.analyzer.plist
  +
| Daemon
  +
| Siri logging.
 
| {{partial|5.1+}}
 
| {{partial|5.1+}}
 
| {{yes}}
 
| {{yes}}
Line 83: Line 115:
 
|-
 
|-
 
| /System/Library/PrivateFrameworks/AssistantServices.framework
 
| /System/Library/PrivateFrameworks/AssistantServices.framework
  +
| Framework
  +
| Resources for Mic sound, Location settings icon and the daemons.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 88: Line 122:
 
|-
 
|-
 
| /System/Library/PrivateFrameworks/AssistantUI.framework
 
| /System/Library/PrivateFrameworks/AssistantUI.framework
  +
| Framework
  +
| Resources for Siri UI.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 93: Line 129:
 
|-
 
|-
 
| /System/Library/PrivateFrameworks/Preferences.framework/*.lproj/AssistantShared.strings
 
| /System/Library/PrivateFrameworks/Preferences.framework/*.lproj/AssistantShared.strings
  +
| Localization file
  +
| Localization for "About Siri And Privacy" section.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 98: Line 136:
 
|-
 
|-
 
| /System/Library/PrivateFrameworks/SAObjects.framework
 
| /System/Library/PrivateFrameworks/SAObjects.framework
  +
| Framework
  +
| Resources for Siri objects.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 103: Line 143:
 
|-
 
|-
 
| /System/Library/PrivateFrameworks/SiriUI.framework
 
| /System/Library/PrivateFrameworks/SiriUI.framework
  +
| Framework
  +
| Resources for Siri UI/ARTWORK for iOS 7
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 108: Line 150:
 
|-
 
|-
 
| /System/Library/PreferenceBundles/Assistant.bundle
 
| /System/Library/PreferenceBundles/Assistant.bundle
  +
| Preference Bundle
  +
| Siri settings.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 113: Line 157:
 
|-
 
|-
 
| /System/Library/SpringBoardPlugins/Assistant.uibundle
 
| /System/Library/SpringBoardPlugins/Assistant.uibundle
  +
| [[SpringBoard]] Plugin
  +
| Mainly handling Siri UI in iOS 6, unusual for iOS 7
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
Line 118: Line 164:
 
|-
 
|-
 
| /System/Library/UserEventPlugins/AssistantUEA.plugin
 
| /System/Library/UserEventPlugins/AssistantUEA.plugin
  +
| System Plugin
  +
| Siri logging.
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 125: Line 173:
 
Although other 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:
+
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:
 
<key>assistant</key>
 
<key>assistant</key>
 
<true/>
 
<true/>
   
  +
An another key, "Raise to Speak" capability for iPhone only, that allow you to activate Siri when you raise your phone to your ear.
In iOS 6 (and above), Siri is supported by the [[iPad 3|3rd generation iPad]], [[iPad 4|4th generation iPad]], [[iPad Air]], [[iPad mini 1G]], [[iPad mini 2G]], [[n94ap|iPhone 4S]], [[iPhone 5]], [[iPhone 5c]], [[iPhone 5s]] and [[iPod touch 5G]]. For iOS 6, 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
 
 
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>
 
<key>siri-gesture</key>
 
<true/>
 
<true/>
  +
  +
These keys can be added as capabilities in iOS 5 and 6 only, since the [[Model definition file]] is move along in iOS 7, in a DeviceTree instead.
   
 
== Installation ==
 
== Installation ==
Line 163: Line 210:
 
* [https://twitter.com/iP1neapple iP1neapple]
 
* [https://twitter.com/iP1neapple iP1neapple]
 
* [https://github.com/plamoni/SiriProxy SiriProxy repo]
 
* [https://github.com/plamoni/SiriProxy SiriProxy repo]
  +
* [http://www.jailbreakqa.com/questions/32462/frequently-asked-questions#86544 Siri Port FAQ]
   
 
== See Also ==
 
== See Also ==

Revision as of 17:27, 22 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. (Compatible only with iOS 5.0.1) Any others ports are compatible with more iOS versions, but they're maybe unstable, slow, incompleted or scam. Almost all of them are illegal.

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.

Files

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

Location Type Comments iOS
5.x 6.x 7.x
/Applications/Preferences.app/*.lproj/*Assistant.strings Localization file Localization for Siri preferences. Yes Yes Yes
/Applications/Preferences.app/5.0~General Assistant.plist PList File Format Siri settings injection file. Yes Yes No
/Applications/Preferences.app/5.0~Passcode Lock Assistant.plist PList File Format Siri Lockscreen settings injection file. Yes Yes Yes
/Applications/Preferences.app/5.0~Restriction-Assistant.plist PList File Format Siri Restriction settings injection file. Yes Yes Yes
/Applications/SiriViewService.app Application Presumably a Siri controller. No No Yes
/System/Library/AccessibilityBundles/AssistantUI.axbundle Bundle Siri Accessibility plugin. Yes Yes No
/System/Library/AccessibilityBundles/AXExtraExtras.axbundle Bundle Siri Accessibility plugin. Yes Yes No
/System/Library/AccessibilityBundles/*-Assistant.axbundle Bundle Siri Accessibility plugins. Yes Yes Yes
/System/Library/Assistant System Folder Contains most Siri plugins or functionality resources. Yes Yes Yes
/System/Library/CoreServices/SpringBoard.app/Assistant* PNG or ARTWORK file Siri images and ARTWORK file for iOS 5 Yes No No
/System/Library/DataClassMigrators/Siri.migrator Bundle ? No Yes Yes
/System/Library/LaunchDaemons/com.apple.assistantd.plist Daemon Handling communication between Siri (also Dictation) and Apple Server. Yes Yes Yes
/System/Library/LaunchDaemons/com.apple.assistant_service.plist Daemon Handling Siri plugins or trivial stuffs. Yes Yes Yes
/System/Library/LaunchDaemons/com.apple.assistant.analyzer.plist Daemon Siri logging. 5.1+ Yes Yes
/System/Library/PrivateFrameworks/AssistantServices.framework Framework Resources for Mic sound, Location settings icon and the daemons. Yes Yes Yes
/System/Library/PrivateFrameworks/AssistantUI.framework Framework Resources for Siri UI. Yes Yes Yes
/System/Library/PrivateFrameworks/Preferences.framework/*.lproj/AssistantShared.strings Localization file Localization for "About Siri And Privacy" section. Yes Yes Yes
/System/Library/PrivateFrameworks/SAObjects.framework Framework Resources for Siri objects. Yes Yes Yes
/System/Library/PrivateFrameworks/SiriUI.framework Framework Resources for Siri UI/ARTWORK for iOS 7 No No Yes
/System/Library/PreferenceBundles/Assistant.bundle Preference Bundle Siri settings. Yes Yes Yes
/System/Library/SpringBoardPlugins/Assistant.uibundle SpringBoard Plugin Mainly handling Siri UI in iOS 6, unusual for iOS 7 No Yes Yes
/System/Library/UserEventPlugins/AssistantUEA.plugin System Plugin Siri logging. Yes Yes Yes

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

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/>

An another key, "Raise to Speak" capability for iPhone only, that allow you to activate Siri when you raise your phone to your ear.

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

These keys can be added as capabilities in iOS 5 and 6 only, since the Model definition file is move along in iOS 7, in a DeviceTree instead.

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, with correct files permissions. 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 (iPhone/iPod/iPad with iOS 5), or at the area close with home button on screen (iPad with iOS 6), 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.

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

Installing in iPad 3 with iOS 5 also causes buggy interface, because the system usually forces the assistant window as full-screen (iPad and iPad 2 too), in that case you have to edit the images to fix those by yourself.

Differently in iOS 6, assistant images are available both in Retina and non-Retina devices, due to the screen scale themselves, so you could copy the non-Retina images or artwork file from the jailbroken devices with non-Retina screen, it's iPad mini 1G, only one.

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