Creo que esta pregunta debería publicarse en el sitio Reverse Engineering Stack Exchange . Solicita los detalles de la implementación de una caja negra ...
De hecho, he investigado 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 solo está comprobando algunos identificadores. Creo que SFRemoteHotspotDevice
y WiFiXPCEventProtocol
pueden tener más detalles de bajo nivel, pero no lo comprobé.
Por cierto, también hay una propiedad para identificar si es la red CarPlay
@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 pueden agregar metadatos adicionales cuando transmiten la señal WiFi, de modo que su Mac sepa si está agregando el ícono de la cadena o no.
Si alguien descubre exactamente cómo Apple hizo el truco, hágamelo saber. :)