A year and a half ago I was playing around with my (then new) Nokia 6120 Bluetooth, 3G and python capabilities, when I figured out that I could create a pretty nifty spying machine, with some very little effort.
It began with a simple Bluetooth scan. Every 60 seconds my script wrote into a text file a simple line for each Bluetooth device it encountered around it – something along the lines of:
TIMESTAMP, BT-MAC-ADDRESS, PROFILE-NAME, …
It took me about 4 hours to find a proper Bluetooth programming library, and figure out how to python on S60. Then, scripting was simple. Happy about my new creation, I started the program and cheerfuly went home. When I arrived my home-computer and looked at the text file – I was in a bit of a shock. Apparently in a 10 minutes walk down Rothchild street in Tel-Aviv – I harvested more than 30 MAC addresses of people who had their Bluetooth on. Many of them had their full name now in my text file. Not bad. And this was 1.5 years ago.
Then the fun began.
For each line that I wanted, I added Tags.
When my script started, it now read all the lines – and for those with tags – it saved the MAC addresses in a lookup table. Now, whenever a new MAC was found – it was looked up in the lookup tabe, and if tags were there – the phone started to sound a special beep, and wrote on the screen the tags that I added to this MAC address.
So, all the people from the Rothchild strolling were tagged “Rothchild”. All the people from a Pub I went to that day – were tagged “Mish Mish”, and all the MACs from the supermarket were tagged “Suppermarket”.
Whenever I bumped into one of these people again (and the script was on) – I got a nifty alert: “There’s someone around you with the tags “Supermarket” and “Mish Mish””. I could also know when was the last time I tagged them.
But this is not the end of the story.
I later added some 3G capabilities. I tagged people at work with some special tags. Back then, I tried out Grubb.net as an online todo list. So, whenver I encountered one of the people from work that I wanted to do something with – my phone handed me the specific todo items – appropriate for the context I was in. Not bad.
"Celeb me" could be used also as a productivity tool...
I still don’t have a GPS on my phone, but I figured out that tagging could be really fun with a GPS. I can mark areas on Google Maps, and whenever people were encountered in one of the marked areas – their MAC addresses could be automatically tagged. So the people from the Amado building in my university could automatically get tagged as a high probability of being engineers of some sort. And whenever I encountered that girl from the psychology building, my phone could alert me with a proper pickup line – something like “Didn’t I see you 9 months ago in the such and such” building? 🙂
So far – everything is legal. Now, for some illegal ideas that I had in mind. (Not that I would ever implement any of them).
I could store the MAC addresses together with the tags, on a designated website. 3G internet traffic is pretty cheap, so it’s Very much possible to query the DB for each new MAC I encounter. This allows me to share tags with my friends. Now, without ever meeting somebody – I can get the tags that my friends has given to this guy. “This MAC with a profile name “David Nokia6120″ was tagged by Tal at Eran’s school 3 months ago”. I’d never do such a thing, but you have to know that this capability should take me about 8 hours to implement. And I’m not a proficient python programmer.
Next – matching up people’s MAC addresses with their Facebook profiles. Imagine you could browse their Facebook profile just because any of your friends had matched this MAC address with that specific Facebook ID.
Another idea was a service called “Celeb Me”. Imagine that anytime you walked down the counter of any Starbucks – they’d know the type of coffee you always drink and how much sugar you drink in it. Wouldn’t that be neat?
Some drawbacks of this script:
I don’t know exactly who is it around me who has got that BT MAC address I’m looking at. Using RSSI data is somewhat problematic.
This script uses the BT, 3G, and could also use a GPS. All of these capabilities drain the battery really fast.
The script is run using Python S60 version 1.4
I used a library called lightblue. The latest release didn’t work back then, I had to use the one before that.
I connected to the Python using the Bluetooth console and hyperterminal.
Copying the files in and out of the phone took me quite an effort back then… Nokia decided to make life not easy for people who aren’t paying them for their libraries.
As you can see, the script is quite short… Could be even more efficient and better written if I wasn’t such a novice in Python 🙂
The link to my crude-but-working script:
And some final thoughts:
People who walk around with their BT open – should know that they are actually YELLING a unique ID. This means that they can easily get followed by any Joe Shmoe with very little effort.
This thing totally rocks! It is so much fun, especially showing it off in geek parties 🙂
I have some funny little stories from playing around with this script, but I’ll leave them for another post.