├── .gitignore ├── AppIcon.png ├── Intents ├── CancelBackup.swift ├── GetBackupProgress.swift ├── GetBackupState.swift ├── GetRingerState.swift ├── Lock.swift ├── Reboot.swift ├── Respring.swift ├── SetAutoBrightness.swift ├── SetAutoLock.swift ├── SetLocationServices.swift ├── SetRingerState.swift ├── StartBackup.swift ├── StartLocationSimulation.swift ├── StopLocationSimulation.swift ├── SwitchAppsRegistration.swift └── UserspaceReboot.swift ├── PrivateFrameworks ├── BaseBoard.framework │ └── BaseBoard.tbd ├── BoardServices.framework │ └── BoardServices.tbd ├── FrontBoardServices.framework │ └── FrontBoardServices.tbd ├── GraphicsServices.framework │ └── GraphicsServices.tbd ├── ManagedConfiguration.framework │ └── ManagedConfiguration.tbd ├── MobileBackup.framework │ └── MobileBackup.tbd └── MobileContainerManager.framework │ └── MobileContainerManager.tbd ├── README.md ├── Shared ├── CoreServices.h ├── Intents │ └── Enum.swift ├── PrivateHeader.h ├── TCUtil.h ├── TCUtil.m ├── TSUtil.h ├── TSUtil.m ├── locsim.h ├── locsim.m ├── userspaceReboot.c └── userspaceReboot.h ├── TrollCuts-Bridging-Header.h ├── TrollCuts.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── ca.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── ca.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── TrollCuts ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── AppIcon.png │ │ └── Contents.json │ └── Contents.json ├── ContentView.swift ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json └── TrollCutsApp.swift ├── entitlements.plist └── ipabuild.sh /.gitignore: -------------------------------------------------------------------------------- 1 | build -------------------------------------------------------------------------------- /AppIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udevsharold/TrollCuts/e4452c86cf375c0529533210e5830ff1f4868c60/AppIcon.png -------------------------------------------------------------------------------- /Intents/CancelBackup.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct CancelBackupAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Cancel Backup" 7 | 8 | static let description = IntentDescription( 9 | "Cancel iCloud backup.", 10 | categoryName: "Utility", 11 | searchKeywords: [ 12 | "icloud", 13 | ] 14 | ) 15 | 16 | func perform() async throws -> some IntentResult { 17 | let handle = dlopen(FW_MobileBackup, RTLD_LAZY) 18 | if handle != nil { 19 | let mbManager = MBManager() 20 | mbManager.cancel() 21 | dlclose(handle) 22 | } else { 23 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_MobileBackup)] ) 24 | } 25 | return .result() 26 | } 27 | } -------------------------------------------------------------------------------- /Intents/GetBackupProgress.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct GetBackupProgressAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Get Backup Progress" 7 | 8 | static let description = IntentDescription( 9 | "Get iCloud backup progress.", 10 | categoryName: "Utility", 11 | searchKeywords: [ 12 | "icloud" 13 | ] 14 | ) 15 | 16 | func perform() async throws -> some IntentResult & ReturnsValue { 17 | let handle = dlopen(FW_MobileBackup, RTLD_LAZY) 18 | var progress: Double = -1.0 19 | if handle != nil { 20 | let mbManager = MBManager() 21 | progress = Double(mbManager.backupState().progress) 22 | dlclose(handle) 23 | } else { 24 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_MobileBackup)] ) 25 | } 26 | return .result(value: progress) 27 | } 28 | } -------------------------------------------------------------------------------- /Intents/GetBackupState.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct GetBackupStateAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Get Backup State" 7 | 8 | static let description = IntentDescription( 9 | "Get iCloud backup state.", 10 | categoryName: "Utility", 11 | searchKeywords: [ 12 | "icloud" 13 | ] 14 | ) 15 | 16 | func perform() async throws -> some IntentResult & ReturnsValue { 17 | let handle = dlopen(FW_MobileBackup, RTLD_LAZY) 18 | var state = -1 19 | if handle != nil { 20 | let mbManager = MBManager() 21 | state = Int(mbManager.backupState().state) 22 | dlclose(handle) 23 | } else { 24 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_MobileBackup)] ) 25 | } 26 | return .result(value: state) 27 | } 28 | } -------------------------------------------------------------------------------- /Intents/GetRingerState.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct GetRingerStateAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Get Ringer State" 7 | 8 | static let description = IntentDescription( 9 | "Get ringer switch state.", 10 | categoryName: "Utility", 11 | searchKeywords: [ 12 | "sound", 13 | "ringtone", 14 | "mute" 15 | ] 16 | ) 17 | 18 | func perform() async throws -> some IntentResult & ReturnsValue { 19 | let state = getRingerState() 20 | return .result(value: Int(state)) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Intents/Lock.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct LockAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Lock" 7 | 8 | static let description = IntentDescription( 9 | "Lock device.", 10 | categoryName: "Device" 11 | ) 12 | 13 | func perform() async throws -> some IntentResult { 14 | let handle = dlopen(FW_ManagedConfiguration, RTLD_LAZY) 15 | if handle != nil { 16 | MCProfileConnection.shared().lockDevice() 17 | dlclose(handle) 18 | } else { 19 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_ManagedConfiguration)] ) 20 | } 21 | return .result() 22 | } 23 | } -------------------------------------------------------------------------------- /Intents/Reboot.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct RebootAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Reboot" 7 | 8 | static let description = IntentDescription( 9 | "Reboot device.", 10 | categoryName: "Device" 11 | ) 12 | 13 | func perform() async throws -> some IntentResult { 14 | let handle = dlopen(FW_FrontBoardServices, RTLD_LAZY) 15 | if handle != nil { 16 | FBSSystemService.shared().reboot() 17 | dlclose(handle) 18 | } else { 19 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_FrontBoardServices)] ) 20 | } 21 | return .result() 22 | } 23 | } -------------------------------------------------------------------------------- /Intents/Respring.swift: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct RespringAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Respring" 7 | 8 | static let description = IntentDescription( 9 | "Respring device.", 10 | categoryName: "Device" 11 | ) 12 | 13 | func perform() async throws -> some IntentResult { 14 | let background = DispatchQueue.global() 15 | background.async { 16 | respring() 17 | } 18 | return .result() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intents/SetAutoBrightness.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct SetAutoBrightnessAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Set Auto Brightness" 7 | 8 | static let description = IntentDescription( 9 | "Set display auto brightness.", 10 | categoryName: "Utility", 11 | searchKeywords: [ 12 | "screen", 13 | "display", 14 | "autobrightness" 15 | ] 16 | ) 17 | 18 | @Parameter(title: "State", default: .on) 19 | var state: SwitchStateAppEnum 20 | 21 | static var parameterSummary: some ParameterSummary { 22 | Summary("Set Auto Brightness \(\.$state)") 23 | } 24 | 25 | func perform() async throws -> some IntentResult { 26 | let handle = dlopen(FW_GraphicsServices, RTLD_LAZY) 27 | if handle != nil { 28 | CFPreferencesSetAppValue("BKEnableALS" as CFString, state.rawValue == "on" ? kCFBooleanTrue : kCFBooleanFalse , "com.apple.backboardd" as CFString); 29 | CFPreferencesAppSynchronize("com.apple.backboardd" as CFString); 30 | GSSendAppPreferencesChanged("com.apple.backboardd" as CFString, "BKEnableALS" as CFString); 31 | } else { 32 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_GraphicsServices)] ) 33 | } 34 | return .result() 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Intents/SetAutoLock.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct SetAutoLockAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Set Auto-Lock" 7 | 8 | static let description = IntentDescription( 9 | "Set display auto-lock duration.", 10 | categoryName: "Utility", 11 | searchKeywords: [ 12 | "screen", 13 | "display", 14 | "autolock" 15 | ] 16 | ) 17 | 18 | @Parameter(title: "Duration", default: .halfsec) 19 | var duration: AutoLockDurationAppEnum 20 | 21 | static var parameterSummary: some ParameterSummary { 22 | Summary("Set Auto-Lock to \(\.$duration)") 23 | } 24 | 25 | func perform() async throws -> some IntentResult { 26 | let handle = dlopen(FW_ManagedConfiguration, RTLD_LAZY) 27 | var value: Int32 = 0 28 | if handle != nil { 29 | switch duration { 30 | case .halfsec: 31 | value = 30 32 | case .onemin: 33 | value = 60 34 | case .twomin: 35 | value = 120 36 | case .threemin: 37 | value = 180 38 | case .fourmin: 39 | value = 240 40 | case .fivemin: 41 | value = 300 42 | case .never: 43 | value = Int32.max 44 | } 45 | MCProfileConnection.shared().setValue(NSNumber(value: value), forSetting: "maxInactivity") 46 | dlclose(handle) 47 | } else { 48 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_ManagedConfiguration)] ) 49 | } 50 | return .result() 51 | } 52 | } 53 | 54 | enum AutoLockDurationAppEnum: String, AppEnum { 55 | case halfsec 56 | case onemin 57 | case twomin 58 | case threemin 59 | case fourmin 60 | case fivemin 61 | case never 62 | 63 | static let typeDisplayRepresentation: TypeDisplayRepresentation = "Auto-Lock Duration" 64 | 65 | static let caseDisplayRepresentations: [Self: DisplayRepresentation] = [ 66 | .halfsec: "30 seconds", 67 | .onemin: "1 minute", 68 | .twomin: "2 minutes", 69 | .threemin: "3 minutes", 70 | .fourmin: "4 minutes", 71 | .fivemin: "5 minutes", 72 | .never: "Never" 73 | 74 | ] 75 | } -------------------------------------------------------------------------------- /Intents/SetLocationServices.swift: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct SetLocationServicesAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Set Location Services" 7 | 8 | static let description = IntentDescription( 9 | "Set location services status.", 10 | categoryName: "Location", 11 | searchKeywords: [ 12 | "gps", 13 | ] 14 | ) 15 | 16 | @Parameter(title: "State", default: .on) 17 | var state: SwitchStateAppEnum 18 | 19 | static var parameterSummary: some ParameterSummary { 20 | Summary("Set location services \(\.$state)") 21 | } 22 | 23 | func perform() async throws -> some IntentResult { 24 | let handle = dlopen(FW_CoreLocation, RTLD_LAZY) 25 | if handle != nil { 26 | CLLocationManager.setLocationServicesEnabled(state.rawValue == "on") 27 | dlclose(handle) 28 | } else { 29 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_CoreLocation)] ) 30 | } 31 | return .result() 32 | } 33 | } -------------------------------------------------------------------------------- /Intents/SetRingerState.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct SetRingerStateAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Set Ringer" 7 | 8 | static let description = IntentDescription( 9 | "Set ringer switch state programmatically.", 10 | categoryName: "Utility", 11 | searchKeywords: [ 12 | "sound", 13 | "ringtone", 14 | "mute" 15 | ] 16 | ) 17 | 18 | @Parameter(title: "State", default: .on) 19 | var state: SwitchStateAppEnum 20 | 21 | static var parameterSummary: some ParameterSummary { 22 | Summary("Set Ringer \(\.$state)") 23 | } 24 | 25 | func perform() async throws -> some IntentResult & ReturnsValue { 26 | let ret = setRingerState(state.rawValue == "on" ? 1 : 0) 27 | return .result(value: Int(ret)) 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Intents/StartBackup.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct StartBackupAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Start Backup" 7 | 8 | static let description = IntentDescription( 9 | "Start iCloud backup.", 10 | categoryName: "Utility", 11 | searchKeywords: [ 12 | "icloud" 13 | ] 14 | ) 15 | 16 | func perform() async throws -> some IntentResult & ReturnsValue { 17 | let handle = dlopen(FW_MobileBackup, RTLD_LAZY) 18 | var isSuccess = false 19 | if handle != nil { 20 | let mbManager = MBManager() 21 | if mbManager.isBackupEnabled() { 22 | isSuccess = mbManager.startBackupWithError(nil) 23 | } 24 | dlclose(handle) 25 | } else { 26 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_MobileBackup)] ) 27 | } 28 | return .result(value: isSuccess) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Intents/StartLocationSimulation.swift: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct StartLocationSimulationAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Start Location Simulation" 7 | 8 | static let description = IntentDescription( 9 | "Simulate GPS location to specified coordinate.", 10 | categoryName: "Location", 11 | searchKeywords: [ 12 | "gps", 13 | "locsim", 14 | "simulate" 15 | ] 16 | ) 17 | 18 | @Parameter(title: "Coordinate") 19 | var coordinate: String 20 | 21 | @Parameter(title: "Altitude", default: 0.0) 22 | var alt: Double 23 | 24 | @Parameter(title: "Horizontal Accuracy", default: 0.0) 25 | var ha: Double 26 | 27 | @Parameter(title: "Vertical Accuracy", default: 0.0) 28 | var va: Double 29 | 30 | static var parameterSummary: some ParameterSummary { 31 | Summary("Set location to \(\.$coordinate)"){ 32 | \.$alt 33 | \.$ha 34 | \.$va 35 | } 36 | } 37 | 38 | func perform() async throws -> some IntentResult { 39 | let handle = dlopen(FW_CoreLocation, RTLD_LAZY) 40 | if handle != nil { 41 | // Don't need to tell me how much I suck in swift, I knows 42 | let coor = parseCoorString(coordinate).compactMap({ $0 as? Double }) 43 | if coor == nil { 44 | throw NSError(domain: "TrollCuts", code: 1, userInfo: [NSLocalizedDescriptionKey: "Unable to parse coordinate input" ]) 45 | } 46 | let ret = startLocSim(coor[0], coor[1], alt, ha, va) 47 | dlclose(handle) 48 | if ret != 0 { 49 | throw NSError(domain: "TrollCuts", code: 1, userInfo: [NSLocalizedDescriptionKey: String(format: "Invalid coordinate: %d, %d", coor[0], coor[1])] ) 50 | } 51 | } else { 52 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_CoreLocation)] ) 53 | } 54 | return .result() 55 | } 56 | } -------------------------------------------------------------------------------- /Intents/StopLocationSimulation.swift: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct StopLocationSimulationAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Stop Location Simulation" 7 | 8 | static let description = IntentDescription( 9 | "Stop simulating GPS location.", 10 | categoryName: "Location", 11 | searchKeywords: [ 12 | "gps", 13 | "locsim", 14 | "simulate" 15 | ] 16 | ) 17 | 18 | // @Parameter(title: "Force", default: false) 19 | // var force: Bool 20 | 21 | func perform() async throws -> some IntentResult { 22 | let handle = dlopen(FW_CoreLocation, RTLD_LAZY) 23 | if handle != nil { 24 | stopLocSim(false) 25 | dlclose(handle) 26 | } else { 27 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: String(format: "Failed to load %@", FW_CoreLocation)] ) 28 | } 29 | return .result() 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Intents/SwitchAppsRegistration.swift: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct SwitchAppsRegistrationAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Switch Apps Registration State" 7 | 8 | static let description = IntentDescription( 9 | "Switch all TrollStore installed apps registration state.", 10 | categoryName: "TrollStore", 11 | searchKeywords: [ 12 | "trollstore", 13 | "system", 14 | "user", 15 | "registration" 16 | ] 17 | ) 18 | 19 | @Parameter(title: "State", default: .system) 20 | var state: AppRegistrationStateAppEnum 21 | 22 | @Parameter( 23 | title: "Ignore TrollCuts", 24 | default: true 25 | ) 26 | var ignoreSelf: Bool 27 | 28 | static var parameterSummary: some ParameterSummary { 29 | Summary("Set Apps State to \(\.$state)"){ 30 | \.$ignoreSelf 31 | } 32 | } 33 | 34 | func perform() async throws -> some IntentResult { 35 | if trollStorePath() != nil { 36 | switchAllAppsRegistration(state.rawValue.capitalized, ignoreSelf ? ["TrollCuts.app"]: nil) 37 | } else { 38 | throw NSError(domain: "TrollCuts", code: 99, userInfo: [NSLocalizedDescriptionKey: "TrollStore not installed."] ) 39 | } 40 | return .result() 41 | } 42 | } 43 | 44 | enum AppRegistrationStateAppEnum: String, AppEnum { 45 | case system 46 | case user 47 | 48 | static let typeDisplayRepresentation: TypeDisplayRepresentation = "App Registration State" 49 | 50 | static let caseDisplayRepresentations: [Self: DisplayRepresentation] = [ 51 | .system: "System", 52 | .user: "User" 53 | ] 54 | } -------------------------------------------------------------------------------- /Intents/UserspaceReboot.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import AppIntents 4 | 5 | struct UserspaceRebootAppIntent: AppIntent { 6 | static let title: LocalizedStringResource = "Userspace Reboot" 7 | 8 | static let description = IntentDescription( 9 | "Userspace reboot device.", 10 | categoryName: "Device" 11 | ) 12 | 13 | func perform() async throws -> some IntentResult{ 14 | userspaceReboot() 15 | return .result() 16 | } 17 | } -------------------------------------------------------------------------------- /PrivateFrameworks/BaseBoard.framework/BaseBoard.tbd: -------------------------------------------------------------------------------- 1 | --- !tapi-tbd-v3 2 | archs: [ armv7, armv7s, arm64, arm64e ] 3 | platform: ios 4 | flags: [ flat_namespace ] 5 | install-name: /System/Library/PrivateFrameworks/BaseBoard.framework/BaseBoard 6 | current-version: 0 7 | compatibility-version: 1 8 | objc-constraint: retain_release 9 | exports: 10 | - archs: [ armv7, armv7s, arm64, arm64e ] 11 | symbols: [ _BSAbsoluteTimeFromMachTime, 12 | _BSActionClearResponseListenerWithToken, 13 | _BSActionCreateResponseListenerWithHandler, 14 | _BSActionErrorDomain, 15 | _BSActionNotifyResponseListenerOfResponse, 16 | _BSAffineTransformFromValue, 17 | _BSAppendVersionedPIDToStringAppendTarget, 18 | _BSAtomicGetFlag, _BSAtomicSetFlag, 19 | _BSAuditTokenForCurrentProcess, _BSAuditTokenForTask, 20 | _BSAuditTokenFromMachMessage, _BSAuditTokenIsValid, 21 | _BSAuditTokenRepresentsPlatformBinary, 22 | _BSAuditTokenTaskCopyEntitlementValue, 23 | _BSAuditTokenTaskHasEntitlement, 24 | _BSBaseBoardVersionNumber, _BSBaseBoardVersionString, 25 | _BSBundleIDForAuditToken, 26 | _BSBundleIDForExecutablePath, _BSBundleIDForPID, 27 | _BSBundleIDForXPCConnection, 28 | _BSBundlePathForAuditToken, 29 | _BSBundlePathForExecutablePath, _BSBundlePathForPID, 30 | _BSCGFloatEpsilon, _BSCollectionCompactMap, 31 | _BSCollectionFilter, _BSCollectionFind, 32 | _BSCollectionMap, _BSCollectionReduce, 33 | _BSCompareBuildVersions, _BSCompareFloats, 34 | _BSCompareIntegers, _BSCompareSizes, 35 | _BSConvertPointFromOrientationToOrientation, 36 | _BSConvertRectFromOrientationToOrientation, 37 | _BSCopyDeviceTreeProperty, 38 | _BSCreateDeserializedArrayFromXPCDictionaryWithKey, 39 | _BSCreateDeserializedArrayOfBSXPCEncodableObjectsFromXPCDictionaryWithKey, 40 | _BSCreateDeserializedBSXPCEncodableObjectFromXPCDictionary, 41 | _BSCreateDeserializedBSXPCEncodableObjectFromXPCDictionaryWithKey, 42 | _BSCreateDeserializedCFValueFromXPCDictionaryWithKey, 43 | _BSCreateDeserializedDataFromXPCDictionaryWithKey, 44 | _BSCreateDeserializedIOSurfaceFromXPCDictionaryWithKey, 45 | _BSCreateDeserializedNSSecureEncodableObjectOfClassFromXPCDictionaryWithKey, 46 | _BSCreateDeserializedSetFromXPCDictionaryWithKey, 47 | _BSCreateDeserializedSetOfBSXPCEncodableObjectsFromXPCDictionaryWithKey, 48 | _BSCreateDeserializedStringFromXPCDictionaryWithKey, 49 | _BSCreateMIGServerSource, 50 | _BSCreateMIGServerSourceWithContext, 51 | _BSCreateSerializedBSXPCEncodableObject, 52 | _BSCreateSerializedXPCObjectFromCGPoint, 53 | _BSCreateSerializedXPCObjectFromCGRect, 54 | _BSCreateSerializedXPCObjectFromCGSize, 55 | _BSCurrentUserDirectory, _BSDateAtStartOfDay, 56 | _BSDateTimeCacheChangedNotification, 57 | _BSDegreesToRadians, 58 | _BSDeserializeArrayOfBSXPCEncodableObjectsFromXPCDictionaryWithKey, 59 | _BSDeserializeBSXPCEncodableObjectFromXPCDictionary, 60 | _BSDeserializeBSXPCEncodableObjectFromXPCDictionaryWithKey, 61 | _BSDeserializeCFValueFromXPCDictionaryWithKey, 62 | _BSDeserializeCGFloatFromXPCDictionaryWithKey, 63 | _BSDeserializeCGPointFromXPCDictionaryWithKey, 64 | _BSDeserializeCGPointFromXPCObject, 65 | _BSDeserializeCGRectFromXPCDictionaryWithKey, 66 | _BSDeserializeCGRectFromXPCObject, 67 | _BSDeserializeCGSizeFromXPCDictionaryWithKey, 68 | _BSDeserializeCGSizeFromXPCObject, 69 | _BSDeserializeDataFromXPCDictionaryWithKey, 70 | _BSDeserializeDoubleFromXPCDictionaryWithKey, 71 | _BSDeserializeNSSecureEncodableObjectOfClassFromXPCDictionaryWithKey, 72 | _BSDeserializeSetOfBSXPCEncodableObjectsFromXPCDictionaryWithKey, 73 | _BSDeserializeStringFromXPCDictionaryWithKey, 74 | _BSDeviceOrientationDescription, 75 | _BSDispatchBlockCreateWithCurrentQualityOfService, 76 | _BSDispatchBlockCreateWithQualityOfService, 77 | _BSDispatchMain, _BSDispatchQueueAssert, 78 | _BSDispatchQueueAssertBarrier, 79 | _BSDispatchQueueAssertMain, 80 | _BSDispatchQueueAssertNot, 81 | _BSDispatchQueueAssertNotMain, 82 | _BSDispatchQueueCreate, _BSDispatchQueueCreateSerial, 83 | _BSDispatchQueueCreateSerialWithFixedPriority, 84 | _BSDispatchQueueCreateSerialWithQoS, 85 | _BSDispatchQueueCreateWithAttributes, 86 | _BSDispatchQueueCreateWithFixedPriority, 87 | _BSDispatchQueueCreateWithFixedPriorityAndSchedulingPolicy, 88 | _BSDispatchQueueCreateWithQualityOfService, 89 | _BSDispatchQueueName, 90 | _BSDispatchTimeDeltaForInterval, 91 | _BSDispatchTimeForIntervalFromNow, 92 | _BSDispatchTimeFromTimeInterval, 93 | _BSDispatchTimeIntervalMax, _BSEUIDForAuditToken, 94 | _BSEarlierDate, _BSEnsureDirectoryExistsAtPath, 95 | _BSEqualArrays, _BSEqualAuditTokens, _BSEqualBools, 96 | _BSEqualDictionaries, _BSEqualDoubles, _BSEqualObjects, 97 | _BSEqualProcessAuditTokens, _BSEqualSets, 98 | _BSEqualStrings, _BSErrorCodeDescriptionKey, 99 | _BSExecutablePathForAuditToken, 100 | _BSExecutablePathForPID, 101 | _BSFloatApproximatelyEqualToFloat, 102 | _BSFloatByLinearlyInterpolatingFloats, 103 | _BSFloatCeilForScale, _BSFloatEqualToFloat, 104 | _BSFloatFloorForScale, _BSFloatGreaterThanFloat, 105 | _BSFloatGreaterThanOrEqualToFloat, _BSFloatIsOne, 106 | _BSFloatIsZero, _BSFloatLessThanFloat, 107 | _BSFloatLessThanOrEqualToFloat, _BSFloatPowerOf2Ceil, 108 | _BSFloatRoundForScale, _BSFormattedTimeFromSeconds, 109 | _BSGetContextForCalloutCurrentMIGServerSource, 110 | _BSGetDeviceType, _BSGetMachPortForMIGServerSource, 111 | _BSGetVersionedPID, _BSHasInternalSettings, 112 | _BSIntegerMapAllKeys, 113 | _BSIntegerMapContainsObjectForKey, 114 | _BSIntegerMapCount, 115 | _BSIntegerMapEnumerateKeysWithBlock, 116 | _BSIntegerMapEnumerateWithBlock, 117 | _BSIntegerMapObjectForKey, 118 | _BSIntegerMapRemoveAllObjects, 119 | _BSIntegerMapRemoveObjectForKey, 120 | _BSIntegerMapSetObjectForKey, _BSIntegralTransform, 121 | _BSInterfaceOrientationDescription, 122 | _BSInterfaceOrientationIsLandscape, 123 | _BSInterfaceOrientationIsPortrait, 124 | _BSInterfaceOrientationIsValid, 125 | _BSInterfaceOrientationMaskDescription, 126 | _BSIntervalClip, _BSIntervalFractionForValue, 127 | _BSIntervalInterpolate, _BSIntervalMap, _BSIntervalMax, 128 | _BSIntervalMin, _BSIntervalOrder, 129 | _BSIntervalRadialUnit, 130 | _BSIntervalSubIntervalFractionForValue, 131 | _BSIntervalSubIntervalValueForValue, _BSIntervalUnit, 132 | _BSIntervalValueForFraction, _BSIntervalZero, 133 | _BSInvalidAuditToken, _BSInvalidAuditTokenFieldValue, 134 | _BSIsBeingDebugged, _BSIsInternalInstall, 135 | _BSIsSymbolicLinkAtPath, _BSLaterDate, 136 | _BSLogAddStateCaptureBlockForUserRequestsOnlyWithTitle, 137 | _BSLogAddStateCaptureBlockWithTitle, _BSLogCommon, 138 | _BSLogGetAllRegisteredStateCaptureBlocks, 139 | _BSLogMachPort, _BSLogPowerMonitor, _BSLogSharedMemory, 140 | _BSLogStateCaptureCheckPlistSizeIsPermitted, 141 | _BSLogStateCaptureEncodePlist, 142 | _BSLogStateCaptureMaximumDataSize, 143 | _BSLogTransactionAuditHistory, _BSLoggingSubsystem, 144 | _BSMachAbsoluteTime, _BSMachCreateReceiveRight, 145 | _BSMachCreateSendRight, _BSMachPortIsType, 146 | _BSMachPortIsUsable, _BSMachReceiveRightRelease, 147 | _BSMachSendRightRelease, _BSMachSendRightRetain, 148 | _BSMessageType, _BSModificationDateForPath, 149 | _BSNSStringFromCGAffineTransform, 150 | _BSNSStringFromCGPoint, _BSNSStringFromCGRect, 151 | _BSNSStringFromCGSize, _BSNSStringFromCGVector, 152 | _BSObjCSizeForTypeEncoding, 153 | _BSOrientationRotationDirectionDescription, 154 | _BSPIDExists, _BSPIDForAuditToken, 155 | _BSPIDForXPCConnection, _BSPIDIsBeingDebugged, 156 | _BSPIDIsExiting, _BSPIDIsExtension, 157 | _BSPathExistsOnSystemPartition, 158 | _BSPathForCurrentUserDirectory, 159 | _BSPathForSystemDirectory, 160 | _BSPointByLinearlyInterpolatingPoints, 161 | _BSPointEqualToPoint, _BSPointFromValue, 162 | _BSPointRoundForScale, _BSPrettyFunctionName, 163 | _BSProcessDescriptionForAuditToken, 164 | _BSProcessDescriptionForPID, 165 | _BSProcessGenerateDiagnosticReport, 166 | _BSProcessHasSandbox, _BSProcessNameForPID, 167 | _BSPthreadAttrSetFixedPriority, _BSPthreadCreate, 168 | _BSPthreadCurrentEffectiveQualityOfService, 169 | _BSPthreadFixPriority, _BSPthreadGetCurrentPriority, 170 | _BSPthreadGetName, _BSPthreadGetPriority, 171 | _BSPthreadSetFixedPriority, _BSPthreadSetName, 172 | _BSRadiansFromAffineTransform, _BSRadiansToDegrees, 173 | _BSRectByLinearlyInterpolatingRects, 174 | _BSRectEqualToRect, _BSRectFromValue, _BSRectGetCenter, 175 | _BSRectRoundForScale, _BSRectUnit, _BSRectWithSize, 176 | _BSRunLoopPerformAfterCACommit, 177 | _BSRunLoopPerformRelativeToCACommit, 178 | _BSSandboxCanAccessMachService, 179 | _BSSandboxCanAccessPath, 180 | _BSSandboxCanGetMachTaskName, 181 | _BSSandboxCanGetProcessInfo, 182 | _BSSecTaskCopyEntitlementValue, 183 | _BSSecTaskHasEntitlement, _BSSecureDecodeOfTypes, 184 | _BSSelfTaskHasEntitlement, 185 | _BSSerializeArrayOfBSXPCEncodableObjectsToXPCDictionaryWithKey, 186 | _BSSerializeArrayToXPCDictionaryWithKey, 187 | _BSSerializeBSXPCEncodableObjectToXPCDictionary, 188 | _BSSerializeBSXPCEncodableObjectToXPCDictionaryWithKey, 189 | _BSSerializeCFValueToXPCDictionaryWithKey, 190 | _BSSerializeCGFloatToXPCDictionaryWithKey, 191 | _BSSerializeCGPointToXPCDictionaryWithKey, 192 | _BSSerializeCGRectToXPCDictionaryWithKey, 193 | _BSSerializeCGSizeToXPCDictionaryWithKey, 194 | _BSSerializeDataToXPCDictionaryWithKey, 195 | _BSSerializeDoubleToXPCDictionaryWithKey, 196 | _BSSerializeIOSurfaceToXPCDictionaryWithKey, 197 | _BSSerializeNSSecureEncodableObjectToXPCDictionaryWithKey, 198 | _BSSerializeSetOfBSXPCEncodableObjectsToXPCDictionaryWithKey, 199 | _BSSerializeSetToXPCDictionaryWithKey, 200 | _BSSerializeStringToXPCDictionaryWithKey, 201 | _BSSetMainThreadPriorityFixedForUI, 202 | _BSSettingFlagDescription, _BSSettingFlagForBool, 203 | _BSSettingFlagIfYes, _BSSettingFlagIsExplicitNo, 204 | _BSSettingFlagIsYes, _BSShmDelete, _BSShmLoad, 205 | _BSShmStore, _BSSizeCeilForScale, _BSSizeEqualToSize, 206 | _BSSizeFromValue, _BSSizeGreaterThanOrEqualToSize, 207 | _BSSizeLessThanSize, _BSSizeRoundForScale, 208 | _BSSqliteDatabaseConnectionClosing, 209 | _BSStackFrameInfoForAddresss, _BSStringFromBOOL, 210 | _BSStringFromCGPoint, _BSStringFromCGRect, 211 | _BSStringFromCGSize, _BSSystemHasCapability, 212 | _BSSystemRootDirectory, 213 | _BSSystemSharedDirectoryForCurrentProcess, 214 | _BSSystemSharedDirectoryForIdentifier, 215 | _BSSystemSharedResourcesDirectory, 216 | _BSSystemSharedResourcesDirectoryForCurrentProcess, 217 | _BSSystemSharedResourcesDirectoryForIdentifier, 218 | _BSTemporaryFileAtPath, _BSTimeIntervalForCPUTicks, 219 | _BSTimeIntervalFromMachTimeValue, 220 | _BSTimeUntilNextClockMinute, _BSTimerIntervalMax, 221 | _BSTimerIntervalMin, _BSTimerRepeatIntervalNone, 222 | _BSTransactionCompletedNotification, 223 | _BSTransactionErrorDescriptionKey, 224 | _BSTransactionErrorDomain, 225 | _BSTransactionErrorPrecipitatingErrorKey, 226 | _BSTransactionErrorReasonChildTransaction, 227 | _BSTransactionErrorReasonKey, 228 | _BSTransactionErrorReasonParentTransaction, 229 | _BSTransactionErrorReasonTimeout, 230 | _BSTransactionErrorTransactionKey, 231 | _BSUIApplicationLaunchJobLabelPrefix, 232 | _BSValueWithAffineTransform, _BSValueWithPoint, 233 | _BSValueWithRect, _BSValueWithSize, 234 | _BSVersionedPIDForAuditToken, 235 | _BSXPCBundleForBundlePath, 236 | _BSXPCBundleForExecutablePath, _BSXPCBundleForPID, 237 | _BSXPCBundleGetBundlePath, 238 | _BSXPCBundleGetExecutablePath, 239 | _BSXPCBundleGetIdentifier, 240 | _BSXPCBundleGetInfoDictionary, 241 | _BSXPCConnectionHasEntitlement, 242 | _BSXPCEncodingClassKey, 243 | _BSXPCMessageEncodedObjectClassNameKey, 244 | _BSXPCMessageEncodedObjectFallbackClassNameKey, 245 | _BSXPCObjectBaseClass, 246 | _NSStringFromBSDiagnosticReportType, 247 | _NSStringFromBSProcessExceptionCode, 248 | _NSStringFromBSVersionedPID, _NSStringFromInterval, 249 | __BSBundleIDForXPCConnectionAndIKnowWhatImDoingISwear, 250 | __BSHasInternalSettings, __BSIsInternalInstall, 251 | __BSLogAddStateCaptureBlockWithTitle, 252 | __BSRectTransformByTransformingCorners, ___allShms, 253 | ___allShmsLock ] 254 | objc-classes: [ BSAbstractDefaultDomain, 255 | BSAbstractDefaultDomainClassMetadata, BSAction, 256 | BSActionListener, BSActionListenerController, 257 | BSActionListenerToken, BSActionResponse, 258 | BSAnimationSettings, BSAtomicFlag, BSAtomicSignal, 259 | BSAuditHistory, BSAuditHistoryItem, BSAuditToken, 260 | BSBaseXPCClient, BSBaseXPCServer, BSBasicServerClient, 261 | BSBlockSentinel, BSBlockSentinelSignalContext, 262 | BSBlockTransaction, BSBuildVersion, BSCFBundle, 263 | BSCGImageFromIOSurfaceBuilder, BSColor, 264 | BSCompoundAssertion, BSCopyingCacheSet, 265 | BSCornerRadiusConfiguration, 266 | BSCurrentContainerPathProvider, BSDateFormatterCache, 267 | BSDateTimeCache, BSDescriptionBuilder, 268 | BSDescriptionStream, BSDispatchQueueAttributes, 269 | BSDispatchSource, BSEqualsBuilder, BSError, BSEventQueue, 270 | BSEventQueueEvent, BSEventQueueLock, BSHashBuilder, 271 | BSIntegerMap, BSIntegerSet, BSKeyedSettings, 272 | BSLogStateCaptureEntry, BSMIGServer, 273 | BSMachPortReceiveRight, BSMachPortRight, 274 | BSMachPortSendRight, BSMachPortTaskNameRight, 275 | BSMachPortTransferableSendRight, 276 | BSMonotonicReferenceTime, BSMutableAnimationSettings, 277 | BSMutableIntegerMap, BSMutableIntegerSet, 278 | BSMutableKeyedSettings, BSMutableSettings, 279 | BSMutableSpringAnimationSettings, BSObjCArgument, 280 | BSObjCBlockArgument, BSObjCMethod, BSObjCProtocol, 281 | BSPathProviderFactory, BSPersistentTimer, BSPlatform, 282 | BSPluginBundle, BSPluginManager, 283 | BSPluginManagerCoordinator, BSPluginSpecification, 284 | BSPortDeathSentinel, BSPortDeathWatcher, 285 | BSPowerMonitor, BSProcessDeathWatcher, BSProcessHandle, 286 | BSPropertyMetadata, BSProtobufSchema, 287 | BSProtobufSerialization, BSRelativeDateTimer, 288 | BSSettings, BSSettingsDiff, BSSharedMemoryStore, 289 | BSSignal, BSSimpleAssertion, BSSpringAnimationSettings, 290 | BSSqliteDatabaseConnection, 291 | BSSqlitePreparedStatement, BSSqliteResultRow, 292 | BSStackFrameInfo, BSStateCaptureInvalidator, 293 | BSSystemContainerForCurrentProcessPathProvider, 294 | BSTimer, BSTransaction, BSTransactionBlockObserver, 295 | BSUIApplicationSupport, 296 | BSUserDefaultsTestDoubleDictionaryImpl, BSWatchdog, 297 | BSXPCBundle, BSXPCCoder, BSXPCCodingArray, 298 | BSXPCConnectionListener, 299 | BSXPCConnectionListenerManager, BSXPCMessage, 300 | BSXPCReply, BSZeroingWeakReference, 301 | _BSCompoundAssertionAcquisition, 302 | _BSCompoundAssertionState, _BSDefaultObserver, 303 | _BSProtobufTranslator_BSAuditToken, 304 | _BSSqliteDeferredPreparedSimpleStatement, 305 | _BSSqliteFrozenResultRow, 306 | _BSSqlitePreparedCompoundStatement, 307 | _BSSqlitePreparedSimpleStatement, 308 | _BSTransactionChildRelationship, 309 | _BSTransactionDefaults, 310 | _BSTransactionParentRelationship ] 311 | objc-ivars: [ BSAbstractDefaultDomain._boundDefaults, 312 | BSAbstractDefaultDomain._defaultKeyToDefaultValue, 313 | BSAbstractDefaultDomain._observerQueue, 314 | BSAbstractDefaultDomain._observerQueue_observers, 315 | BSAbstractDefaultDomain._userDefaults, 316 | BSAbstractDefaultDomainClassMetadata._clazz, 317 | BSAbstractDefaultDomainClassMetadata._propertyNameToPropertyMap, 318 | BSAbstractDefaultDomainClassMetadata._selectorToPropertyMap, 319 | BSAction._expectsResponse, BSAction._hasTimeout, 320 | BSAction._info, BSAction._originatingAction, 321 | BSAction._queue, BSAction._queue_auditHistory, 322 | BSAction._queue_handler, 323 | BSAction._queue_hasBeenNeuteredForEncode, 324 | BSAction._queue_hasBeenNeuteredForSend, 325 | BSAction._queue_invalidated, 326 | BSAction._queue_invalidationHandler, 327 | BSAction._queue_listenerToken, 328 | BSAction._queue_neuteredCallStack, 329 | BSAction._queue_portDeathSentinel, 330 | BSAction._queue_receiveRight, 331 | BSAction._queue_response, BSAction._queue_sendRight, 332 | BSAction._queue_timer, BSAction._timeout, 333 | BSActionListenerController._listener, 334 | BSActionListenerController._listenerCount, 335 | BSActionListenerController._listenerTearDownToken, 336 | BSActionListenerController._queue, 337 | BSActionListenerController._transactionCount, 338 | BSActionListenerToken._endpoint, 339 | BSActionListenerToken._port, BSActionResponse._error, 340 | BSActionResponse._info, 341 | BSAnimationSettings._isSpring, 342 | BSAnimationSettings._lock, 343 | BSAnimationSettings._lock_damping, 344 | BSAnimationSettings._lock_delay, 345 | BSAnimationSettings._lock_epsilon, 346 | BSAnimationSettings._lock_frameInterval, 347 | BSAnimationSettings._lock_initialVelocity, 348 | BSAnimationSettings._lock_mass, 349 | BSAnimationSettings._lock_speed, 350 | BSAnimationSettings._lock_stiffness, 351 | BSAnimationSettings._lock_storedDuration, 352 | BSAnimationSettings._lock_storedDurationIsDirty, 353 | BSAnimationSettings._lock_timingFunction, 354 | BSAnimationSettings._mutable, BSAtomicFlag._flag, 355 | BSAtomicSignal._flag, BSAuditHistory._items, 356 | BSAuditHistoryItem._date, 357 | BSAuditHistoryItem._description, 358 | BSAuditToken._auditToken, BSAuditToken._bundleID, 359 | BSAuditToken._lazy_secTaskLock_secTask, 360 | BSAuditToken._resolvedBundleID, 361 | BSAuditToken._secTaskLock, 362 | BSBaseXPCClient._clientInvalidated, 363 | BSBaseXPCClient._connection, 364 | BSBaseXPCClient._invalidationSignal, 365 | BSBaseXPCClient._notifyToken, BSBaseXPCClient._queue, 366 | BSBaseXPCClient._serverEndpoint, 367 | BSBaseXPCClient._serviceName, 368 | BSBaseXPCClient._suspended, BSBaseXPCServer._clients, 369 | BSBaseXPCServer._connectionResumed, 370 | BSBaseXPCServer._listenerConnection, 371 | BSBaseXPCServer._notifyToken, BSBaseXPCServer._queue, 372 | BSBaseXPCServer._serviceName, 373 | BSBaseXPCServer._usesAnonymousConnection, 374 | BSBasicServerClient._cancelled, 375 | BSBasicServerClient._connection, 376 | BSBasicServerClient._managingResumeState, 377 | BSBasicServerClient._resumed, BSBlockSentinel._count, 378 | BSBlockSentinel._explicitQueue, 379 | BSBlockSentinel._handler, 380 | BSBlockSentinel._internalQueue, 381 | BSBlockSentinel._sentinelAction, 382 | BSBlockSentinelSignalContext._complete, 383 | BSBlockSentinelSignalContext._context, 384 | BSBlockSentinelSignalContext._failed, 385 | BSBuildVersion._majorBuildLetterString, 386 | BSBuildVersion._majorBuildNumber, 387 | BSBuildVersion._minorBuildLetterString, 388 | BSBuildVersion._minorBuildNumber, 389 | BSBuildVersion._stringRepresentation, 390 | BSCFBundle._cfBundle, 391 | BSCGImageFromIOSurfaceBuilder._image, 392 | BSCGImageFromIOSurfaceBuilder._isDirty, 393 | BSCGImageFromIOSurfaceBuilder._isOpaque, 394 | BSCGImageFromIOSurfaceBuilder._surface, 395 | BSColor._alpha, BSColor._blue, BSColor._colorRef, 396 | BSColor._green, BSColor._red, 397 | BSCompoundAssertion._dataLock, 398 | BSCompoundAssertion._dataLock_acquisitions, 399 | BSCompoundAssertion._dataLock_identifierPrefix, 400 | BSCompoundAssertion._syncLock, 401 | BSCompoundAssertion._syncLock_block, 402 | BSCompoundAssertion._syncLock_invalid, 403 | BSCopyingCacheSet._immutable, 404 | BSCopyingCacheSet._mutable, 405 | BSCornerRadiusConfiguration._bottomLeft, 406 | BSCornerRadiusConfiguration._bottomRight, 407 | BSCornerRadiusConfiguration._topLeft, 408 | BSCornerRadiusConfiguration._topRight, 409 | BSDateFormatterCache._abbrevDayMonthFormatter, 410 | BSDateFormatterCache._abbrevDayMonthTimeFormatter, 411 | BSDateFormatterCache._abbrevDayOfWeekWithMonthDayFormatter, 412 | BSDateFormatterCache._abbreviatedTimerFormatter, 413 | BSDateFormatterCache._alarmSnoozeFormatter, 414 | BSDateFormatterCache._dayMonthYearFormatter, 415 | BSDateFormatterCache._dayOfWeekFormatter, 416 | BSDateFormatterCache._dayOfWeekMonthDayFormatter, 417 | BSDateFormatterCache._dayOfWeekWithTimeFormatter, 418 | BSDateFormatterCache._decimalFormatter, 419 | BSDateFormatterCache._longYMDHMSNoSpaceFormatter, 420 | BSDateFormatterCache._longYMDHMSZFormatter, 421 | BSDateFormatterCache._longYMDHMSZPosixLocaleFormatter, 422 | BSDateFormatterCache._multiLineDayOfWeekMonthDayFormatter, 423 | BSDateFormatterCache._relativeDateFormatter, 424 | BSDateFormatterCache._relativeDateTimeFormatter, 425 | BSDateFormatterCache._shortDayMonthFormatter, 426 | BSDateFormatterCache._shortDayMonthTimeFormatter, 427 | BSDateFormatterCache._timeFormatter, 428 | BSDateFormatterCache._timeNoAMPMFormatter, 429 | BSDateFormatterCache._timerNumberFormatter, 430 | BSDateTimeCache._2daysFromNow, 431 | BSDateTimeCache._6daysAgo, 432 | BSDateTimeCache._isResetting, 433 | BSDateTimeCache._lastAttemptedResetTime, 434 | BSDateTimeCache._lastSuccessfulResetTime, 435 | BSDateTimeCache._nextWeek, BSDateTimeCache._prevWeek, 436 | BSDateTimeCache._today, BSDateTimeCache._tomorrow, 437 | BSDateTimeCache._yesterday, 438 | BSDescriptionBuilder._activeComponent, 439 | BSDescriptionBuilder._activePrefix, 440 | BSDescriptionBuilder._description, 441 | BSDescriptionBuilder._object, 442 | BSDescriptionBuilder._proem, 443 | BSDescriptionBuilder._useDebugDescription, 444 | BSDescriptionStream._appendBuffer, 445 | BSDescriptionStream._appendBufferCount, 446 | BSDescriptionStream._emitPhase, 447 | BSDescriptionStream._groupItemCount, 448 | BSDescriptionStream._groupVerbosityOptions, 449 | BSDescriptionStream._indentLevel, 450 | BSDescriptionStream._pendingFieldTerminator, 451 | BSDescriptionStream._sortKeys, 452 | BSDescriptionStream._string, 453 | BSDescriptionStream._verboseSingleItemCollections, 454 | BSDispatchQueueAttributes._attrs, 455 | BSDispatchQueueAttributes._targetQueue, 456 | BSDispatchSource._activated, 457 | BSDispatchSource._cancelHandler, 458 | BSDispatchSource._eventHandler, 459 | BSDispatchSource._invalidated, 460 | BSDispatchSource._source, BSDispatchSource._type, 461 | BSEqualsBuilder._equal, BSEventQueue._eventQueue, 462 | BSEventQueue._eventQueueLocks, 463 | BSEventQueue._executingEvent, BSEventQueue._name, 464 | BSEventQueue._processingEvents, BSEventQueue._queue, 465 | BSEventQueueEvent._handler, BSEventQueueEvent._name, 466 | BSEventQueueLock._eventQueue, 467 | BSEventQueueLock._reason, 468 | BSEventQueueLock._relinquished, BSHashBuilder._hash, 469 | BSIntegerMap._mapTable, BSIntegerMap._zeroIndexValue, 470 | BSIntegerSet._hasZeroValue, BSIntegerSet._hashTable, 471 | BSKeyedSettings._keyMap, 472 | BSLogStateCaptureEntry._captureBlock, 473 | BSLogStateCaptureEntry._queue, 474 | BSLogStateCaptureEntry._title, 475 | BSMIGServer._entryObserver, 476 | BSMIGServer._exitObserver, BSMIGServer._port, 477 | BSMIGServer._portName, BSMIGServer._subsystem, 478 | BSMIGServer._thread, BSMachPortRight._lock, 479 | BSMachPortRight._lock_port, BSMachPortRight._owner, 480 | BSMachPortRight._rawPort, BSMachPortRight._trace, 481 | BSMonotonicReferenceTime._startTimeStamp, 482 | BSObjCArgument._containedClasses, 483 | BSObjCArgument._encoding, BSObjCArgument._index, 484 | BSObjCArgument._name, BSObjCArgument._objectClass, 485 | BSObjCArgument._onewayVoid, 486 | BSObjCArgument._plistObject, 487 | BSObjCArgument._protocols, BSObjCArgument._size, 488 | BSObjCArgument._structName, BSObjCArgument._type, 489 | BSObjCMethod._arguments, BSObjCMethod._encoding, 490 | BSObjCMethod._name, BSObjCMethod._required, 491 | BSObjCMethod._returnValue, BSObjCMethod._selector, 492 | BSObjCProtocol._inheritedProtocols, 493 | BSObjCProtocol._methods, BSObjCProtocol._name, 494 | BSObjCProtocol._protocol, 495 | BSPersistentTimer._callOutQueue, 496 | BSPersistentTimer._fireInterval, 497 | BSPersistentTimer._handler, BSPersistentTimer._lock, 498 | BSPersistentTimer._serviceIdentifier, 499 | BSPersistentTimer._timer, BSPluginBundle._bundle, 500 | BSPluginBundle._identifier, BSPluginBundle._name, 501 | BSPluginBundle._principalClass, 502 | BSPluginBundle._requiredClassOrProtocolName, 503 | BSPluginBundle._specifiedClassName, 504 | BSPluginBundle._type, BSPluginManager._bundle, 505 | BSPluginManager._pluginBundles, 506 | BSPluginManager._pluginDirectory, 507 | BSPluginManagerCoordinator._managersByBundleID, 508 | BSPluginSpecification._allowListedNames, 509 | BSPluginSpecification._classOrProtocolName, 510 | BSPluginSpecification._type, 511 | BSPortDeathSentinel._activated, 512 | BSPortDeathSentinel._callOutQueue, 513 | BSPortDeathSentinel._invalidated, 514 | BSPortDeathSentinel._lock, 515 | BSPortDeathSentinel._sendRight, 516 | BSPortDeathSentinel._source, 517 | BSPowerMonitor._lock_observers, 518 | BSPowerMonitor._notificationPort, 519 | BSPowerMonitor._notifier, 520 | BSPowerMonitor._observersLock, BSPowerMonitor._queue, 521 | BSPowerMonitor._rootDomainConnect, 522 | BSPowerMonitor._weakSelfWrapper, 523 | BSProcessDeathWatcher._deathHandler, 524 | BSProcessDeathWatcher._source, 525 | BSProcessHandle._auditToken, 526 | BSProcessHandle._bundleID, BSProcessHandle._name, 527 | BSProcessHandle._pid, 528 | BSProcessHandle._resolvedBundleID, 529 | BSProcessHandle._taskNameRight, 530 | BSPropertyMetadata._classType, 531 | BSPropertyMetadata._defaultKey, 532 | BSPropertyMetadata._defaultValue, 533 | BSPropertyMetadata._getterName, 534 | BSPropertyMetadata._name, 535 | BSPropertyMetadata._options, 536 | BSPropertyMetadata._setterName, 537 | BSPropertyMetadata._type, 538 | BSPropertyMetadata._typeString, 539 | BSProtobufSchema._autotagIndex, 540 | BSProtobufSchema._entries, 541 | BSProtobufSchema._fieldCount, 542 | BSProtobufSchema._memoryData, 543 | BSProtobufSchema._respondsToDidFinishProtobufDecodingWithError, 544 | BSProtobufSchema._respondsToInitForProtobufDecoding, 545 | BSProtobufSchema._respondsToInitProtobufTranslatorForObject, 546 | BSProtobufSchema._rootClass, 547 | BSProtobufSchema._superSchema, 548 | BSRelativeDateTimer._currResolution, 549 | BSRelativeDateTimer._currValue, 550 | BSRelativeDateTimer._date, 551 | BSRelativeDateTimer._delegate, 552 | BSRelativeDateTimer._gregorian, 553 | BSRelativeDateTimer._timer, 554 | BSSettings._descriptionProvider, 555 | BSSettings._settingToFlagMap, 556 | BSSettings._settingToObjectMap, 557 | BSSettingsDiff._changes, 558 | BSSettingsDiff._descriptionProvider, 559 | BSSettingsDiff._flagRemovals, 560 | BSSettingsDiff._objectRemovals, 561 | BSSharedMemoryStore._basePath, 562 | BSSharedMemoryStore._queue, 563 | BSSharedMemoryStore._queue_data, 564 | BSSharedMemoryStore._queue_invalidated, 565 | BSSharedMemoryStore._queue_lastState, 566 | BSSharedMemoryStore._queue_nextWriteFailure, 567 | BSSharedMemoryStore._queue_path, 568 | BSSharedMemoryStore._queue_writeFailedOnce, 569 | BSSignal._signalled, BSSimpleAssertion._identifier, 570 | BSSimpleAssertion._invalidated, 571 | BSSimpleAssertion._invalidationBlock, 572 | BSSimpleAssertion._queue, BSSimpleAssertion._reason, 573 | BSSqliteDatabaseConnection._queue, 574 | BSSqliteDatabaseConnection._queue_dbConnection, 575 | BSSqliteDatabaseConnection._queue_observers, 576 | BSSqliteDatabaseConnection._queue_queryCache, 577 | BSSqlitePreparedStatement._dbConnection, 578 | BSSqliteResultRow._columnNames, 579 | BSSqliteResultRow._statement, 580 | BSStackFrameInfo._address, 581 | BSStackFrameInfo._className, 582 | BSStackFrameInfo._executablePath, 583 | BSStackFrameInfo._functionName, 584 | BSStackFrameInfo._realFunctionName, 585 | BSStateCaptureInvalidator._handle, 586 | BSStateCaptureInvalidator._invalidated, 587 | BSTimer._callOutQueue, BSTimer._fireCount, 588 | BSTimer._fireInterval, BSTimer._handler, 589 | BSTimer._leewayInterval, BSTimer._oneShot, 590 | BSTimer._queue, BSTimer._repeatInterval, 591 | BSTimer._scheduled, BSTimer._source, 592 | BSTimer._startTime, BSTransaction._aborted, 593 | BSTransaction._auditHistory, 594 | BSTransaction._auditHistoryEnabled, 595 | BSTransaction._auditHistoryLog, 596 | BSTransaction._blockObservers, 597 | BSTransaction._cachedDefaultBasedAuditHistoryEnabled, 598 | BSTransaction._cachedDescriptionProem, 599 | BSTransaction._childTransactionRelationships, 600 | BSTransaction._completionBlock, 601 | BSTransaction._debugLogCategories, 602 | BSTransaction._debugLoggingEnabled, 603 | BSTransaction._disableDebugLogCheckForUnitTesting, 604 | BSTransaction._error, BSTransaction._failed, 605 | BSTransaction._inSubclassBegin, 606 | BSTransaction._interrupted, 607 | BSTransaction._lifeAssertions, 608 | BSTransaction._milestones, 609 | BSTransaction._milestonesToHandlers, 610 | BSTransaction._observers, 611 | BSTransaction._parentTransactionRelationships, 612 | BSTransaction._startTime, BSTransaction._state, 613 | BSTransactionBlockObserver._didBeginBlocks, 614 | BSTransactionBlockObserver._didCompleteBlocks, 615 | BSTransactionBlockObserver._didFinishWorkBlocks, 616 | BSTransactionBlockObserver._willBeginBlocks, 617 | BSUserDefaultsTestDoubleDictionaryImpl._dictionary, 618 | BSWatchdog._completed, BSWatchdog._completion, 619 | BSWatchdog._delegate, BSWatchdog._hasFired, 620 | BSWatchdog._invalidated, BSWatchdog._provider, 621 | BSWatchdog._queue, BSWatchdog._startDate, 622 | BSWatchdog._timeout, BSWatchdog._timer, 623 | BSXPCBundle._bundleIdentifier, 624 | BSXPCBundle._bundlePath, BSXPCBundle._executablePath, 625 | BSXPCBundle._infoDictionary, BSXPCBundle._xpcBundle, 626 | BSXPCCoder._archiver, BSXPCCoder._codingContext, 627 | BSXPCCoder._finalized, BSXPCCoder._message, 628 | BSXPCCoder._unarchiver, BSXPCCoder._xpcConnection, 629 | BSXPCCodingArray._array, 630 | BSXPCConnectionListener._connection, 631 | BSXPCConnectionListener._handler, 632 | BSXPCConnectionListener._queue, 633 | BSXPCConnectionListener._service, 634 | BSXPCConnectionListenerManager._defaultHandlerQueue, 635 | BSXPCConnectionListenerManager._listeningQueue, 636 | BSXPCConnectionListenerManager._services, 637 | BSXPCConnectionListenerManager._servicesLock, 638 | BSXPCMessage._invalidated, BSXPCMessage._message, 639 | BSXPCMessage._replied, BSXPCMessage._replyHandler, 640 | BSXPCMessage._replyQueue, BSXPCReply._reply, 641 | BSXPCReply._sent, BSZeroingWeakReference._object, 642 | BSZeroingWeakReference._objectAddress, 643 | BSZeroingWeakReference._objectClass, 644 | _BSCompoundAssertionAcquisition._assertion, 645 | _BSCompoundAssertionAcquisition._context, 646 | _BSCompoundAssertionAcquisition._invalid, 647 | _BSCompoundAssertionAcquisition._reason, 648 | _BSCompoundAssertionState._active, 649 | _BSCompoundAssertionState._context, 650 | _BSDefaultObserver._debounceCounter, 651 | _BSDefaultObserver._defaults, 652 | _BSDefaultObserver._defaultsToObserve, 653 | _BSDefaultObserver._fireBlock, 654 | _BSDefaultObserver._invalidated, 655 | _BSDefaultObserver._queue, 656 | _BSProtobufTranslator_BSAuditToken._bundleID, 657 | _BSProtobufTranslator_BSAuditToken._tokenData, 658 | _BSSqlitePreparedSimpleStatement._statement, 659 | _BSTransactionChildRelationship._childTransaction, 660 | _BSTransactionChildRelationship._schedulingPolicy, 661 | _BSTransactionParentRelationship._parentTransaction, 662 | _BSTransactionParentRelationship._schedulingPolicy ] 663 | ... 664 | -------------------------------------------------------------------------------- /PrivateFrameworks/BoardServices.framework/BoardServices.tbd: -------------------------------------------------------------------------------- 1 | --- !tapi-tbd-v3 2 | archs: [ armv7, armv7s, arm64, arm64e ] 3 | platform: ios 4 | flags: [ flat_namespace ] 5 | install-name: /System/Library/PrivateFrameworks/BoardServices.framework/BoardServices 6 | current-version: 0 7 | compatibility-version: 1 8 | objc-constraint: retain_release 9 | exports: 10 | - archs: [ armv7, armv7s, arm64, arm64e ] 11 | symbols: [ _BSBoardServicesVersionNumber, 12 | _BSBoardServicesVersionString, 13 | _BSServiceBootstrapLog, 14 | _BSServiceConnectionEndpointInstanceKey, 15 | _BSServiceConnectionEndpointServiceKey, 16 | _BSServiceConnectionEndpointTargetDescriptionForAnonymousDomain, 17 | _BSServiceConnectionEndpointTargetDescriptionForMachName, 18 | _BSServiceConnectionErrorCreate, 19 | _BSServiceConnectionErrorDomain, 20 | _BSServiceEndpointGrantNamespace, _BSServiceLog, 21 | _BSServiceXPCLog, 22 | _BSXPCServiceConnectionExecuteCallOut, 23 | _NSStringFromBSServiceConnectionErrorCode ] 24 | objc-classes: [ BSMutableServiceInterface, BSService, 25 | BSServiceConnection, BSServiceConnectionEndpoint, 26 | BSServiceConnectionEndpointInjector, 27 | BSServiceConnectionEndpointMonitor, 28 | BSServiceConnectionListener, BSServiceDomain, 29 | BSServiceDomainSpecification, BSServiceInterface, 30 | BSServiceManager, BSServiceQuality, 31 | BSServiceSpecification, BSServicesConfiguration, 32 | BSXPCServiceConnection, 33 | BSXPCServiceConnectionChildContext, 34 | BSXPCServiceConnectionContext, 35 | BSXPCServiceConnectionEventHandler, 36 | BSXPCServiceConnectionListener, 37 | BSXPCServiceConnectionMessage, 38 | BSXPCServiceConnectionMessageReply, 39 | BSXPCServiceConnectionNullContext, 40 | BSXPCServiceConnectionPeer, 41 | BSXPCServiceConnectionProxy, 42 | BSXPCServiceConnectionRootClientEndpointContext, 43 | BSXPCServiceConnectionRootClientServiceContext, 44 | BSXPCServiceConnectionRootContext, 45 | BSXPCServiceConnectionRootServerContext, 46 | _BSServiceConnectionConfiguration, 47 | _BSServiceDispatchingQueueImpl, 48 | _BSServiceOutgoingEndpoint ] 49 | objc-ivars: [ BSService._domain, BSService._lock, 50 | BSService._lock_globalListener, 51 | BSService._lock_instanceToListener, 52 | BSService._lock_pendedConnections, 53 | BSService._specification, 54 | BSServiceConnection._connection, 55 | BSServiceConnection._instance, 56 | BSServiceConnection._lock, 57 | BSServiceConnection._lock_activatedSignal, 58 | BSServiceConnection._lock_config, 59 | BSServiceConnection._lock_invalidated, 60 | BSServiceConnection._lock_noAssertInvalidatedOnDealloc, 61 | BSServiceConnection._service, 62 | BSServiceConnection._userInfo, 63 | BSServiceConnectionEndpoint._endpoint, 64 | BSServiceConnectionEndpoint._instance, 65 | BSServiceConnectionEndpoint._machName, 66 | BSServiceConnectionEndpoint._nonLaunching, 67 | BSServiceConnectionEndpoint._service, 68 | BSServiceConnectionEndpoint._targetDescription, 69 | BSServiceConnectionEndpointInjector._additionalAttributes, 70 | BSServiceConnectionEndpointInjector._assertion, 71 | BSServiceConnectionEndpointInjector._domain, 72 | BSServiceConnectionEndpointInjector._inheritingEnvironment, 73 | BSServiceConnectionEndpointInjector._instance, 74 | BSServiceConnectionEndpointInjector._invalidated, 75 | BSServiceConnectionEndpointInjector._lock, 76 | BSServiceConnectionEndpointInjector._manager, 77 | BSServiceConnectionEndpointInjector._service, 78 | BSServiceConnectionEndpointInjector._target, 79 | BSServiceConnectionEndpointMonitor._lock, 80 | BSServiceConnectionEndpointMonitor._lock_activated, 81 | BSServiceConnectionEndpointMonitor._lock_delegate, 82 | BSServiceConnectionEndpointMonitor._lock_endpointToEnvironments, 83 | BSServiceConnectionEndpointMonitor._lock_invalidated, 84 | BSServiceConnectionEndpointMonitor._lock_serialCallOut_endpoints, 85 | BSServiceConnectionEndpointMonitor._manager, 86 | BSServiceConnectionEndpointMonitor._registrationLock, 87 | BSServiceConnectionEndpointMonitor._registrationLock_assertion, 88 | BSServiceConnectionEndpointMonitor._service, 89 | BSServiceConnectionListener._domain, 90 | BSServiceConnectionListener._endpoint, 91 | BSServiceConnectionListener._instance, 92 | BSServiceConnectionListener._lock, 93 | BSServiceConnectionListener._lock_activated, 94 | BSServiceConnectionListener._lock_delegate, 95 | BSServiceConnectionListener._lock_invalidated, 96 | BSServiceConnectionListener._manager, 97 | BSServiceConnectionListener._registrationLock, 98 | BSServiceConnectionListener._registrationLock_assertion, 99 | BSServiceConnectionListener._service, 100 | BSServiceDomain._identifierToService, 101 | BSServiceDomain._listenerEndpointDescription, 102 | BSServiceDomain._lock, 103 | BSServiceDomain._lock_incomingConnections, 104 | BSServiceDomain._specification, 105 | BSServiceDomain._xpcListener, 106 | BSServiceDomainSpecification._identifier, 107 | BSServiceDomainSpecification._machName, 108 | BSServiceDomainSpecification._orderedServices, 109 | BSServiceDomainSpecification._servicesByIdentifier, 110 | BSServiceInterface._client, 111 | BSServiceInterface._clientWaitsForActivation, 112 | BSServiceInterface._identifier, 113 | BSServiceInterface._server, 114 | BSServiceManager._RBSService, 115 | BSServiceManager._callOutLock, 116 | BSServiceManager._callOutLock_serviceIdentifierToEndpointsToEnvironments, 117 | BSServiceManager._configuration, 118 | BSServiceManager._identifierToDomain, 119 | BSServiceManager._lock, 120 | BSServiceManager._lock_bootstrapExtensions, 121 | BSServiceManager._lock_bootstrapped, 122 | BSServiceManager._lock_endpointToInheritances, 123 | BSServiceManager._lock_endpointToOutgoingRootConnections, 124 | BSServiceManager._lock_inheritanceToEndpoint, 125 | BSServiceManager._lock_serviceIdentifierToEndpoints, 126 | BSServiceManager._lock_serviceIdentifierToMonitors, 127 | BSServiceQuality._main, 128 | BSServiceQuality._relativePriority, 129 | BSServiceQuality._serviceClass, 130 | BSServiceQuality._serviceClassName, 131 | BSServiceQuality._singleton, 132 | BSServiceSpecification._configuration, 133 | BSServiceSpecification._derived, 134 | BSServiceSpecification._identifier, 135 | BSServiceSpecification._options, 136 | BSServicesConfiguration._domainsByIdentifier, 137 | BSServicesConfiguration._orderedDomains, 138 | BSXPCServiceConnection._context, 139 | BSXPCServiceConnection._lock, 140 | BSXPCServiceConnection._lock_activated, 141 | BSXPCServiceConnection._lock_activationGeneration, 142 | BSXPCServiceConnection._lock_activationMessage, 143 | BSXPCServiceConnection._lock_activationReply, 144 | BSXPCServiceConnection._lock_childConnections, 145 | BSXPCServiceConnection._lock_clientInvalidated, 146 | BSXPCServiceConnection._lock_configured, 147 | BSXPCServiceConnection._lock_connection, 148 | BSXPCServiceConnection._lock_connectionActivatedEvents, 149 | BSXPCServiceConnection._lock_connectionEstablishedEvents, 150 | BSXPCServiceConnection._lock_connection_queue, 151 | BSXPCServiceConnection._lock_established, 152 | BSXPCServiceConnection._lock_eventHandler, 153 | BSXPCServiceConnection._lock_invalidated, 154 | BSXPCServiceConnection._lock_invalidationMessage, 155 | BSXPCServiceConnection._lock_parent, 156 | BSXPCServiceConnection._lock_peer, 157 | BSXPCServiceConnection._lock_remotelyInvalidated, 158 | BSXPCServiceConnection._lock_sendsMustWaitForEstablished, 159 | BSXPCServiceConnection._proem, 160 | BSXPCServiceConnectionChildContext._identifier, 161 | BSXPCServiceConnectionChildContext._parent, 162 | BSXPCServiceConnectionChildContext._remote, 163 | BSXPCServiceConnectionContext._proem, 164 | BSXPCServiceConnectionEventHandler._activationHandler, 165 | BSXPCServiceConnectionEventHandler._connectionHandler, 166 | BSXPCServiceConnectionEventHandler._context, 167 | BSXPCServiceConnectionEventHandler._errorHandler, 168 | BSXPCServiceConnectionEventHandler._initiatingContext, 169 | BSXPCServiceConnectionEventHandler._interface, 170 | BSXPCServiceConnectionEventHandler._interfaceTarget, 171 | BSXPCServiceConnectionEventHandler._interruptionHandler, 172 | BSXPCServiceConnectionEventHandler._invalidationHandler, 173 | BSXPCServiceConnectionEventHandler._lock, 174 | BSXPCServiceConnectionEventHandler._lock_remoteTarget, 175 | BSXPCServiceConnectionEventHandler._messageHandler, 176 | BSXPCServiceConnectionEventHandler._name, 177 | BSXPCServiceConnectionEventHandler._noMoreChildrenHandler, 178 | BSXPCServiceConnectionEventHandler._nonLaunchingAware, 179 | BSXPCServiceConnectionEventHandler._serviceQuality, 180 | BSXPCServiceConnectionEventHandler._targetDispatchingQueue, 181 | BSXPCServiceConnectionEventHandler._targetQueue, 182 | BSXPCServiceConnectionListener._config_eDesc, 183 | BSXPCServiceConnectionListener._config_qos, 184 | BSXPCServiceConnectionListener._lock, 185 | BSXPCServiceConnectionListener._lock_activated, 186 | BSXPCServiceConnectionListener._lock_childConnections, 187 | BSXPCServiceConnectionListener._lock_clientInvalidated, 188 | BSXPCServiceConnectionListener._lock_connectionHandler, 189 | BSXPCServiceConnectionListener._lock_debugDesc, 190 | BSXPCServiceConnectionListener._lock_endpoint, 191 | BSXPCServiceConnectionListener._lock_errorHandler, 192 | BSXPCServiceConnectionListener._lock_invalidated, 193 | BSXPCServiceConnectionListener._lock_listener, 194 | BSXPCServiceConnectionListener._lock_nonLaunching, 195 | BSXPCServiceConnectionListener._proem, 196 | BSXPCServiceConnectionListener._serviceName, 197 | BSXPCServiceConnectionListener._unique, 198 | BSXPCServiceConnectionMessage._completion, 199 | BSXPCServiceConnectionMessage._replyQueue, 200 | BSXPCServiceConnectionMessage._sendFlag, 201 | BSXPCServiceConnectionMessage._targetQueue, 202 | BSXPCServiceConnectionPeer._lock, 203 | BSXPCServiceConnectionPeer._lock_connections, 204 | BSXPCServiceConnectionPeer._lock_entitlements, 205 | BSXPCServiceConnectionPeer._lock_lastConnectedGenerationCount, 206 | BSXPCServiceConnectionPeer._processHandle, 207 | BSXPCServiceConnectionProxy._XPCConnection, 208 | BSXPCServiceConnectionProxy._XPCConnectionTargetQueue, 209 | BSXPCServiceConnectionProxy._connection, 210 | BSXPCServiceConnectionProxy._localProtocol, 211 | BSXPCServiceConnectionProxy._remoteProtocol, 212 | BSXPCServiceConnectionProxy._replyQueue, 213 | BSXPCServiceConnectionRootClientEndpointContext._endpoint, 214 | BSXPCServiceConnectionRootClientEndpointContext._nonLaunching, 215 | BSXPCServiceConnectionRootClientServiceContext._privileged, 216 | _BSServiceConnectionConfiguration._activationHandler, 217 | _BSServiceConnectionConfiguration._clientContext, 218 | _BSServiceConnectionConfiguration._errorHandler, 219 | _BSServiceConnectionConfiguration._interface, 220 | _BSServiceConnectionConfiguration._interruptionHandler, 221 | _BSServiceConnectionConfiguration._invalidationHandler, 222 | _BSServiceConnectionConfiguration._lock, 223 | _BSServiceConnectionConfiguration._messageHandler, 224 | _BSServiceConnectionConfiguration._name, 225 | _BSServiceConnectionConfiguration._serviceQuality, 226 | _BSServiceConnectionConfiguration._target, 227 | _BSServiceConnectionConfiguration._targetDispatchingQueue, 228 | _BSServiceConnectionConfiguration._targetQueue, 229 | _BSServiceConnectionConfiguration._userInfo, 230 | _BSServiceDispatchingQueueImpl._queue, 231 | _BSServiceOutgoingEndpoint._eDesc, 232 | _BSServiceOutgoingEndpoint._endpoint, 233 | _BSServiceOutgoingEndpoint._invalidationGeneration ] 234 | ... 235 | -------------------------------------------------------------------------------- /PrivateFrameworks/GraphicsServices.framework/GraphicsServices.tbd: -------------------------------------------------------------------------------- 1 | --- !tapi-tbd-v3 2 | archs: [ armv7, armv7s, arm64, arm64e ] 3 | platform: ios 4 | flags: [ flat_namespace ] 5 | install-name: /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices 6 | current-version: 14 7 | compatibility-version: 1 8 | objc-constraint: retain_release 9 | exports: 10 | - archs: [ armv7, armv7s, arm64, arm64e ] 11 | symbols: [ _GSColorCreateColorWithDeviceRGBA, 12 | _GSColorCreateColorWithDeviceRGBAInfo, 13 | _GSColorCreateWithDeviceWhite, 14 | _GSColorGetRGBAComponents, _GSColorGetRGBAInfo, 15 | _GSCopyPurpleNamedPerPIDPort, _GSCopyPurpleNamedPort, 16 | _GSCurrentEventTimestamp, _GSEventAccelerometerAxisX, 17 | _GSEventAccelerometerAxisY, 18 | _GSEventAccelerometerAxisZ, 19 | _GSEventAccessoryAvailabilityChanged, _GSEventCopy, 20 | _GSEventCopyCharacters, 21 | _GSEventCopyCharactersIgnoringModifiers, 22 | _GSEventCopyMarkedCharacters, 23 | _GSEventCreateAccessoryKeyStateEvent, 24 | _GSEventCreateApplicationSuspendEvent, 25 | _GSEventCreateKeyEvent, 26 | _GSEventCreatePlistRepresentation, 27 | _GSEventCreateWithEventRecord, 28 | _GSEventCreateWithPlist, _GSEventDeviceOrientation, 29 | _GSEventDisableHandEventCoalescing, 30 | _GSEventFinishedActivating, 31 | _GSEventGetAccessoryKeyStateInfo, 32 | _GSEventGetCharacterSet, _GSEventGetClickCount, 33 | _GSEventGetDeltaX, _GSEventGetDeltaY, 34 | _GSEventGetHIDTimestamp, _GSEventGetHandInfo, 35 | _GSEventGetHardwareKeyboardCountry, 36 | _GSEventGetHardwareKeyboardType, 37 | _GSEventGetInnerMostPathPosition, _GSEventGetKeyCode, 38 | _GSEventGetKeyFlags, _GSEventGetLocationInWindow, 39 | _GSEventGetModifierFlags, 40 | _GSEventGetOuterMostPathPosition, 41 | _GSEventGetPathInfoAtIndex, _GSEventGetSenderPID, 42 | _GSEventGetSubType, _GSEventGetTimestamp, 43 | _GSEventGetType, _GSEventGetTypeID, 44 | _GSEventGetUsagePage, _GSEventGetWindow, 45 | _GSEventInitialize, _GSEventInitializeAsExtension, 46 | _GSEventInitializeWorkspaceWithQueue, 47 | _GSEventIsChordingHandEvent, 48 | _GSEventIsForceQuitEvent, _GSEventIsHandEvent, 49 | _GSEventIsHardwareKeyboardAttached, 50 | _GSEventIsHardwareKeyboardEvent, 51 | _GSEventIsKeyRepeating, _GSEventIsTabKeyEvent, 52 | _GSEventLockDevice, _GSEventPopRunLoopMode, 53 | _GSEventPushRunLoopMode, 54 | _GSEventQueueContainsMouseEvent, 55 | _GSEventQuitTopApplication, 56 | _GSEventReceiveRunLoopMode, 57 | _GSEventRegisterEventCallBack, 58 | _GSEventRemoveShouldRouteToFrontMost, 59 | _GSEventResetIdleTimer, _GSEventRun, _GSEventRunModal, 60 | _GSEventSendApplicationOpenURL, _GSEventSendKeyEvent, 61 | _GSEventSetBacklightLevel, _GSEventSetCharacters, 62 | _GSEventSetHardwareKeyboardAttached, 63 | _GSEventSetHardwareKeyboardAttachedWithCountryCodeAndType, 64 | _GSEventSetLocationInWindow, 65 | _GSEventSetPathInfoAtIndex, _GSEventSetType, 66 | _GSEventShouldRouteToFrontMost, 67 | _GSEventSourceIsHardware, _GSEventStopModal, 68 | _GSEventStopVibrator, _GSEventVibrateForDuration, 69 | _GSFontCopyFamilyNames, _GSFontCopyFontFilePath, 70 | _GSFontCopyFontNamesForFamilyName, 71 | _GSFontCopyNormalizedAdditionalFontName, 72 | _GSFontCopyPersistentPostscriptURL, 73 | _GSFontCreateWithName, _GSFontGetCacheDictionary, 74 | _GSFontInitialize, _GSFontPurgeFontCache, 75 | _GSFontRegisterCGFont, _GSFontRegisterPersistentURLs, 76 | _GSFontRegisterURL, _GSFontUnregisterCGFont, 77 | _GSFontUnregisterPersistentURLs, 78 | _GSFontUnregisterURL, _GSGetPurpleApplicationPort, 79 | _GSGetPurpleSystemAppPort, 80 | _GSGetPurpleSystemEventPort, 81 | _GSGetPurpleWorkspacePort, _GSGetTimeEventHandling, 82 | _GSInitialize, _GSKeyboardCreate, 83 | _GSKeyboardCreateWithCountryCode, 84 | _GSKeyboardGetHWKeyboardType, 85 | _GSKeyboardGetKeyCodeForChar, _GSKeyboardGetLayout, 86 | _GSKeyboardGetLiveModifierState, 87 | _GSKeyboardGetModifierState, 88 | _GSKeyboardGetStickyLockModifierState, 89 | _GSKeyboardGetTranslationOptions, 90 | _GSKeyboardGetTypeID, 91 | _GSKeyboardHWKeyboardLayoutsPlist, 92 | _GSKeyboardHWKeyboardNormalizeInput, 93 | _GSKeyboardRelease, _GSKeyboardReset, 94 | _GSKeyboardSetHardwareKeyboardAttached, 95 | _GSKeyboardSetLayout, 96 | _GSKeyboardSetTranslationOptions, 97 | _GSKeyboardTranslateKey, 98 | _GSKeyboardTranslateKeyExtended, 99 | _GSKeyboardTranslateKeyExtendedCommand, 100 | _GSKeyboardTranslateKeyWithModifiers, 101 | _GSMainScreenOrientation, _GSMainScreenPixelSize, 102 | _GSMainScreenPointSize, 103 | _GSMainScreenPositionTransform, 104 | _GSMainScreenScaleFactor, _GSMainScreenSize, 105 | _GSMainScreenWindowTransform, 106 | _GSRegisterPurpleNamedPerPIDPort, 107 | _GSRegisterPurpleNamedPort, 108 | _GSSaveEventHandlingTimes, 109 | _GSSendAppPreferencesChanged, 110 | _GSSendApplicationFinishedBackgroundContentFetchingEvent, 111 | _GSSendApplicationFinishedBackgroundContentFetchingEventWithSequenceNumber, 112 | _GSSendApplicationFinishedBackgroundNotificationActionEvent, 113 | _GSSendApplicationSuspendEvent, 114 | _GSSendApplicationSuspendedSettingsUpdatedEvent, 115 | _GSSendEvent, _GSSendSimpleEvent, 116 | _GSSendSimpleEventWithSubtype, _GSSendSystemAppEvent, 117 | _GSSendSystemEvent, _GSSendWorkspaceEvent, 118 | _GSSetMainScreenInfo, _GSSetTimeEventHandling, 119 | _GSSystemHasCapability, _GSSystemRootDirectory, 120 | _GSSystemSetRequiresCapabilities, 121 | __GSEventGetGSEventRecord, _kGS3GVeniceCapability, 122 | _kGS720pPlaybackCapability, 123 | _kGSARMV6ExecutionCapability, 124 | _kGSARMV7ExecutionCapability, 125 | _kGSAccelerometerCapability, 126 | _kGSAccessibilityCapability, 127 | _kGSAdditionalTextTonesCapability, 128 | _kGSAmbientLightSensorCapability, 129 | _kGSAppleInternalInstallCapability, 130 | _kGSAssistantCapability, 131 | _kGSAutoFocusCameraCapability, 132 | _kGSBluetoothCapability, _kGSCameraCapability, 133 | _kGSCameraFlashCapability, _kGSCameraRestriction, 134 | _kGSCapabilityChangedNotification, 135 | _kGSCapabilityUpdateNotification, 136 | _kGSCellularDataCapability, 137 | _kGSCellularTelephonyCapability, 138 | _kGSContainsCellularRadioCapability, 139 | _kGSDataPlanCapability, 140 | _kGSDelaySleepForHeadsetClickCapability, 141 | _kGSDeviceNameString, _kGSDictationCapability, 142 | _kGSDisplayFCCLogosViaSoftwareCapability, 143 | _kGSDisplayIdentifiersCapability, 144 | _kGSDisplayMirroringCapability, 145 | _kGSDisplayPortCapability, _kGSEncodeAACCapability, 146 | _kGSEncryptedDataPartitionCapability, 147 | _kGSEnforceCameraShutterClick, _kGSEnforceGoogleMail, 148 | _kGSEventHardwareKeyboardAvailabilityChangedNotification, 149 | _kGSExplicitContentRestriction, 150 | _kGSFrontFacingCameraCapability, 151 | _kGSFull6FeaturesCapability, _kGSGPSCapability, 152 | _kGSGameKitCapability, _kGSGasGaugeBatteryCapability, 153 | _kGSGreenTeaDeviceCapability, 154 | _kGSGyroscopeCapability, _kGSH264EncoderCapability, 155 | _kGSHDRImageCaptureCapability, 156 | _kGSHDVideoCaptureCapability, 157 | _kGSHallEffectSensorCapability, 158 | _kGSHardwareEncodeSnapshotsCapability, 159 | _kGSHardwareKeyboardCapability, 160 | _kGSHardwareSnapshotsRequirePurpleGfxCapability, 161 | _kGSHasAllFeaturesCapability, 162 | _kGSHearingAidAudioEqualizationCapability, 163 | _kGSHearingAidLowEnergyAudioCapability, 164 | _kGSHearingAidPowerReductionCapability, 165 | _kGSHiDPICapability, _kGSHiccoughInterval, 166 | _kGSHideNonDefaultApplicationsCapability, 167 | _kGSIOSurfaceBackedImagesCapability, 168 | _kGSInternationalSettingsCapability, 169 | _kGSLTEDeviceCapability, _kGSLaunchModeCapability, 170 | _kGSLaunchModePostAnimate, _kGSLaunchModePreAnimate, 171 | _kGSLaunchModeSerial, 172 | _kGSLoadThumbnailsWhileScrollingCapability, 173 | _kGSLocalizedDeviceNameString, 174 | _kGSLocationRemindersCapability, 175 | _kGSLocationServicesCapability, _kGSMMSCapability, 176 | _kGSMagnetometerCapability, _kGSMainScreenHeight, 177 | _kGSMainScreenOrientation, _kGSMainScreenScale, 178 | _kGSMainScreenWidth, _kGSMarketingNameString, 179 | _kGSMicrophoneCapability, _kGSMultitaskingCapability, 180 | _kGSMultitaskingGesturesCapability, 181 | _kGSNikeIpodCapability, 182 | _kGSNotGreenTeaDeviceCapability, 183 | _kGSOpenGLES1Capability, _kGSOpenGLES2Capability, 184 | _kGSPTPLargeFilesCapability, _kGSPeer2PeerCapability, 185 | _kGSPersonalHotspotCapability, 186 | _kGSPhotoAdjustmentsCapability, 187 | _kGSPhotoStreamCapability, 188 | _kGSPiezoClickerCapability, 189 | _kGSPlatformStandAloneContactsCapability, 190 | _kGSProximitySensorCapability, 191 | _kGSRearFacingCameraCapability, 192 | _kGSRingerSwitchCapability, _kGSSMSCapability, 193 | _kGSScreenDimensionsCapability, 194 | _kGSSensitiveUICapability, _kGSShoeboxCapability, 195 | _kGSSiriGestureCapability, _kGSSoftwareDimmingAlpha, 196 | _kGSSystemTelephonyOfAnyKindCapability, 197 | _kGSTVOutCrossfadeCapability, 198 | _kGSTVOutSettingsCapability, 199 | _kGSTelephonyMaximumGeneration, 200 | _kGSUnifiedIPodCapability, _kGSVOIPCapability, 201 | _kGSVeniceCapability, _kGSVideoCameraCapability, 202 | _kGSVideoStillsCapability, 203 | _kGSVoiceControlCapability, 204 | _kGSVolumeButtonCapability, _kGSWAPICapability, 205 | _kGSWiFiCapability, _kGSYouTubeCapability, 206 | _kGSYouTubePluginCapability, _kGSiPadCapability ] 207 | ... 208 | -------------------------------------------------------------------------------- /PrivateFrameworks/MobileBackup.framework/MobileBackup.tbd: -------------------------------------------------------------------------------- 1 | --- !tapi-tbd-v3 2 | archs: [ armv7, armv7s, arm64, arm64e ] 3 | platform: ios 4 | flags: [ flat_namespace ] 5 | install-name: /System/Library/PrivateFrameworks/MobileBackup.framework/MobileBackup 6 | current-version: 1740.3 7 | compatibility-version: 1 8 | objc-constraint: retain_release 9 | exports: 10 | - archs: [ armv7, armv7s, arm64, arm64e ] 11 | symbols: [ _MBAbsolutePathFromRootPathWithSnapshot, 12 | _MBAbsolutePathFromiCloudSnapshotPath, 13 | _MBAbsolutePathFromiTunesSnapshotPath, 14 | _MBAcquireRestoreLock, _MBAssert, 15 | _MBBackgroundRestoreSignpostHandle, 16 | _MBBackupMetadataFilenames, _MBBackupReasonIsManual, 17 | _MBBackupReasonIsScheduled, _MBBackupTypeIsFull, 18 | _MBBuildIsSeed, _MBBuildVersion, _MBBytesWithString, 19 | _MBCompareVersionStrings, _MBCreateRestoreDirectory, 20 | _MBDataWithString, _MBDefaultDebugContext, 21 | _MBDefaultOptions, _MBDeviceBackingColor, 22 | _MBDeviceClass, _MBDeviceColor, 23 | _MBDeviceCoverGlassColor, _MBDeviceEnclosureColor, 24 | _MBDeviceHousingColor, _MBDeviceName, 25 | _MBDeviceSpecificLocalizedStringFromTable, 26 | _MBDeviceUDID_Legacy, _MBDeviceUDID_Legacy_client, 27 | _MBDeviceUUID, _MBEmptyArray, _MBEmptyDictionary, 28 | _MBExit, _MBFreeDiskSpace, _MBGetBackupDir, 29 | _MBGetCacheDir, _MBGetCleanupDir, _MBGetDefaultLog, 30 | _MBGetFileIDBytes, _MBGetGestaltValueForKey, 31 | _MBGetHomeDir, _MBGetIncompleteRestoreDir, 32 | _MBGetLogDateFormatter, _MBGetLogDir, _MBGetRestoreDir, 33 | _MBGetSQLLog, _MBGroupWaitForever, 34 | _MBHTTPDateFormatter, _MBHardwareModel, 35 | _MBIsFatalErrorCode, _MBIsInternalInstall, 36 | _MBIsRestoreCompatible, _MBIsRunningInDaemon, 37 | _MBIsTransientErrorCode, _MBIsValidRelativePath, 38 | _MBIsiCloudSnapshotPath, _MBLocale, _MBLocalizations, 39 | _MBLocalizedStringFromTable, _MBLogDeviceProperties, 40 | _MBLogStashLogs, _MBLogStringForNSQualityOfService, 41 | _MBMarketingName, _MBMobileFileAttributes, 42 | _MBMobileUID, _MBNobodyUID, _MBProductType, 43 | _MBProductVersion, _MBRandomDataWithLength, 44 | _MBRandomUUID, _MBReleaseRestoreLock, 45 | _MBRemoveTemporaryPathDirectory, 46 | _MBRunLoopPerformBlockAndWait, 47 | _MBSQLiteJournalSuffixes, _MBSQLitePathExtensions, 48 | _MBSemaphoreWaitForever, _MBSerialNumber, 49 | _MBSetBackupDir, _MBSetIsRunningInDaemon, 50 | _MBStandardizePath, _MBStringForBackupReason, 51 | _MBStringForBackupType, _MBStringForContainerType, 52 | _MBStringWithArray, _MBStringWithBytes, 53 | _MBStringWithData, _MBStringWithDate, 54 | _MBStringWithDictionary, _MBStringWithLimitedArray, 55 | _MBStringWithNibbles, _MBStringWithObject, 56 | _MBStringWithSet, _MBStringWithSizeInBytes, 57 | _MBStringWithXPCObject, _MBSupportedProtocolVersions, 58 | _MBTemporaryPath, 59 | _MBUniqueIntegerFilenameWithDirectory, 60 | _MBWeakLinkClass, _MBWeakLinkSymbol, 61 | _MCMContainerContentClassForMBContainerType, __MBLog, 62 | __MBLogFlushDeprecated, _kMBDownloadFileExtension, 63 | _kMBManagerBackupStateChangedNotification, 64 | _kMBManagerRestoreCompleteAlertStateChangedNotification, 65 | _kMBManagerRestoreStateChangedNotification, 66 | _kMBMobileUserName, _kMBSafeHarborDataDirName, 67 | _kMBSafeHarborDir, _kMBSafeHarborInfoDirName, 68 | _kMBSafeHarborInfoPlistFilename, 69 | _kMBUploadFileExtension ] 70 | objc-classes: [ MBApp, MBAppGroup, MBAppManager, MBAppPlugin, 71 | MBBackgroundRestoreInfo, MBBackup, MBBehaviorOptions, 72 | MBConnection, MBContainer, MBDebugContext, 73 | MBDeviceLockInfo, MBDeviceTransferConnectionInfo, 74 | MBDeviceTransferKeychain, MBDeviceTransferPreflight, 75 | MBDeviceTransferProgress, MBDeviceTransferSession, 76 | MBDeviceTransferTask, MBDigest, MBDigestSHA1, 77 | MBDigestSHA256, MBDomain, MBDomainInfo, MBError, 78 | MBException, MBFileInfo, MBFileManager, 79 | MBFileManagerDelegate, MBFileSystemManager, 80 | MBFileSystemSnapshot, MBManager, MBManagerClient, 81 | MBMessage, MBProperties, MBRestoreFailure, MBRestoreInfo, 82 | MBSizeInfo, MBSnapshot, MBSourceDeviceTransferTask, 83 | MBStartBackupOptions, MBStateInfo, MBSystemContainer, 84 | MBTargetDeviceTransferTask ] 85 | objc-eh-types: [ MBException ] 86 | objc-ivars: [ MBAppManager._containersByID, 87 | MBAppManager._settingsContext, 88 | MBAppManager._systemDataContainersByID, 89 | MBAppManager._systemSharedContainersByID, 90 | MBBackgroundRestoreInfo._bytesRemaining, 91 | MBBackgroundRestoreInfo._dataClassesRemaining, 92 | MBBackgroundRestoreInfo._failedDomains, 93 | MBBackgroundRestoreInfo.bytesRemaining, 94 | MBBackgroundRestoreInfo.dataClassesRemaining, 95 | MBBackgroundRestoreInfo.failedDomains, 96 | MBBackup._backupUDID, MBBackup._backupUUID, 97 | MBBackup._deviceClass, MBBackup._hardwareModel, 98 | MBBackup._hasBackupEnabledState, 99 | MBBackup._isBackupEnabled, MBBackup._isMBSBackup, 100 | MBBackup._marketingName, MBBackup._productType, 101 | MBBackup._restoreSystemFiles, MBBackup._snapshots, 102 | MBBehaviorOptions._cachedPrefs, 103 | MBBehaviorOptions._cachedPrefsQueue, 104 | MBBehaviorOptions._conn, 105 | MBBehaviorOptions._flushLogMessages, 106 | MBBehaviorOptions._warnForLateiTunesBackups, 107 | MBConnection._messageHandler, MBConnection._pid, 108 | MBConnection._processName, MBConnection._queue, 109 | MBConnection._xpcConnection, MBContainer._plist, 110 | MBDebugContext._dictionary, 111 | MBDeviceLockInfo._creationDate, 112 | MBDeviceLockInfo._deviceName, 113 | MBDeviceLockInfo._deviceUUID, 114 | MBDeviceLockInfo._expirationDate, 115 | MBDeviceLockInfo._ownerDeviceName, 116 | MBDeviceLockInfo._ownerDeviceUUID, 117 | MBDeviceTransferConnectionInfo._connectionState, 118 | MBDeviceTransferConnectionInfo._connectionType, 119 | MBDeviceTransferKeychain._uuid, 120 | MBDeviceTransferPreflight._activeAppleID, 121 | MBDeviceTransferPreflight._appleIDs, 122 | MBDeviceTransferPreflight._sourceDeviceDataSize, 123 | MBDeviceTransferPreflight._sourcePurgeableSpaceSize, 124 | MBDeviceTransferPreflight._targetDeviceFreeSpaceSize, 125 | MBDeviceTransferPreflight._uuid, 126 | MBDeviceTransferProgress._bytesTransferred, 127 | MBDeviceTransferProgress._fileTransferStartDate, 128 | MBDeviceTransferProgress._filesTransferred, 129 | MBDeviceTransferProgress._minutesRemaining, 130 | MBDeviceTransferProgress._phase, 131 | MBDeviceTransferProgress._phaseDescription, 132 | MBDeviceTransferProgress._progress, 133 | MBDeviceTransferProgress._restoreStartDate, 134 | MBDeviceTransferProgress._totalByteCount, 135 | MBDeviceTransferProgress._totalFileCount, 136 | MBDeviceTransferSession._fileTransferSession, 137 | MBDeviceTransferTask._canceled, 138 | MBDeviceTransferTask._completionError, 139 | MBDeviceTransferTask._completionHandler, 140 | MBDeviceTransferTask._connectionInfoHandler, 141 | MBDeviceTransferTask._connectionStateHandler, 142 | MBDeviceTransferTask._fileTransferSession, 143 | MBDeviceTransferTask._finished, 144 | MBDeviceTransferTask._manager, 145 | MBDeviceTransferTask._progressHandler, 146 | MBDeviceTransferTask._queue, 147 | MBDeviceTransferTask._started, 148 | MBDeviceTransferTask._suspended, 149 | MBDigestSHA1._context, MBDigestSHA256._context, 150 | MBDomain._fileHandle, 151 | MBDomain._fileHandleForSnapshot, 152 | MBDomain._fileHandlePath, 153 | MBDomain._fileHandlePathForSnapshot, 154 | MBDomain._hasExternalConfig, 155 | MBDomain._isExternalConfig, MBDomain._name, 156 | MBDomain._relativePathAggregateDictionaryGroups, 157 | MBDomain._relativePathDomainRedirects, 158 | MBDomain._relativePathsNotToBackup, 159 | MBDomain._relativePathsNotToBackupAndRestoreToAppleTVs, 160 | MBDomain._relativePathsNotToBackupToDrive, 161 | MBDomain._relativePathsNotToBackupToService, 162 | MBDomain._relativePathsNotToCheckIfModifiedDuringBackup, 163 | MBDomain._relativePathsNotToMigrate, 164 | MBDomain._relativePathsNotToRemoveIfNotRestored, 165 | MBDomain._relativePathsNotToRestore, 166 | MBDomain._relativePathsNotToRestoreToIPods, 167 | MBDomain._relativePathsOfSystemFilesToAlwaysRemoveOnRestore, 168 | MBDomain._relativePathsOfSystemFilesToAlwaysRestore, 169 | MBDomain._relativePathsToBackgroundRestore, 170 | MBDomain._relativePathsToBackupAndRestore, 171 | MBDomain._relativePathsToBackupIgnoringProtectionClass, 172 | MBDomain._relativePathsToBackupToDriveAndStandardAccount, 173 | MBDomain._relativePathsToIgnoreExclusionsForDrive, 174 | MBDomain._relativePathsToOnlyBackupEncrypted, 175 | MBDomain._relativePathsToRemoveOnRestore, 176 | MBDomain._relativePathsToRestoreOnly, 177 | MBDomain._relativePathsToRestoreOnlyFromService, 178 | MBDomain._rootPath, MBDomain._shouldDigest, 179 | MBDomain._shouldRestoreRelativeSymlinks, 180 | MBDomainInfo._domainName, MBDomainInfo._enabled, 181 | MBDomainInfo._localSize, MBDomainInfo._remoteSize, 182 | MBDomainInfo._restricted, MBDomainInfo._systemApp, 183 | MBFileInfo._extendedAttributes, 184 | MBFileInfo._isDirectory, MBFileInfo._path, 185 | MBFileInfo._priority, 186 | MBFileManagerDelegate._shouldCopyItemAtPathToPath, 187 | MBFileSystemManager._currentSnapshotName, 188 | MBFileSystemManager._currentSnapshotPath, 189 | MBFileSystemManager._fileSystemType, 190 | MBFileSystemManager._supportsLocalSnapshots, 191 | MBFileSystemManager._supportsSparseFiles, 192 | MBFileSystemSnapshot._creationDate, 193 | MBFileSystemSnapshot._name, 194 | MBFileSystemSnapshot._uuid, MBManager._delegate, 195 | MBManagerClient._connection, 196 | MBManagerClient._enabledToken, 197 | MBManagerClient._eventQueue, 198 | MBManagerClient._iTunesRestoreEndedNotificationToken, 199 | MBManagerClient._iTunesRestoreStarted, 200 | MBManagerClient._iTunesRestoreStartedNotificationToken, 201 | MBManagerClient._shouldSupportiTunes, 202 | MBManagerClient._timer, MBMessage._connection, 203 | MBMessage._messageInfo, MBMessage._replyInfo, 204 | MBMessage._xpcObject, 205 | MBProperties._maxSupportedVersion, 206 | MBProperties._minSupportedVersion, 207 | MBProperties._plist, MBProperties._protect, 208 | MBProperties._protected, MBRestoreFailure._assetType, 209 | MBRestoreFailure._dataclass, 210 | MBRestoreFailure._displayName, 211 | MBRestoreFailure._error, MBRestoreFailure._icon, 212 | MBRestoreFailure._identifier, 213 | MBRestoreInfo._backupBuildVersion, 214 | MBRestoreInfo._date, 215 | MBRestoreInfo._deviceBuildVersion, 216 | MBRestoreInfo._wasCloudRestore, MBSizeInfo._size, 217 | MBSizeInfo._state, MBSnapshot._backupType, 218 | MBSnapshot._buildVersion, MBSnapshot._created, 219 | MBSnapshot._date, MBSnapshot._deviceName, 220 | MBSnapshot._isCompatible, MBSnapshot._modified, 221 | MBSnapshot._quotaReserved, 222 | MBSnapshot._requiredProductVersion, 223 | MBSnapshot._snapshotID, MBSnapshot._snapshotUUID, 224 | MBSnapshot._state, MBSnapshot._systemVersion, 225 | MBStartBackupOptions._allowCellular, 226 | MBStateInfo._date, MBStateInfo._error, 227 | MBStateInfo._errors, 228 | MBStateInfo._estimatedTimeRemaining, 229 | MBStateInfo._isBackground, MBStateInfo._isCloud, 230 | MBStateInfo._progress, MBStateInfo._state, 231 | MBTargetDeviceTransferTask._keychainTransferCompletionHandler, 232 | MBTargetDeviceTransferTask._preflightCompletionHandler, 233 | MBTargetDeviceTransferTask._startedDataTransfer, 234 | MBTargetDeviceTransferTask._startedKeychainDataImport, 235 | MBTargetDeviceTransferTask._startedKeychainDataTransfer, 236 | MBTargetDeviceTransferTask._startedKeychainTransfer, 237 | MBTargetDeviceTransferTask._startedPreflight ] 238 | ... 239 | -------------------------------------------------------------------------------- /PrivateFrameworks/MobileContainerManager.framework/MobileContainerManager.tbd: -------------------------------------------------------------------------------- 1 | --- !tapi-tbd-v3 2 | archs: [ armv7, armv7s, arm64, arm64e ] 3 | platform: ios 4 | flags: [ flat_namespace ] 5 | install-name: /System/Library/PrivateFrameworks/MobileContainerManager.framework/MobileContainerManager 6 | current-version: 1 7 | compatibility-version: 1 8 | objc-constraint: retain_release 9 | exports: 10 | - archs: [ armv7, armv7s, arm64, arm64e ] 11 | symbols: [ _MCMErrorDomain, _MCMFunctionNameErrorKey, 12 | _MCMPathArgumentErrorKey, _MCMSourceFileLineErrorKey, 13 | _kMCMACLFailureError, _kMCMBadInitializerValuesError, 14 | _kMCMBadReplyContentsError, 15 | _kMCMBundleOwnerMigrationFailError, 16 | _kMCMCacheAddError, _kMCMCacheFailedToRebuildError, 17 | _kMCMCacheInconsistencyError, 18 | _kMCMCacheInvalidDataError, _kMCMCacheRemoveError, 19 | _kMCMContainerNotFoundError, 20 | _kMCMContainersWithClassInitError, 21 | _kMCMCreateBaseDirectoryError, 22 | _kMCMCreateContainerClassDirectoryError, 23 | _kMCMCreateDeathRowDirectoryError, 24 | _kMCMCreateReplaceDirectoryError, 25 | _kMCMCreateStagingDirectoryError, 26 | _kMCMCreateSubDirectoryError, 27 | _kMCMCreateTempDirectoryError, 28 | _kMCMDataProtectionFailLockedError, 29 | _kMCMDestroyContainerError, _kMCMExceptionError, 30 | _kMCMExistingContainerReplaceError, 31 | _kMCMFailureToGetErrorReply, 32 | _kMCMGetMetadataErrorError, 33 | _kMCMIdentifierNotFoundInDbError, 34 | _kMCMInvalidCommandError, 35 | _kMCMInvalidContainerObjectError, 36 | _kMCMInvalidEntitlementInfoError, 37 | _kMCMInvalidMetadataError, 38 | _kMCMInvalidMetadataURLMismatchError, 39 | _kMCMInvalidParametersError, _kMCMInvalidReplyError, 40 | _kMCMInvalidURLError, 41 | _kMCMMismatchedClassReplaceError, 42 | _kMCMMismatchedUserReplaceError, 43 | _kMCMMoveStagingToLiveError, 44 | _kMCMMoveToDeathRowError, _kMCMNilIdentifierError, 45 | _kMCMNotEntitledForOperationError, 46 | _kMCMPathNotFoundError, 47 | _kMCMPendingUpdateNoLongerValidError, 48 | _kMCMReadEntitlementFileError, 49 | _kMCMReadMetadataError, _kMCMRegenerateUUIDMoveError, 50 | _kMCMRemoveIndividualStagingDirectoryError, 51 | _kMCMRemoveLegacyDirectoryError, 52 | _kMCMRemoveStagingDirectoryError, 53 | _kMCMRemoveTempContainerError, 54 | _kMCMReplaceContainerError, 55 | _kMCMReplaceMoveToTempError, 56 | _kMCMReplaceRecoverError, _kMCMReplaceRemoveError, 57 | _kMCMReplaceURLError, _kMCMRestoreContainerError, 58 | _kMCMRestorePathExistsError, _kMCMSQLiteError, 59 | _kMCMSQLiteUnexpectedNumChangesError, 60 | _kMCMSameContainerReplaceError, 61 | _kMCMSetSandboxMappingError, _kMCMSetupProxyError, 62 | _kMCMStageForDeleteError, 63 | _kMCMStageSharedContentFailureError, _kMCMSuccess, 64 | _kMCMUndefinedContainerClassError, 65 | _kMCMUnknownSubdirectoriesForClassError, 66 | _kMCMValueNotFoundForKeyError, 67 | _kMCMWriteEntitlementFileError, 68 | _kMCMWriteMetadataDictionaryError, 69 | _kMCMXPCInterruptedReplyError, 70 | _kMCMXPCInvalidReplyError, _kMCMXPCSetupError, 71 | _kMCMXPCUnknownReplyError ] 72 | objc-classes: [ MCMAppContainer, MCMAppDataContainer, MCMContainer, 73 | MCMContainerManager, MCMDataContainer, 74 | MCMFrameworkContainer, 75 | MCMInternalDaemonDataContainer, MCMLazyDescription, 76 | MCMPluginKitPluginContainer, 77 | MCMPluginKitPluginDataContainer, 78 | MCMSharedDataContainer, MCMSharedSystemDataContainer, 79 | MCMSystemDataContainer, MCMTempDirDataContainer, 80 | MCMVPNPluginContainer, MCMVPNPluginDataContainer, 81 | MCMXPCServiceDataContainer ] 82 | objc-ivars: [ MCMContainer._containerClass, 83 | MCMContainer._identifier, 84 | MCMContainer._personaUniqueString, 85 | MCMContainer._thisContainer, MCMContainer._uuid, 86 | MCMLazyDescription._block, MCMLazyDescription._value ] 87 | ... 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TrollCuts 2 | Shortcuts extensions for iOS 16.0+. It leverages the ability of [TrollStore](https://github.com/opa334/TrollStore) to obtain arbitrary entitlements for binary and thus doing stuffs that normally sandboxed apps unable to. 3 | 4 | I created this because I needed an automatable way to switch TrollStore installed apps registration state so that iCloud could backup them. I never tested the theory what happens when automatic backup happens in the middle of the night when those apps are in "System" state. Will the previously backed-up data dissappear again? Guess only one way to find out. 5 | 6 | It only comes with few basic Shortcuts extensions (because I just realized how much I dislikes Swift). If you got interesting stuffs to extend its extensions functionality, do it. 7 | 8 | # Requirements 9 | iOS 16.0+ (AppIntent framework) and [TrollStore](https://github.com/opa334/TrollStore). 10 | 11 | # Credits 12 | [TrollStore](https://github.com/opa334/TrollStore) - chunks of code in this repository are from there 13 | 14 | [@asdfugil](https://gist.github.com/asdfugil/e7b2fd92d8956716c46df54d4b1043e6), [PureKFD](https://github.com/PureKFD/PureKFD) - for the `userspacereboot.c` 15 | 16 | [locsim](https://github.com/udevsharold/locsim) 17 | 18 | # License 19 | Pieces of code obtained from other repo are bound to their own license, everything else do as you please. 20 | -------------------------------------------------------------------------------- /Shared/CoreServices.h: -------------------------------------------------------------------------------- 1 | extern NSString *LSInstallTypeKey; 2 | 3 | @interface LSBundleProxy 4 | @property (nonatomic,readonly) NSString * bundleIdentifier; 5 | @property (nonatomic) NSURL* dataContainerURL; 6 | @property (nonatomic,readonly) NSURL* bundleContainerURL; 7 | -(NSString*)localizedName; 8 | @end 9 | 10 | @interface LSApplicationProxy : LSBundleProxy 11 | + (instancetype)applicationProxyForIdentifier:(NSString*)identifier; 12 | + (instancetype)applicationProxyForBundleURL:(NSURL*)bundleURL; 13 | @property NSURL* bundleURL; 14 | @property NSString* bundleType; 15 | @property NSString* canonicalExecutablePath; 16 | @property (nonatomic,readonly) NSDictionary* groupContainerURLs; 17 | @property (nonatomic,readonly) NSArray* plugInKitPlugins; 18 | @property (getter=isInstalled,nonatomic,readonly) BOOL installed; 19 | @property (getter=isPlaceholder,nonatomic,readonly) BOOL placeholder; 20 | @property (getter=isRestricted,nonatomic,readonly) BOOL restricted; 21 | @property (nonatomic,readonly) NSSet* claimedURLSchemes; 22 | @property (nonatomic,readonly) NSString* applicationType; 23 | @end 24 | 25 | @interface LSApplicationWorkspace : NSObject 26 | + (instancetype)defaultWorkspace; 27 | - (BOOL)registerApplicationDictionary:(NSDictionary*)dict; 28 | - (BOOL)unregisterApplication:(id)arg1; 29 | - (BOOL)_LSPrivateRebuildApplicationDatabasesForSystemApps:(BOOL)arg1 internal:(BOOL)arg2 user:(BOOL)arg3; 30 | - (BOOL)openApplicationWithBundleID:(NSString *)arg1 ; 31 | - (void)enumerateApplicationsOfType:(NSUInteger)type block:(void (^)(LSApplicationProxy*))block; 32 | - (BOOL)installApplication:(NSURL*)appPackageURL withOptions:(NSDictionary*)options error:(NSError**)error; 33 | - (BOOL)uninstallApplication:(NSString*)appId withOptions:(NSDictionary*)options; 34 | - (void)addObserver:(id)arg1; 35 | - (void)removeObserver:(id)arg1; 36 | @end 37 | 38 | @protocol LSApplicationWorkspaceObserverProtocol 39 | @optional 40 | -(void)applicationsDidInstall:(id)arg1; 41 | -(void)applicationsDidUninstall:(id)arg1; 42 | @end 43 | 44 | @interface LSEnumerator : NSEnumerator 45 | @property (nonatomic,copy) NSPredicate * predicate; 46 | + (instancetype)enumeratorForApplicationProxiesWithOptions:(NSUInteger)options; 47 | @end 48 | 49 | @interface LSPlugInKitProxy : LSBundleProxy 50 | @property (nonatomic,readonly) NSString* pluginIdentifier; 51 | @property (nonatomic,readonly) NSDictionary * pluginKitDictionary; 52 | + (instancetype)pluginKitProxyForIdentifier:(NSString*)arg1; 53 | @end 54 | 55 | @interface MCMContainer : NSObject 56 | + (id)containerWithIdentifier:(id)arg1 createIfNecessary:(BOOL)arg2 existed:(BOOL*)arg3 error:(id*)arg4; 57 | @property (nonatomic,readonly) NSURL * url; 58 | @end 59 | 60 | @interface MCMDataContainer : MCMContainer 61 | @end 62 | 63 | @interface MCMAppDataContainer : MCMDataContainer 64 | @end 65 | 66 | @interface MCMAppContainer : MCMContainer 67 | @end 68 | 69 | @interface MCMPluginKitPluginDataContainer : MCMDataContainer 70 | @end 71 | 72 | @interface MCMSystemDataContainer : MCMContainer 73 | @end 74 | 75 | @interface MCMSharedDataContainer : MCMContainer 76 | @end -------------------------------------------------------------------------------- /Shared/Intents/Enum.swift: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | import AppIntents 4 | 5 | public enum SwitchStateAppEnum: String, AppEnum { 6 | case on 7 | case off 8 | 9 | public static let typeDisplayRepresentation: TypeDisplayRepresentation = "State" 10 | 11 | public static let caseDisplayRepresentations: [Self: DisplayRepresentation] = [ 12 | .on: "On", 13 | .off: "Off" 14 | ] 15 | } -------------------------------------------------------------------------------- /Shared/PrivateHeader.h: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | #ifndef PrivateHeader_h 4 | #define PrivateHeader_h 5 | 6 | 7 | #endif /* PrivateHeader_h */ 8 | 9 | @import Foundation; 10 | @import CoreLocation; 11 | 12 | void GSSendAppPreferencesChanged(CFStringRef bundleID, CFStringRef key); 13 | 14 | @interface MBStateInfo : NSObject 15 | @property (assign,nonatomic) int state; 16 | @property (assign,nonatomic) float progress; 17 | @property (assign,nonatomic) unsigned long long estimatedTimeRemaining; 18 | @property (assign,nonatomic) BOOL isCloud; 19 | @property (assign,nonatomic) BOOL isBackground; 20 | @end 21 | 22 | @interface MBManager : NSObject 23 | -(void)rebootDevice; 24 | -(BOOL)startBackupWithError:(_Nullable id*)arg1 ; 25 | -(void)cancel; 26 | -(BOOL)isBackupEnabled; 27 | -(MBStateInfo *)backupState; 28 | @end 29 | 30 | @interface FBSSystemService : NSObject 31 | +(instancetype)sharedService; 32 | -(void)reboot; 33 | -(void)shutdown; 34 | @end 35 | 36 | @interface MCProfileConnection : NSObject 37 | + (instancetype)sharedConnection; 38 | - (void)lockDevice; 39 | - (void)lockDeviceImmediately:(bool)arg1; 40 | - (void)setValue:(id)arg1 forSetting:(id)arg2 ; 41 | - (void)_createAndResumeXPCConnection; 42 | @end 43 | 44 | @interface MCRestrictionManager : NSObject 45 | +(id)defaultValueForSetting:(id)arg1 ; 46 | +(id)minimumValueForSetting:(id)arg1 ; 47 | +(id)maximumValueForSetting:(id)arg1 ; 48 | @end 49 | 50 | @interface CLLocationManager (Private) 51 | + (void)setLocationServicesEnabled:(bool)arg1; 52 | @end 53 | 54 | @interface CLSimulationManager : NSObject 55 | @property (assign,nonatomic) uint8_t locationDeliveryBehavior; 56 | @property (assign,nonatomic) double locationDistance; 57 | @property (assign,nonatomic) double locationInterval; 58 | @property (assign,nonatomic) double locationSpeed; 59 | @property (assign,nonatomic) uint8_t locationRepeatBehavior; 60 | -(void)clearSimulatedLocations; 61 | -(void)startLocationSimulation; 62 | -(void)stopLocationSimulation; 63 | -(void)appendSimulatedLocation:(id)arg1 ; 64 | -(void)flush; 65 | -(void)loadScenarioFromURL:(id)arg1 ; 66 | -(void)setSimulatedWifiPower:(BOOL)arg1 ; 67 | -(void)startWifiSimulation; 68 | -(void)stopWifiSimulation; 69 | -(void)setSimulatedCell:(id)arg1 ; 70 | -(void)startCellSimulation; 71 | -(void)stopCellSimulation; 72 | @end -------------------------------------------------------------------------------- /Shared/TCUtil.h: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | #ifndef TCUtil_h 4 | #define TCUtil_h 5 | 6 | 7 | #endif /* TCUtil_h */ 8 | 9 | 10 | #define FW_FrontBoardServices "/System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices" 11 | #define FW_MobileBackup "/System/Library/PrivateFrameworks/MobileBackup.framework/MobileBackup" 12 | #define FW_ManagedConfiguration "/System/Library/PrivateFrameworks/ManagedConfiguration.framework/ManagedConfiguration" 13 | #define FW_GraphicsServices "/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices" 14 | #define FW_CoreLocation "/System/Library/Frameworks/CoreLocation.framework/CoreLocation" 15 | 16 | extern int switchAppRegistration(NSString* appPath, NSString* newState); 17 | extern void switchAllAppsRegistration(NSString *newState, NSArray *excludeApps); 18 | extern void setAutoLock(NSNumber *interval); 19 | NSArray *parseCoorString(NSString *coor); 20 | int startLocSim(double lat, double lon, double alt, double ha, double va); 21 | void stopLocSim(BOOL force); 22 | uint32_t getRingerState(); 23 | int setRingerState(int state); 24 | -------------------------------------------------------------------------------- /Shared/TCUtil.m: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | #import 4 | #import 5 | #import 6 | #import "PrivateHeader.h" 7 | #import "TCUtil.h" 8 | #import "TSUtil.h" 9 | #import "locsim.h" 10 | 11 | int switchAppRegistration(NSString* appPath, NSString* newState){ 12 | if(!appPath || !newState) return -200; 13 | NSString *tsRootHelperPath = [trollStoreAppPath() stringByAppendingPathComponent:@"trollstorehelper"]; 14 | if ([[NSFileManager defaultManager] fileExistsAtPath:tsRootHelperPath]){ 15 | return spawnRoot(tsRootHelperPath, @[@"modify-registration", appPath, newState], nil, nil); 16 | } 17 | return -1; 18 | } 19 | 20 | void switchAllAppsRegistration(NSString *newState, NSArray *excludeApps){ 21 | if(!newState) return; 22 | for(NSString* appPath in trollStoreInstalledAppBundlePaths()){ 23 | if ([excludeApps containsObject:[appPath lastPathComponent]]) continue; 24 | switchAppRegistration(appPath, newState); 25 | } 26 | } 27 | 28 | void setAutoLock(NSNumber *interval){ 29 | spawnRoot(rootHelperPath(), @[interval], nil, nil); 30 | } 31 | 32 | NSArray *parseCoorString(NSString *coor){ 33 | coor = [[coor componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"()[]"]] componentsJoinedByString: @""]; 34 | NSArray *components = [coor componentsSeparatedByString:@","]; 35 | if (components.count >= 2){ 36 | return @[@([components.firstObject doubleValue]), @([components.lastObject doubleValue])]; 37 | } 38 | return nil; 39 | } 40 | 41 | int startLocSim(double lat, double lon, double alt, double ha, double va){ 42 | CLLocationCoordinate2D coor = CLLocationCoordinate2DMake(lat, lon); 43 | if (!CLLocationCoordinate2DIsValid(coor)) return 1; 44 | CLLocation *loc; 45 | NSDate *ts = [NSDate date]; 46 | if (@available(iOS 13.4, *)){ 47 | loc = [[CLLocation alloc] initWithCoordinate:coor altitude:alt horizontalAccuracy:ha verticalAccuracy:va course:-1.0 courseAccuracy:-1.0 speed:0.0 speedAccuracy:-1.0 timestamp:ts]; 48 | }else{ 49 | loc = [[CLLocation alloc] initWithCoordinate:coor altitude:alt horizontalAccuracy:ha verticalAccuracy:va course:-1.0 speed:0.0 timestamp:ts]; 50 | } 51 | start_loc_sim(loc, -1, -1); 52 | return 0; 53 | } 54 | 55 | void stopLocSim(BOOL force){ 56 | if (force){ 57 | killall(@"locationd", NO); 58 | }else{ 59 | stop_loc_sim(); 60 | } 61 | } 62 | 63 | #define RINGERSTATE_NOTI_NAME "com.apple.springboard.ringerstate" 64 | uint32_t getRingerState() { 65 | int token = -1; 66 | uint64_t state = -1; 67 | notify_register_check(RINGERSTATE_NOTI_NAME, &token); 68 | if (token != -1){ 69 | notify_get_state(token, &state); 70 | } 71 | return (uint32_t)state; 72 | } 73 | 74 | int setRingerState(int state) { 75 | int token = -1; 76 | notify_register_check(RINGERSTATE_NOTI_NAME, &token); 77 | if (token != -1){ 78 | notify_set_state(token, state); 79 | notify_post(RINGERSTATE_NOTI_NAME); 80 | return 0; 81 | } 82 | return 1; 83 | } -------------------------------------------------------------------------------- /Shared/TSUtil.h: -------------------------------------------------------------------------------- 1 | @import Foundation; 2 | #import "CoreServices.h" 3 | 4 | #define TrollStoreErrorDomain @"TrollStoreErrorDomain" 5 | 6 | extern void chineseWifiFixup(void); 7 | extern NSString *getExecutablePath(void); 8 | extern NSString* rootHelperPath(void); 9 | extern NSString* getNSStringFromFile(int fd); 10 | extern void printMultilineNSString(NSString* stringToPrint); 11 | extern int spawnRoot(NSString* path, NSArray* args, NSString** stdOut, NSString** stdErr); 12 | extern void killall(NSString* processName, BOOL softly); 13 | extern void respring(void); 14 | extern void fetchLatestTrollStoreVersion(void (^completionHandler)(NSString* latestVersion)); 15 | extern void fetchLatestLdidVersion(void (^completionHandler)(NSString* latestVersion)); 16 | 17 | extern NSArray* trollStoreInstalledAppBundlePaths(); 18 | extern NSArray* trollStoreInstalledAppContainerPaths(); 19 | extern NSString* trollStorePath(); 20 | extern NSString* trollStoreAppPath(); 21 | 22 | extern BOOL isRemovableSystemApp(NSString* appId); 23 | 24 | #import 25 | 26 | @interface UIAlertController (Private) 27 | @property (setter=_setAttributedTitle:,getter=_attributedTitle,nonatomic,copy) NSAttributedString* attributedTitle; 28 | @property (setter=_setAttributedMessage:,getter=_attributedMessage,nonatomic,copy) NSAttributedString* attributedMessage; 29 | @property (nonatomic,retain) UIImage* image; 30 | @end 31 | 32 | typedef enum 33 | { 34 | PERSISTENCE_HELPER_TYPE_USER = 1 << 0, 35 | PERSISTENCE_HELPER_TYPE_SYSTEM = 1 << 1, 36 | PERSISTENCE_HELPER_TYPE_ALL = PERSISTENCE_HELPER_TYPE_USER | PERSISTENCE_HELPER_TYPE_SYSTEM 37 | } PERSISTENCE_HELPER_TYPE; 38 | 39 | // EXPLOIT_TYPE is defined as a bitmask as some devices are vulnerable to multiple exploits 40 | // 41 | // An app that has had one of these exploits applied ahead of time can declare which exploit 42 | // was used via the TSPreAppliedExploitType Info.plist key. The corresponding value should be 43 | // (number of bits to left-shift + 1). 44 | typedef enum 45 | { 46 | // CVE-2022-26766 47 | // TSPreAppliedExploitType = 1 48 | EXPLOIT_TYPE_CUSTOM_ROOT_CERTIFICATE_V1 = 1 << 0, 49 | 50 | // CVE-2023-41991 51 | // TSPreAppliedExploitType = 2 52 | EXPLOIT_TYPE_CMS_SIGNERINFO_V1 = 1 << 1 53 | } EXPLOIT_TYPE; 54 | 55 | extern LSApplicationProxy* findPersistenceHelperApp(PERSISTENCE_HELPER_TYPE allowedTypes); 56 | 57 | typedef struct __SecCode const *SecStaticCodeRef; 58 | 59 | typedef CF_OPTIONS(uint32_t, SecCSFlags) { 60 | kSecCSDefaultFlags = 0 61 | }; 62 | #define kSecCSRequirementInformation 1 << 2 63 | #define kSecCSSigningInformation 1 << 1 64 | 65 | OSStatus SecStaticCodeCreateWithPathAndAttributes(CFURLRef path, SecCSFlags flags, CFDictionaryRef attributes, SecStaticCodeRef *staticCode); 66 | OSStatus SecCodeCopySigningInformation(SecStaticCodeRef code, SecCSFlags flags, CFDictionaryRef *information); 67 | CFDataRef SecCertificateCopyExtensionValue(SecCertificateRef certificate, CFTypeRef extensionOID, bool *isCritical); 68 | void SecPolicySetOptionsValue(SecPolicyRef policy, CFStringRef key, CFTypeRef value); 69 | 70 | extern CFStringRef kSecCodeInfoEntitlementsDict; 71 | extern CFStringRef kSecCodeInfoCertificates; 72 | extern CFStringRef kSecPolicyAppleiPhoneApplicationSigning; 73 | extern CFStringRef kSecPolicyAppleiPhoneProfileApplicationSigning; 74 | extern CFStringRef kSecPolicyLeafMarkerOid; 75 | 76 | extern SecStaticCodeRef getStaticCodeRef(NSString *binaryPath); 77 | extern NSDictionary* dumpEntitlements(SecStaticCodeRef codeRef); 78 | extern NSDictionary* dumpEntitlementsFromBinaryAtPath(NSString *binaryPath); 79 | extern NSDictionary* dumpEntitlementsFromBinaryData(NSData* binaryData); 80 | 81 | extern EXPLOIT_TYPE getDeclaredExploitTypeFromInfoDictionary(NSDictionary *infoDict); 82 | extern bool isPlatformVulnerableToExploitType(EXPLOIT_TYPE exploitType); -------------------------------------------------------------------------------- /Shared/TSUtil.m: -------------------------------------------------------------------------------- 1 | #import "TSUtil.h" 2 | 3 | #import 4 | #import 5 | #import 6 | #import 7 | 8 | static EXPLOIT_TYPE gPlatformVulnerabilities; 9 | 10 | void* _CTServerConnectionCreate(CFAllocatorRef, void *, void *); 11 | int64_t _CTServerConnectionSetCellularUsagePolicy(CFTypeRef* ct, NSString* identifier, NSDictionary* policies); 12 | 13 | #define POSIX_SPAWN_PERSONA_FLAGS_OVERRIDE 1 14 | extern int posix_spawnattr_set_persona_np(const posix_spawnattr_t* __restrict, uid_t, uint32_t); 15 | extern int posix_spawnattr_set_persona_uid_np(const posix_spawnattr_t* __restrict, uid_t); 16 | extern int posix_spawnattr_set_persona_gid_np(const posix_spawnattr_t* __restrict, uid_t); 17 | 18 | void chineseWifiFixup(void) 19 | { 20 | _CTServerConnectionSetCellularUsagePolicy( 21 | _CTServerConnectionCreate(kCFAllocatorDefault, NULL, NULL), 22 | NSBundle.mainBundle.bundleIdentifier, 23 | @{ 24 | @"kCTCellularDataUsagePolicy" : @"kCTCellularDataUsagePolicyAlwaysAllow", 25 | @"kCTWiFiDataUsagePolicy" : @"kCTCellularDataUsagePolicyAlwaysAllow" 26 | } 27 | ); 28 | } 29 | 30 | NSString *getExecutablePath(void) 31 | { 32 | uint32_t len = PATH_MAX; 33 | char selfPath[len]; 34 | _NSGetExecutablePath(selfPath, &len); 35 | return [NSString stringWithUTF8String:selfPath]; 36 | } 37 | 38 | #ifdef EMBEDDED_ROOT_HELPER 39 | NSString* rootHelperPath(void) 40 | { 41 | return getExecutablePath(); 42 | } 43 | #else 44 | NSString* rootHelperPath(void) 45 | { 46 | return [[NSBundle mainBundle].bundlePath stringByAppendingPathComponent:@"trollstorehelper"]; 47 | } 48 | #endif 49 | 50 | int fd_is_valid(int fd) 51 | { 52 | return fcntl(fd, F_GETFD) != -1 || errno != EBADF; 53 | } 54 | 55 | NSString* getNSStringFromFile(int fd) 56 | { 57 | NSMutableString* ms = [NSMutableString new]; 58 | ssize_t num_read; 59 | char c; 60 | if(!fd_is_valid(fd)) return @""; 61 | while((num_read = read(fd, &c, sizeof(c)))) 62 | { 63 | [ms appendString:[NSString stringWithFormat:@"%c", c]]; 64 | if(c == '\n') break; 65 | } 66 | return ms.copy; 67 | } 68 | 69 | void printMultilineNSString(NSString* stringToPrint) 70 | { 71 | NSCharacterSet *separator = [NSCharacterSet newlineCharacterSet]; 72 | NSArray* lines = [stringToPrint componentsSeparatedByCharactersInSet:separator]; 73 | for(NSString* line in lines) 74 | { 75 | NSLog(@"%@", line); 76 | } 77 | } 78 | 79 | int spawnRoot(NSString* path, NSArray* args, NSString** stdOut, NSString** stdErr) 80 | { 81 | NSMutableArray* argsM = args.mutableCopy ?: [NSMutableArray new]; 82 | [argsM insertObject:path atIndex:0]; 83 | 84 | NSUInteger argCount = [argsM count]; 85 | char **argsC = (char **)malloc((argCount + 1) * sizeof(char*)); 86 | 87 | for (NSUInteger i = 0; i < argCount; i++) 88 | { 89 | argsC[i] = strdup([[argsM objectAtIndex:i] UTF8String]); 90 | } 91 | argsC[argCount] = NULL; 92 | 93 | posix_spawnattr_t attr; 94 | posix_spawnattr_init(&attr); 95 | 96 | posix_spawnattr_set_persona_np(&attr, 99, POSIX_SPAWN_PERSONA_FLAGS_OVERRIDE); 97 | posix_spawnattr_set_persona_uid_np(&attr, 0); 98 | posix_spawnattr_set_persona_gid_np(&attr, 0); 99 | 100 | posix_spawn_file_actions_t action; 101 | posix_spawn_file_actions_init(&action); 102 | 103 | int outErr[2]; 104 | if(stdErr) 105 | { 106 | pipe(outErr); 107 | posix_spawn_file_actions_adddup2(&action, outErr[1], STDERR_FILENO); 108 | posix_spawn_file_actions_addclose(&action, outErr[0]); 109 | } 110 | 111 | int out[2]; 112 | if(stdOut) 113 | { 114 | pipe(out); 115 | posix_spawn_file_actions_adddup2(&action, out[1], STDOUT_FILENO); 116 | posix_spawn_file_actions_addclose(&action, out[0]); 117 | } 118 | 119 | pid_t task_pid; 120 | int status = -200; 121 | int spawnError = posix_spawn(&task_pid, [path UTF8String], &action, &attr, (char* const*)argsC, NULL); 122 | posix_spawnattr_destroy(&attr); 123 | for (NSUInteger i = 0; i < argCount; i++) 124 | { 125 | free(argsC[i]); 126 | } 127 | free(argsC); 128 | 129 | if(spawnError != 0) 130 | { 131 | NSLog(@"posix_spawn error %d\n", spawnError); 132 | return spawnError; 133 | } 134 | 135 | __block volatile BOOL _isRunning = YES; 136 | NSMutableString* outString = [NSMutableString new]; 137 | NSMutableString* errString = [NSMutableString new]; 138 | dispatch_semaphore_t sema = 0; 139 | dispatch_queue_t logQueue; 140 | if(stdOut || stdErr) 141 | { 142 | logQueue = dispatch_queue_create("com.opa334.TrollStore.LogCollector", NULL); 143 | sema = dispatch_semaphore_create(0); 144 | 145 | int outPipe = out[0]; 146 | int outErrPipe = outErr[0]; 147 | 148 | __block BOOL outEnabled = (BOOL)stdOut; 149 | __block BOOL errEnabled = (BOOL)stdErr; 150 | dispatch_async(logQueue, ^ 151 | { 152 | while(_isRunning) 153 | { 154 | @autoreleasepool 155 | { 156 | if(outEnabled) 157 | { 158 | [outString appendString:getNSStringFromFile(outPipe)]; 159 | } 160 | if(errEnabled) 161 | { 162 | [errString appendString:getNSStringFromFile(outErrPipe)]; 163 | } 164 | } 165 | } 166 | dispatch_semaphore_signal(sema); 167 | }); 168 | } 169 | 170 | do 171 | { 172 | if (waitpid(task_pid, &status, 0) != -1) { 173 | NSLog(@"Child status %d", WEXITSTATUS(status)); 174 | } else 175 | { 176 | perror("waitpid"); 177 | _isRunning = NO; 178 | return -222; 179 | } 180 | } while (!WIFEXITED(status) && !WIFSIGNALED(status)); 181 | 182 | _isRunning = NO; 183 | if(stdOut || stdErr) 184 | { 185 | if(stdOut) 186 | { 187 | close(out[1]); 188 | } 189 | if(stdErr) 190 | { 191 | close(outErr[1]); 192 | } 193 | 194 | // wait for logging queue to finish 195 | dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); 196 | 197 | if(stdOut) 198 | { 199 | *stdOut = outString.copy; 200 | } 201 | if(stdErr) 202 | { 203 | *stdErr = errString.copy; 204 | } 205 | } 206 | 207 | return WEXITSTATUS(status); 208 | } 209 | 210 | void enumerateProcessesUsingBlock(void (^enumerator)(pid_t pid, NSString* executablePath, BOOL* stop)) 211 | { 212 | static int maxArgumentSize = 0; 213 | if (maxArgumentSize == 0) { 214 | size_t size = sizeof(maxArgumentSize); 215 | if (sysctl((int[]){ CTL_KERN, KERN_ARGMAX }, 2, &maxArgumentSize, &size, NULL, 0) == -1) { 216 | perror("sysctl argument size"); 217 | maxArgumentSize = 4096; // Default 218 | } 219 | } 220 | int mib[3] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL}; 221 | struct kinfo_proc *info; 222 | size_t length; 223 | int count; 224 | 225 | if (sysctl(mib, 3, NULL, &length, NULL, 0) < 0) 226 | return; 227 | if (!(info = malloc(length))) 228 | return; 229 | if (sysctl(mib, 3, info, &length, NULL, 0) < 0) { 230 | free(info); 231 | return; 232 | } 233 | count = length / sizeof(struct kinfo_proc); 234 | for (int i = 0; i < count; i++) { 235 | @autoreleasepool { 236 | pid_t pid = info[i].kp_proc.p_pid; 237 | if (pid == 0) { 238 | continue; 239 | } 240 | size_t size = maxArgumentSize; 241 | char* buffer = (char *)malloc(length); 242 | if (sysctl((int[]){ CTL_KERN, KERN_PROCARGS2, pid }, 3, buffer, &size, NULL, 0) == 0) { 243 | NSString* executablePath = [NSString stringWithCString:(buffer+sizeof(int)) encoding:NSUTF8StringEncoding]; 244 | 245 | BOOL stop = NO; 246 | enumerator(pid, executablePath, &stop); 247 | if(stop) 248 | { 249 | free(buffer); 250 | break; 251 | } 252 | } 253 | free(buffer); 254 | } 255 | } 256 | free(info); 257 | } 258 | 259 | void killall(NSString* processName, BOOL softly) 260 | { 261 | enumerateProcessesUsingBlock(^(pid_t pid, NSString* executablePath, BOOL* stop) 262 | { 263 | if([executablePath.lastPathComponent isEqualToString:processName]) 264 | { 265 | if(softly) 266 | { 267 | kill(pid, SIGTERM); 268 | } 269 | else 270 | { 271 | kill(pid, SIGKILL); 272 | } 273 | } 274 | }); 275 | } 276 | 277 | void respring(void) 278 | { 279 | killall(@"SpringBoard", YES); 280 | exit(0); 281 | } 282 | 283 | void github_fetchLatestVersion(NSString* repo, void (^completionHandler)(NSString* latestVersion)) 284 | { 285 | NSString* urlString = [NSString stringWithFormat:@"https://api.github.com/repos/%@/releases/latest", repo]; 286 | NSURL* githubLatestAPIURL = [NSURL URLWithString:urlString]; 287 | 288 | NSURLSessionDataTask* task = [NSURLSession.sharedSession dataTaskWithURL:githubLatestAPIURL completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 289 | { 290 | if(!error) 291 | { 292 | if ([response isKindOfClass:[NSHTTPURLResponse class]]) 293 | { 294 | NSError *jsonError; 295 | NSDictionary *jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError]; 296 | 297 | if (!jsonError) 298 | { 299 | completionHandler(jsonResponse[@"tag_name"]); 300 | } 301 | } 302 | } 303 | }]; 304 | 305 | [task resume]; 306 | } 307 | 308 | void fetchLatestTrollStoreVersion(void (^completionHandler)(NSString* latestVersion)) 309 | { 310 | github_fetchLatestVersion(@"opa334/TrollStore", completionHandler); 311 | } 312 | 313 | void fetchLatestLdidVersion(void (^completionHandler)(NSString* latestVersion)) 314 | { 315 | github_fetchLatestVersion(@"opa334/ldid", completionHandler); 316 | } 317 | 318 | NSArray* trollStoreInstalledAppContainerPaths() 319 | { 320 | NSMutableArray* appContainerPaths = [NSMutableArray new]; 321 | 322 | NSString* appContainersPath = @"/var/containers/Bundle/Application"; 323 | 324 | NSError* error; 325 | NSArray* containers = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:appContainersPath error:&error]; 326 | if(error) 327 | { 328 | NSLog(@"error getting app bundles paths %@", error); 329 | } 330 | if(!containers) return nil; 331 | 332 | for(NSString* container in containers) 333 | { 334 | NSString* containerPath = [appContainersPath stringByAppendingPathComponent:container]; 335 | BOOL isDirectory = NO; 336 | BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:containerPath isDirectory:&isDirectory]; 337 | if(exists && isDirectory) 338 | { 339 | NSString* trollStoreMark = [containerPath stringByAppendingPathComponent:@"_TrollStore"]; 340 | if([[NSFileManager defaultManager] fileExistsAtPath:trollStoreMark]) 341 | { 342 | NSString* trollStoreApp = [containerPath stringByAppendingPathComponent:@"TrollStore.app"]; 343 | if(![[NSFileManager defaultManager] fileExistsAtPath:trollStoreApp]) 344 | { 345 | [appContainerPaths addObject:containerPath]; 346 | } 347 | } 348 | } 349 | } 350 | 351 | return appContainerPaths.copy; 352 | } 353 | 354 | NSArray* trollStoreInstalledAppBundlePaths() 355 | { 356 | NSMutableArray* appPaths = [NSMutableArray new]; 357 | for(NSString* containerPath in trollStoreInstalledAppContainerPaths()) 358 | { 359 | NSArray* items = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:containerPath error:nil]; 360 | if(!items) return nil; 361 | 362 | for(NSString* item in items) 363 | { 364 | if([item.pathExtension isEqualToString:@"app"]) 365 | { 366 | [appPaths addObject:[containerPath stringByAppendingPathComponent:item]]; 367 | } 368 | } 369 | } 370 | return appPaths.copy; 371 | } 372 | 373 | NSString* trollStorePath() 374 | { 375 | NSError* mcmError; 376 | MCMAppContainer* appContainer = [MCMAppContainer containerWithIdentifier:@"com.opa334.TrollStore" createIfNecessary:NO existed:NULL error:&mcmError]; 377 | if(!appContainer) return nil; 378 | return appContainer.url.path; 379 | } 380 | 381 | NSString* trollStoreAppPath() 382 | { 383 | return [trollStorePath() stringByAppendingPathComponent:@"TrollStore.app"]; 384 | } 385 | 386 | BOOL isRemovableSystemApp(NSString* appId) 387 | { 388 | return [[NSFileManager defaultManager] fileExistsAtPath:[@"/System/Library/AppSignatures" stringByAppendingPathComponent:appId]]; 389 | } 390 | 391 | LSApplicationProxy* findPersistenceHelperApp(PERSISTENCE_HELPER_TYPE allowedTypes) 392 | { 393 | __block LSApplicationProxy* outProxy; 394 | 395 | void (^searchBlock)(LSApplicationProxy* appProxy) = ^(LSApplicationProxy* appProxy) 396 | { 397 | if(appProxy.installed && !appProxy.restricted) 398 | { 399 | if([appProxy.bundleURL.path hasPrefix:@"/private/var/containers"]) 400 | { 401 | NSURL* trollStorePersistenceMarkURL = [appProxy.bundleURL URLByAppendingPathComponent:@".TrollStorePersistenceHelper"]; 402 | if([trollStorePersistenceMarkURL checkResourceIsReachableAndReturnError:nil]) 403 | { 404 | outProxy = appProxy; 405 | } 406 | } 407 | } 408 | }; 409 | 410 | if(allowedTypes & PERSISTENCE_HELPER_TYPE_USER) 411 | { 412 | [[LSApplicationWorkspace defaultWorkspace] enumerateApplicationsOfType:0 block:searchBlock]; 413 | } 414 | if(allowedTypes & PERSISTENCE_HELPER_TYPE_SYSTEM) 415 | { 416 | [[LSApplicationWorkspace defaultWorkspace] enumerateApplicationsOfType:1 block:searchBlock]; 417 | } 418 | 419 | return outProxy; 420 | } 421 | 422 | SecStaticCodeRef getStaticCodeRef(NSString *binaryPath) 423 | { 424 | if(binaryPath == nil) 425 | { 426 | return NULL; 427 | } 428 | 429 | CFURLRef binaryURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (__bridge CFStringRef)binaryPath, kCFURLPOSIXPathStyle, false); 430 | if(binaryURL == NULL) 431 | { 432 | NSLog(@"[getStaticCodeRef] failed to get URL to binary %@", binaryPath); 433 | return NULL; 434 | } 435 | 436 | SecStaticCodeRef codeRef = NULL; 437 | OSStatus result; 438 | 439 | result = SecStaticCodeCreateWithPathAndAttributes(binaryURL, kSecCSDefaultFlags, NULL, &codeRef); 440 | 441 | CFRelease(binaryURL); 442 | 443 | if(result != errSecSuccess) 444 | { 445 | NSLog(@"[getStaticCodeRef] failed to create static code for binary %@", binaryPath); 446 | return NULL; 447 | } 448 | 449 | return codeRef; 450 | } 451 | 452 | NSDictionary* dumpEntitlements(SecStaticCodeRef codeRef) 453 | { 454 | if(codeRef == NULL) 455 | { 456 | NSLog(@"[dumpEntitlements] attempting to dump entitlements without a StaticCodeRef"); 457 | return nil; 458 | } 459 | 460 | CFDictionaryRef signingInfo = NULL; 461 | OSStatus result; 462 | 463 | result = SecCodeCopySigningInformation(codeRef, kSecCSRequirementInformation, &signingInfo); 464 | 465 | if(result != errSecSuccess) 466 | { 467 | NSLog(@"[dumpEntitlements] failed to copy signing info from static code"); 468 | return nil; 469 | } 470 | 471 | NSDictionary *entitlementsNSDict = nil; 472 | 473 | CFDictionaryRef entitlements = CFDictionaryGetValue(signingInfo, kSecCodeInfoEntitlementsDict); 474 | if(entitlements == NULL) 475 | { 476 | NSLog(@"[dumpEntitlements] no entitlements specified"); 477 | } 478 | else if(CFGetTypeID(entitlements) != CFDictionaryGetTypeID()) 479 | { 480 | NSLog(@"[dumpEntitlements] invalid entitlements"); 481 | } 482 | else 483 | { 484 | entitlementsNSDict = (__bridge NSDictionary *)(entitlements); 485 | NSLog(@"[dumpEntitlements] dumped %@", entitlementsNSDict); 486 | } 487 | 488 | CFRelease(signingInfo); 489 | return entitlementsNSDict; 490 | } 491 | 492 | NSDictionary* dumpEntitlementsFromBinaryAtPath(NSString *binaryPath) 493 | { 494 | // This function is intended for one-shot checks. Main-event functions should retain/release their own SecStaticCodeRefs 495 | 496 | if(binaryPath == nil) 497 | { 498 | return nil; 499 | } 500 | 501 | SecStaticCodeRef codeRef = getStaticCodeRef(binaryPath); 502 | if(codeRef == NULL) 503 | { 504 | return nil; 505 | } 506 | 507 | NSDictionary *entitlements = dumpEntitlements(codeRef); 508 | CFRelease(codeRef); 509 | 510 | return entitlements; 511 | } 512 | 513 | NSDictionary* dumpEntitlementsFromBinaryData(NSData* binaryData) 514 | { 515 | NSDictionary* entitlements; 516 | NSString* tmpPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSUUID UUID].UUIDString]; 517 | NSURL* tmpURL = [NSURL fileURLWithPath:tmpPath]; 518 | if([binaryData writeToURL:tmpURL options:NSDataWritingAtomic error:nil]) 519 | { 520 | entitlements = dumpEntitlementsFromBinaryAtPath(tmpPath); 521 | [[NSFileManager defaultManager] removeItemAtURL:tmpURL error:nil]; 522 | } 523 | return entitlements; 524 | } 525 | 526 | EXPLOIT_TYPE getDeclaredExploitTypeFromInfoDictionary(NSDictionary *infoDict) 527 | { 528 | NSObject *tsPreAppliedExploitType = infoDict[@"TSPreAppliedExploitType"]; 529 | if([tsPreAppliedExploitType isKindOfClass:[NSNumber class]]) 530 | { 531 | NSNumber *tsPreAppliedExploitTypeNum = (NSNumber *)tsPreAppliedExploitType; 532 | int exploitTypeInt = [tsPreAppliedExploitTypeNum intValue]; 533 | 534 | if(exploitTypeInt > 0) 535 | { 536 | // Convert versions 1, 2, etc... for use with bitmasking 537 | return (1 << (exploitTypeInt - 1)); 538 | } 539 | else 540 | { 541 | NSLog(@"[getDeclaredExploitTypeFromInfoDictionary] rejecting TSPreAppliedExploitType Info.plist value (%i) which is out of range", exploitTypeInt); 542 | } 543 | } 544 | 545 | // Legacy Info.plist flag - now deprecated, but we treat it as a custom root cert if present 546 | NSObject *tsBundleIsPreSigned = infoDict[@"TSBundlePreSigned"]; 547 | if([tsBundleIsPreSigned isKindOfClass:[NSNumber class]]) 548 | { 549 | NSNumber *tsBundleIsPreSignedNum = (NSNumber *)tsBundleIsPreSigned; 550 | if([tsBundleIsPreSignedNum boolValue] == YES) 551 | { 552 | return EXPLOIT_TYPE_CUSTOM_ROOT_CERTIFICATE_V1; 553 | } 554 | } 555 | 556 | // No declarations 557 | return 0; 558 | } 559 | 560 | void determinePlatformVulnerableExploitTypes(void *context) { 561 | size_t size = 0; 562 | 563 | // Get the current build number 564 | int mib[2] = {CTL_KERN, KERN_OSVERSION}; 565 | 566 | // Get size of buffer 567 | sysctl(mib, 2, NULL, &size, NULL, 0); 568 | 569 | // Get the actual value 570 | char *os_build = malloc(size); 571 | if(!os_build) 572 | { 573 | // malloc failed 574 | perror("malloc buffer for KERN_OSVERSION"); 575 | return; 576 | } 577 | 578 | if (sysctl(mib, 2, os_build, &size, NULL, 0) != 0) 579 | { 580 | // sysctl failed 581 | perror("sysctl KERN_OSVERSION"); 582 | free(os_build); 583 | return; 584 | } 585 | 586 | 587 | if(strncmp(os_build, "19F5070b", 8) <= 0) 588 | { 589 | // iOS 14.0 - 15.5 beta 4 590 | gPlatformVulnerabilities = (EXPLOIT_TYPE_CUSTOM_ROOT_CERTIFICATE_V1 | EXPLOIT_TYPE_CMS_SIGNERINFO_V1); 591 | } 592 | else if(strncmp(os_build, "19G5027e", 8) >= 0 && strncmp(os_build, "19G5063a", 8) <= 0) 593 | { 594 | // iOS 15.6 beta 1 - 5 595 | gPlatformVulnerabilities = (EXPLOIT_TYPE_CUSTOM_ROOT_CERTIFICATE_V1 | EXPLOIT_TYPE_CMS_SIGNERINFO_V1); 596 | } 597 | else if(strncmp(os_build, "20G81", 5) <= 0) 598 | { 599 | // iOS 14.0 - 16.6.1 600 | gPlatformVulnerabilities = EXPLOIT_TYPE_CMS_SIGNERINFO_V1; 601 | } 602 | else if(strncmp(os_build, "21A5248v", 8) >= 0 && strncmp(os_build, "21A331", 6) <= 0) 603 | { 604 | // iOS 17.0 605 | gPlatformVulnerabilities = EXPLOIT_TYPE_CMS_SIGNERINFO_V1; 606 | } 607 | 608 | free(os_build); 609 | } 610 | 611 | bool isPlatformVulnerableToExploitType(EXPLOIT_TYPE exploitType) { 612 | // Find out what we are vulnerable to 613 | static dispatch_once_t once; 614 | dispatch_once_f(&once, NULL, determinePlatformVulnerableExploitTypes); 615 | 616 | return (exploitType & gPlatformVulnerabilities) != 0; 617 | } -------------------------------------------------------------------------------- /Shared/locsim.h: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | #ifndef locsim_h 4 | #define locsim_h 5 | 6 | 7 | #endif /* locsim_h */ 8 | 9 | void start_loc_sim(CLLocation *loc, int delivery, int repeat); 10 | void stop_loc_sim(); -------------------------------------------------------------------------------- /Shared/locsim.m: -------------------------------------------------------------------------------- 1 | //Created by udevs 2 | 3 | #import "PrivateHeader.h" 4 | #import 5 | 6 | // from https://github.com/udevsharold/locsim 7 | static void post_required_timezone_update(){ 8 | //try our best to update time zone instantly, though it totally depends on whether xpc server (locationd) did update the location before we post this, especially with stop_loc_sim() 9 | CFNotificationCenterPostNotificationWithOptions(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR("AutomaticTimeZoneUpdateNeeded"), NULL, NULL, kCFNotificationDeliverImmediately); 10 | } 11 | 12 | void start_loc_sim(CLLocation *loc, int delivery, int repeat){ 13 | CLSimulationManager *simManager = [[CLSimulationManager alloc] init]; 14 | if (delivery >= 0) simManager.locationDeliveryBehavior = (uint8_t)delivery; 15 | if (repeat >= 0) simManager.locationRepeatBehavior = (uint8_t)repeat; 16 | [simManager stopLocationSimulation]; 17 | [simManager clearSimulatedLocations]; 18 | [simManager appendSimulatedLocation:loc]; 19 | [simManager flush]; 20 | [simManager startLocationSimulation]; 21 | post_required_timezone_update(); 22 | } 23 | 24 | void stop_loc_sim(){ 25 | CLSimulationManager *simManager = [[CLSimulationManager alloc] init]; 26 | [simManager stopLocationSimulation]; 27 | [simManager clearSimulatedLocations]; 28 | [simManager flush]; 29 | post_required_timezone_update(); 30 | } -------------------------------------------------------------------------------- /Shared/userspaceReboot.c: -------------------------------------------------------------------------------- 1 | // 2 | // userspaceReboot.c 3 | // PureKFD 4 | // 5 | // Created by Nick Chan on 10/12/2023. 6 | // 7 | 8 | #include "userspaceReboot.h" 9 | 10 | void NSLog(CFStringRef format, ...); 11 | typedef void* xpc_object_t; 12 | typedef void* xpc_type_t; 13 | typedef void* xpc_connection_t; 14 | typedef void* launch_data_t; 15 | typedef void (^xpc_handler_t)(xpc_object_t object); 16 | typedef bool (^xpc_dictionary_applier_t)(const char *key, xpc_object_t value); 17 | 18 | xpc_object_t xpc_dictionary_create(const char * const *keys, const xpc_object_t *values, size_t count); 19 | void xpc_dictionary_set_uint64(xpc_object_t dictionary, const char *key, uint64_t value); 20 | void xpc_dictionary_set_string(xpc_object_t dictionary, const char *key, const char *value); 21 | int64_t xpc_dictionary_get_int64(xpc_object_t dictionary, const char *key); 22 | xpc_object_t xpc_dictionary_get_value(xpc_object_t dictionary, const char *key); 23 | bool xpc_dictionary_get_bool(xpc_object_t dictionary, const char *key); 24 | void xpc_dictionary_set_fd(xpc_object_t dictionary, const char *key, int value); 25 | void xpc_dictionary_set_bool(xpc_object_t dictionary, const char *key, bool value); 26 | const char *xpc_dictionary_get_string(xpc_object_t dictionary, const char *key); 27 | void xpc_dictionary_set_value(xpc_object_t dictionary, const char *key, xpc_object_t value); 28 | xpc_type_t xpc_get_type(xpc_object_t object); 29 | bool xpc_dictionary_apply(xpc_object_t xdict, xpc_dictionary_applier_t applier); 30 | int64_t xpc_int64_get_value(xpc_object_t xint); 31 | char *xpc_copy_description(xpc_object_t object); 32 | void xpc_dictionary_set_int64(xpc_object_t dictionary, const char *key, int64_t value); 33 | const char *xpc_string_get_string_ptr(xpc_object_t xstring); 34 | xpc_object_t xpc_array_create(const xpc_object_t *objects, size_t count); 35 | xpc_object_t xpc_string_create(const char *string); 36 | size_t xpc_dictionary_get_count(xpc_object_t dictionary); 37 | void xpc_array_append_value(xpc_object_t xarray, xpc_object_t value); 38 | xpc_connection_t xpc_connection_create_mach_service(const char *name, dispatch_queue_t _Nullable targetq, uint64_t flags); 39 | void xpc_release(xpc_object_t object); 40 | void xpc_connection_activate(xpc_connection_t connection); 41 | void xpc_connection_set_event_handler(xpc_connection_t connection, xpc_handler_t handler); 42 | xpc_object_t xpc_connection_send_message_with_reply_sync(xpc_connection_t connection, xpc_object_t message); 43 | void xpc_connection_cancel(xpc_connection_t connection); 44 | 45 | #define XPC_ARRAY_APPEND ((size_t)(-1)) 46 | #define XPC_ERROR_CONNECTION_INVALID XPC_GLOBAL_OBJECT(_xpc_error_connection_invalid) 47 | #define XPC_ERROR_TERMINATION_IMMINENT XPC_GLOBAL_OBJECT(_xpc_error_termination_imminent) 48 | #define XPC_TYPE_ARRAY (&_xpc_type_array) 49 | #define XPC_TYPE_BOOL (&_xpc_type_bool) 50 | #define XPC_TYPE_DICTIONARY (&_xpc_type_dictionary) 51 | #define XPC_TYPE_ERROR (&_xpc_type_error) 52 | #define XPC_TYPE_STRING (&_xpc_type_string) 53 | 54 | 55 | extern const struct _xpc_dictionary_s _xpc_error_connection_invalid; 56 | extern const struct _xpc_dictionary_s _xpc_error_termination_imminent; 57 | extern const struct _xpc_type_s _xpc_type_array; 58 | extern const struct _xpc_type_s _xpc_type_bool; 59 | extern const struct _xpc_type_s _xpc_type_dictionary; 60 | extern const struct _xpc_type_s _xpc_type_error; 61 | extern const struct _xpc_type_s _xpc_type_string; 62 | 63 | int userspaceReboot(void) { 64 | kern_return_t ret = 0; 65 | xpc_object_t xdict = xpc_dictionary_create(NULL, NULL, 0); 66 | xpc_dictionary_set_uint64(xdict, "cmd", 5); 67 | ret = unlink("/private/var/mobile/Library/MemoryMaintenance/mmaintenanced"); 68 | if (ret && errno != ENOENT) { 69 | NSLog(CFSTR("could not delete mmaintenanced last reboot file")); 70 | return -1; 71 | } 72 | xpc_connection_t connection = xpc_connection_create_mach_service("com.apple.mmaintenanced", NULL, 0); 73 | 74 | if (xpc_get_type(connection) == XPC_TYPE_ERROR) { 75 | char* desc = xpc_copy_description(connection); 76 | NSLog(CFSTR("%s"),desc); 77 | free(desc); 78 | xpc_release(connection); 79 | return -1; 80 | } 81 | xpc_connection_set_event_handler(connection, ^(xpc_object_t random) {}); 82 | xpc_connection_activate(connection); 83 | char* desc = xpc_copy_description(connection); 84 | puts(desc); 85 | NSLog(CFSTR("mmaintenanced connection created")); 86 | xpc_object_t reply = xpc_connection_send_message_with_reply_sync(connection, xdict); 87 | if (reply) { 88 | char* desc = xpc_copy_description(reply); 89 | NSLog(CFSTR("%s"),desc); 90 | free(desc); 91 | ret = 0; 92 | } else { 93 | NSLog(CFSTR("no reply received from mmaintenanced")); 94 | ret = -1; 95 | } 96 | 97 | xpc_connection_cancel(connection); 98 | xpc_release(connection); 99 | xpc_release(reply); 100 | xpc_release(xdict); 101 | return 0; 102 | } -------------------------------------------------------------------------------- /Shared/userspaceReboot.h: -------------------------------------------------------------------------------- 1 | // 2 | // userspaceReboot.h 3 | // PureKFD 4 | // 5 | // Created by Nick Chan on 10/12/2023. 6 | // 7 | 8 | #ifndef userspaceReboot_h 9 | #define userspaceReboot_h 10 | 11 | #include 12 | #include 13 | #include 14 | 15 | int userspaceReboot(void); 16 | 17 | #endif /* userspaceReboot_h */ -------------------------------------------------------------------------------- /TrollCuts-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import "Shared/PrivateHeader.h" 6 | #import "Shared/TSUtil.h" 7 | #import "Shared/TCUtil.h" 8 | #import "Shared/userspaceReboot.h" -------------------------------------------------------------------------------- /TrollCuts.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 56; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 023D835B2B5BB41800653FAC /* SetRingerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023D835A2B5BB41800653FAC /* SetRingerState.swift */; }; 11 | 023D835D2B5BC02F00653FAC /* GetRingerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023D835C2B5BC02F00653FAC /* GetRingerState.swift */; }; 12 | 0241D58A2B56C1E00035DDE7 /* ManagedConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB2F22B555E14004DA9F0 /* ManagedConfiguration.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 13 | 025B5DA82B54E60F003DBD4D /* TrollCutsApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 025B5DA72B54E60F003DBD4D /* TrollCutsApp.swift */; }; 14 | 025B5DAA2B54E60F003DBD4D /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 025B5DA92B54E60F003DBD4D /* ContentView.swift */; }; 15 | 025B5DAC2B54E613003DBD4D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 025B5DAB2B54E613003DBD4D /* Assets.xcassets */; }; 16 | 025B5DAF2B54E613003DBD4D /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 025B5DAE2B54E613003DBD4D /* Preview Assets.xcassets */; }; 17 | 025B5DB92B54E71D003DBD4D /* StartBackup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 025B5DB82B54E71D003DBD4D /* StartBackup.swift */; }; 18 | 029EB2C92B550E07004DA9F0 /* MobileBackup.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB2C82B550E07004DA9F0 /* MobileBackup.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 19 | 029EB2CD2B55141B004DA9F0 /* TSUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 029EB2CC2B55141B004DA9F0 /* TSUtil.m */; }; 20 | 029EB2D72B551934004DA9F0 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB2D62B551933004DA9F0 /* CoreServices.framework */; settings = {ATTRIBUTES = (Required, ); }; }; 21 | 029EB2D92B551AC1004DA9F0 /* TCUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 029EB2D82B551AC1004DA9F0 /* TCUtil.m */; }; 22 | 029EB2DC2B5522C5004DA9F0 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB2DB2B5522C4004DA9F0 /* CoreTelephony.framework */; }; 23 | 029EB2DE2B5522E5004DA9F0 /* MobileContainerManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB2DD2B5522E4004DA9F0 /* MobileContainerManager.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 24 | 029EB2E22B552E4F004DA9F0 /* Respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB2E12B552E4F004DA9F0 /* Respring.swift */; }; 25 | 029EB2E42B552F38004DA9F0 /* CancelBackup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB2E32B552F38004DA9F0 /* CancelBackup.swift */; }; 26 | 029EB2E82B553871004DA9F0 /* Lock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB2E72B553871004DA9F0 /* Lock.swift */; }; 27 | 029EB2FB2B5562E2004DA9F0 /* UserspaceReboot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB2FA2B5562E2004DA9F0 /* UserspaceReboot.swift */; }; 28 | 029EB3012B556FDF004DA9F0 /* userspaceReboot.c in Sources */ = {isa = PBXBuildFile; fileRef = 029EB3002B556FDF004DA9F0 /* userspaceReboot.c */; }; 29 | 029EB3032B5570D2004DA9F0 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB3022B5570D2004DA9F0 /* CoreFoundation.framework */; settings = {ATTRIBUTES = (Required, ); }; }; 30 | 029EB3052B5571F7004DA9F0 /* Reboot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB3042B5571F7004DA9F0 /* Reboot.swift */; }; 31 | 029EB3072B55733F004DA9F0 /* FrontBoardServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB3062B55733E004DA9F0 /* FrontBoardServices.framework */; settings = {ATTRIBUTES = (Required, ); }; }; 32 | 029EB30D2B5574A7004DA9F0 /* SwitchAppsRegistration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB30B2B5574A7004DA9F0 /* SwitchAppsRegistration.swift */; }; 33 | 029EB30F2B557527004DA9F0 /* BaseBoard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB30E2B557526004DA9F0 /* BaseBoard.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 34 | 029EB3132B5575B3004DA9F0 /* BoardServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB3122B5575B2004DA9F0 /* BoardServices.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 35 | 029EB3172B558045004DA9F0 /* GetBackupProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB3162B558045004DA9F0 /* GetBackupProgress.swift */; }; 36 | 029EB3192B558055004DA9F0 /* GetBackupState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB3182B558055004DA9F0 /* GetBackupState.swift */; }; 37 | 029EB31F2B55A13B004DA9F0 /* AppIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 029EB31E2B55A13A004DA9F0 /* AppIcon.png */; }; 38 | 029EB32B2B565B58004DA9F0 /* SetAutoBrightness.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB32A2B565B58004DA9F0 /* SetAutoBrightness.swift */; }; 39 | 029EB32D2B565B69004DA9F0 /* SetAutoLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029EB32C2B565B69004DA9F0 /* SetAutoLock.swift */; }; 40 | 029EB32F2B566871004DA9F0 /* GraphicsServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 029EB32E2B566870004DA9F0 /* GraphicsServices.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 41 | 02AA45462B5B689100DE656C /* SetLocationServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AA45452B5B689100DE656C /* SetLocationServices.swift */; }; 42 | 02AA45482B5B69BB00DE656C /* StartLocationSimulation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AA45472B5B69BB00DE656C /* StartLocationSimulation.swift */; }; 43 | 02AA454A2B5B69D500DE656C /* StopLocationSimulation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AA45492B5B69D500DE656C /* StopLocationSimulation.swift */; }; 44 | 02AA454C2B5B77CC00DE656C /* locsim.m in Sources */ = {isa = PBXBuildFile; fileRef = 02AA454B2B5B77CC00DE656C /* locsim.m */; }; 45 | 02AA45542B5B81F400DE656C /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02AA454E2B5B7EB500DE656C /* CoreLocation.framework */; }; 46 | 02AA45572B5B8A3A00DE656C /* Enum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AA45562B5B8A3A00DE656C /* Enum.swift */; }; 47 | /* End PBXBuildFile section */ 48 | 49 | /* Begin PBXFileReference section */ 50 | 023D835A2B5BB41800653FAC /* SetRingerState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetRingerState.swift; sourceTree = ""; }; 51 | 023D835C2B5BC02F00653FAC /* GetRingerState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetRingerState.swift; sourceTree = ""; }; 52 | 025B5DA42B54E60F003DBD4D /* TrollCuts.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TrollCuts.app; sourceTree = BUILT_PRODUCTS_DIR; }; 53 | 025B5DA72B54E60F003DBD4D /* TrollCutsApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrollCutsApp.swift; sourceTree = ""; }; 54 | 025B5DA92B54E60F003DBD4D /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 55 | 025B5DAB2B54E613003DBD4D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 56 | 025B5DAE2B54E613003DBD4D /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 57 | 025B5DB82B54E71D003DBD4D /* StartBackup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StartBackup.swift; sourceTree = ""; }; 58 | 029EB2C82B550E07004DA9F0 /* MobileBackup.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileBackup.framework; path = PrivateFrameworks/MobileBackup.framework; sourceTree = ""; }; 59 | 029EB2CB2B551406004DA9F0 /* TSUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TSUtil.h; sourceTree = ""; }; 60 | 029EB2CC2B55141B004DA9F0 /* TSUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TSUtil.m; sourceTree = ""; }; 61 | 029EB2CE2B551464004DA9F0 /* CoreServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreServices.h; sourceTree = ""; }; 62 | 029EB2D62B551933004DA9F0 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; }; 63 | 029EB2D82B551AC1004DA9F0 /* TCUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCUtil.m; sourceTree = ""; }; 64 | 029EB2DA2B551AD7004DA9F0 /* TCUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCUtil.h; sourceTree = ""; }; 65 | 029EB2DB2B5522C4004DA9F0 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; 66 | 029EB2DD2B5522E4004DA9F0 /* MobileContainerManager.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileContainerManager.framework; path = PrivateFrameworks/MobileContainerManager.framework; sourceTree = ""; }; 67 | 029EB2E12B552E4F004DA9F0 /* Respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Respring.swift; sourceTree = ""; }; 68 | 029EB2E32B552F38004DA9F0 /* CancelBackup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CancelBackup.swift; sourceTree = ""; }; 69 | 029EB2E52B553385004DA9F0 /* PrivateHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrivateHeader.h; sourceTree = ""; }; 70 | 029EB2E62B553394004DA9F0 /* TrollCuts-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TrollCuts-Bridging-Header.h"; sourceTree = ""; }; 71 | 029EB2E72B553871004DA9F0 /* Lock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Lock.swift; sourceTree = ""; }; 72 | 029EB2F22B555E14004DA9F0 /* ManagedConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ManagedConfiguration.framework; path = PrivateFrameworks/ManagedConfiguration.framework; sourceTree = ""; }; 73 | 029EB2FA2B5562E2004DA9F0 /* UserspaceReboot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserspaceReboot.swift; sourceTree = ""; }; 74 | 029EB2FF2B556FDF004DA9F0 /* userspaceReboot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = userspaceReboot.h; sourceTree = ""; }; 75 | 029EB3002B556FDF004DA9F0 /* userspaceReboot.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = userspaceReboot.c; sourceTree = ""; }; 76 | 029EB3022B5570D2004DA9F0 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; 77 | 029EB3042B5571F7004DA9F0 /* Reboot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Reboot.swift; sourceTree = ""; }; 78 | 029EB3062B55733E004DA9F0 /* FrontBoardServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FrontBoardServices.framework; path = PrivateFrameworks/FrontBoardServices.framework; sourceTree = ""; }; 79 | 029EB30B2B5574A7004DA9F0 /* SwitchAppsRegistration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwitchAppsRegistration.swift; sourceTree = ""; }; 80 | 029EB30E2B557526004DA9F0 /* BaseBoard.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = BaseBoard.framework; path = PrivateFrameworks/BaseBoard.framework; sourceTree = ""; }; 81 | 029EB3122B5575B2004DA9F0 /* BoardServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = BoardServices.framework; path = PrivateFrameworks/BoardServices.framework; sourceTree = ""; }; 82 | 029EB3162B558045004DA9F0 /* GetBackupProgress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetBackupProgress.swift; sourceTree = ""; }; 83 | 029EB3182B558055004DA9F0 /* GetBackupState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetBackupState.swift; sourceTree = ""; }; 84 | 029EB31E2B55A13A004DA9F0 /* AppIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = AppIcon.png; sourceTree = ""; }; 85 | 029EB32A2B565B58004DA9F0 /* SetAutoBrightness.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetAutoBrightness.swift; sourceTree = ""; }; 86 | 029EB32C2B565B69004DA9F0 /* SetAutoLock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetAutoLock.swift; sourceTree = ""; }; 87 | 029EB32E2B566870004DA9F0 /* GraphicsServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GraphicsServices.framework; path = PrivateFrameworks/GraphicsServices.framework; sourceTree = ""; }; 88 | 02AA45452B5B689100DE656C /* SetLocationServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetLocationServices.swift; sourceTree = ""; }; 89 | 02AA45472B5B69BB00DE656C /* StartLocationSimulation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StartLocationSimulation.swift; sourceTree = ""; }; 90 | 02AA45492B5B69D500DE656C /* StopLocationSimulation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StopLocationSimulation.swift; sourceTree = ""; }; 91 | 02AA454B2B5B77CC00DE656C /* locsim.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = locsim.m; sourceTree = ""; }; 92 | 02AA454D2B5B77DD00DE656C /* locsim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = locsim.h; sourceTree = ""; }; 93 | 02AA454E2B5B7EB500DE656C /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; 94 | 02AA45502B5B81A400DE656C /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = PrivateFrameworks/CoreLocation.framework; sourceTree = ""; }; 95 | 02AA45562B5B8A3A00DE656C /* Enum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Enum.swift; sourceTree = ""; }; 96 | /* End PBXFileReference section */ 97 | 98 | /* Begin PBXFrameworksBuildPhase section */ 99 | 025B5DA12B54E60F003DBD4D /* Frameworks */ = { 100 | isa = PBXFrameworksBuildPhase; 101 | buildActionMask = 2147483647; 102 | files = ( 103 | 029EB2DE2B5522E5004DA9F0 /* MobileContainerManager.framework in Frameworks */, 104 | 02AA45542B5B81F400DE656C /* CoreLocation.framework in Frameworks */, 105 | 029EB2C92B550E07004DA9F0 /* MobileBackup.framework in Frameworks */, 106 | 029EB30F2B557527004DA9F0 /* BaseBoard.framework in Frameworks */, 107 | 029EB3032B5570D2004DA9F0 /* CoreFoundation.framework in Frameworks */, 108 | 029EB2DC2B5522C5004DA9F0 /* CoreTelephony.framework in Frameworks */, 109 | 029EB32F2B566871004DA9F0 /* GraphicsServices.framework in Frameworks */, 110 | 029EB2D72B551934004DA9F0 /* CoreServices.framework in Frameworks */, 111 | 029EB3072B55733F004DA9F0 /* FrontBoardServices.framework in Frameworks */, 112 | 029EB3132B5575B3004DA9F0 /* BoardServices.framework in Frameworks */, 113 | 0241D58A2B56C1E00035DDE7 /* ManagedConfiguration.framework in Frameworks */, 114 | ); 115 | runOnlyForDeploymentPostprocessing = 0; 116 | }; 117 | /* End PBXFrameworksBuildPhase section */ 118 | 119 | /* Begin PBXGroup section */ 120 | 025B5D9B2B54E60F003DBD4D = { 121 | isa = PBXGroup; 122 | children = ( 123 | 029EB31E2B55A13A004DA9F0 /* AppIcon.png */, 124 | 029EB2E62B553394004DA9F0 /* TrollCuts-Bridging-Header.h */, 125 | 029EB2CA2B5513EC004DA9F0 /* Shared */, 126 | 025B5DB62B54E6C7003DBD4D /* Intents */, 127 | 025B5DA62B54E60F003DBD4D /* TrollCuts */, 128 | 025B5DA52B54E60F003DBD4D /* Products */, 129 | 029EB2C62B550DE4004DA9F0 /* Frameworks */, 130 | ); 131 | sourceTree = ""; 132 | }; 133 | 025B5DA52B54E60F003DBD4D /* Products */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | 025B5DA42B54E60F003DBD4D /* TrollCuts.app */, 137 | ); 138 | name = Products; 139 | sourceTree = ""; 140 | }; 141 | 025B5DA62B54E60F003DBD4D /* TrollCuts */ = { 142 | isa = PBXGroup; 143 | children = ( 144 | 025B5DA72B54E60F003DBD4D /* TrollCutsApp.swift */, 145 | 025B5DA92B54E60F003DBD4D /* ContentView.swift */, 146 | 025B5DAB2B54E613003DBD4D /* Assets.xcassets */, 147 | 025B5DAD2B54E613003DBD4D /* Preview Content */, 148 | ); 149 | path = TrollCuts; 150 | sourceTree = ""; 151 | }; 152 | 025B5DAD2B54E613003DBD4D /* Preview Content */ = { 153 | isa = PBXGroup; 154 | children = ( 155 | 025B5DAE2B54E613003DBD4D /* Preview Assets.xcassets */, 156 | ); 157 | path = "Preview Content"; 158 | sourceTree = ""; 159 | }; 160 | 025B5DB62B54E6C7003DBD4D /* Intents */ = { 161 | isa = PBXGroup; 162 | children = ( 163 | 023D835A2B5BB41800653FAC /* SetRingerState.swift */, 164 | 029EB30B2B5574A7004DA9F0 /* SwitchAppsRegistration.swift */, 165 | 025B5DB82B54E71D003DBD4D /* StartBackup.swift */, 166 | 029EB2E12B552E4F004DA9F0 /* Respring.swift */, 167 | 029EB2E32B552F38004DA9F0 /* CancelBackup.swift */, 168 | 029EB2E72B553871004DA9F0 /* Lock.swift */, 169 | 029EB2FA2B5562E2004DA9F0 /* UserspaceReboot.swift */, 170 | 029EB3042B5571F7004DA9F0 /* Reboot.swift */, 171 | 029EB3162B558045004DA9F0 /* GetBackupProgress.swift */, 172 | 029EB3182B558055004DA9F0 /* GetBackupState.swift */, 173 | 029EB32A2B565B58004DA9F0 /* SetAutoBrightness.swift */, 174 | 029EB32C2B565B69004DA9F0 /* SetAutoLock.swift */, 175 | 02AA45452B5B689100DE656C /* SetLocationServices.swift */, 176 | 02AA45472B5B69BB00DE656C /* StartLocationSimulation.swift */, 177 | 02AA45492B5B69D500DE656C /* StopLocationSimulation.swift */, 178 | 023D835C2B5BC02F00653FAC /* GetRingerState.swift */, 179 | ); 180 | path = Intents; 181 | sourceTree = ""; 182 | }; 183 | 029EB2C62B550DE4004DA9F0 /* Frameworks */ = { 184 | isa = PBXGroup; 185 | children = ( 186 | 02AA454E2B5B7EB500DE656C /* CoreLocation.framework */, 187 | 02AA45502B5B81A400DE656C /* CoreLocation.framework */, 188 | 029EB32E2B566870004DA9F0 /* GraphicsServices.framework */, 189 | 029EB3122B5575B2004DA9F0 /* BoardServices.framework */, 190 | 029EB30E2B557526004DA9F0 /* BaseBoard.framework */, 191 | 029EB3062B55733E004DA9F0 /* FrontBoardServices.framework */, 192 | 029EB3022B5570D2004DA9F0 /* CoreFoundation.framework */, 193 | 029EB2F22B555E14004DA9F0 /* ManagedConfiguration.framework */, 194 | 029EB2DD2B5522E4004DA9F0 /* MobileContainerManager.framework */, 195 | 029EB2DB2B5522C4004DA9F0 /* CoreTelephony.framework */, 196 | 029EB2D62B551933004DA9F0 /* CoreServices.framework */, 197 | 029EB2C82B550E07004DA9F0 /* MobileBackup.framework */, 198 | ); 199 | name = Frameworks; 200 | sourceTree = ""; 201 | }; 202 | 029EB2CA2B5513EC004DA9F0 /* Shared */ = { 203 | isa = PBXGroup; 204 | children = ( 205 | 02AA45552B5B8A1F00DE656C /* Intents */, 206 | 029EB2E52B553385004DA9F0 /* PrivateHeader.h */, 207 | 029EB2CB2B551406004DA9F0 /* TSUtil.h */, 208 | 029EB2CC2B55141B004DA9F0 /* TSUtil.m */, 209 | 029EB2CE2B551464004DA9F0 /* CoreServices.h */, 210 | 029EB2D82B551AC1004DA9F0 /* TCUtil.m */, 211 | 029EB2DA2B551AD7004DA9F0 /* TCUtil.h */, 212 | 029EB2FF2B556FDF004DA9F0 /* userspaceReboot.h */, 213 | 029EB3002B556FDF004DA9F0 /* userspaceReboot.c */, 214 | 02AA454B2B5B77CC00DE656C /* locsim.m */, 215 | 02AA454D2B5B77DD00DE656C /* locsim.h */, 216 | ); 217 | path = Shared; 218 | sourceTree = ""; 219 | }; 220 | 02AA45552B5B8A1F00DE656C /* Intents */ = { 221 | isa = PBXGroup; 222 | children = ( 223 | 02AA45562B5B8A3A00DE656C /* Enum.swift */, 224 | ); 225 | path = Intents; 226 | sourceTree = ""; 227 | }; 228 | /* End PBXGroup section */ 229 | 230 | /* Begin PBXNativeTarget section */ 231 | 025B5DA32B54E60F003DBD4D /* TrollCuts */ = { 232 | isa = PBXNativeTarget; 233 | buildConfigurationList = 025B5DB22B54E613003DBD4D /* Build configuration list for PBXNativeTarget "TrollCuts" */; 234 | buildPhases = ( 235 | 025B5DA02B54E60F003DBD4D /* Sources */, 236 | 025B5DA12B54E60F003DBD4D /* Frameworks */, 237 | 025B5DA22B54E60F003DBD4D /* Resources */, 238 | ); 239 | buildRules = ( 240 | ); 241 | dependencies = ( 242 | ); 243 | name = TrollCuts; 244 | productName = TrollCuts; 245 | productReference = 025B5DA42B54E60F003DBD4D /* TrollCuts.app */; 246 | productType = "com.apple.product-type.application"; 247 | }; 248 | /* End PBXNativeTarget section */ 249 | 250 | /* Begin PBXProject section */ 251 | 025B5D9C2B54E60F003DBD4D /* Project object */ = { 252 | isa = PBXProject; 253 | attributes = { 254 | BuildIndependentTargetsInParallel = 1; 255 | LastSwiftUpdateCheck = 1420; 256 | LastUpgradeCheck = 1420; 257 | TargetAttributes = { 258 | 025B5DA32B54E60F003DBD4D = { 259 | CreatedOnToolsVersion = 14.2; 260 | LastSwiftMigration = 1420; 261 | }; 262 | }; 263 | }; 264 | buildConfigurationList = 025B5D9F2B54E60F003DBD4D /* Build configuration list for PBXProject "TrollCuts" */; 265 | compatibilityVersion = "Xcode 14.0"; 266 | developmentRegion = en; 267 | hasScannedForEncodings = 0; 268 | knownRegions = ( 269 | en, 270 | Base, 271 | ); 272 | mainGroup = 025B5D9B2B54E60F003DBD4D; 273 | productRefGroup = 025B5DA52B54E60F003DBD4D /* Products */; 274 | projectDirPath = ""; 275 | projectRoot = ""; 276 | targets = ( 277 | 025B5DA32B54E60F003DBD4D /* TrollCuts */, 278 | ); 279 | }; 280 | /* End PBXProject section */ 281 | 282 | /* Begin PBXResourcesBuildPhase section */ 283 | 025B5DA22B54E60F003DBD4D /* Resources */ = { 284 | isa = PBXResourcesBuildPhase; 285 | buildActionMask = 2147483647; 286 | files = ( 287 | 025B5DAF2B54E613003DBD4D /* Preview Assets.xcassets in Resources */, 288 | 025B5DAC2B54E613003DBD4D /* Assets.xcassets in Resources */, 289 | 029EB31F2B55A13B004DA9F0 /* AppIcon.png in Resources */, 290 | ); 291 | runOnlyForDeploymentPostprocessing = 0; 292 | }; 293 | /* End PBXResourcesBuildPhase section */ 294 | 295 | /* Begin PBXSourcesBuildPhase section */ 296 | 025B5DA02B54E60F003DBD4D /* Sources */ = { 297 | isa = PBXSourcesBuildPhase; 298 | buildActionMask = 2147483647; 299 | files = ( 300 | 02AA45462B5B689100DE656C /* SetLocationServices.swift in Sources */, 301 | 029EB3172B558045004DA9F0 /* GetBackupProgress.swift in Sources */, 302 | 02AA454C2B5B77CC00DE656C /* locsim.m in Sources */, 303 | 029EB3012B556FDF004DA9F0 /* userspaceReboot.c in Sources */, 304 | 029EB2D92B551AC1004DA9F0 /* TCUtil.m in Sources */, 305 | 029EB2CD2B55141B004DA9F0 /* TSUtil.m in Sources */, 306 | 025B5DAA2B54E60F003DBD4D /* ContentView.swift in Sources */, 307 | 029EB3192B558055004DA9F0 /* GetBackupState.swift in Sources */, 308 | 029EB32B2B565B58004DA9F0 /* SetAutoBrightness.swift in Sources */, 309 | 02AA45482B5B69BB00DE656C /* StartLocationSimulation.swift in Sources */, 310 | 025B5DA82B54E60F003DBD4D /* TrollCutsApp.swift in Sources */, 311 | 02AA45572B5B8A3A00DE656C /* Enum.swift in Sources */, 312 | 029EB2E42B552F38004DA9F0 /* CancelBackup.swift in Sources */, 313 | 029EB2FB2B5562E2004DA9F0 /* UserspaceReboot.swift in Sources */, 314 | 029EB32D2B565B69004DA9F0 /* SetAutoLock.swift in Sources */, 315 | 029EB2E82B553871004DA9F0 /* Lock.swift in Sources */, 316 | 02AA454A2B5B69D500DE656C /* StopLocationSimulation.swift in Sources */, 317 | 029EB3052B5571F7004DA9F0 /* Reboot.swift in Sources */, 318 | 029EB30D2B5574A7004DA9F0 /* SwitchAppsRegistration.swift in Sources */, 319 | 025B5DB92B54E71D003DBD4D /* StartBackup.swift in Sources */, 320 | 029EB2E22B552E4F004DA9F0 /* Respring.swift in Sources */, 321 | 023D835D2B5BC02F00653FAC /* GetRingerState.swift in Sources */, 322 | 023D835B2B5BB41800653FAC /* SetRingerState.swift in Sources */, 323 | ); 324 | runOnlyForDeploymentPostprocessing = 0; 325 | }; 326 | /* End PBXSourcesBuildPhase section */ 327 | 328 | /* Begin XCBuildConfiguration section */ 329 | 025B5DB02B54E613003DBD4D /* Debug */ = { 330 | isa = XCBuildConfiguration; 331 | buildSettings = { 332 | ALWAYS_SEARCH_USER_PATHS = NO; 333 | CLANG_ANALYZER_NONNULL = YES; 334 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 335 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 336 | CLANG_ENABLE_MODULES = YES; 337 | CLANG_ENABLE_OBJC_ARC = YES; 338 | CLANG_ENABLE_OBJC_WEAK = YES; 339 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 340 | CLANG_WARN_BOOL_CONVERSION = YES; 341 | CLANG_WARN_COMMA = YES; 342 | CLANG_WARN_CONSTANT_CONVERSION = YES; 343 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 344 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 345 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 346 | CLANG_WARN_EMPTY_BODY = YES; 347 | CLANG_WARN_ENUM_CONVERSION = YES; 348 | CLANG_WARN_INFINITE_RECURSION = YES; 349 | CLANG_WARN_INT_CONVERSION = YES; 350 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 351 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 352 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 353 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 354 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 355 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 356 | CLANG_WARN_STRICT_PROTOTYPES = YES; 357 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 358 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 359 | CLANG_WARN_UNREACHABLE_CODE = YES; 360 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 361 | COPY_PHASE_STRIP = NO; 362 | DEBUG_INFORMATION_FORMAT = dwarf; 363 | ENABLE_STRICT_OBJC_MSGSEND = YES; 364 | ENABLE_TESTABILITY = YES; 365 | GCC_C_LANGUAGE_STANDARD = gnu11; 366 | GCC_DYNAMIC_NO_PIC = NO; 367 | GCC_NO_COMMON_BLOCKS = YES; 368 | GCC_OPTIMIZATION_LEVEL = 0; 369 | GCC_PREPROCESSOR_DEFINITIONS = ( 370 | "DEBUG=1", 371 | "$(inherited)", 372 | ); 373 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 374 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 375 | GCC_WARN_UNDECLARED_SELECTOR = YES; 376 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 377 | GCC_WARN_UNUSED_FUNCTION = YES; 378 | GCC_WARN_UNUSED_VARIABLE = YES; 379 | IPHONEOS_DEPLOYMENT_TARGET = 16.2; 380 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 381 | MTL_FAST_MATH = YES; 382 | ONLY_ACTIVE_ARCH = YES; 383 | SDKROOT = iphoneos; 384 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 385 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 386 | }; 387 | name = Debug; 388 | }; 389 | 025B5DB12B54E613003DBD4D /* Release */ = { 390 | isa = XCBuildConfiguration; 391 | buildSettings = { 392 | ALWAYS_SEARCH_USER_PATHS = NO; 393 | CLANG_ANALYZER_NONNULL = YES; 394 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 395 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 396 | CLANG_ENABLE_MODULES = YES; 397 | CLANG_ENABLE_OBJC_ARC = YES; 398 | CLANG_ENABLE_OBJC_WEAK = YES; 399 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 400 | CLANG_WARN_BOOL_CONVERSION = YES; 401 | CLANG_WARN_COMMA = YES; 402 | CLANG_WARN_CONSTANT_CONVERSION = YES; 403 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 404 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 405 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 406 | CLANG_WARN_EMPTY_BODY = YES; 407 | CLANG_WARN_ENUM_CONVERSION = YES; 408 | CLANG_WARN_INFINITE_RECURSION = YES; 409 | CLANG_WARN_INT_CONVERSION = YES; 410 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 411 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 412 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 413 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 414 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 415 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 416 | CLANG_WARN_STRICT_PROTOTYPES = YES; 417 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 418 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 419 | CLANG_WARN_UNREACHABLE_CODE = YES; 420 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 421 | COPY_PHASE_STRIP = NO; 422 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 423 | ENABLE_NS_ASSERTIONS = NO; 424 | ENABLE_STRICT_OBJC_MSGSEND = YES; 425 | GCC_C_LANGUAGE_STANDARD = gnu11; 426 | GCC_NO_COMMON_BLOCKS = YES; 427 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 428 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 429 | GCC_WARN_UNDECLARED_SELECTOR = YES; 430 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 431 | GCC_WARN_UNUSED_FUNCTION = YES; 432 | GCC_WARN_UNUSED_VARIABLE = YES; 433 | IPHONEOS_DEPLOYMENT_TARGET = 16.2; 434 | MTL_ENABLE_DEBUG_INFO = NO; 435 | MTL_FAST_MATH = YES; 436 | SDKROOT = iphoneos; 437 | SWIFT_COMPILATION_MODE = wholemodule; 438 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 439 | VALIDATE_PRODUCT = YES; 440 | }; 441 | name = Release; 442 | }; 443 | 025B5DB32B54E613003DBD4D /* Debug */ = { 444 | isa = XCBuildConfiguration; 445 | buildSettings = { 446 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 447 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 448 | CLANG_ENABLE_MODULES = YES; 449 | CODE_SIGN_STYLE = Automatic; 450 | CURRENT_PROJECT_VERSION = 1; 451 | DEVELOPMENT_ASSET_PATHS = "\"TrollCuts/Preview Content\""; 452 | ENABLE_PREVIEWS = YES; 453 | FRAMEWORK_SEARCH_PATHS = ( 454 | "$(inherited)", 455 | "$(PROJECT_DIR)/PrivateFrameworks", 456 | ); 457 | GENERATE_INFOPLIST_FILE = YES; 458 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 459 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; 460 | INFOPLIST_KEY_UILaunchScreen_Generation = YES; 461 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 462 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 463 | IPHONEOS_DEPLOYMENT_TARGET = 16.0; 464 | LD_RUNPATH_SEARCH_PATHS = ( 465 | "$(inherited)", 466 | "@executable_path/Frameworks", 467 | ); 468 | MARKETING_VERSION = 1.1; 469 | PRODUCT_BUNDLE_IDENTIFIER = com.udevs.TrollCuts; 470 | PRODUCT_NAME = "$(TARGET_NAME)"; 471 | SWIFT_EMIT_LOC_STRINGS = YES; 472 | SWIFT_OBJC_BRIDGING_HEADER = "TrollCuts-Bridging-Header.h"; 473 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 474 | SWIFT_VERSION = 5.0; 475 | TARGETED_DEVICE_FAMILY = "1,2"; 476 | }; 477 | name = Debug; 478 | }; 479 | 025B5DB42B54E613003DBD4D /* Release */ = { 480 | isa = XCBuildConfiguration; 481 | buildSettings = { 482 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 483 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 484 | CLANG_ENABLE_MODULES = YES; 485 | CODE_SIGN_STYLE = Automatic; 486 | CURRENT_PROJECT_VERSION = 1; 487 | DEVELOPMENT_ASSET_PATHS = "\"TrollCuts/Preview Content\""; 488 | ENABLE_PREVIEWS = YES; 489 | FRAMEWORK_SEARCH_PATHS = ( 490 | "$(inherited)", 491 | "$(PROJECT_DIR)/PrivateFrameworks", 492 | ); 493 | GENERATE_INFOPLIST_FILE = YES; 494 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 495 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; 496 | INFOPLIST_KEY_UILaunchScreen_Generation = YES; 497 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 498 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 499 | IPHONEOS_DEPLOYMENT_TARGET = 16.0; 500 | LD_RUNPATH_SEARCH_PATHS = ( 501 | "$(inherited)", 502 | "@executable_path/Frameworks", 503 | ); 504 | MARKETING_VERSION = 1.1; 505 | PRODUCT_BUNDLE_IDENTIFIER = com.udevs.TrollCuts; 506 | PRODUCT_NAME = "$(TARGET_NAME)"; 507 | SWIFT_EMIT_LOC_STRINGS = YES; 508 | SWIFT_OBJC_BRIDGING_HEADER = "TrollCuts-Bridging-Header.h"; 509 | SWIFT_VERSION = 5.0; 510 | TARGETED_DEVICE_FAMILY = "1,2"; 511 | }; 512 | name = Release; 513 | }; 514 | /* End XCBuildConfiguration section */ 515 | 516 | /* Begin XCConfigurationList section */ 517 | 025B5D9F2B54E60F003DBD4D /* Build configuration list for PBXProject "TrollCuts" */ = { 518 | isa = XCConfigurationList; 519 | buildConfigurations = ( 520 | 025B5DB02B54E613003DBD4D /* Debug */, 521 | 025B5DB12B54E613003DBD4D /* Release */, 522 | ); 523 | defaultConfigurationIsVisible = 0; 524 | defaultConfigurationName = Release; 525 | }; 526 | 025B5DB22B54E613003DBD4D /* Build configuration list for PBXNativeTarget "TrollCuts" */ = { 527 | isa = XCConfigurationList; 528 | buildConfigurations = ( 529 | 025B5DB32B54E613003DBD4D /* Debug */, 530 | 025B5DB42B54E613003DBD4D /* Release */, 531 | ); 532 | defaultConfigurationIsVisible = 0; 533 | defaultConfigurationName = Release; 534 | }; 535 | /* End XCConfigurationList section */ 536 | }; 537 | rootObject = 025B5D9C2B54E60F003DBD4D /* Project object */; 538 | } 539 | -------------------------------------------------------------------------------- /TrollCuts.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TrollCuts.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TrollCuts.xcodeproj/project.xcworkspace/xcuserdata/ca.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udevsharold/TrollCuts/e4452c86cf375c0529533210e5830ff1f4868c60/TrollCuts.xcodeproj/project.xcworkspace/xcuserdata/ca.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /TrollCuts.xcodeproj/xcuserdata/ca.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | TrollCuts.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /TrollCuts/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /TrollCuts/Assets.xcassets/AppIcon.appiconset/AppIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udevsharold/TrollCuts/e4452c86cf375c0529533210e5830ff1f4868c60/TrollCuts/Assets.xcassets/AppIcon.appiconset/AppIcon.png -------------------------------------------------------------------------------- /TrollCuts/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AppIcon.png", 5 | "idiom" : "universal", 6 | "platform" : "ios", 7 | "size" : "1024x1024" 8 | } 9 | ], 10 | "info" : { 11 | "author" : "xcode", 12 | "version" : 1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /TrollCuts/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /TrollCuts/ContentView.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import SwiftUI 4 | 5 | struct ContentView: View { 6 | var body: some View { 7 | VStack { 8 | Button("Open Shortcuts") { 9 | UIApplication.shared.openURL(URL(string: "shortcuts://create-shortcut")!) 10 | } 11 | .buttonStyle(.borderedProminent) 12 | .controlSize(.small) 13 | .keyboardShortcut(.defaultAction) 14 | .padding() 15 | .dynamicTypeSize(.accessibility1) 16 | } 17 | .padding() 18 | } 19 | } 20 | 21 | struct ContentView_Previews: PreviewProvider { 22 | static var previews: some View { 23 | ContentView() 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /TrollCuts/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /TrollCuts/TrollCutsApp.swift: -------------------------------------------------------------------------------- 1 | // Created by udevs 2 | 3 | import SwiftUI 4 | 5 | @main 6 | struct TrollCutsApp: App { 7 | var body: some Scene { 8 | WindowGroup { 9 | ContentView() 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | platform-application 6 | 7 | com.apple.private.security.container-required 8 | 9 | com.apple.private.security.no-container 10 | 11 | com.apple.private.security.no-sandbox 12 | 13 | com.apple.private.security.storage.AppDataContainers 14 | 15 | com.apple.private.persona-mgmt 16 | 17 | com.apple.private.MobileContainerManager.allowed 18 | 19 | backupd-connection-initiate 20 | 21 | com.apple.keystore.device 22 | 23 | com.apple.private.xpc.launchd.userspace-reboot 24 | 25 | com.apple.private.xpc.launchd.userspace-reboot-now 26 | 27 | com.apple.frontboard.shutdown 28 | 29 | com.apple.managedconfiguration.profiled-access 30 | 31 | com.apple.locationd.simulation 32 | 33 | com.apple.locationd.authorizeapplications 34 | 35 | 36 | -------------------------------------------------------------------------------- /ipabuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | cd "$(dirname "$0")" 6 | 7 | WORKING_LOCATION="$(pwd)" 8 | APPLICATION_NAME=TrollCuts 9 | CONFIGURATION=Release 10 | 11 | rm -rf build 12 | if [ ! -d "build" ]; then 13 | mkdir build 14 | fi 15 | 16 | cd build 17 | 18 | if [ -e "$APPLICATION_NAME.tipa" ]; then 19 | rm $APPLICATION_NAME.tipa 20 | fi 21 | 22 | # Build .app 23 | xcodebuild -project "$WORKING_LOCATION/$APPLICATION_NAME.xcodeproj" \ 24 | -scheme "$APPLICATION_NAME" \ 25 | -configuration "$CONFIGURATION" \ 26 | -derivedDataPath "$WORKING_LOCATION/build/DerivedData" \ 27 | -destination 'generic/platform=iOS' \ 28 | ONLY_ACTIVE_ARCH="NO" \ 29 | CODE_SIGNING_ALLOWED="NO" \ 30 | 31 | DD_APP_PATH="$WORKING_LOCATION/build/DerivedData/Build/Products/$CONFIGURATION-iphoneos/$APPLICATION_NAME.app" 32 | TARGET_APP="$WORKING_LOCATION/build/$APPLICATION_NAME.app" 33 | cp -r "$DD_APP_PATH" "$TARGET_APP" 34 | 35 | # Remove signature 36 | codesign --remove "$TARGET_APP" 37 | if [ -e "$TARGET_APP/_CodeSignature" ]; then 38 | rm -rf "$TARGET_APP/_CodeSignature" 39 | fi 40 | if [ -e "$TARGET_APP/embedded.mobileprovision" ]; then 41 | rm -rf "$TARGET_APP/embedded.mobileprovision" 42 | fi 43 | 44 | # Add entitlements 45 | echo "Adding entitlements" 46 | ldid -S"$WORKING_LOCATION/entitlements.plist" "$TARGET_APP/$APPLICATION_NAME" 47 | 48 | # Package .ipa 49 | rm -rf Payload 50 | mkdir Payload 51 | cp -r $APPLICATION_NAME.app Payload/$APPLICATION_NAME.app 52 | zip -vr $APPLICATION_NAME.tipa Payload 53 | rm -rf $APPLICATION_NAME.app 54 | rm -rf Payload --------------------------------------------------------------------------------