MobileGestalt
libMobileGestalt.dylibは、 iOSののすべてのプロパティの中央リポジトリを提供します。の一部であるOS XのGestaltに類似していCoreServices
ます。OS XのGestaltは、Gestalt Managerなどでドキュメント化されており、10.8で非推奨になりました。MobileGestaltは非公開のライブラリであるため、アップルでは完全に文書化されていません。
MobileGestaltを使用すると、さまざまなシミュレータで互換性があるかどうかに関係なく、システムプロパティをテストできます。
iOSのかなりの数のシステムプロセスとアプリは、/ usr / lib / libMobileGestalt.dylibにあるMobileGestaltに依存しています。これはより基本的なライブラリですが、その公開されたAPIはAppleフレームワークの規則に従い、MG
たとえばAPIプレフィックスを使用しますMGIsDeviceOneOfType
。
iOSファイルシステムでMobileGestaltを探しても見つからない-すべてのプライベートフレームワークやライブラリのように、/ System / Library / Caches / ... etcに事前にリンクされています。ハッキングやペンのテストが好きな場合は、ツールを使用してそれを抽出できます。
MobileGestaltは、システムのさまざまな側面に関する多くの情報(約200程度のクエリ)を提供します。ここにいくつかあります。
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");
、などなどAirplaneMode
、さらに数百がありますMobileEquipmentIdentifier
。
MobileGestaltは、OSTypeセレクターコードのテーブルを保持しています。たとえば、メッセージのc:890:libMobileGestalt MobileGestalt.c:890:MGIsDeviceOneOfTypeはこのプラットフォームではサポートされていません。この場合MGIsDeviceOneOfType
は、MobileGestaltライブラリのメソッドです。
シミュレーターのバージョンをチェックする代わりに、シミュレーターの機能を直接照会するための別個のセレクターがあります。メッセージは、シミュレータのバージョンとXcodeのバージョンの間の非互換性、および/またはシミュレータでサポートされていないAPIを示している可能性が高いです。