[IT] FAQ and common problems using SiriProxy

Hey people. Some of you have various Problems running SiriProxy and so i decided to put a own blogpost up regarding technical issues or questions.

This FAQ will be updated frequently =)

small Update in Problems regarding SiriProxy

Problems regarding SiriProxy

Problem: iPhone 4 don't connects to SiriProxy and SiriProxy don't show anything.
Solution: Check if your iPhone have the ca.crt file from SiriProxy installed. If its installed put still dont say anything remove every installed Cert on your iPhone and reinstall it. If that don't help create new certs.

Problem: if you try to run SiriProxy you get following error: "cannot load such file -- plugins/thermostat/siriThermostat (LoadError)"
Solution: edit start.rb and put a "#" in front of line 2

Problem: if you try to start SiriProxy you get an error: "`start_tls': Could not find ./server.passless.key for start_tls "
Solution: you have to start siriProxy from the directory where its installed. if you used my scripts then do: "cd ~/hacks/SiriProxy" and then "ruby start.rb"

Problem: iPhone connects to Server only if using "guzzoni.apple.com" and DNS but not if entering the local ip.
Solution: Your SiriProxy's server certificate is only valid for "guzzoni.apple.com". If you want to use your local ip, create a new server cert and use the local ip as "common name"

Problems regarding siriServer ( applidium tools) and DNS

Problem: iPhone 4S don't connect to siriServer.
Solution: Check if the ca.crt file is installed on iPhone 4S. if it's installed, try removing it and reinstalling it. if that dont help recreate certs.

Problem: if you try to run "dns.py" you get following error: "socket.error: [Errno 98] Address already in use"
Solution: There is allready a DNS Server running on your server. On any linux you can stop it with: "/etc/init.d/dns stop"

Problem: if you try to run siriServer.rb or start.rb you get the error: "start_tcp_server': no acceptor (RuntimeError)"
Solution 1: you have to start both scripts as root. so you can log in as root or use "sudo". f.e.: "sudo ruby start.rb"
Solution 2: there is allready a webserver running on your server. try "netstat -ano |grep https" to check if there is a https server running. stop it or kill it by using: "kill -SIGKILL PROCESSPID"

Problems regarding VPN

Problem: iPhone 4S connects to VPN but it dont shows any requests in dns.py and siriServer (applidium) dont say anything.
Solution: edit the /etc/ppp/options.ptpd file (on opensuse. other distributions may have different files) and look there for "ms-dns". remove the "#" (if exists) and put there the local ip (from vpn server) there. restart pptp with: "/etc/init.d/pptpd restart" and reconnect your iphone 4s.

Problems on your iPhone

Problem: your iPhone 4 / iPod etc don't answers but show things like "time" etc.
Solution: You need a iPhone 4S dyld cache.

General

Question: Which keys do i need?
Answer: x-ace-host (aceHost), speechID, assistantID, validationData

Question: do i have to change every key if my old ones are expired
Answer: no. just replace the validationData

Question: How long do these keys last?
Answer: 24h. Please keep in mind, that the new keys are generated on the iPhone 4S. The 24h count from this creation time and NOT from the time you got them off the iPhone 4S!

Cheers and i hope it helps ..

Matthias

PS: if you have problems on MacOS i can't help you because i don't own a mac.
PPS: if you have one left just send it to me ;-)







[IT] HOWTO: Set up a Linux Server in VMWare for SiriProxy

Update: debian.sh is now online. sorry forgot to upload it

Update: OpenSuse.sh is now updated.
Update: ubuntu.sh is now online.

Update: if you have troubles somewhere try checking out the SiriProxy FAQ here.

What we need

To run a SiriProxy Server we need ( in this scenario) a Linux running in VMWare. To get this, just follow the steps :)

Getting VMWare

Download VMWare Player from the official website or for example here: Chip.de - VMWare Player 4.01

Download a linux iso

You can get various Linux Distributions for free from the internet. For this server i suggest a small distribution, because we don't need a GUI or other stuff.

Debian: http://cdimage.debian.org/debian-cd/6.0.3/i386/iso-cd/debian-6.0.3-i386-netinst.iso
Ubuntu: http://www.ubuntu.com/download/server/download
OpenSuse: http://ftp.halifax.rwth-aachen.de/opensuse/distribution/12.1/iso/openSUSE-12.1-NET-i586.iso

Setting up VMWare

After Installing VMWare Player create a new Virtual Machine with the assistant.

Step 1 - Choose "I will install the operating system later"
step1.png

Step 2 - Select Linux and then your distribution
step2.png

Step 3 - Select the Name of the virtual machine and the path
step3.png

Step 4 - Select the hdd size. 1GB should be fine on a small distribution but use any size you want =)
step4.png

Step 5 - Select "customize hardware"

Step 6 - Remove floppy and sound. set "Network Adapter" to "bridged" and set the CD to your downloaded Linux .iso file. apply all settings and close it with "ok".
step6.png

Step 7 - Press "finish" to finish the creation of our new virtual machine.

Step 8 - on the VMWare welcome screen select "play virtual machine"

Installing the Linux in VMWare

Follow the instructions on your screen and install linux.
Set a static ip on your network adapter! this ip must match your network. mine is f.e.: 192.168.178.24

Once you are completed you should get to the login prompt. enter your credentials and log in. then proceed with the next step.

( additionally you can use "putty" to ssh into your virtual machine. this makes it a lot easier because you can copy & paste the commands from you win/mac into putty console )

Installing Debian

If you have to choose which software to install then check:

- SSH Server

To check which ip you have in your VMWare log into your debian system and execute: ifconfig"
There look for "eth0:"
This is the ip you can use with "putty" or any other ssh client to ssh into your debian.

Installing all needed libs and stuff

Depending on your Linux, choose one of the following steps:

Debian

cd ~
wget http://www.ketchup-mayo-senf.de/blog/debian.sh
chmod 777 debian.sh
./debian.sh

OpenSuse
cd ~
wget http://www.ketchup-mayo-senf.de/blog/OpenSuse.sh
chmod 777 OpenSuse.sh
./OpenSuse.sh

Ubuntu
cd ~
wget http://www.ketchup-mayo-senf.de/blog/ubuntu.sh
chmod 777 ubuntu.sh
./ubuntu.sh

Setting up our SiriProxy

Now we have to put the important 4 keys into our siriProxy.rb file. Best you use "mc" for editing. but feel free to use any other editor like "vi" "vim" "ae" or whatever.

cd ~/hacks/SiriProxy
mcedit siriProxy.rb

Replace there every needed information. you can find the tutorial here

Setting up VPN ( optional )

Download the 3 config files from Server with:

wget http://www.ketchup-mayo-senf.de/blog/pptpd.conf
wget http://www.ketchup-mayo-senf.de/blog/options.pptpd
wget http://www.ketchup-mayo-senf.de/blog/chap-secrets

and restart the pptp server with:

/etc/init.d/pptp restart

Now you can use iPhone VPN to open a vpn connection to your server.

User: KMS
Password: siri

( If on OpenSuse everything is allready done by the script )

Preparing the iPhone 4 / iPhone 3G / iPod etc

Send the ca.crt file you can find in ~/hacks/SiriProxy to your iPhone via EMail.
or open with your iPhone:
http://www.ketchup-mayo-senf.de/blog/ca.crt

on your Phone / Pod install "iFile" via cydia and edit the file:

/private/var/mobile/Library/Preferences/com.apple.assistant.plist

and set the server to your ip / dns

Preparing the iPhone 4S for reading the keys

Send the ca.crt file you can find in ~/hacks/SiriProxy to your iPhone via EMail.
Install it.

If you want to read out the keys from a remote iphone 4s (friend for example which isnt at your home):

Goto "Settings -> VPN" and create a new VPN Connection (pptp) with the credentials from the previous step.

If you want to read the keys from a iPhone 4S in your WLAN:

Connect iPhone 4S to your WLAN. Goto Settings - WLAN -> (tap the blue key) -> tap the dns entry and change it to the ip of your server (in my case 192.168.178.24).

Reading out the Keys from iPhone 4S

you need 2 open shells / putty connections.

on the first:
ruby ~/hacks/applidium/SiriServer.rb > logile.log

on the second:
python ~/hacks/applidium/dns.py

Now talk to Siri on the iPhone 4S. in ~/hacks/applidium/logfile.log you find all needed keys.
stop both programs by using "ctrl + c".

edit the SiriProxy.rb file like stated in one of the steps above.

Starting SiriProxy

ruby ~/hacks/SiriProxy/start.rb

Thats all so far :)

lemme know if you need it more detailed!






 1