iPhone LoJack Solution: TUAW’s Comprehensive Response

Some time ago, a reader expressed a desire for an iPhone LoJack feature that would allow the device to automatically report its location in the event it was lost or stolen. Recently, I dedicated some time to develop findme, a command-line tool that pinpoints the nearest cell tower to your iPhone and provides its coordinates using Google Maps.

To keep the location data secure and private, yet accessible, I turned to Twitter for help. With guidance from Twitter developer Britt Selvitelle, I set up a private Twitter account that allows the iPhone to send updates securely.

To set this up, create a Twitter account specifically for your iPhone, using a unique email address. Navigate to the Settings menu, locate the “Protect My Updates” option, check it, and save your settings. This ensures that only approved followers can view the updates from this account.

Recently, I’ve improved the findme tool and uploaded the new version (findme-better) to the TUAW folder on my website. Please try it out and let me know if it improves the location accuracy for you.

To use it, download the file to your iPhone, rename it to “findme,” and replace the original file.

Here’s how to set up your iPhone to regularly update its location:

1. Install findme Place findme in your local binaries folder. I use /var/root/bin for my utilities, but you can use any directory you prefer. Ensure the file is executable by setting chmod 755.

2. Ensure curl is installed Curl should be part of the standard BSD package. It’s essential for your iPhone to communicate with Twitter over the Internet, whether via EDGE or WiFi.

3.

Create a tweet shell script Write the following script in a new text file and save it in your binaries folder:

#! /bin/sh 
curl --basic --user username:password
--data status="`/var/root/bin/findme`"
http://twitter.com/statuses/update.xml

Replace “username” and “password” with your actual Twitter credentials and adjust the path to findme as necessary. Make the script executable:

chmod 755 tweet

4. Set up a launch daemon Copy the com.apple.daily.plist from /System/Library/LaunchDaemons to com.sadun.tweet.plist and modify it as follows:

  • Update the Label to com.sadun.tweet.
  • Remove the lines related to “nice” to prevent other processes from interfering.
  • Change the program arguments to /var/root/bin/tweet.
  • Adjust the start interval to suit your needs, such as 600 for every ten minutes.
<?xml version="1.0" encoding="UTF-8"?> <!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.sadun.tweet</string>
<key>ProgramArguments</key>
<array>
<string>/var/root/bin/tweet</string>
</array>
<key>StartInterval</key>
<integer>600</integer>
</dict>
</plist>

5. Reboot your iPhone. This will load the new launch daemon, allowing your iPhone to start sending regular location updates.

The development of findme was supported by the iPhone dev team, Hisper from the Google Maps developer forum, and Saurik. Special thanks to aCujo and Britt Selvitelle for their invaluable assistance. You can drop him a note to express your gratitude.

Share This Article
Cory

Thomas is a dedicated writer for TUAW, bringing insightful news and updates about Apple products to readers. With a deep understanding of the Apple ecosystem, Thomas covers everything from the latest iPhone and iPad releases to MacBook innovations and Apple Watch features. His clear and engaging writing style helps readers stay informed about the tech world. Thomas’s expertise and enthusiasm for Apple products make him a valuable contributor to the TUAW team.