Ich denke, diese Frage sollte in Reverse Engineering Stack Exchange- Website veröffentlicht werden. Sie fragen nach den Implementierungsdetails für eine Black Box ...
Tatsächlich habe ich ein bisschen an /System/Library/CoreServices/Menu Extras/AirPort.menu
und herumgebuddelt/System/Library/Frameworks/CoreWLAN.framework/
Es gibt eine private Methode mit dem CWNetwork
Namen isPersonalHotspot
:
char -[CWNetwork(Private) isPersonalHotspot](void * self, void * _cmd) {
eax = [*(self + 0x4) objectForKey:@"IOS_IE"];
eax = LOBYTE(eax != 0x0 ? 0x1 : 0x0) & 0xff;
return eax;
}
Es scheint nur einige Bezeichner zu überprüfen. Ich denke SFRemoteHotspotDevice
und habe WiFiXPCEventProtocol
möglicherweise niedrigere Details, aber ich habe nicht nachgesehen.
Übrigens gibt es auch eine Eigenschaft, um festzustellen, ob es sich um ein CarPlay-Netzwerk handelt
@interface CWNetwork : NSObject <NSCopying, NSSecureCoding>
... //redacted
@property(readonly) BOOL isPersonalHotspot;
@property(readonly) BOOL isCarPlayNetwork;
... //redacted
Apple steuert die Hardware, die Treiber und das Betriebssystem. Vermutlich können sie beim Senden des WLAN-Signals problemlos zusätzliche Metadaten hinzufügen, damit Ihr Mac weiß, ob das Kettensymbol hinzugefügt wird oder nicht.
Wenn jemand genau herausfindet, wie Apple den Trick gemacht hat, lass es mich wissen. :)