diff --git a/GestaltDump.xcodeproj/project.pbxproj b/GestaltDump.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1e13420 --- /dev/null +++ b/GestaltDump.xcodeproj/project.pbxproj @@ -0,0 +1,362 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + AA58710B21AC8E9C005F1179 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AA58710A21AC8E9C005F1179 /* AppDelegate.m */; }; + AA58710E21AC8E9C005F1179 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AA58710D21AC8E9C005F1179 /* ViewController.m */; }; + AA58711121AC8E9C005F1179 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA58710F21AC8E9C005F1179 /* Main.storyboard */; }; + AA58711321AC8E9E005F1179 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AA58711221AC8E9E005F1179 /* Assets.xcassets */; }; + AA58711621AC8E9E005F1179 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA58711421AC8E9E005F1179 /* LaunchScreen.storyboard */; }; + AA58711921AC8E9E005F1179 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AA58711821AC8E9E005F1179 /* main.m */; }; + AA58712221AC9123005F1179 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA58712121AC9123005F1179 /* CoreFoundation.framework */; }; + AA58712421AC9135005F1179 /* libMobileGestalt.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = AA58712321AC9135005F1179 /* libMobileGestalt.tbd */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + AA58710621AC8E9C005F1179 /* GestaltDump.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GestaltDump.app; sourceTree = BUILT_PRODUCTS_DIR; }; + AA58710921AC8E9C005F1179 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + AA58710A21AC8E9C005F1179 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + AA58710C21AC8E9C005F1179 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + AA58710D21AC8E9C005F1179 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + AA58711021AC8E9C005F1179 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + AA58711221AC8E9E005F1179 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + AA58711521AC8E9E005F1179 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + AA58711721AC8E9E005F1179 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + AA58711821AC8E9E005F1179 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + AA58712121AC9123005F1179 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; + AA58712321AC9135005F1179 /* libMobileGestalt.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libMobileGestalt.tbd; path = usr/lib/libMobileGestalt.tbd; sourceTree = SDKROOT; }; + AA58712521AC9AA7005F1179 /* GestaltKeys.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GestaltKeys.h; sourceTree = ""; }; + AA58712621AC9B5F005F1179 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + AA58710321AC8E9C005F1179 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AA58712421AC9135005F1179 /* libMobileGestalt.tbd in Frameworks */, + AA58712221AC9123005F1179 /* CoreFoundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + AA5870FD21AC8E9C005F1179 = { + isa = PBXGroup; + children = ( + AA58712621AC9B5F005F1179 /* README.md */, + AA58710821AC8E9C005F1179 /* GestaltDump */, + AA58710721AC8E9C005F1179 /* Products */, + AA58712021AC9123005F1179 /* Frameworks */, + ); + sourceTree = ""; + }; + AA58710721AC8E9C005F1179 /* Products */ = { + isa = PBXGroup; + children = ( + AA58710621AC8E9C005F1179 /* GestaltDump.app */, + ); + name = Products; + sourceTree = ""; + }; + AA58710821AC8E9C005F1179 /* GestaltDump */ = { + isa = PBXGroup; + children = ( + AA58710921AC8E9C005F1179 /* AppDelegate.h */, + AA58710A21AC8E9C005F1179 /* AppDelegate.m */, + AA58710C21AC8E9C005F1179 /* ViewController.h */, + AA58710D21AC8E9C005F1179 /* ViewController.m */, + AA58712521AC9AA7005F1179 /* GestaltKeys.h */, + AA58710F21AC8E9C005F1179 /* Main.storyboard */, + AA58711221AC8E9E005F1179 /* Assets.xcassets */, + AA58711421AC8E9E005F1179 /* LaunchScreen.storyboard */, + AA58711721AC8E9E005F1179 /* Info.plist */, + AA58711821AC8E9E005F1179 /* main.m */, + ); + path = GestaltDump; + sourceTree = ""; + }; + AA58712021AC9123005F1179 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AA58712321AC9135005F1179 /* libMobileGestalt.tbd */, + AA58712121AC9123005F1179 /* CoreFoundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + AA58710521AC8E9C005F1179 /* GestaltDump */ = { + isa = PBXNativeTarget; + buildConfigurationList = AA58711C21AC8E9E005F1179 /* Build configuration list for PBXNativeTarget "GestaltDump" */; + buildPhases = ( + AA58710221AC8E9C005F1179 /* Sources */, + AA58710321AC8E9C005F1179 /* Frameworks */, + AA58710421AC8E9C005F1179 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GestaltDump; + productName = GestaltDump; + productReference = AA58710621AC8E9C005F1179 /* GestaltDump.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + AA5870FE21AC8E9C005F1179 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = "FutureTap GmbH"; + TargetAttributes = { + AA58710521AC8E9C005F1179 = { + CreatedOnToolsVersion = 10.1; + }; + }; + }; + buildConfigurationList = AA58710121AC8E9C005F1179 /* Build configuration list for PBXProject "GestaltDump" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = AA5870FD21AC8E9C005F1179; + productRefGroup = AA58710721AC8E9C005F1179 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + AA58710521AC8E9C005F1179 /* GestaltDump */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + AA58710421AC8E9C005F1179 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AA58711621AC8E9E005F1179 /* LaunchScreen.storyboard in Resources */, + AA58711321AC8E9E005F1179 /* Assets.xcassets in Resources */, + AA58711121AC8E9C005F1179 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + AA58710221AC8E9C005F1179 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AA58710E21AC8E9C005F1179 /* ViewController.m in Sources */, + AA58711921AC8E9E005F1179 /* main.m in Sources */, + AA58710B21AC8E9C005F1179 /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + AA58710F21AC8E9C005F1179 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + AA58711021AC8E9C005F1179 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + AA58711421AC8E9E005F1179 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + AA58711521AC8E9E005F1179 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + AA58711A21AC8E9E005F1179 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + AA58711B21AC8E9E005F1179 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + AA58711D21AC8E9E005F1179 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = GestaltDump/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.futuretap.GestaltDump; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + AA58711E21AC8E9E005F1179 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = GestaltDump/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.futuretap.GestaltDump; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + AA58710121AC8E9C005F1179 /* Build configuration list for PBXProject "GestaltDump" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AA58711A21AC8E9E005F1179 /* Debug */, + AA58711B21AC8E9E005F1179 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + AA58711C21AC8E9E005F1179 /* Build configuration list for PBXNativeTarget "GestaltDump" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AA58711D21AC8E9E005F1179 /* Debug */, + AA58711E21AC8E9E005F1179 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = AA5870FE21AC8E9C005F1179 /* Project object */; +} diff --git a/GestaltDump.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/GestaltDump.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..fe991ed --- /dev/null +++ b/GestaltDump.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/GestaltDump.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/GestaltDump.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/GestaltDump.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/GestaltDump/AppDelegate.h b/GestaltDump/AppDelegate.h new file mode 100644 index 0000000..5a99fcc --- /dev/null +++ b/GestaltDump/AppDelegate.h @@ -0,0 +1,17 @@ +// +// AppDelegate.h +// GestaltDump +// +// Created by Ortwin Gentz on 26.11.18. +// Copyright © 2018 FutureTap GmbH. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + + +@end + diff --git a/GestaltDump/AppDelegate.m b/GestaltDump/AppDelegate.m new file mode 100644 index 0000000..0b38c78 --- /dev/null +++ b/GestaltDump/AppDelegate.m @@ -0,0 +1,51 @@ +// +// AppDelegate.m +// GestaltDump +// +// Created by Ortwin Gentz on 26.11.18. +// Copyright © 2018 FutureTap GmbH. All rights reserved. +// + +#import "AppDelegate.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Override point for customization after application launch. + return YES; +} + + +- (void)applicationWillResignActive:(UIApplication *)application { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. +} + + +- (void)applicationDidEnterBackground:(UIApplication *)application { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + + +- (void)applicationWillEnterForeground:(UIApplication *)application { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. +} + + +- (void)applicationDidBecomeActive:(UIApplication *)application { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + + +- (void)applicationWillTerminate:(UIApplication *)application { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + + +@end diff --git a/GestaltDump/Assets.xcassets/AppIcon.appiconset/Contents.json b/GestaltDump/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/GestaltDump/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/GestaltDump/Assets.xcassets/Contents.json b/GestaltDump/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/GestaltDump/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/GestaltDump/Base.lproj/LaunchScreen.storyboard b/GestaltDump/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..bfa3612 --- /dev/null +++ b/GestaltDump/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GestaltDump/Base.lproj/Main.storyboard b/GestaltDump/Base.lproj/Main.storyboard new file mode 100644 index 0000000..04231fc --- /dev/null +++ b/GestaltDump/Base.lproj/Main.storyboard @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GestaltDump/GestaltKeys.h b/GestaltDump/GestaltKeys.h new file mode 100644 index 0000000..18c1379 --- /dev/null +++ b/GestaltDump/GestaltKeys.h @@ -0,0 +1,810 @@ +// +// GestaltKeys.h +// GestaltDump +// +// Created by Ortwin Gentz on 26.11.18. +// Taken from https://blog.timac.org/2018/1126-deobfuscated-libmobilegestalt-keys-ios-12/ +// + +struct tKeyMapping +{ + const char * obfuscatedKey; + const char * key; +}; + +static const struct tKeyMapping keyMappingTable[] = +{ + "+3Uf0Pm5F8Xy7Onyvko0vA", "DeviceClass", + "+Ce1uSqGUXaJPl/uT6ur8g", "SDIOProductInfo", + "+N9mZUAHooNvMiQnjeTJ8g", "HasAppleNeuralEngine", + "+U0jSj4F2EfE+Vqj22IavA", "tnr-mode-back", + "+VIu65zA5EW4ztayJXvOUg", "device-name-localized", + "+bL/lKwaIAv+fzmjsHYZdw", "N78aHack", + "+fgL2ovGydvB5CWd1JI1qg", "has-sphere", + "+zD41v0XRR72ItZHfisZuQ", NULL, + "/2V8H9h/+z0UxNUr9aRLeQ", "boot-nonce", + "/6FWCRjN1yRdUABG9vF8ow", "WiFiCallingCapability", + "/9luHerXthRoPoNt/PVkTg", "VibratorCapability", + "/GK+yfRFY/b5ZDIDpdVImg", "hardware-keyboard", + "/Oajtq8qODrC4XBBOULF3A", "DeviceSupportsHeartRateVariability", + "/Pop5T2XQdDA60MRyxQJdQ", "hall-effect-sensor", + "/YYygAofPDbhrwToVsXdeA", "HWModelStr", + "/bSMNaIuUT58N/BN1nYUjw", NULL, + "/bfa1LxXd7G1WqHujpjsdA", "WatchSupportsMusicStreaming", + "/cMWdoU/88pcjJ1egxmIYw", "wlan.background-scan-cache", + "/ej/HWmqnKV/QQptXhUZmg", "no-coreroutine", + "/l0Kz2akvSvEHTNmZeY0nQ", "chip-id", + "0/2HluYMd/whD80Hua4Rpw", "io-surface-backed-images", + "0/7QNywWU4IqDcyvTv9UYQ", NULL, + "0/VAyl58TL5U/mAQEJNRQw", NULL, + "03hWmMtMs+4nzama4/PzHQ", "CameraLiveEffectsCapability", + "0AFeHRmliNJ4pSlVb8ltZA", NULL, + "0L5PkT61qoH1b/B1USWqjQ", "RegionalBehaviorChinaBrick", + "0R2aiV2nJVu/v8I7Ex2GcQ", "RegionalBehaviorNoPasscodeLocationTiles", + "0VkTunHOJrrZdolQXR5gCg", NULL, + "0Y4fmR6ZHZPxDZFfPtBnRQ", "SysCfg", + "0Yu30fwSQVPKvHVla17kXw", "umts-device", + "0dnM19zBqLw5ZPhIo4GEkg", "SecureElement", + "0jjK6IVSQzA8doQeSwmujA", "software-bundle-version", + "0l4wqBtWEAK1tOkeBHkU6Q", "main-screen-pitch", + "0pY9r1XBV1duZ8HO3tBvFg", "location-services", + "0uthiXrHZ212KvcJizKHEw", "BoardId", + "0uyHvVqOLpJQBpSl/rF3Vg", "kSimultaneousCallAndDataSupported", + "16N2bLOzcgJEsZToEX21Zg", "accessibility", + "1DQNgySZSIjPqLWroIzfiQ", "BacklightCapability", + "1N14oS9TeyskaTU1DxpwoQ", "load-thumbnails-while-scrolling", + "1Rm/mWYEI5ttaC0dJ3sHBQ", "BootNonce", + "1X0zc2JwBdYOQrMAyP81DQ", "lte-device", + "1eBwtCIwbIDdC80wiyzfow", NULL, + "1gsBzuZsXu2rXZJBE01M0w", "FrontFacingCameraHFRCapability", + "1oMPwMsqxTa9BJxUs8v06w", "PlatinumCapability", + "1qDdT/85SS7sxriK0wIbbg", "main-screen-orientation", + "1qJmMHedWOh43VwRKPdDrw", "iTunesFamilyID", + "1rf3rZXIZFgznqrHlPehuQ", "FaceTimeBitRate3G", + "1uZbhSbBhsNCsVSsopZ4qg", "dictation", + "1z6Kk4xUAVLdaBPGugsDSA", "navigation", + "2/q9qmqGigMfkzY830Zf2g", "YonkersChipID", + "2IDxmg5KyAMBBi/b0rojgQ", "telephony-maximum-generation", + "2OK50OGmkXM1ospsh766WQ", NULL, + "2Qf/8sQyx6voo3Mw3QKgZQ", NULL, + "2aIAScwtFNCz+Y7WesMOCA", NULL, + "2kuITg6XPwXl8zbpx+hoCw", NULL, + "2lNKobEIQqX50ohy1JBqCA", "no-hi-res-buildings", + "2pxKjejpRGpWvUE+3yp5mQ", "cameraRestriction", + "2sWGezz2RezScIJJgiIYQg", "IcefallInRestrictedMode", + "2xSqkUxsVWmOBWk6StVOfQ", NULL, + "38C0kq9NiVaMsqjlUsCHcQ", "ota-activation", + "39ZkJVEsL4pmCXbg+89QmQ", "accelerometer", + "3kmXfug8VcxLI5yEmsqQKw", "InDiagnosticsMode", + "3lh7gCvtytf3CQisb6LSJA", "ane", + "3m1Q0AXlqeA2C/LmqdTndQ", NULL, + "3sF/uRq+X+mZ2zGHSJOwpw", "crypto-hash-method", + "3yzXj0lJhQi+r3kgQlwiOg", NULL, + "4+qmMh9JBDh72Nq6fD64RQ", "gyroscope", + "475wW3fne+tyzGr4wleUSQ", "CarrierBundleInfoArray", + "4D8XW4YwJI7QvyPhv1TEdw", "DeviceSupportsRaiseToSpeak", + "4I0hOaR3n80379Vka7u+Xg", "volume-buttons", + "4Jfu4lqX8dzru4Z+ONQ1rQ", NULL, + "4OThI5F+/uP2oXUpdDxGnw", NULL, + "4RgFi8v1sfuhCZhRdQkxxQ", "FaceTimePhotosOptIn", + "4RwhtNOmePfUXmu57rh+KA", "LisaCapability", + "4W7X4OWHjri5PGaAGsCWxw", NULL, + "4eFYRO4KDf8py/Zf3iHWZw", NULL, + "4fT83+9coO3VAUnlxuOOcw", "SupportsEDUMU", + "4k6Wv56SWfITjzet+hIHMQ", "multi-touch", + "4qfpxrvLtWillIHpIsVgMA", "SystemImageID", + "4snMZS8LJkSctKypt2m+xA", "not-green-tea", + "4uzgAFPkzKUmlZG5HpFIkg", "RegionalBehaviorGoogleMail", + "50/CmBTX6jhkb8Z61hzwhQ", "class", + "566JrJVMlDfnslGpwUzNlQ", "ChipID", + "57eLnXynqDlQaGEi+9JAtQ", "call-forwarding", + "5MSZn7w3nnJp22VbpqaxLQ", "venice", + "5MXFoiW2zgxfIbaaTb/wvA", "SecondaryEthernetMacAddressData", + "5QM8apssQbhm2ZrUx5g5Tw", "pipelined-stillimage-capability", + "5dyhCh3dm1vSOaNK+US1Qw", "euicc-chip-id", + "5lAK1Xp+ezh1Qu+4jnHAOg", "SupportsSOS", + "5mvQIwu3Mqqw/zOKmwGkWw", "ProximitySensorCalibrationDictionary", + "5pYKlGnYYBzGvAlIU8RjEQ", "HardwarePlatform", + "5tnvmEsHQKfCoieLEYpnvg", "RFExposureSeparationDistance", + "5v2p6i7PyIMdWOK4n/+G4A", "proximity-sensor", + "5y8gwXr/HXkhryza4xQeFg", NULL, + "61xs1bQ+9eTk8tlRvG9UKw", "MicrophoneCount", + "67A3BpQkCRe1ihx0Me4lgg", "arkit", + "67Dsh4G8EGQp4WbPDfS/Xw", "YonkersSerialNumber", + "67x5O+zO+JwnGgmKlq+qdA", "DiagData", + "6MnVtR+c9LeR46bMxvR5Yw", "RegionalBehaviorNoVOIP", + "6PkKE66MnKm0yiOIQLknEg", "allow-32bit-apps", + "6RrxXzvfw2GZeUPLKXxrmA", "RearFacingCamera60fpsVideoCaptureCapability", + "6S9CvPHPtzHQqKudHSfsag", "haptics", + "6UUmcaeT7rJoyUVmoPJd4A", "ProximitySensorCalibration", + "6iI7/9cVUGIjdrSvIXEt4A", "RearCameraCapability", + "6k70IxahfOQTZbGwu++QwA", "additional-text-tones", + "6pjDdEw65TFyL1FmIdszXw", "hd-video-capture", + "7D54DikSnFQnbDEBwlKQTQ", "DevicePrefersCheapTrafficShaders", + "7DfjbzhvH/GDkhio1dv8fA", "HasSEP", + "7IgVvZZLtNjMFdInQlKg6A", "SoftwareBehavior", + "7NoMrNekLOY0QTFFKY3MUg", NULL, + "7VoVaBmSuokzovhUkiDx6Q", "SecondaryWifiMacAddress", + "7W2eNk/f6uewC8N58mlRrQ", "FrontFacingCameraHDRCapability", + "7l0BaQsNxJCanoeHMJ2huA", "AllowYouTube", + "7mV26K/1a+wTtqiunvHMUQ", "PhosphorusCapability", + "7ot70MKj7EdRIEEi91jlcg", "bitrate-3g", + "7qHcAWI5X9b1SiyYIg/Byw", "ui-background-quality", + "7yzVesPANxqKQ+oqNPhTwg", "applicationInstallation", + "8/HMvzDR3J6m0aY3NYeqcg", "bluetooth-le", + "8/tysfSvORoyVg9IE901oQ", "DeviceRGBColor", + "81Zj1535/jeXbmfOndlIVA", "youtubePlugin", + "82Ono2SP03rNGkhOc5O1Mw", NULL, + "84iheBmhAmsxIlcxG4a0zA", NULL, + "86GizkmSK+IxgCtUMOp2NA", "front-max-video-fps-720p", + "87sSAh2rboMI2TDvFBimkg", "DeviceColorMapPolicy", + "8DHlxr5ECKhTSL3HmlZQGQ", "RestoreOSBuild", + "8OTc3mN30ACaEwecgpKfXA", "CloudPhotoLibraryCapability", + "8QNz35Yxm0KqxP1JiE0HIw", "PintoMacAddressData", + "8S7ydMJ4DlCUF38/hI/fJA", NULL, + "8Shl+AdVKo09f1Sldkb0kA", "touch-id", + "8Wunmi1SpU1MxfBxkv3KOw", "dali-mode", + "8bOgXKgqoLvqV/XeSomAfA", "SecondaryBluetoothMacAddress", + "8bY/L3i3rmxrl4ZjFZZpgQ", "siri-gesture", + "8olRm6C1xqr7AJGpLRnpSw", "PearlIDCapability", + "8vIFqHe5lcMGo7TvbNLmyg", "home-button-type", + "9/J7LY7zuYSGW1BcSTRpOw", "SysCfgDict", + "91LyMcx4z1w3SGVeqteMnA", "BasebandRegionSKU", + "96GRvvjuBKkU4HzNsYcHPA", "MinimumSupportediTunesVersion", + "97JDvERpVwO+GHtthIh7hA", "RegulatoryModelNumber", + "9MZ5AdH43csAUajl/dU+IQ", "SupportedDeviceFamilies", + "9N7qIucqhr0Cy2/Tk27/hw", "DeviceCoverGlassColor", + "9RreaA6rTvewPbqQy5ldRg", "front-auto-hdr", + "9UCjT7Qfi4xLVvPAKIzTCQ", "ReleaseType", + "9ZqSL68MJyQESzQFDvKqXA", "voip", + "9n2qz3uDC5nSe1xZG1/Bkw", "CarrierInstallCapability", + "9s45ldrCC1WF+7b6C4H2BA", "GSDeviceName", + "A8aFtN08Oqt21846jqnftQ", NULL, + "AFXhxraF1bvyaCMlBIOZPA", "RequiredBatteryLevelForSoftwareUpdate", + "AJFQheZDyUbvI6RmBMT9Cg", "HasBaseband", + "AOIh1l3cIyDXlP4KB/084A", "iap2-protocol-supported", + "APeknA55ZAcu0FcufqVN4Q", "FaceTimePreferredDecoding", + "AQiIpW0UeYQKnhy2da7AXg", "EffectiveProductionStatusAp", + "AWEfP3xWh0q1MjO3JAy/AA", "CPUSubType", + "AX/UKxSHwm+OuFRIdvNAfg", "DeviceSupportsAutoLowLightVideo", + "Ah5yfSlY2yycIQb92HbmrA", "function-button_ringerab", + "Ai0zsJQ3+sTFkU6/lLbd5A", "opal", + "Aixt/MEN2O2B7f+8m4TxUA", "HasExtendedColorDisplay", + "AklmqJyJMChzHsYT0aiBbw", NULL, + "AoKnINTLPoKML3ctoP0AZg", "IOSurfaceFormatDictionary", + "AthxlkPBk46HtzM9AxK9vg", "explicitContentRestriction", + "AtmPEO/j+Pdr8+WKxv4Aaw", "DeviceEnclosureMaterial", + "BOPZue5C0v42pU9iJFYE3A", "location-reminders", + "BOYfUi496moe56A0RWFbqQ", "sensitive-ui", + "BQwz+BT9b5mS7OPh2WGD6A", "SecondaryEthernetMacAddress", + "BWoQXWXYITrPRpFyc9xTLw", "DeviceSupportsUSBTypeC", + "BYYil6kIk8Hm5lRuA1k8Tw", "prox-sensor", + "BhXj+5n3+0HcPoSArDGX7g", "EffectiveSecurityMode", + "Birtx7GxrxCCUzsE1JQO8Q", "LowPowerWalletMode", + "BoNz1QXiAEUgic9RdMVLIg", "FaceTimeEncodings", + "BstyjvaCtwqls0MfbkGTSg", NULL, + "CJcvxERO5v/3IWjDFKZKRw", "DeviceBackingColor", + "CK3I7fFGkgeqzKEhGew9rQ", "FaceTimeFrontCameraTemporalNoiseReductionMode", + "CN/XFuy/9Fdv0yE+28kwRQ", "cell-broadcast", + "CN64p1hw1JVdTHCfBdgPLQ", "BasebandStatus", + "CQ6gFmgMhpnnISvG6VakBQ", "MobileSubscriberCountryCode", + "ChBMzkxYdT9Xmw3QN5kMWA", "DeviceSupportsSimplisticRoadMesh", + "CnoPCMssOh+xPJJo6pvnog", NULL, + "CpVSHukvtqlJzCgSdoHW5w", "SBAllowSensitiveUI", + "CzGP5+8jQECJMH4h+z4TYA", "offline-dictation", + "D0cJ8r7U5zve6uA6QbOiLA", "ModelNumber", + "D3LeXyjrxDFYSi6pWFEL4A", NULL, + "D4AU4tOIuGKN3G/uix65cQ", "RegionalBehaviorAll", + "D6/BMDrlb8V3WSiqL8gL+w", "DeviceSupportsBatteryModuleAuthentication", + "D6PT05dEJ0f9Ayk7Yi92RA", "front-max-video-fps-1080p", + "DGBWzPMdVuqPxgH7iSz3SA", "3Gvenice", + "DIXX7JMbm7glu49f+xi4zQ", "live-effects", + "DViRIxZ/ZwO007CLcEYvZw", "SoftwareBundleVersion", + "DWrhyh1BwYypYmW5q78Wuw", "armv7", + "DcQNvnO5Uhpc1jjGIrzyng", "BatterySerialNumber", + "DdNpmCCXbeMGbqj0kAMCdw", "piezo-clicker", + "Djv9tHz6MLdTUDjnkq0obQ", "BasebandFirmwareUpdateInfo", + "DrSqlXYNVfYXCvAsuUrUDA", "DebugBoardRevision", + "DzLC4o1jZ4hWtP8aB6An6g", "SDIOManufacturerTuple", + "E2iZGHvwvi387UKi9wC2Mg", NULL, + "EImfMz+bzJrUkVQKyY6tEg", "BasebandSecurityInfoBlob", + "EJRyIpTkLz2+Lb6XWy10bQ", "panorama", + "ELLSWiPOyh0roYBypZFHFA", "magnetometer", + "ESA7FmyB3KbJFNBAsBejcg", "ui-pip", + "Eavu9TP+iZ0Lzlk7FU6w6Q", "ActiveWirelessTechnology", + "Ecx7M8v2wk05Fch3pFE/GA", NULL, + "EqrsVvjcYDdxHBiQmGhAWw", "apple-internal-install", + "ErupMbaQrM6KypD4K0kTDQ", "OpenGLESVersion", + "EuGnCiDhD1LBnMc96k/GQQ", NULL, + "Ex6ChutQnIx5Zm6c5uwYuw", NULL, + "ExSUJyf7MblY5nBQx2OaRw", "ScreenRecorderCapability", + "F1Xz9g1JORibBS9DYPUPrg", "BlueLightReductionSupported", + "F2M6lgy8EHCyR6hc00hMcg", "effective-security-mode", + "F6wqOqCR9tpYWyB1taxxnw", "board-id", + "FDsm68UVR7l3wErusGLgKg", "hw-snapshots-need-purplegfx", + "FNvQ6lBvJIUcYBzQ8ggOUQ", "SavageUID", + "FOs+LbLUs+TajsEE4xkbrw", "gas-gauge-battery", + "Fam17Ufz3CiHdZPcma0AeQ", "regulatory-model-number", + "FgjnMkPJPpI4C38dWETwtw", "flash", + "Fh2Ga0/Sj4T3Qn5Z9A9BMw", "DeviceSupports4k", + "Fhqq6Bhy/XnCEBRAe3TI+g", "SavageInfo", + "FkD7K642S082lnfw/ohHzg", "BasebandFirmwareManifestData", + "Fralg2R4+pkggafylKbVgw", NULL, + "FuR7SfqQmxpRW5MyqMm7FQ", "low-power-wallet-mode", + "FymLPtOEy6FdE7TmKeoTdg", "DeviceSupportsSingleCameraPortrait", + "GO5/TJivIXtQkTkFWkRc9A", "certificate-production-status", + "GdXjx1ixZYvN9Gg8iSf68A", "SupportsPerseus", + "Glo+aTkt0Uw31BghCxnsyQ", "BridgeRestoreVersion", + "GnhnHyRVCC8LUClgElhKXA", "effective-security-mode-ap", + "GvmsjQ/68T7do2CJxUhMig", NULL, + "GxXmRWHjsY5yAVhMfCH6Lg", "BridgeBuild", + "H+r3Nk8ByXIY9ub/M8broA", NULL, + "H5HW20mJr/djc40tAehkww", "BasebandKeyHashInformation", + "H5TSt7Pu4zNCD5RvHuk5CQ", "PhoneNumber", + "H8Pi7AthQFVZ0B6A1J5OTw", "photo-adjustments", + "H97G3GzDYb4wY5kwJ0AKfQ", "ForwardCameraCapability", + "HHF6YgqEQ9Kd7MBSVnLsgg", "DeviceSupportsAOP", + "HIaq6xVZ/V8B9pnigcvqCA", "DeviceSupports3DMaps", + "HMKkoKYsMmBBSN6ozOtw/w", "stand-alone-contacts", + "HMpTbnbcAb+mQDi8O71h6Q", "LynxPublicKey", + "HV7WDiidgMf7lwAu++Lk5w", "HasMesa", + "HXTqT3UXOKuTEklxz+wMAA", "BasebandAPTimeSync", + "HdWhWK8BN8j/O9k8/OHblQ", "supports-always-listening", + "HkXhfA7q9eBKIU2+6yTgQg", "screen-dimensions", + "HnHX0gXt8RvhMQzIVMM7hw", "FrontFacingCameraHDROnCapability", + "Ht1HDxwTOy2gyY+THjbd6w", "peer-peer", + "HxTvMvHnum5rI8d0Nr4xBw", "RegionalBehaviorVolumeLimit", + "HzddeW2/HtdBNAc5tsFtDg", "SecondaryBluetoothMacAddressData", + "I+ptihXW+rMeySVUWURNiw", NULL, + "I2IvpG8yJdNpvO4csuB9EA", NULL, + "I32sGclpgl5VujQRJxyhKQ", "IsUIBuild", + "I4TfkcdXWazwTr1al8Ml5w", "StrictWakeKeyboardCases", + "I6rd1SCXpRqBMDTPBbcWzA", NULL, + "I83EgnDEGxinSKU4QAykmA", "rear-max-video-frame_rate", + "IAJzgzhEVk3SMNuEhChs2w", "RemoteBluetoothAddressData", + "IBqcPacFMPIX8HMWob444A", "AirDropCapability", + "IFBSPGnQVFrGFW+ujtZu6Q", "RegionalBehaviorNTSC", + "IFHQSJ65DoElWQl/+eCfNQ", "fast-switch-options", + "IGYvMgBnOsdJjgmSh7Pe1A", "SEPNonce", + "IIYjwu1lbAyGz5t0c4ECoA", "MainDisplayRotation", + "ILaGO+KV5JAOq7Q5GEwbWQ", "AvailableDisplayZoomSizes", + "IMLaTlxS7ITtwfbRfPYWuA", "DeviceVariantGuess", + "IMlsLCL69XUZau9QyPnxeQ", "rear-slowmo", + "IUvPFaILUl3l0684dR0AlA", "front-max-video-zoom", + "Ini7+h7Q4ZZctfFM9+KTBw", "peek-ui-width", + "IweaHIDpz+rknAcb3+xg9g", "AggregateDeviceVideoZoomFactor", + "J/a5Y6rhDH0gVkYtWUylOA", NULL, + "J912s3mVzhReVtPv4HwqNQ", "FaceTimeCameraRequiresFastSwitchOptions", + "JLP/IinyzetEPztvoNUNKg", NULL, + "JOlwW/P8Cw3CDCoFunq8og", "platinum", + "JQr1mcESYcN648vrcZPJEA", "front-flash-capability", + "JUWcn+5Ss0nvr5w/jk4WEg", "device-name", + "JXmZWYUbLoumvz7hu/GL0A", "FaceTimeBackCameraTemporalNoiseReductionMode", + "JhEU414EIaDvAz8ki5DSqw", "DeviceEnclosureColor", + "Jq+xaurJgFzSwxOfTqtBGw", NULL, + "Js8HVdVGRs8m5v94pMjkRw", "enforce-googlemail", + "JwLB44/jEB8aFDpXQ16Tuw", "HomeButtonType", + "K0tZN4PayAx7RgB0M+oohw", "bitrate-lte", + "KGlZoljMyZQSxfhROj0IFg", "data-plan", + "KLB4sM/KC38QT+dTuDC/aA", "rear-burst", + "KMgjmT+dsqBCXu1YQEcOFg", "RegionalBehaviorValid", + "KN7t4gQkyj5X66dBpmh9HQ", "large-format-phone", + "KWr9OM2iqeLQEhaHS0UshQ", NULL, + "KXUnLpPZ6IZSE+As45CkhA", "SoftwareDimmingAlpha", + "Kq9K9xqDoUiUP7JEfg+pNw", "DeviceSupportsDoNotDisturbWhileDriving", + "KzUQgIyBRinkweVMNUCOWA", "ArcModuleSerialNumber", + "L+KOzmOzO5DiJUZl21QGVg", "StarkCapability", + "L2Oq7vNNUKuv+iJ4m9xtiw", "SIMTrayStatus", + "L47fh6KehOmR+AseqK2Xsw", "DeviceSupportsCCK", + "L5al7b+7JATD/izSJeH0aQ", "cellular-data", + "LAB8o3Bxs3CgNuzDawjRdw", "opengles-3", + "LBJfwOEzExRxzlAnSuI7eg", "InternalBuild", + "LE2kQ7U1iM32AmlhYvlagg", "SavageSerialNumber", + "LJ8aZhTg8lXUeVxHzT+hMw", "TimeSyncCapability", + "LWxSM4CmFZMwzYclSh43gg", "rear-hdr", + "LXP9TbNYtZrIKOktGXez2Q", "3d-maps", + "LcUv5nw5flxnHlxWu9sJvw", "NavajoFusingState", + "Lcu6Zck+C/+AMO8qULacDw", "DeviceSupportsToneMapping", + "LeSRsiLoJCMhjn6nd6GWbQ", "FirmwareVersion", + "Leuy56dCZmAMYoVCQGTfPA", "DeviceSupportsPeriodicALSUpdates", + "Lg1EJX11Jb7EbveB6+YgVQ", "720p", + "LkWb+FyA1+ef2UD1Fx+kAw", "RearFacingCameraHDROnCapability", + "Lrs7l5cKWJ1Gk5ZzgMAKyQ", "sandman-support", + "Lu6Mgo1O0+EoGMk1OtnMRg", "rear-max-video-fps-1080p", + "LvCIFE6lOM10QDqIEyYWRA", "PeekUICapability", + "M+WPVivF4iTnm1CC8c6h+A", NULL, + "M+eWZ6Zk/aJIsnIrv4zdAg", "unique-chip-id", + "MTa8c+pEdbK0tHGXP06xOw", "AllowYouTubePlugin", + "MW1p1oJH8nDJc6igOb8G4g", "IcefallInfo", + "MWJNrFKpHkBEm8jAdJf1xw", NULL, + "MWduuAGptrl7qIzWqBmOqQ", "AWDID", + "MWpHV1VYKXmaKqhgbmTWCg", "ptp-large-files", + "MXZ7vg7hul895QdsLUBJFA", "boot-manifest-hash", + "MYKMJDMFE/lhvOVXgtDNuw", NULL, + "Mgwtle8wzQEz/0vzBk47FQ", "DeviceSupportsLineIn", + "Mh+drGtyBfLYKN02sROzxg", "delay-sleep-for-headset-click", + "MjqwTHDneTCNeqhZ7vCvUw", "DeviceSupportsHiResBuildings", + "Mk4ZslaChmO+6s3h7L1w6Q", "DeviceSupports1080p", + "MulRZdIO3jyzkPar/CuDXA", "software-dimming-alpha", + "MvBKQ+GSnR3DjkovgNL+3w", "airplay-no-mirroring", + "MzxVeXMzucmEMx2lw8Pg1Q", "opposed-power-vol-buttons", + "N8lZxRgC7lfdRS3dRLn+Ag", NULL, + "ND6ZSbBBgMgwtMfh+OL5Wg", "HighestSupportedVideoMode", + "NJsxTSI2WuD+13rxShXX9w", "DeviceHousingColor", + "NPzjaX07XnS4KcMZ+l8ymA", "ExternalChargeCapability", + "NUYAz1eq3Flzt7ZQxXC/ng", NULL, + "NXJOYK7VhNn7ugbF2kx0zg", NULL, + "NaA/zJV7myg2w4YNmSe4yQ", "WifiChipset", + "Nhm02nvVOaQPimpOshlO1g", "FaceTimeBitRate2G", + "NkQOJZ1xdFk5SV55PFKlIg", "wlan", + "Nmhz54v5ZLqj2I4NPFIFqQ", "BasebandSerialNumber", + "NrXe/KHDNhJ4r2SC2bMQyA", "any-telephony", + "Nzu4E/VsXjEIa83CkRdZrQ", "Image4CryptoHashMethod", + "O8mk69g6k/CbfeET9LtqQA", "RosalineSerialNumber", + "OBqqs000I0SR+EbJ7VO8UQ", "HasSpringBoard", + "OPzhvROZUqCZhgYMyve5BA", "sms", + "OWLyWlUOIkl+eQB7Iq37xQ", "DesenseBuild", + "OWi11Urd09rDmPVy1z5dOQ", "CoverglassSerialNumber", + "Oji6HRoPi7rH7HPdWVakuw", "HasInternalSettingsBundle", + "OjzOua0LkOegX7pQdgMksw", "main-screen-height", + "OoFyZnd3oLS2Lw/KQTccGA", "SupportsTouchRemote", + "Ov9G2lRzQYbUyBYJ0KCMhA", NULL, + "OyENNqRhuo8+RHkpbr/82A", "RoswellChipID", + "P+UqVuzQzn3nwHSiSeDmyw", "live-photo-capture", + "P1djMN/L3B6otgGpO9WYkw", NULL, + "P6z8eNrRPcv0AcKPML0iow", "wi-fi", + "PLQ6xgfGji63NbFu+sjeYg", "WLANBkgScanCache", + "PNIwPfoxY6URyv3kSma5Aw", "wifi-antenna-sku-info", + "PNexcW/LBlPgAm+Skp2EAg", "EffectiveProductionStatusSEP", + "PQzmRjKVMistuIVsqs6QXA", "BasebandFirmwareVersion", + "PTQ+ABwag03BwO/CKvIK/A", "DeviceSupportsSiriSpeaks", + "PTfO3r9syJ45k+OItTlD3Q", "ui-no-procedural-wallpaper", + "PUMArrha4PFeOqINeQRM3A", "sim", + "PUY/n3uJEk8GSE+RjkHHAA", "video-cap", + "PcQWbThCb7iLEW+EoqZdEQ", "NandControllerUID", + "Po0s2Vf6g2ZqymKGNLFxeQ", "FaceTimeCameraSupportsHardwareFaceDetection", + "PpmzzBVLpZVubmP0tCIymg", "WirelessChargingCapability", + "PxEDp0oOasJ92F/V7YBa8A", "RawPanelSerialNumber", + "PxLTGkQx9GkeYcJKOaZguA", "video-stills", + "Q/BI7GKNZY13TpxbqA8nhQ", "rear-max-video-fps-720p", + "Q1Ty5w8gxMWHx3p4lQ1fhA", "MLBSerialNumber", + "Q2jR+AUT9PTHUrP/mkdfxQ", "NVRAMDictionary", + "Q4b8YIwPgnznT5hs4qXjaA", "rear-burst-image-duration", + "Q5QHkCRPRmiX3L/5xxKrRg", "BasebandCertId", + "QFnvO2shAYI+d4bj3qXuFQ", "DevicePrefersBuildingStrokes", + "QGmb9t2ZMFVwOImO6fewgQ", "all-features", + "QJSuJ2zhdxYX/7DUA2JtUw", "EffectiveSecurityModeSEP", + "QZgogo2DypSAZfkRW4dP/A", "InternationalMobileEquipmentIdentity", + "QbQzuIbef01P4JeoL9EmKg", NULL, + "QdL5XM6PGBrjvJ/k187Ueg", "IDAMCapability", + "Qq9/Mya05P4ToEr1pMpGGg", "BootManifestHash", + "QtLcewkuPtPV0RpO+i0Zzw", "MarketingVersion", + "RA3I5nhSK65i1ZxkRxQKfg", "HasThinBezel", + "RECLuzbJ6oh8q4NKR8RtNg", "multitasking", + "RLlZndRrTB3oIDuZEihtpQ", "RearFacingCameraAutoHDRCapability", + "RXyKSjeF239SL2vOcru01A", "MobileEquipmentInfoBaseVersion", + "RYO2N0gqp5hHCik2TEiSVA", "armv7s", + "RYZZuAFEfSNnEKEzwzRnqw", "photo-stream", + "RaX3KBmG7H9fUOEtLK/I6w", "stockholm", + "RgoxDxYGuZ0GzijFt6kSQQ", NULL, + "RrhB72r1de9N65EG4pgqJw", "tnr-mode-front", + "RyXm3yMC4ejlFvwlEI509w", "hearingaid-low-energy-audio", + "S5Bf9bF00BTHrySCydAkdg", "bitrate-2g", + "SCNOHu+KqRX0xhIlj5KXaA", NULL, + "SMgTCc2v9AU2ziIHRX8qww", "hearingaid-audio-equalization", + "SNfDJgQFV2Xj7+WnozcJPw", "main-screen-scale", + "SR/QIL//glHfqoE+lOAnbA", "SupportsBurninMitigation", + "SjED0v6tcI1c4fqvuUYAqQ", "EffectiveProductionStatus", + "SmUPjD77AHIMCLny9nawdw", "ConfigNumber", + "Sr1Bmb3uoIfgKyaZguG0Gw", "front-max-video-fps-4k", + "SvI9oDkzw4XJFd+dKen/2Q", "DeviceVariant", + "T9MMpvl0fu59PO8lXi/Cxg", "effective-production-status", + "TDM8SEI14n2KE9PGHO0a4A", NULL, + "TF31PAB6aO8KAbPyNKSxKA", "UniqueChipID", + "TTZrMo1OOEUELa7asaQ7xg", "RearFacingCameraHDRCapability", + "TXZxlSojLMQyLqusm9aa/g", "DeviceEnclosureRGBColor", + "TZ/0j62wM3D0CuRt+Nc/Lw", "ProductHash", + "ToJGxfcjkIerYyeL2e8c4A", "BasebandBoardSnum", + "TqrlqJOZiAuRx8Qu3SVr+Q", "SecondaryWifiMacAddressData", + "Tr9qG122eEQiKGfr6EGRdQ", "RegionalBehaviorEUVolumeLimit", + "TucF/tpjeAln1I0f3g0K3w", "does-not-support-gamekit", + "Ty5/C8UDfdjcdR853kulmA", "FrontFacingCameraBurstCapability", + "U+73bmG4kBGj6kpreQXUTQ", "DeviceSupportsAlwaysListening", + "U1fcnNYCEu9uH1bg3/6PKQ", "image4-supported", + "UCG5MkVahJxG1YULbbd5Bg", NULL, + "UCLOC2TKe3vRkId34ubKWw", "AmbientLightSensorSerialNumber", + "UF3CoK9RCYXfTyzttoxNDQ", "enc-top-type", + "UFqkf9tcH1ltsOMzpdwSUw", "multitasking-gestures", + "UHwjAM1cqBLCR1OuYouf8A", "PhotoSharingCapability", + "UYZtXbMcIyMRZQ9pjDxRvA", "ui-weather-quality", + "UZyrJHlX635ocWEjBkt9YA", "UIProceduralWallpaperCapability", + "UcRWpMcvJDfLzn6utLj3XQ", "ApNonceRetrieve", + "V2Ykm/0M3CA6nyNhwNInsg", "64-bit", + "V5QFNbWGgrw+UZPvgIbDvQ", "ASTC", + "V9pLLbPQhyb75bbdTioZVw", NULL, + "VG9TCKNqNLCHk0J6zTkuVQ", "EthernetMacAddress", + "VHTcx7WQq0V7YgGKZisRWA", "FDRSealingStatus", + "VLfT+eziZYKNjRASM6ntnQ", "FirmwareNonce", + "VasUgeSzVyHdB27g2XpN0g", "SerialNumber", + "VrWzQGQK9Fbp/RqeQ08VzA", "car-integration", + "W5kTfIuxkKpHVdWTk42C9A", "n78a-mode", + "W7MyZ3Yxoy1qD6FrI0mLUQ", "RF-exposure-separation-distance", + "WC6wwFV23k19BlUQIAwDTg", "RearFacingCameraMaxVideoZoomFactor", + "WPEkba78QeFFU/wgqpOx6w", "UserIntentPhysicalButtonNormalizedCGRect", + "WbcphnnzI6Yb5r/AzwiyUA", "mix-n-match-prevention-status", + "Wr2SycNVQwBrdup3ok+LxQ", "SpeakerCalibrationSpTS", + "X9NA3D+PguwY0i0Uffl07Q", "camera-rear", + "XACgWnmwo1t6swUPu+/UUQ", NULL, + "XEoV4os3FAUL7yHDxWmSMw", "AppStore", + "XEp4h49dagkYL6YrtjW1Kw", "wifi-module-sn", + "XEzIXVPlevxuEIpZrMY+8A", "Skey", + "XFtUsQP3AyqT4CazSb5VCw", "DeviceSupportsCarIntegration", + "XFx5cRZ0tJYl+xJUCEgjnQ", NULL, + "XI87Zkcr5j1B/p2dom/B6A", "AWDLCapability", + "XIcF5FOyQlt/H79oFw9ciA", NULL, + "XKpK5v7PGzbe7igjloNBpQ", "closed-loop", + "XQBHOWjPt2P+uNqlLm1P7A", "BasebandClass", + "XSLlJd/8sMyXO0qtvvUTBQ", "bluetooth", + "Xa9nxhMDoHTdmrn/FufA3g", "WatchSupportsListeningOnGesture", + "XellXEQUbOIgUPoTrIj5nA", NULL, + "XkfGVYlrkBQJgaGabHESJQ", "DeviceSupportsDClr", + "XmExwNGRvYTII6QC0+jvsA", "MaximumScreenScale", + "XrPbSCNx9X7Lyw9oGPgMDQ", "WirelessBoardSnum", + "XriAxQ+JY1z5nt5f3ftXVw", "DeviceSupportsCameraHaptics", + "XxnEk9uiIk5vCdbWEGt7lA", NULL, + "XyppJjhSQE2982ZYgXlh2g", NULL, + "Y2TwC8z+XeBBBswnLf7JsQ", "PeekUIWidth", + "Y2Y67z0Nq/XdDXgW2EeaVg", "FMFAllowed", + "YH5LeF090QGZQTvT76qcBg", NULL, + "YUobJKXH3+ukrUe13TXL3Q", "BasebandPostponementStatusBlob", + "YVNo6vlMjhgQ9yGYV8gatw", "PanelSerialNumber", + "YcNAX0Gc6KejQPKSrA9kvg", "front-burst", + "YdPNjYPBzyE0jJl2X/CayQ", "RotateToWakeStatus", + "Yk5H+MlMreeaBLjv6PPFDw", "camera-front", + "YlK+0xmxNWhNn/+r8SM8kA", "DeviceSupportsStereoAudioRecording", + "YzrS+WPEMqyh/FBv/n/jvA", NULL, + "Z/TJS0IaLyq10dcSvUTGPg", "DieId", + "Z/dqyWS6OZTRy10UcmUAhw", "marketing-name", + "Z3gOHeppbL6+rblIe8H5Ag", "BasebandRegionSKURadioTechnology", + "ZApuwHXWV8RCz0iVzMnqLw", "telephony", + "ZEF0po63sTgpVrc9Ce7YNQ", "DMin", + "ZEU7pCEskBhjQ4AOMuALDw", NULL, + "ZYqko/XM5zD3XBfN5RmaXA", NULL, + "ZeGw3VKUymUAbp4noKsxoQ", "FrontFacingCameraMaxVideoZoomFactor", + "ZeeiT4Cdn8HNANoqroPEAA", "SiriOfflineCapability", + "ZepchaN1K8XQJaBUMMlV5w", "iAP2Capability", + "ZgIjA7Nwd2jSo13lhDO1Iw", "RegionalBehaviorShutterClick", + "ZiSlYxYSkyaYImU3lrSXWw", "gps", + "Zmd7xYUw9EutGXifzpvfsA", NULL, + "a/mex6YNO6gJ8N8SxAA71A", "DeviceSupportsCrudeProx", + "a13V9f9x26JcQCfczZAVAw", "ui-traffic-cheap-shaders", + "a5BRUxn1QBPXkAnbAHbmeg", "SigningFuse", + "a6vjPkzcRjrsXmniFsm0dg", "ShouldHactivate", + "aCQx2Qq/TChnNAq1rr6Egw", "DeviceSupportsAlwaysOnCompass", + "aCuWsar9Ayou7Vfkh7fdLw", "front-slowmo", + "aH78kNnsHDm9yHe6vSJYNw", "builtin-mics", + "aHrkhDFY/f2ophZ5/MqX0w", "face-detection-support", + "aIJva0DAnD6KdrSpPF11xQ", "s8003\")", + "aNZeCyuWxI6SE/KwZ129wA", "name", + "aOq/O8u9f/bpWUnKco+xgA", "EthernetMacAddressData", + "aoAKcHLuTUp/o3squcJkhA", "CompassCalibrationDictionary", + "atOCpGf+lHCxgJ9GElef8Q", "SEInfo", + "awim/yUQvLyTrKsoKhg2bA", "DeviceSupportsELabel", + "b/KizANb5o/dWqSP2GC23g", "public-key-accelerator", + "b/k0ZT2f/WGV2qJSyPJHoQ", "config-number", + "b2BKAEe88VRfp2WXEjJOyA", "SIMStatus2", + "b5K3g59Aj+Cc982n9FQv8A", "display-rotation", + "bUJD9zcOcitJwFA0ieIkxA", "DeviceBackGlassMaterial", + "bbyFCcrPE+k6ZXIVbXSFUw", NULL, + "bhPjDx/0UDk9mzia6ksZ+A", "nike-support", + "bl+nF6e86pLBiPP4pVJ24g", "PhotoCapability", + "bwLsbkp4shhHuNB5VpRa8w", "YonkersUID", + "bxQyyA/qJ3QQXTiHBsW2eg", NULL, + "byGRtH44VNik9CzN/QKLCw", "nfc", + "bysMryc4yLwQjKvUQGGXXQ", "DevicePrefersProceduralAntiAliasing", + "c5uqoV7Z9ly+f4c5mYXILg", "OfflineDictationCapability", + "c7fCSBIbX1mFaRoKT5zTIw", "WifiVendor", + "cBy4BcYs5YWtFHbBpt4C6A", "DeviceSupportsHaptics", + "cHla4KIe1wv0OvpRVrzy/w", "hide-non-default-apps", + "cRjPy4Ef+KZwJ+nfPeBV5Q", "DeviceSupportsSwimmingWorkouts", + "cWWKdUn+rIclZ60ZGAVhBw", NULL, + "cX1+ZsVacGTXWVKB9enYow", "shoebox", + "cZflGJ39lJHTCPy35/N14Q", NULL, + "ce5pjDJVSOxjcg1HwmAezA", "opengles-2", + "cganRwxlDnONJx4WeDI0kQ", "firmware-version", + "cm399FbDqnv8IOFoeBLWYg", NULL, + "cmkS/KVB6ubxH76sLbumbw", "rear-max-slomo-video-fps-1080p", + "ct5Dh6u0D6WDJKg2PrMFVQ", "FaceTimePreferredEncoding", + "cux58RcuSiBhpxWnT3pE4A", NULL, + "d27R2IjPvpwp+MX/kUbJ2w", "PintoMacAddress", + "diS7AlmwFZz6NyF7CY97sA", NULL, + "dp7SlZZQotrh8McQoH1xFA", "rear-facing-camera", + "drPpRw0Jmqcxv1XQPn/q/Q", NULL, + "e+pTfaabi1k1kfdk2vl1Kw", NULL, + "e9aZViEIJ/riA4pRfg1ihg", "device-color-policy", + "eH9J8yYIjbRNxg2EeYvNFg", "UIBackgroundQuality", + "eKgHzGQ9HnWdPKX7W16OAg", "ui-reachability", + "eLfYx8jpSlim2NZFIonPzA", "WifiCallingSecondaryDeviceCapability", + "eNgz35a7iZnVeEMwsBQZew", "BasebandChipId", + "eQd5mlz0BN0amTp/2ccMoA", "SupportsForceTouch", + "eXCYx/SHTZIn5LInWvZByw", "call-waiting", + "eZS2J+wspyGxqNYZeZ/sbA", "WifiAddressData", + "ebyBs0j3KAquBsgcfrNZIg", "CellularTelephonyCapability", + "edlvEg0UXOGErRDpk7O5Fg", "calibration", + "ee9YfVjjsbVte45bYSt4Wg", "DeviceSupportsNavigation", + "eg8KDO//lXaLwp+URGP6DA", "CertificateSecurityMode", + "emXA9B552rnSoI7xXE91DA", NULL, + "eu8pUYR7yo+AlS9aojlgwg", "DeviceSupports4G", + "euampscYbKXqj/bSaHD0QA", NULL, + "evtY5EeJ8V0nFhmrj/OYjg", "NFCUniqueChipID", + "f+PE44W6AO2UENJk3p2s5A", "SupportsLowPowerMode", + "f2DlVMUVcV+MeWs/g2ku+g", "BatteryCurrentCapacity", + "f8peylp799CJta4Ev/vz8A", "hiccough-interval", + "fAwIjGT2efY3MHaGNHbCeQ", "modelIdentifier", + "fGpT09KNGDBjFXnqcVbgbw", "RearFacingCameraHFRCapability", + "fJZs6N8SqTS4RuQVh3szxA", "camera-front-flash", + "fW9C1U4C1FR8bwe1VqEWug", "full-6", + "fdh+s6j3VijuyrK7xLjd7g", "main-screen-class", + "fh6DnnDGDVZ5kZ9nYn/GrQ", "hdr-image-capture", + "fkWvcjYnYzGRhVKiBoYzgA", "HasPKA", + "fqNtLlgbYfa9gSNrhg7VGQ", "encode-aac", + "frZQaeyWLUvLjeuEK43hmg", "InverseDeviceID", + "fuKL2rMywRgQF1wowOA/cg", "DeviceBrand", + "fucd7llSuoCNHrrvLS1QQg", "watch-companion", + "fv8ZXM/NhUHQBQqCSk19cA", "FrontFacingCameraAutoHDRCapability", + "fxnMXVRwuznDzWhoDCxb2A", NULL, + "g+9NpjmSVwtomd8nyNJimg", "armv6", + "g/MkWm2Ac6+TLNBgtBGxsg", "HEVCEncodingCapability", + "g1gP4TOlkv84ezeaZrUgFg", "thin-bezel", + "g5LBi+DCiP5+jUnWVL7Y9w", NULL, + "g7YQ1Djxh4YiKlEeaoGhzg", "main-screen-width", + "g7vU4YF+9Z+wkSvw/Cm8Dg", "CoreRoutineCapability", + "g7yZjVHqRxbfXOqns+Sm9w", "front-hdr", + "gBw7IWiBnLHaA+lBrZBgWw", "CameraMaxBurstLength", + "gD8SNRcHQeIxCAvsp+2vjA", "WSKU", + "gI6iODv8MZuiP0IA+efJCw", "WifiAddress", + "gKzNJcweSCWA+gIGiUQJ5w", "mms", + "gPoIZFd4NhmSKrk67qH80w", "SBCanForceDebuggingInfo", + "gQDt76Te0SPw7N8oTLrBFw", "DeviceSupportsCameraCaptureOnTouchDown", + "ghpAuGJlPoauWijdtPi7sQ", "UserAssignedDeviceName", + "gk8sn5Vi0s088gEvssfbOg", "front-hdr-on", + "gnQwi8RnEeMG9qBe3IUKrg", "DeviceCoverGlassMaterial", + "gq0j1GmcIcaD4DjJoo9pfg", NULL, + "gqDnklGQnpv5ilgh5uHckw", "DeviceSupportsClosedLoopHaptics", + "grEfqkFsEkgnJH1nl9sodw", "effective-production-status-sep", + "gukw/2mRLE2GyqXJFEu7ng", "rear-hdr-on", + "guykxGaRwHdenUK8fJRl8w", "gamekit", + "h0OUwg53vKp+IPdzLG4NrA", "mesa", + "h63QSdBCiT/z0WU6rdQv6Q", "RegionCode", + "h8xonkkn/NzDMvvCXLw8cQ", "FaceTimeBitRateWiFi", + "h9jDsbgj7xIVeIQ8S3/X3Q", "ProductType", + "hK/qlAUuu8u6SvIRkKmjQQ", "gps-capable", + "hLzlRnTuKAcQLWtNwCFSfg", "nfcWithRadio", + "hOkus/A6lBEF6Ar3jV7LrQ", "DeviceSupportsRGB10", + "heP+NTlvkhJ2zzWIUznawA", "MobileEquipmentInfoBaseProfile", + "hewg+QX1h57eGJGphdCong", NULL, + "hfs43coKE3iWlCwnqPgBpg", "IceFallID", + "hh/NoWpEoq1VF4lGDdPUpw", "role", + "hhRNi2d3z2WEFmU+xG/EXw", NULL, + "hiHut/WR+B9Lx/vd0WyeNg", "wapi", + "htWSrEg/cfn3squdzvER/w", NULL, + "hwd9ipb6eezNleN59+6n1Q", "metal", + "hx2qJfJRLZ9Sseb37IcQow", "ringer-switch", + "hykQtM0zkNe2/IY69+3PPQ", "ApNonce", + "i8+iwUtLtB5jT+WNvqwrEA", "encrypted-data-partition", + "iBLsDETxB4ATmspGucaJyg", "IsLargeFormatPhone", + "iFOX66VmcijipO3YRc+AXg", "display-mirroring", + "iaegRQa4jNGOuTA6hnZmcQ", "DeviceCoverMaterial", + "ibhfX8FQ6b809N632Ey98g", NULL, + "iifCuJmggYlB4hLzc0Zoiw", "rear-max-slomo-video-fps-720p", + "ik8OQ5JoYhyK8AoTx29MuA", NULL, + "inECTnNyR97XWxm7jU8uqA", "MobileEquipmentInfoBaseId", + "inLiSl5OQHJ1stAIvKH8wg", "RegionalBehaviorGB18030", + "is3zjHrEdiF6J/boqghy9A", NULL, + "ivIu8YTDnBSrYv/SN4G8Ag", "ProductName", + "iyfxmLogGVIaH7aEgqwcIA", "green-tea", + "izFv/qj3IUhqAIiEuYH6xw", "MusicStore", + "j1pdCAYnpIEYMqIAitm3JA", "DeviceSupportsCinnamon", + "j4dedPnpeXouudM1+j3dsQ", "IntegratedCircuitCardIdentifier", + "j9Th5smJpdztHwc+i39zIg", "MarketingProductName", + "jBGZJ71pRJrqD8VZ6Tk2VQ", NULL, + "jJ+5tnncQBcHo5T26MI5jA", "debug-board-revision", + "jKFTzVOYcfTfNBh+yDrprw", NULL, + "jMiqevikb6QWeHOhvLsw6A", NULL, + "jPfKgbKUk+Vl6s7DaotqIA", NULL, + "jSDzacs4RYWnWxn142UBLQ", "BluetoothAddressData", + "jWdMTTxiAZc+KNO6Bz2jNg", "MesaSerialNumber", + "jdLgKT+0BZmGrzd9J0cuPA", "camera-flash", + "jewva1LRTg17HDPWdj+TLw", NULL, + "jgE7MmmkZAG0BiWVqD7bMQ", "BatteryIsFullyCharged", + "ji56BO1mUeT7Qg9RO7Er9w", "DeviceSupportsASTC", + "jkr5aFPOh/d6zTzNKYthBw", NULL, + "jw9WzWmThYzveJbsV+GZMA", "sika-support", + "jxx29Cq5bGHDnkcha4y/Rw", "SpeakerCalibrationMiGa", + "jyEyRLza0L3StNXgFUCoTw", NULL, + "k+KTni1jrwErpcDMEnn3aw", "MobileDeviceMinimumVersion", + "k5lVWbXuiZHLA17KGiVUAA", "BluetoothAddress", + "k7QIBwZJJOVw+Sej/8h8VA", "CPUArchitecture", + "kKgJsWN/rBUAkimOtm/wbA", "arm64", + "kMHGt7N4hx12NopZFcIz6Q", NULL, + "kQ8nm82jb5iTBUwT2M3aIQ", NULL, + "kWVFqaGBc3nOGmfM+ZpoEg", "tv-out-settings", + "kc+QzHP4Frf2NvP+mclQ2A", "wifi-chipset", + "kjKnJNt7HY90iN6rpbSeFQ", "RegionalBehaviorNoWiFi", + "kkSkHTEei96N1ZehicOgoA", NULL, + "knoZzQDWpu6OQWS7wgRWLg", "rear-max-video-zoom", + "kt7gXeIiU0dLEKrgUSsLVw", "opengles-1", + "kyszW/uUGJFTVNQwFaf6og", "DeviceSupportsEnhancedAC3", + "kyxFFGn+VS4L9a/bsvm19Q", "Image4Supported", + "l/n0Z7pMB8k0GyTKz3v3Tw", "AirplaneMode", + "lHMDJnC58naUz2rOCJyVIw", "IntegratedCircuitCardIdentifier2", + "lM8BH5myz/qFGeIYnsiEoQ", NULL, + "lMKshPs7fX9YxDSOEXnoiw", "effective-security-mode-sep", + "lR7sjp4tOz3cMWoEMlZrLA", NULL, + "lSpe1QHIya0aeNrjLTtaJA", "hidpi", + "lUryPpLkvlffpEKiNnEchA", "slow-letterpress-rendering", + "lY6RKv6ri6kfBeJCWilmmQ", "front-burst-image-duration", + "ld2eewXs5StVwdRtwYT8sw", NULL, + "lo3szoQ4sLy7o3+ZD0GcAQ", "ambient-light-sensor", + "lvmEUCUwik8sO0yGU1rBOA", "rear-max-video-fps-4k", + "lwHRTZNO5Jq87pVlzdNGIA", "DeviceSupports720p", + "m+FD6mX8VZzP95hOhM+jow", "hw-encode-snapshots", + "m4UsCAgXhbdnwLebiyKMiw", "UIReachability", + "m9ORTKMgu9A+zF+A61Zz5A", NULL, + "m9OWD0Y4Br0TZHUl6rGcOg", "SavageChipID", + "mAAbkChrX3bpxPIffHG1BQ", "front-facing-camera", + "mG0AnH/Vy1veoqoLRAIgTA", NULL, + "mVenV0u+B3ShrqRddinaFQ", "homescreen-wallpaper", + "mY5R+ZIWxy5BDEEZTeWlHQ", "WatchSupportsSiriCommute", + "mZfUC7qo4pURNhyMHZ62RQ", "BuildVersion", + "meLhyIpGgxiQoFZD/OGPcQ", "CompassType", + "meicxSe0OZJaae1hEiOV5Q", "SpeakerCalibrationSpGa", + "mm4/5+X4Z+eStXyipfwWVQ", "rear-cam-telephoto-capability", + "mmu76v66k1dAtghToInT8g", "UIParallaxCapability", + "mtHZd1H8XJ2DMVtNVUSkag", "wifi", + "mtrAoWJ3gsq+I90ZnQ0vQw", "DeviceClassNumber", + "mug/QuG6jZ3CYR9p7OWQaw", NULL, + "mumHZHMLEfAuTkkd28fHlQ", "DeviceColor", + "n/G0fQIQiom+pb4tHA4Mmw", "device-colors", + "n/aVhqpGjESEbIjvJbEHKg", "SphereCapability", + "nAl8QWlApaJQkipRf38fdg", "DeviceSupportsNewton", + "nFRqKto/RuQAV1P+0/qkBA", "UniqueDeviceIDData", + "nK4D+jDUuTGFFwRFPC2lWg", "DeviceSupportsFloorCounting", + "nSo8opze5rFk+EdBoR6tBw", "RestrictedCountryCodes", + "nVh/gwNpy7Jv1NOk00CMrw", "MedusaPIPCapability", + "nWFV2qG2TjSuH7vZFCdi4w", "RearFacingCameraModuleSerialNumber", + "nZUUCFZgomfWUIPGGzNAqg", "SecureElementID", + "na6PSBfq05lkAfWkwAwaGg", "ExternalPowerSourceConnected", + "na77zbwlhy0V7shc4ORRgA", "post-effects", + "nmOy2K5HzAAs2QNAi8wR+Q", "SupportsRotateToWake", + "noqTy5fUbyK03UHxWigBBQ", "OLEDDisplay", + "nteaxwXwZWYUI9z46VDRnA", "video-camera", + "nudr7/i2XcxAX6widrWShg", "certificate-security-mode", + "nv4RoLkNoPT0/rsO8Yaiew", "still-camera", + "o/mXrucvBSYUXqq7K3UzKA", "IsThereEnoughBatteryLevelForSoftwareUpdate", + "o0axLo6LGt8HbuEWdLZ92Q", "auto-focus-camera", + "o60T6wXe1DDaO4a4gw10TA", "TristarID", + "oBbtJ8x+s1q0OkaiocPuog", "MainScreenStaticInfo", + "oJGeec0N+MudCr0LsdtbHw", "MobileSubscriberNetworkCode", + "oLjiDs+BWEdMVbjE0x6cnw", "DeviceSupportsStudioLightPortraitPreview", + "oPeik/9e8lQWMszEjbPzng", "ArtworkTraits", + "oTuH4/axV9s11/jKxB2z2A", "ui-no-parallax", + "ohnQBWkVQf2nu9Vr/9uLug", "DeviceSupports3DImagery", + "ol92SaBpqIvQs+KBljuwGA", "kConferenceCallType", + "oxH8p7+EaUzhkc2edrXsQQ", "aggregate-cam-photo-zoom", + "pB5sZVvnp+QjZQtt2KfQvA", "BasebandChipset", + "pCbWB0w5vhsKbGJHs/c1jQ", "youtube", + "pLzf7OiX5nWAPUMj7BfI4Q", "SupportsIrisCapture", + "pMeQxE5szZTjLMk10TisDQ", NULL, + "pQzfsK0Ado+nkNFgPRIA8Q", "DeviceSupportsLivePhotoAuto", + "pX2TxZTxWKS7QSXZDC/Z6A", "HasBattery", + "paR6NqTecAD44x45kzV87g", "AudioPlaybackCapability", + "pdFo85PUvIiT4FjAT6Amcw", "baseband-chipset", + "plaYa8bKJaAF5Erc5nvZ+g", "RearFacingCameraBurstCapability", + "po7g0ATDzGoVI1DO8ISmuw", NULL, + "pxqIJ789zCoOILWO6cQ52Q", "no-simplistic-road-mesh", + "q4cLktMwtrx8dCJAQTeqTg", "PanoramaCameraCapability", + "q69vauqK9djnPlEZBFBV4A", "DeviceSupportsSiDP", + "qHVhw5NhezD+ljFUPvQb4g", "nike-ipod", + "qNNddlUK+B/YlooNoymwgA", "ProductVersion", + "qOwiNS0eFEq9oi3MNsgxWg", "FirmwarePreflightInfo", + "qWG594bTi87edQCSYxlLeA", "EUICCChipID", + "qWGVjnlN/wWMhlWgfNcSBg", "DeviceSupports9Pin", + "qb//mYg6KeTmjv8w4ZAMIg", "CompassCalibration", + "qlcdNkarcGLcbW3HvBhwaA", "FrontFacingCameraModuleSerialNumber", + "qwXfFvH5jPXPxrny0XuGtQ", "BuildID", + "r/++Z94rbTcHrTtZ/rCU4w", "s8000\")", + "r5QUsvvgcb2Qmuflua13fQ", NULL, + "r5pA2qLgR86BQKwgMjPWzg", "LynxSerialNumber", + "rJkMAGeVLdhP5+10G5hVcA", NULL, + "re6Zb+zwFKJNlkQTUeT+/w", "UniqueDeviceID", + "rkFHO5dZmWxy3QdOx7r7kA", "MobileEquipmentInfoCSN", + "rkqlwPcRHwixY4gapPjanw", "DeviceName", + "rxUlSnmihTL8oDg9Hrgq/A", "MixAndMatchPrevention", + "s+gaKNe68Gs3PfqKrZhi1w", "MonarchLowEndHardware", + "s2UwZpwDQcywU3de47/ilw", "microphone", + "sFTm4FEVKVfdZ0ChdwQY1g", "WifiAntennaSKUVersion", + "sHiXbHqHvvRS3I/qo/rH2Q", "SIMTrayStatus2", + "sJ0n0UZHSUVJbmyy2p54Cw", "unified-ipod", + "sJmYs82RucA1MWX5jHFSjA", "DeviceSupportsWebkit", + "sLe8lqXRlqZM74MNUoVcyQ", "BatteryIsCharging", + "sYxZdpH3i8nwjZNet0QuAw", "fcm-type", + "sigsyX/a/CpMjoZnrgwIgg", NULL, + "spGVujDEmyCzDznXozB3oA", "apn", + "ssIPnsZyWHPGC5sg3Pzkiw", "SiKACapability", + "tOLVnZop4m/g5/iuC7zlUw", "effective-production-status-ap", + "tUIqcYyzHuWBvBQHsLk8IQ", "international-settings", + "tYqUcLmLfhmk7vOgdFvURg", "sim-phonebook", + "tad3RCjcWdkyLSVI8kUBtA", "caller-id", + "tdUWKiiM7JdctnzQuvaVVA", "c2k-device", + "tuwdHA2NDGnLajCo5K3UUA", "voice-control", + "u3c0R+31Df4SUTHrICQkTg", "hearingaid-power-reduction", + "uAIY4Jb2A7Fy2aLrlDU1gg", "RemoteBluetoothAddress", + "uB6I2WImAHd8DEGuqYcMbw", "WifiFirmwareVersion", + "uKc7FPnEO++lVhHWHFlGbQ", "ipad", + "uO3aPe7lfB1XxSiz/1xBvA", "CertificateProductionStatus", + "ueuuYQk48HGWm/cJlHq/Dw", "fcc-logos-via-software", + "uksZ8eaKeV5sUpLNBPafww", "FrontCameraOffsetFromDisplayCenter", + "ulMliLomP737aAOJ/w/evA", "IsSimulator", + "ulPs+OBjapRJaJ6Ech3OFA", "h264-encoder", + "uyejyEdaxNWSRQQwHmXz1A", "DiskUsage", + "v/BP9Nx/zfo9bKi9JR2p+g", "3d-imagery", + "v2Q3tLoD4+o/XazHC/0FyA", "DeviceSupportsYCbCr10", + "v5YVEwERRin1v+reUNjJ5w", "ComputerName", + "v9YZN998zL0OLA3q6SpPQA", "HasIcefall", + "vENa/R1xAXLobl8r3PBL6w", "EffectiveSecurityModeAp", + "vIccod02kDxScKF5s2h6OA", "BasebandUniqueId", + "vaiFeAcMTIDXMSxTr8JwCw", "BasebandPostponementStatus", + "vl45ziHlkqzh1Yt6+M9vBA", "displayport", + "vmZuX/fdqt3gKhonHYLyUw", "aggregate-cam-video-zoom", + "voS/bmBAz0Y1eNLoN8x9/Q", NULL, + "vwZ4ohiPF3w3M1jzHbP30g", NULL, + "wAbB2fAjUqUc6lNBelfWMA", NULL, + "wBVgxg3VYUU5gawcgq7MXg", "SupportedKeyboards", + "wH7fRq4TDdYG2pN1KDQW/A", NULL, + "wNdWl5xfBJmJGNWJr5t0zA", NULL, + "wOVK1nhmiAawowdbIwgyaQ", NULL, + "waWRQ4fj6cyMuJ+wTWJs1g", "RearCameraOffsetFromDisplayCenter", + "whbsdxpLirBFgUbLH3+0JA", NULL, + "wlxZYdEZITDTzgs/OnnV+Q", "personal-hotspot", + "wtUF1NceYeLT6IHovZvocw", "DeviceSubBrand", + "xDg5n/9rR2cMhp7MK0irBA", "healthkit", + "xJUG7IKySthRrPcxII184g", "enforce-shutter-click", + "xOEH0P1H/1jmYe2t54+5cQ", "MobileEquipmentIdentifier", + "xOJfWykLmQCc8lKlzMlrLA", "assistant", + "xRyzf9zFE/ycr/wJPweZvQ", "InternationalMobileEquipmentIdentity2", + "xSh3mf5+Zuoz6xhxEah0zQ", "DeviceSupportsTethering", + "xU1eZLRifcixnyDzjo52DQ", "tv-out-crossfade", + "xUHcyT2/HE8oi/4LaOI+Sw", "PartitionType", + "xXBT4e92qXwQo3SYmACj3w", "die-id", + "xYu8vn4nnbLnNTbBe0FT+w", "WAGraphicQuality", + "xZm4Ky2/qswyf7ykvlchYg", "CPUType", + "xbNo7dj2oAnz92JhEOn9tw", "DevicePrefers3DBuildingStrokes", + "xleedMDMw0UV3fSgmHIoaQ", "kSimultaneousCallAndDataCurrentlySupported", + "xsaMbRQ5rQ+eyKMKG+ZSSg", "PasswordConfigured", + "xunfK8NYNCS75N2z2buKWQ", "FaceTimeBitRateLTE", + "y0jtYciPmcx3ywPM582WZw", "ContinuityCapability", + "y5dppxx/LzxoNuW+iIKR3g", "DeviceCornerRadius", + "yMmSdMRKEHRTCQ72ltCH1w", "airplay-mirroring", + "yNesiJuidlesNpI/K5Ri4A", "PasswordProtected", + "yPSUYPhrVLHnvX0TUugiwg", "rear-auto-hdr", + "yRZv0s7Dpj8ZBk0S+0+nMA", "contains-cellular-radio", + "yUCaqT4KOwJpYEb+XDPq7g", "SIMStatus", + "yZf3GTRMGTuwSV/lD7Cagw", "DeviceSupportsTapToWake", + "ybGkijAwLTwevankfVzsDQ", "MainScreenCanvasSizes", + "yeQy+rgNoD7+YIY6mSVOhg", NULL, + "yeaE9+OrN2WJlWkDroMtZg", "bitrate-wifi", + "yhHcB0iH0d1XzPO/CFd3ow", "DeviceSupportsApplePencil", + "yl8qmYPdAhFLeDBho10sdQ", "FaceTimeDecodings", + "z+5gEULGC7aEYopBd4ggpA", NULL, + "z5G/N9jcMdgPm8UegLwbKg", "IsEmulatedDevice", + "zDBaE8nqtDP8hY4pOa6iMw", "t7000\")", + "zHeENZu+wbg7PUprwNwBWg", "RegionInfo", + "zJUWenIp94snlzBD1cub3g", "function-button_halleffect", + "zP3kBA1Biwz2d6PTIIbmUQ", "ActivationProtocol", + "zPHFWx4ZItDiTXNT2onrWQ", "MobileEquipmentInfoDisplayCSN", + "zPSNnYDFk+x5ebOtenb3Eg", "auto-focus", + "znvmheFkjr6hiqIK9TrCVw", "pressure", + "zxMIgVSILN6S5ee6MZhf+Q", "NFCRadio", + NULL, NULL +}; diff --git a/GestaltDump/Info.plist b/GestaltDump/Info.plist new file mode 100644 index 0000000..16be3b6 --- /dev/null +++ b/GestaltDump/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/GestaltDump/ViewController.h b/GestaltDump/ViewController.h new file mode 100644 index 0000000..84b61c0 --- /dev/null +++ b/GestaltDump/ViewController.h @@ -0,0 +1,13 @@ +// +// ViewController.h +// GestaltDump +// +// Created by Ortwin Gentz on 26.11.18. +// Copyright © 2018 FutureTap GmbH. All rights reserved. +// + +#import + +@interface ViewController : UIViewController +@end + diff --git a/GestaltDump/ViewController.m b/GestaltDump/ViewController.m new file mode 100644 index 0000000..e17982c --- /dev/null +++ b/GestaltDump/ViewController.m @@ -0,0 +1,38 @@ +// +// ViewController.m +// GestaltDump +// +// Created by Ortwin Gentz on 26.11.18. +// Copyright © 2018 FutureTap GmbH. All rights reserved. +// + +#import "ViewController.h" +#import "GestaltKeys.h" + +CFPropertyListRef MGCopyAnswer(CFStringRef property); + +@interface ViewController () +@property (weak, nonatomic) IBOutlet UITextView *textView; +@end + +@implementation ViewController + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + + NSUInteger i = 0; + struct tKeyMapping element; + + do { + element = keyMappingTable[i]; + if (element.key) { + NSString *key = [NSString stringWithUTF8String:element.key]; + id result = (__bridge id)MGCopyAnswer((__bridge CFStringRef)key); + NSLog(@"%@: %@", key, result); + self.textView.text = [self.textView.text stringByAppendingFormat:@"%@: %@\n", key, result]; + } + i++; + } while (element.obfuscatedKey != nil); +} + +@end diff --git a/GestaltDump/main.m b/GestaltDump/main.m new file mode 100644 index 0000000..0ffb5a8 --- /dev/null +++ b/GestaltDump/main.m @@ -0,0 +1,16 @@ +// +// main.m +// GestaltDump +// +// Created by Ortwin Gentz on 26.11.18. +// Copyright © 2018 FutureTap GmbH. All rights reserved. +// + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/README.md b/README.md index 24b165c..c5739a8 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # GestaltDump -Dumps all iOS MobileGestalt values + +I read Alexandre's fascinating article on [deobfuscating libMobileGestalt](https://blog.timac.org/2018/1126-deobfuscated-libmobilegestalt-keys-ios-12/) keys and started experimenting. + +This is a small app that logs all keys with their associated values. \ No newline at end of file