40

When there is a Personal Hotspot network available, it displays a chain link icon instead of the usual lock icon in the list of available networks on iOS and OS X.

Wi-Fi network selection dropdown in OS X

My question is, how does OS X distinguish these networks? Is it specified in 802.11 how hotspots broadcast their SSID's differently?

0

5 Answers 5

6

@hewigovens found some great info in his answer. It lead me to find a guide posted to yichya.dev to make an OpenWRT router appear as a personal hotspot. Guide is here and it references this post, it is in Chinese but you can use Google translate.

The guide confirms it is a vendor element in the beacon.

I turned on the feature in my iPhone and scanned with Wireshark.

  Tag: Vendor Specific: Apple, Inc.
    Tag Number: Vendor Specific (221)
    Tag length: 10
    OUI: 00:17:f2 (Apple, Inc.)
    Vendor Specific OUI Type: 6
    Vendor Specific Data: 06010103030000

Wireshark does not how to decode the tag, but the binary value is very close to the one in the article, 06010103030000 vs. 06010103010000.

It is unclear which bits represent personal hotspot, but it is clear that is how it is handled. I think I will post this to the Reverse Engineering Stack Exchange as @hewigovens suggested to let them take a crack at it.

Edit:

I posted the question to reverseengineering.stackexchange.com, Decoding the Apple vendor tag in the 802.11 beacon

13

I think this question should be posted in Reverse Engineering Stack Exchange site. You're asking for the implementation details about a black box...

In fact I did dig around a little on /System/Library/CoreServices/Menu Extras/AirPort.menu and /System/Library/Frameworks/CoreWLAN.framework/

There is a private method of CWNetwork called isPersonalHotspot, kind of:

char -[CWNetwork(Private) isPersonalHotspot](void * self, void * _cmd) {
    eax = [*(self + 0x4) objectForKey:@"IOS_IE"];
    eax = LOBYTE(eax != 0x0 ? 0x1 : 0x0) & 0xff;
    return eax;
}

It seems just checking some identifiers. I think SFRemoteHotspotDevice and WiFiXPCEventProtocol may have more low level details but I didn't check.

BTW, There is also a property to identify whether is CarPlay network

@interface CWNetwork : NSObject <NSCopying, NSSecureCoding>
... //redacted
@property(readonly) BOOL isPersonalHotspot;
@property(readonly) BOOL isCarPlayNetwork;
... //redacted

Apple controls the Hardware, the Drivers and the Operating System, I guess they can easily add extra metadata when broadcasting the WiFi signal so your Mac knows to whether adding the chain icon or not.

If anyone figure out exactly how Apple did the trick, please let me know. :)

1
  • Thanks for all this great info! How were you able to get the code for private method isPersonalHotspot?
    – thewade
    Mar 25, 2023 at 22:24
1

The chain icon is showing that the internet connection is being bridged through another device. It is not specifically for personal hotspots.

2
  • Apart from the fact that Wi-Fi connections are almost always bridged to another network device, this doesn't really explain why hotspots created on Android devices do not show up with a chain icon. Aug 24, 2015 at 22:49
  • On macOS Sierra, hotspots created using Android devices show the chain icon.
    – Suraj
    Jul 30, 2017 at 11:07
0

Apple talks to Apple, they know their own products and know when it is an Apple device or not. Apple may have their own MAC Address range or they simply see all the information there is about this device, ie:

If you go to About this Mac, System Report, Network, Wifi. You will see the following details about this network/device.

Wifi Details

Check at interfaces: Card Type, MAC Address or Locale. These can possibly be all "Apple Identifiers". When making a hotspot with your iPhone, Apple decided to share the info with your Mac to show it's an Apple device.

5
  • I gotta say, I really doubted that this could be a possibility at first since none of that info except MAC is shared in 802.11, but after reading into it, I'm starting to think your theory could have some merit.Apparently, the first 3 octets of a MAC address indicates the manufacturer of the device, and Apple uses a separate manufacturer portion of the MAC address on all of its iDevices. Aug 26, 2015 at 1:35
  • Now if I could somehow spoof the BSSID of an access point so it shows up as an iDevice, I could possibly confirm or disprove this theory... Anyone know how this might be accomplished? (Or if it can be accomplished at all?) Aug 26, 2015 at 1:37
  • Lol no I dont think its a good idea to ask hacking questions here :P but you can mark answer as correct if it answered your question. :D
    – emotality
    Aug 26, 2015 at 6:35
  • I think this is not the case. Even hotspots created using Android devices show the "chain" icon.
    – Suraj
    Jul 30, 2017 at 11:06
  • Where did you see this happening, Suraj Thapar?
    – Coroos
    Oct 25, 2017 at 11:36
-3

Also, hotpots on iOS are identified as 172.20.10.x, as well.

1
  • 1
    You won't receive DHCP traffic unless you have associated with the AP.
    – bot47
    Oct 26, 2015 at 20:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .