MobileGestalt
Le libMobileGestalt.dylib fournit un référentiel central pour tous les iOS de ses propriétés. Il peut être analogue à OS X de la Gestalt, qui fait partie de l' CoreServices
. OS X Gestalt est documenté par exemple Gestalt Manager et a été abandonnée depuis 10.8. MobileGestalt est entièrement sans-papiers par Apple comme c'est une bibliothèque privée.
MobileGestalt permet de tester les propriétés du système qui peuvent ou peuvent ne pas être compatibles sur différents simulateurs.
Tout à fait un peu les processus du système et des applications dans iOS compter sur MobileGestalt, qui est situé à l'emplacement /usr/lib/libMobileGestalt.dylib. C'est plus une bibliothèque de base, mais son Api exposées suivre la Pomme cadre des conventions et des usages de l' MG
API préfixe par exemple MGIsDeviceOneOfType
.
Si vous recherchez MobileGestalt sur l'iOS système de fichiers, vous ne trouverez pas, comme tous les cadres et les bibliothèques, il a été prelinké dans /System/Library/Caches/...etc. Si vous aimez le piratage et la pen-test, alors vous pouvez utiliser des outils pour l'extraire.
MobileGestalt fournit de nombreuses informations autour de 200 requêtes sur les différents aspects du système. Voici quelques-uns.
libMobileGestalt.dylib
//Answers to MG queries
MGCopyAnswer(@"5MSZn7w3nnJp22VbpqaxLQ");
MGCopyAnswer(@"7mV26K/1a+wTtqiunvHMUQ");
MGCopyAnswer(@"BasebandAPTimeSync");
MGCopyAnswer(@"BasebandPostponementStatus");
MGCopyAnswer(@"BasebandPostponementStatusBlob");
MGCopyAnswer(@"BasebandSecurityInfoBlob");
MGCopyAnswer(@"BasebandStatus");
MGCopyAnswer(@"BuildVersion");
MGCopyAnswer(@"CoreRoutineCapability");
MGCopyAnswer(@"DeviceClass");
MGCopyAnswer(@"DeviceClassNumber");
MGCopyAnswer(@"DeviceName");
MGCopyAnswer(@"DeviceSupports1080p");
MGCopyAnswer(@"DeviceSupports720p");
MGCopyAnswer(@"DiskUsage");
MGCopyAnswer(@"GSDeviceName");
MGCopyAnswer(@"HWModelStr");
MGCopyAnswer(@"HasBaseband");
MGCopyAnswer(@"InternalBuild");
MGCopyAnswer(@"InverseDeviceID");
MGCopyAnswer(@"IsSimulator");
MGCopyAnswer(@"MLBSerialNumber");
MGCopyAnswer(@"MaxH264PlaybackLevel");
MGCopyAnswer(@"MinimumSupportediTunesVersion");
MGCopyAnswer(@"PasswordConfigured");
MGCopyAnswer(@"PasswordProtected");
MGCopyAnswer(@"ProductType");
MGCopyAnswer(@"ProductVersion");
MGCopyAnswer(@"RegionCode");
MGCopyAnswer(@"RegionalBehaviorNTSC");
MGCopyAnswer(@"RegionalBehaviorNoPasscodeLocationTiles");
MGCopyAnswer(@"ReleaseType");
MGCopyAnswer(@"SIMStatus");
Il y a des centaines d'autres par exemple, AirplaneMode
, MobileEquipmentIdentifier
, etc.
MobileGestalt maintient une table de OSType sélecteur de codes.
par exemple c:890 dans le message: libMobileGestalt MobileGestalt.c:890: MGIsDeviceOneOfType n'est pas pris en charge sur cette plateforme. Dans ce cas - MGIsDeviceOneOfType
est une méthode de la MobileGestalt de la bibliothèque.
Au lieu de vérifier le simulateur version il existe un sélecteur pour les interrogeant directement les capacités du simulateur. Les messages les plus susceptibles d'indiquer des incompatibilités entre le simulateur et versions de Xcode versions et/ou de non prise en charge des Api sur le simulateur.