Creo que esta cuestión debe ser publicado en la Ingeniería Inversa de Intercambio de la Pila sitio. Usted está preguntando por los detalles de la implementación sobre una caja negra...
De hecho, me hizo cavar a su alrededor un poco en /System/Library/CoreServices/Menu Extras/AirPort.menu
y /System/Library/Frameworks/CoreWLAN.framework/
Hay un método privado de CWNetwork
llamado isPersonalHotspot
, tipo de:
char -[CWNetwork(Private) isPersonalHotspot](void * self, void * _cmd) {
eax = [*(self + 0x4) objectForKey:@"IOS_IE"];
eax = LOBYTE(eax != 0x0 ? 0x1 : 0x0) & 0xff;
return eax;
}
Parece que sólo la comprobación de algunos identificadores. Creo SFRemoteHotspotDevice
y WiFiXPCEventProtocol
puede tener más de bajo nivel de detalles, pero yo no comprobar.
Por CIERTO, también Hay una propiedad para identificar si es CarPlay de la red
@interface CWNetwork : NSObject <NSCopying, NSSecureCoding>
... //redacted
@property(readonly) BOOL isPersonalHotspot;
@property(readonly) BOOL isCarPlayNetwork;
... //redacted
Apple controla el Hardware, los Controladores y el Sistema Operativo, supongo que se puede fácilmente añadir metadatos a la hora de enviar la señal WiFi para que el Mac sabe si la adición del icono de la cadena o no.
Si alguien averiguar exactamente cómo Apple hizo el truco, por favor hágamelo saber. :)