iPhone Wireless Scanner iOS5

stumblerios5

As followers know, last year Apple has blocked wifi scanners from App Store, however till iOS5 it was still available for private usage via WiFiManager bundle:

Old Path: /System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager

in iOS5, WifiManager bundle no more exists however 80211 functions are still available via IPConfiguration bundle

New Path: /System/Library/SystemConfiguration/IPConfiguration.bundle/IPConfiguration

The scanning functions are the same as previous version
(For detailed information: http://code.google.com/p/iphone-wireless/ )
but there is one thing you need to pay attention while developing

Your application requires super user privileges in order to perform network scan.
That’s why, you need to put your application in Root’s Applications folder

Correct Path in IOS: /Applications (in this path, app runs with root user permissions)
Wrong Path in IOS: /private/var/mobile/Applications (in this path, app runs with mobile user permissions)

I have prepared a sample project for using Stumbler class on iOS5,
you can download it via

Stumbler Class on iOS5 Usage Sample Download Link.

Also I would like to share couple of screens that may be interesting for some developers.

1) Disassembled screen of iPConfiguration (Processed with IDA Evaluation by HEx Rays )
idaq_ipconfiguration


2) Screenshots of sample project on iPod Touch 4G running iOS 5

img_0006img_0007

Credits:
WifiFofum, They are the first developers who realized IPConfiguration.bundle.
Stumbler “iphone-wireless”, they have provided a lot to community. many thanks.


If you enjoyed this post, make sure you subscribe to my RSS feed!

Post Metadata

Date
November 5th, 2011

Author
Guvener Gokce

Category

Tags


11 Comments


  1. Purnima

    Guvener
    We noticed a strange phenomenon. When running the app on a non-jailbroken device via the debugger the Wi-Fi scans would not work. However as soon as we hit the stop button on Xcode for debugger the scan results came through. Is there a way around it by programatically issuing a stop that mimics the stop issued from debugger.
    with best regards
    Jagan


  2. Hi Jagan,

    That’s very interesting phenomenon. Although I haven’t tried (yet) hitting a break point programmatically, I will check and let you know if I can succeed.

    Many thanks for letting me know, really interesting notice.
    Bests,
    Guvener



  3. Dwarf

    Hi!

    How can I put my application in Root’s Applications folder instead of /private/var/mobile/Applications?

    I can´t get the sample working…

    Thanxs!


  4. Hi Dwarf,

    I’m assuming that your device is already jailbroken (otherwise not possible)
    You shall create release build of sample app and upload release build in to /Applications folder.
    (you can use open ssh for that )

    Bests,
    Guvener



  5. Dwarf

    Ohhh!

    I want to distribute my app in the App Store…

    This may work for Cydia apps, but Stumbler class will never work in “official” apps, am I right?

    Thanxs!


  6. Hi Dwarf,

    You’re right, it’s not allowed to publish an app that uses private frameworks,
    and just to be clear, Apple has never published an iOS API for wifi scanning.

    Bests,
    Guvener



  7. Dwarf

    My app is in the Store, using this framework and working in iOS4, but it crashes in iOS5.


  8. that’s lucky, good for u.



  9. Purnima

    Guvener
    Any progress on doing Wi-Fi scans for non-jailbroken devices with the workaround I mentioned.
    Jagan



  10. nimesh

    i have tried wifi neworks scanning using stumbler class but when i tried

    dlopen(”System/Library/SystemConfiguration/IPConfiguration.bundle/IPConfiguration”,1)

    It gives “file not find”

    Please help me out in this.



  11. kimtaeil

    hi~

    I tried to build in Xcode 4.2 but it does’t work.

    Is it only work on Device???

    please tell me how to test T.T


Leave a Reply