iPhone Hedeleri
 
Can the Fake GPS on iPhone operate without an internet connection?
Bu yazıyı Türkçe olarak okumak için buraya tıklayın
09:34 22-08-08

A few days ago, a topic was opened in Donanimhaber forums, stating that a first generation iPhone was able to locate its position without being connected to the internet. While investigating to see if this was possible, I realized that the Maps application was storing some information within cells.plist file which resides in "/var/root/Library/Caches/locationd" folder.

Necessity of Internet for the Fake GPS
First of all, I must state that unless an extra operation is made, it is impossible to find your location with a first generation iPhone which is not connected to the internet. In fact, you would get an error if you try this with a firmware before 2.0 and no location (even a wrong one) would be shown. But with the 2.0.0 and later firmwares, not only you might not receive an error but also you might see a location fix on the map which can be true or false.

To test this situation, I tried to locate my self while I was in a moving vehicle, with and without internet connection and I saw that when I was offline, although sometimes I was getting my last valid fix, sometimes the shown location was not the last one but a previous one. Thus, it was not possible to say "It shows the last location fix, nothing else". After realizing this, I started to look into the folders of my iPhone hoping to find the file which was being used as the cache for this information. My first assumption was the MapTiles.sqlitedb file which is under /var/mobile/Library/Caches folder, however I saw that it did not contain much information except the picture files used in the Maps application.

An interesting folder: /var/root/Library/Caches/locationd
I found a folder named "locationd" under "/var/root/Library/Caches". It contained three files (cache.plist, clients-b.plist and cells.plist) and a folder (wifi). The information stored in the file "cache.plist" was the last location fix together with WifiGUID value and the internet address https://iphone-services.apple.com/clbl/unauthorizedApps which is assumed to keep the list of the unauthorized/black listed applications. Interestingly, the contents of the "cache.plist" file was the same with the contents of this address. In one of his articles, Zdziarski had stated that after making some DNS spoofing, he was able to shut down some applications by faking this address. A similar test might be applied to see if the clients-b.plist file is also changed after such an operation.
(Meanwhile, there were no files in the wifi folder. I assume that some information is stored within that folder if you were near a wifi hotspot which is defined in Skyhook database).

Caching locations within cells.plist file
Now lets move to the file which attracted my attention, "cells.plist". When I first examined the contents of this file, it was like this:

<?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>.lastpurge</key>
<integer>240785321</integer>
<key>286,001,0x8e36,0xecd8</key>
<string>2,+39.99401855,+32.62229919,1799,1</string>
<key>286,001,0x92e6,0xe492</key>
<string>2,+40.09725952,+33.03080750,1799,1</string>
</dict>
</plist>
It is obvious that the <string> tag includes the lattitude and longtitue information. After checking these coordinates with Google Maps, I saw that they were the locations of my last two location fixes. To make a better decision about the contents of the file, I turned on EDGE and active location finder in the Maps application and observed the changes in the contents of the file while I was returning home from work. It seems that the Maps application was adding coordinate and the information of the cell towers used during the process after each successful location fix. After a trip of 45 minutes, there were already 39 coordinates within the file. Then, how was this information used?

The next morning, while I was going to work, I opened the Maps application without activating internet connection and I started waiting to get a location fix. Although I was on the same route on which I collected the coordinate information on the previous day, the Maps application was not showing any location. When I opened the cells.plist file, I saw that its contents were erased. Fortunately, I already had a backup and restored it. I thought that the ".lastpurge" value in the file might be a time tag which is being used to validate the file so I changed the leftmost 2 to 5. I restarted the Maps application and Voila! :), my location was approximately shown. Moreover, it continued to show my location until I arrived my destination.

So, is it possible to fix a location using the Fake GPs without being connected to the internet?
Yes, if you fill the cells.plist file with coordinate and cell tower information by finding your location when you are online and can manage to keep the contents and you roam around the same places when you collected this information, you can get an approximate location when you are offline too. "How practical is this method?", "how can it be further improved?" well, these will be the contents of another article :)



Güm de güm güm, 06.09.08 tarihinde saat 20:00 itibari ile demiş ki:

Aylardır şurda bi edit olsun diyorum...Ama yok, iphone kod içüünn sabahlanıyor:)) Telefona kod yazan sayın admin canlısı,burda yarışma falan olsa ödül olsa,aksiyon olsa,edit olsa,ekmek kadayıfı,Frapicino!!!

YOK, 23.08.08 tarihinde saat 13:29 itibari ile demiş ki:

Abimiz teknolojiye sardı:P


1
  >>CopierciN 0.1 Çıktı
>>Can the Fake GPS on iPhone operate without an internet connection?
>>iPhone, uPhone, he/she/itPhones
 
Bu sitenin önüne çöp döken eşşektir.