SiriProxy on Raspberry Pi is a SD card image with SiriProxy pre-installed. It does not require a jailbreak, nor do I endorse doing so.
Second, you will need a few accessories to provide power, Ethernet, HDMI connection, and a USB keyboard/mouse. Most you may already have on hand. The HDMI and USB keyboard/mouse are temporary if you intend to eventually run your RPi as a headless system. Please check the RPi verified peripherals page to confirm your keyboard compatibility or before purchasing a new one.
Third, you will need a SD card greater than 4GB to install the SiriProxy on Raspberry Pi SD image. Check the SD card compatibility page first. NOTE: An image created from a SD card from one manufacturer may not fit on a SD card of the same size from another manufacturer. If you receive an error such as end of device this is an indication the image did not write completely and you may need a larger SD card.
Lastly, I kindly ask for a small donation of $1 USD to help cover the cost of the hardware, and for my time configuring, testing, and updating the SD card image.
Thank you, in advance.
SiriProxy is a proxy server that allows one to add custom functionality to Siri from simple custom responses to executing custom programs. There is a large list of plugins that you can add to SiriProxy, or customize to create you own plugins.
I am using SiriProxy for voice control of my home automation system. All my plugins are on my GitHub page
These instructions assume the user has some basic Linux command line, editor, and networking knowledge. If you are new to Linux, download the Debian command line reference card. These instructions will help guide you through the minimal steps to get SiriProxy working. If you are still having some trouble, I highly recommend you ask a friend who can help.
There are a few steps particular to your network configuration that cannot be pre-configured on the SD card image. Method
A assumes you have a router running the open source firmware DD-WRT. Method
B is an alternate way, but it requires a little more manual steps on your part.
/etc/network/interfacesfile to use a static IP address.
sh /etc/init.d/networking restartor
/etc/resolv.confto use Google public DNS servers.
-d ###.###.###.###option when starting SiriProxy
-d ###.###.###.###option when starting SiriProxy
/root/.siriproxy/ca.pemfile and install on your iOS device.
siriproxy server -d ###.###.###.###
Test Siri Proxy
Q. How frequently will you update the image?
A. I will update the image when there are a significant number of updates or improvements that make it easier for people to get started.
Q. Why did you install SiriProxy as root?
A. Having successfully installed SiriProxy on a number of Linux distributions and ARM embedded devices, I have found I get the least number or errors and permission problems installing and running everything as root.
Q. Can you create a custom SD Card image?
A. I wish I had enough free time and energy to help everyone, but my day job keeps me fairly busy, not to mention time with family and friends. If it is something you think will help make it easier for everyone, send me your suggestion and I will consider it for the next update.
Q. My RPi is not...
A. Check the RPi troubleshooting page: http://elinux.org/R-Pi_Troubleshooting
Q. SiriProxy is not...
A. Make sure you have completed the few steps to configure your RPi and iOS device, and read the following for possible solutions.
Q. How do I add plugins?
A. It depends on a number of factors: SP installed as root or user, SP installed as gem or cloned, and the instructions for the particular plugin. There are also a number of ways to add plugins. For this SD card image, everything is installed as root and SiriProxy is installed as a Ruby gem, thus you will need to do the following:
git: 'git://github.com/...to the
config.ymlfile, simply add the plugin specifics to the
path: './plugins/...to the
config.ymlfile, there are a couple of ways to do this:
/root/.siriproxy/config.ymlfile, clone/download the plugin repo, and copy to or create a symbolic link in the
/usr/local/rvm/gems/ruby-2.0.0-p#/gems/siriproxy-0.5.#/plugins/directory. Note: Replace #'s as appropriate, and make sure to name the plugin directory or symbolic link the same as specified in the
/root/pluginsdirectory, optionally create symbolic links in the
/root/plugins/directory, then explicitly define the entire path in the
config.ymlfile. Note: This may break some plugins that use a file path for other cached or configuration files. You may need to tweak those plugins to look for those files in the appropriate directory.
siriproxy bundleand launch SiriProxy again.
Q. My SiriProxy plugins are crashing! What do I do?
A. The image is tested with the example plugin included with SiriProxy. Google is a programmers best friend to find solutions to problems. If you have exhausted all other resources, you can always post your problem on any number of forums which specialize in Ruby programming.
Q. How do I make SiriProxy run upon boot?
A. You should only do this when you have a stable configuration, but you can add my init.d script to the
/etc/init.d directory, run
chmod a+x siriproxy to add execute permissions, run
update-rc.d siriproxy defaults command, then reboot. Note: Type
ps -ef | grep -i siriproxy to confirm the daemon is running. Use
kill #### to stop the daemon and manually launch SiriProxy when you want to see the output messages when testing your plugins.
SourgeForge is a U.S. based hosting company which hosted software using encryption is subject to US export controls. While I am not a lawyer, having followed the information and guides available from the U.S. Department of Commerce - Bureau of Industry and Security, SiriProxy on Raspberry Pi is self certified as ECCN 5D002 and License Exception TSU 740.13(e). Source code for SiriProxy and Linux in general are publicly available and open source software, therefore no license is required for export or re-export, but notification of this URL has been submitted to the Bureau of Industry and Security in accordance with License Exception TSU 740.13(e).
All software and source code included in this image is publicly available and open source, that are protected by respective copyrights, trademarks, and license agreements.