MobileGestalt
Các libMobileGestalt.dylib cung cấp một kho trung tâm cho tất cả các thuộc tính của iOS. Nó có thể tương tự như Gestalt của OS X, là một phần của CoreServices
. Gestalt của OS X được ghi lại, chẳng hạn như Gestalt Manager và đã không được dùng nữa kể từ ngày 10.8. MobileGestalt hoàn toàn không có giấy tờ của Apple vì nó là một thư viện riêng.
MobileGestalt cho phép kiểm tra các thuộc tính hệ thống có thể tương thích hoặc không tương thích trên các trình mô phỏng khác nhau.
Khá nhiều quy trình hệ thống và ứng dụng trong iOS dựa trên MobileGestalt, có tại /usr/lib/libMobileGestalt.dylib. Nó giống một thư viện cơ bản hơn, nhưng các API tiếp xúc của nó tuân theo các quy ước khung của Apple và sử dụng MG
tiền tố API chẳng hạn MGIsDeviceOneOfType
.
Nếu bạn tìm MobileGestalt trên hệ thống tệp iOS, bạn sẽ không tìm thấy nó - giống như tất cả các khung và thư viện riêng tư, nó đã được liên kết trước vào /System/Library/Caches/...etc. Nếu bạn thích hack và thử nghiệm bút thì bạn có thể sử dụng các công cụ để giải nén nó.
MobileGestalt cung cấp nhiều thông tin - khoảng hơn 200 truy vấn - về các khía cạnh khác nhau của hệ thống. Ở đây có một ít.
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");
Có hàng trăm người khác ví dụ như AirplaneMode
, MobileEquipmentIdentifier
vv
MobileGestalt duy trì một bảng mã bộ chọn OSType. ví dụ c: 890 trong thông báo: libMobileGestalt MobileGestalt.c: 890: MGIsDeviceOneOfType không được hỗ trợ trên nền tảng này. Trong trường hợp MGIsDeviceOneOfType
này là một phương thức của thư viện MobileGestalt .
Thay vì kiểm tra phiên bản trình mô phỏng, có một bộ chọn riêng để truy vấn trực tiếp các khả năng của trình mô phỏng. Các thông báo rất có thể cho biết sự không tương thích giữa các phiên bản trình mô phỏng và phiên bản Xcode và / hoặc các API không được hỗ trợ trên trình mô phỏng.