The following instructions will setup your Jailbroken iPhone to update your FireEagle location every 5 minutes. While Navizon provides this same feature, I’ve been less than impressed with it’s accuracy . This method uses both Skyhook and the Google Maps ‘Locate Me’ cell-tower-triangulation method, which are much more accurate than Navizon in my recent tests.
Prerequisites
- Jailbroken 1.1.x iPhone
- OpenSSH installed on iPhone
- A computer on the same subnet as your iPhone
- FireEagle invite
- If you don’t have one, ask @firebot nicely.
Step 1: Disable Sleep
- Settings -> General -> Set Auto-Lock to ‘Never’
- This is to ensure the SSH connection we’ll establish in Step 3 isn’t terminate. You may revert this setting after following these instructions.
Step 2: Determine your iPhone’s IP Address
- Settings -> Wi-Fi
- Tap the blue arrow to the right of the wireless network with the check by it
Step 3: SSH into your iPhone
Open Terminal (/Applications/Utilities/Terminal.app) and run the following:
ssh root@YOUR_IPHONE_IPYour password is ‘alpine’ unless you’ve changed it
Step 4: Download needed files
mkdir -p bin/fireeagle
cd bin/fireeagle
curl -O http://ericasadun.com/ftp/TUAW/findme/authcheck
curl -O http://ericasadun.com/ftp/TUAW/findme/authtoken
curl -O http://ericasadun.com/ftp/TUAW/findme/firefindme
curl -O http://ericasadun.com/ftp/TUAW/findme/pingwifiStep 5: Create wrapper script
cat > /var/root/bin/fireeagle/firewrapper << EOF
date > /var/log/fire.log
/var/root/bin/fireeagle/pingwifi
/bin/sleep 7
/var/root/bin/fireeagle/firefindme -g -d -F >> /var/log/fire.log
/var/root/bin/fireeagle/firefindme -k -d -F >> /var/log/fire.log
exit 0
EOFStep 6: Set executable bit on all files
chmod a+x /var/root/bin/fireeagle/*Step 7: Authenticate with FireEagle
/var/root/bin/fireeagle/authtokenThis will open a MobileSafari window. Login to your FireEagle account and allow TrackMe to update your location. Then run:
/var/root/bin/fireeagle/authcheckStep 8: Test!
/var/root/bin/fireeagle/firewrapperAfter several seconds, you should be returned to a shell prompt. Now visit FireEagle’s My Location page and login. You should see:
Fire Eagle last spotted you less than a minute ago at LOCATION using TrackMe.
If not, please start over at Step 4. Something’s gone wrong.
Step 9: Steup LaunchDaemon to ping FireEagle every 5 minutes
cat > /Library/LaunchDaemons/com.fireeagle.ping.plist << EOF
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.fireeagle.ping</string>
<key>ProgramArguments</key>
<array>
<string>/var/root/bin/fireeagle/firewrapper</string>
</array>
<key>RunAtLoad</key>
<false/>
<key>StartInterval</key>
<integer>300</integer>
</dict>
</plist>
EOF
launchctl load /Library/LaunchDaemons/com.fireeagle.ping.plistYou’re Finished!
That should do it! Please let me know via twitter (@jnewland) or in the comments if you have any problems / suggestions! Big thanks to Erica Sadun for writing the iPhone tools used to make this happen!
