From 682386007f393c548ec0c03dce09993d5bc43923 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 14:45:26 +0530 Subject: [PATCH 001/233] Update utils.m --- lara/kexploit/utils.m | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/lara/kexploit/utils.m b/lara/kexploit/utils.m index ec7f8d26a..665d0c0d0 100644 --- a/lara/kexploit/utils.m +++ b/lara/kexploit/utils.m @@ -853,3 +853,52 @@ int crashproc(const char* name) { ds_kwrite64(state + offsetof(struct arm_saved_state64, sp), 0x1337133713371337); return 0; } + +int proc_pause_resume(const char *name, bool resume) { + if (!name) { + return -1; + } + + uint64_t proc = procbyname(name); + if (!proc) { + printf("(pause) failed to find proc: %s\n", name); + return -1; + } + + uint64_t task = taskbyproc(proc); + if (!task) { + printf("(pause) failed to find task: %s\n", name); + return -1; + } + + uint64_t thread = ds_kread64(task + off_task_threads_next); + + int count = 0; + + while (thread && count < 0x400) { + uint16_t opts = thread_get_options(thread); + + if (resume) { + opts &= ~(1 << 1); + } else { + opts |= (1 << 1); + } + + thread_set_options(thread, opts); + + uint64_t next = ds_kread64(thread + TASK_TNEXT_OFFSET); + + if (!next || next == thread) { + break; + } + + thread = next; + count++; + } + + printf("(pause) %s %s\n", + name, + resume ? "resumed" : "suspended"); + + return 0; +} From a96fa29c004c155a47a54b6eccb27facda05de20 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 14:48:35 +0530 Subject: [PATCH 002/233] Update utils.h --- lara/kexploit/utils.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/kexploit/utils.h b/lara/kexploit/utils.h index 19a7f6c9c..420dea7f7 100644 --- a/lara/kexploit/utils.h +++ b/lara/kexploit/utils.h @@ -68,6 +68,7 @@ uint64_t proc_self(void); uint64_t task_self(void); int crashproc(const char* pid); +int proc_pause_resume(const char *name, bool resume); #ifdef __cplusplus } From 736274a70537757928d14e4fbeab228d39b99814 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 14:58:09 +0530 Subject: [PATCH 003/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 232 +++++++++++++++++++++++------- 1 file changed, 181 insertions(+), 51 deletions(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index d69d8eb77..a0b79d333 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -17,14 +17,16 @@ struct ToolsView: View { @ObservedObject private var mgr = laramgr.shared @State private var isaslr: Bool = aslrstate @State var showtoken: Bool = false - @AppStorage("lara.sbx.issuedToken") private var token: String = "" + @AppStorage("lara.sbx.issuedToken") + private var token: String = "" @State private var issueclass: tokenclass = .rw @State private var issuepath: String = "/" @State private var uid: uid_t = getuid() @State private var pid: pid_t = getpid() @State private var status: String? @State private var crashname: String = "SpringBoard" - + @State private var pausedProcesses: Set = [] + private enum tokenclass: String, CaseIterable, Identifiable { case read = "com.apple.app-sandbox.read" case write = "com.apple.app-sandbox.write" @@ -34,74 +36,101 @@ struct ToolsView: View { var label: String { switch self { - case .read: return "read" - case .write: return "write" - case .rw: return "read-write" + case .read: + return "read" + + case .write: + return "write" + + case .rw: + return "read-write" } } } - + var body: some View { List { + if !mgr.dsready { Section { Text("Kernel R/W is not ready. Run the exploit first.") .foregroundColor(.secondary) + } header: { Text("Status") } } Section { + HStack { Text("ASLR:") - + Spacer() - + Text(isaslr ? "enabled" : "disabled") - .foregroundColor(isaslr ? Color.red : Color.green) + .foregroundColor( + isaslr ? Color.red : Color.green + ) .monospaced() - + Button { isaslr = aslrstate + } label: { Image(systemName: "arrow.clockwise") } } - + Button { toggleaslr() isaslr = aslrstate + } label: { Text("Toggle ASLR") } + } header: { Text("ASLR") + } footer: { Text("Address Space Layout Randomization. Probably not useful for you.") } - + Section { + Button("Respring") { mgr.respring() } - + HStack { - Text("ourproc: ") + Text("ourproc:") + Spacer() - Text(mgr.dsready ? String(format: "0x%llx", ds_get_our_proc()) : "N/A") - .foregroundColor(.secondary) - .monospaced() + + Text( + mgr.dsready + ? String(format: "0x%llx", ds_get_our_proc()) + : "N/A" + ) + .foregroundColor(.secondary) + .monospaced() } - + HStack { - Text("ourtask: ") + Text("ourtask:") + Spacer() - Text(mgr.dsready ? String(format: "0x%llx", ds_get_our_task()) : "N/A") - .foregroundColor(.secondary) - .monospaced() + + Text( + mgr.dsready + ? String(format: "0x%llx", ds_get_our_task()) + : "N/A" + ) + .foregroundColor(.secondary) + .monospaced() } - + HStack { Text("UID:") @@ -114,6 +143,7 @@ struct ToolsView: View { Button { uid = getuid() print(uid) + } label: { Image(systemName: "arrow.clockwise") } @@ -121,6 +151,7 @@ struct ToolsView: View { HStack { Text("PID:") + Spacer() Text("\(pid)") @@ -130,24 +161,37 @@ struct ToolsView: View { Button { pid = getpid() print(pid) + } label: { Image(systemName: "arrow.clockwise") } } + } header: { Text("Process") } + // MARK: - Task Manager + Section { + HStack { - Text("Process: ") + Text("Process:") + Spacer() - TextField("e.g. SpringBoard", text: $crashname) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .foregroundColor(.secondary) - .monospaced() - .fixedSize(horizontal: true, vertical: false) + + TextField( + "e.g. SpringBoard", + text: $crashname + ) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .foregroundColor(.secondary) + .monospaced() + .fixedSize( + horizontal: true, + vertical: false + ) } Button("Crash") { @@ -156,83 +200,151 @@ struct ToolsView: View { } } .disabled(crashname.isEmpty) + + Button("Pause") { + crashname.withCString { cstr in + _ = proc_pause_resume(cstr, false) + } + + pausedProcesses.insert(crashname) + } + .disabled( + crashname.isEmpty || + pausedProcesses.contains(crashname) + ) + + Button("Resume") { + crashname.withCString { cstr in + _ = proc_pause_resume(cstr, true) + } + + pausedProcesses.remove(crashname) + } + .disabled( + crashname.isEmpty || + !pausedProcesses.contains(crashname) + ) + } header: { - Text("Crasher") + Text("Task Manager") + } footer: { - Text("Crashes the selected process") + Text("Pause, Resume or Crash the selected process") } Section { + Button { + if mgr.PPHelper() { - status = "Succeeded. Open the Pocket Poster app, open settings and tap Detect." + status = """ + Succeeded. Open the Pocket Poster app, \ + open settings and tap Detect. + """ + } else { status = "Failed. Check logs." } + } label: { Text("Pocket Poster Helper") } .disabled(!mgr.sbxready) + } header: { Text("Pocket Poster") + } footer: { - Text("Get the needed hashes for Pocket Poster without the need of a PC.") + Text( + """ + Get the needed hashes for Pocket Poster \ + without the need of a PC. + """ + ) } - + Section { + HStack { + if showtoken { - Text(mgr.sbxready ? "tkn" : "No Saved Token.") - .foregroundColor(.secondary) - .monospaced() + + Text( + mgr.sbxready + ? "tkn" + : "No Saved Token." + ) + .foregroundColor(.secondary) + .monospaced() + } else { + if !token.isEmpty { + Text(token) .foregroundColor(.secondary) .monospaced() .lineLimit(1) .truncationMode(.middle) + } else { + Text("No Saved Token.") .foregroundColor(.secondary) } } - + Spacer() - + Button { - UIPasteboard.general.string = token.isEmpty ? nil : token + UIPasteboard.general.string = + token.isEmpty ? nil : token + } label: { Image(systemName: "doc.on.doc") } .disabled(token.isEmpty) } .contextMenu { + if !token.isEmpty { + Button { UIPasteboard.general.string = token + } label: { - Label("Copy", systemImage: "doc.on.doc") + Label( + "Copy", + systemImage: "doc.on.doc" + ) } } } HStack { + Text("Class:") + Spacer() Picker(" ", selection: $issueclass) { - ForEach(tokenclass.allCases) { tokenClass in - Text(tokenClass.label).tag(tokenClass) + + ForEach(tokenclass.allCases) { + tokenClass in + + Text(tokenClass.label) + .tag(tokenClass) } } .pickerStyle(.menu) } HStack { + Text("Path:") + Spacer() - + TextField("/", text: $issuepath) .textInputAutocapitalization(.never) .autocorrectionDisabled() @@ -240,26 +352,44 @@ struct ToolsView: View { .monospaced() .lineLimit(1) .truncationMode(.middle) - .fixedSize(horizontal: true, vertical: false) + .fixedSize( + horizontal: true, + vertical: false + ) } Button { - token = mgr.sbxissuetoken(extClass: issueclass.rawValue, path: issuepath) ?? "" + token = + mgr.sbxissuetoken( + extClass: issueclass.rawValue, + path: issuepath + ) ?? "" + } label: { Text("Issue Token") } .disabled(!mgr.sbxready) + } header: { Text("Sandbox") } } .navigationTitle("Tools") - .alert("Status", isPresented: .constant(status != nil)) { - Button("OK") { status = nil } - } message: { - Text(status ?? "") + + .alert( + "Status", + isPresented: .constant(status != nil) + ) { + Button("OK") { + status = nil } + + } message: { + Text(status ?? "") + } + .onAppear { + if mgr.dsready { getaslrstate() isaslr = aslrstate From c9bd0011956cd2432a3f72ffebc5d9e96e0dbf56 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 15:27:11 +0530 Subject: [PATCH 004/233] Update utils.m --- lara/kexploit/utils.m | 44 +++++++++++++------------------------------ 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/lara/kexploit/utils.m b/lara/kexploit/utils.m index 665d0c0d0..be1955fc3 100644 --- a/lara/kexploit/utils.m +++ b/lara/kexploit/utils.m @@ -861,44 +861,26 @@ int proc_pause_resume(const char *name, bool resume) { uint64_t proc = procbyname(name); if (!proc) { - printf("(pause) failed to find proc: %s\n", name); + printf("(signal) process not found: %s\n", name); return -1; } - uint64_t task = taskbyproc(proc); - if (!task) { - printf("(pause) failed to find task: %s\n", name); - return -1; + uint32_t pid = ds_kread32(proc + PROC_PID_OFFSET); + int result; + + if (resume) { + result = kill(pid, SIGCONT); + } else { + result = kill(pid, SIGSTOP); } - uint64_t thread = ds_kread64(task + off_task_threads_next); - - int count = 0; - - while (thread && count < 0x400) { - uint16_t opts = thread_get_options(thread); - - if (resume) { - opts &= ~(1 << 1); - } else { - opts |= (1 << 1); - } - - thread_set_options(thread, opts); - - uint64_t next = ds_kread64(thread + TASK_TNEXT_OFFSET); - - if (!next || next == thread) { - break; - } - - thread = next; - count++; + if (result != 0) { + perror("(signal) kill failed"); + return -1; } - printf("(pause) %s %s\n", + printf("(signal) %s %s\n", name, - resume ? "resumed" : "suspended"); - + resume ? "resumed" : "paused"); return 0; } From 79821cd2854ccf014b3a6c9b8c1322f3457a3f7d Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 17:26:39 +0530 Subject: [PATCH 005/233] Update utils.m --- lara/kexploit/utils.m | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lara/kexploit/utils.m b/lara/kexploit/utils.m index be1955fc3..c0f4d9c26 100644 --- a/lara/kexploit/utils.m +++ b/lara/kexploit/utils.m @@ -884,3 +884,19 @@ int proc_pause_resume(const char *name, bool resume) { resume ? "resumed" : "paused"); return 0; } + +int count_pids(uint64_t allproc) { + int count = 0; + uint64_t proc = allproc; + + for (int i = 0; i < 12000 && proc; i++) { + int pid = ds_kread32(proc + off_proc_p_pid); + if (pid > 0 && pid < 99999) + count++; + uint64_t next = ds_kread64(proc + off_proc_p_list_le_next); + if (next == 0 || next == proc) + break; + proc = next; + } + return count; +} From 7656d8b2a01a455fddcb5e771bcd15abb7d43510 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 17:40:45 +0530 Subject: [PATCH 006/233] Update utils.h --- lara/kexploit/utils.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/kexploit/utils.h b/lara/kexploit/utils.h index 420dea7f7..f82fad67d 100644 --- a/lara/kexploit/utils.h +++ b/lara/kexploit/utils.h @@ -69,6 +69,7 @@ uint64_t task_self(void); int crashproc(const char* pid); int proc_pause_resume(const char *name, bool resume); +int count_pids(uint64_t allproc); #ifdef __cplusplus } From 2990da09314c516e071820ff05c422c1a8909de9 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 17:54:03 +0530 Subject: [PATCH 007/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index a0b79d333..0eeef8181 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -150,6 +150,12 @@ struct ToolsView: View { } HStack { + Text("Number of Processes:") + + Spacer() + + Text("\(count_pid())") + Text("PID:") Spacer() @@ -171,8 +177,6 @@ struct ToolsView: View { Text("Process") } - // MARK: - Task Manager - Section { HStack { From df4d888b2f1a9728730946bc0f56c9afa83e59bf Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 17:57:52 +0530 Subject: [PATCH 008/233] Update build_ipa.sh --- scripts/build_ipa.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index cb166dc40..e0a404db8 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -18,7 +18,7 @@ xcodebuild \ CODE_SIGN_IDENTITY="" \ CODE_SIGN_ENTITLEMENTS="Config/lara.entitlements" \ archive \ - -archivePath "$PWD/build/lara.xcarchive" 2>&1 | xcpretty + -archivePath "$PWD/build/lara.xcarchive" APP_PATH="$PWD/build/lara.xcarchive/Products/Applications/lara.app" if [ ! -d "$APP_PATH" ]; then From c56c437b3259bd63012700cb5a06b8fdbcc5ad92 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 18:07:32 +0530 Subject: [PATCH 009/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 0eeef8181..e69fec46d 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -149,13 +149,7 @@ struct ToolsView: View { } } - HStack { - Text("Number of Processes:") - - Spacer() - - Text("\(count_pid())") - + HStack { Text("PID:") Spacer() @@ -180,6 +174,14 @@ struct ToolsView: View { Section { HStack { + Text("Number of Processes:") + + Spacer() + + Text("\(count_pid())") + .font(.system(.body, design: .monospaced)) + .foregroundColor(.secondary) + Text("Process:") Spacer() From f6d3165051328263d47b1bbab215887317e059ba Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 18:07:59 +0530 Subject: [PATCH 010/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index e69fec46d..85309e8a9 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -178,7 +178,7 @@ struct ToolsView: View { Spacer() - Text("\(count_pid())") + Text("\(count_pids())") .font(.system(.body, design: .monospaced)) .foregroundColor(.secondary) From 4719bd79458d3c030c0e0539e197b7f2594d5b89 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 29 May 2026 18:20:53 +0530 Subject: [PATCH 011/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 85309e8a9..a0b79d333 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -149,7 +149,7 @@ struct ToolsView: View { } } - HStack { + HStack { Text("PID:") Spacer() @@ -171,17 +171,11 @@ struct ToolsView: View { Text("Process") } + // MARK: - Task Manager + Section { HStack { - Text("Number of Processes:") - - Spacer() - - Text("\(count_pids())") - .font(.system(.body, design: .monospaced)) - .foregroundColor(.secondary) - Text("Process:") Spacer() From 7539140c40bb11ad45b41d5adc91f3d96aba42ec Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:06:30 +0530 Subject: [PATCH 012/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index 5da5348bc..7a10ea7d6 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -39,6 +39,8 @@ struct TweaksView: View { .disabled(!mgr.sbxready) NavigationLink("JIT Enabler", destination: JitView()) .disabled(!mgr.sbxready) + NavigationLink("App Downgrader", destination: DowngradeView()) + .disabled(!mgr.sbxready || !mgr.vfsready) } Section(header: HeaderLabel(text: "User Interface", icon: "eye")) { From ecde57ab2e19b0822bc4190cd02257384cf6ec8f Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:09:09 +0530 Subject: [PATCH 013/233] Create CoreServices.h --- lara/views/tweaks/CoreServices.h | 77 ++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 lara/views/tweaks/CoreServices.h diff --git a/lara/views/tweaks/CoreServices.h b/lara/views/tweaks/CoreServices.h new file mode 100644 index 000000000..dcd25d842 --- /dev/null +++ b/lara/views/tweaks/CoreServices.h @@ -0,0 +1,77 @@ +//MuffinStore +extern NSString *LSInstallTypeKey; + +@interface LSBundleProxy +@property (nonatomic,readonly) NSString * bundleIdentifier; +@property (nonatomic) NSURL* dataContainerURL; +@property (nonatomic,readonly) NSURL* bundleContainerURL; +-(NSString*)localizedName; +@end + +@interface LSApplicationProxy : LSBundleProxy ++ (instancetype)applicationProxyForIdentifier:(NSString*)identifier; ++ (instancetype)applicationProxyForBundleURL:(NSURL*)bundleURL; +@property NSURL* bundleURL; +@property NSString* bundleType; +@property NSString* canonicalExecutablePath; +@property (nonatomic,readonly) NSDictionary* groupContainerURLs; +@property (nonatomic,readonly) NSArray* plugInKitPlugins; +@property (getter=isInstalled,nonatomic,readonly) BOOL installed; +@property (getter=isPlaceholder,nonatomic,readonly) BOOL placeholder; +@property (getter=isRestricted,nonatomic,readonly) BOOL restricted; +@property (nonatomic,readonly) NSSet* claimedURLSchemes; +@property (nonatomic,readonly) NSString* applicationType; +@end + +@interface LSApplicationWorkspace : NSObject ++ (instancetype)defaultWorkspace; +- (BOOL)registerApplicationDictionary:(NSDictionary*)dict; +- (BOOL)unregisterApplication:(id)arg1; +- (BOOL)_LSPrivateRebuildApplicationDatabasesForSystemApps:(BOOL)arg1 internal:(BOOL)arg2 user:(BOOL)arg3; +- (BOOL)openApplicationWithBundleID:(NSString *)arg1 ; +- (void)enumerateApplicationsOfType:(NSUInteger)type block:(void (^)(LSApplicationProxy*))block; +- (BOOL)installApplication:(NSURL*)appPackageURL withOptions:(NSDictionary*)options error:(NSError**)error; +- (BOOL)uninstallApplication:(NSString*)appId withOptions:(NSDictionary*)options; +- (void)addObserver:(id)arg1; +- (void)removeObserver:(id)arg1; +@end + +@protocol LSApplicationWorkspaceObserverProtocol +@optional +- (void)applicationsDidInstall:(NSArray *)apps; +- (void)applicationsDidUninstall:(NSArray *)apps; +@end + +@interface LSEnumerator : NSEnumerator +@property (nonatomic,copy) NSPredicate * predicate; ++ (instancetype)enumeratorForApplicationProxiesWithOptions:(NSUInteger)options; +@end + +@interface LSPlugInKitProxy : LSBundleProxy +@property (nonatomic,readonly) NSString* pluginIdentifier; +@property (nonatomic,readonly) NSDictionary * pluginKitDictionary; ++ (instancetype)pluginKitProxyForIdentifier:(NSString*)arg1; +@end + +@interface MCMContainer : NSObject ++ (id)containerWithIdentifier:(id)arg1 createIfNecessary:(BOOL)arg2 existed:(BOOL*)arg3 error:(id*)arg4; +@property (nonatomic,readonly) NSURL * url; +@end + +@interface MCMDataContainer : MCMContainer +@end + +@interface MCMAppDataContainer : MCMDataContainer +@end + +@interface MCMAppContainer : MCMContainer +@end + +@interface MCMPluginKitPluginDataContainer : MCMDataContainer +@end + +@interface MCMSystemDataContainer : MCMContainer +@end + +@interface MCMSharedDataContainer : MCMContainer +@end From 28470fd26f11b61a8c46040a9af311dae27f4633 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:10:00 +0530 Subject: [PATCH 014/233] Rename lara/views/tweaks/CoreServices.h to lara/views/tweaks/downgrader/CoreServices.h --- lara/views/tweaks/{ => downgrader}/CoreServices.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lara/views/tweaks/{ => downgrader}/CoreServices.h (100%) diff --git a/lara/views/tweaks/CoreServices.h b/lara/views/tweaks/downgrader/CoreServices.h similarity index 100% rename from lara/views/tweaks/CoreServices.h rename to lara/views/tweaks/downgrader/CoreServices.h From 3561a372e0fd153717e9c0c6723bc48783eb6f0e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:11:13 +0530 Subject: [PATCH 015/233] Create MFSAppDelegate.h --- lara/views/tweaks/downgrader/MFSAppDelegate.h | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 lara/views/tweaks/downgrader/MFSAppDelegate.h diff --git a/lara/views/tweaks/downgrader/MFSAppDelegate.h b/lara/views/tweaks/downgrader/MFSAppDelegate.h new file mode 100644 index 000000000..42e403081 --- /dev/null +++ b/lara/views/tweaks/downgrader/MFSAppDelegate.h @@ -0,0 +1,8 @@ +#import + +@interface MFSAppDelegate : UIResponder + +@property (nonatomic, strong) UIWindow *window; +@property (nonatomic, strong) UINavigationController *rootViewController; + +@end From f76a0c6707f04438e4177ccd8473904d73b795eb Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:12:13 +0530 Subject: [PATCH 016/233] Create MFSAppDelegate.m --- lara/views/tweaks/downgrader/MFSAppDelegate.m | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 lara/views/tweaks/downgrader/MFSAppDelegate.m diff --git a/lara/views/tweaks/downgrader/MFSAppDelegate.m b/lara/views/tweaks/downgrader/MFSAppDelegate.m new file mode 100644 index 000000000..32f1cf765 --- /dev/null +++ b/lara/views/tweaks/downgrader/MFSAppDelegate.m @@ -0,0 +1,14 @@ +#import "MFSAppDelegate.h" +#import "MFSRootViewController.h" + +@implementation MFSAppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + _window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + _rootViewController = [[UINavigationController alloc] initWithRootViewController:[[MFSRootViewController alloc] init]]; + _window.rootViewController = _rootViewController; + [_window makeKeyAndVisible]; + return YES; +} + +@end From e7587874d04f5da6a6ce9fd458c5feaac045f8d8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:13:11 +0530 Subject: [PATCH 017/233] Create MFSRootViewController.h --- lara/views/tweaks/downgrader/MFSRootViewController.h | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 lara/views/tweaks/downgrader/MFSRootViewController.h diff --git a/lara/views/tweaks/downgrader/MFSRootViewController.h b/lara/views/tweaks/downgrader/MFSRootViewController.h new file mode 100644 index 000000000..161bcf72f --- /dev/null +++ b/lara/views/tweaks/downgrader/MFSRootViewController.h @@ -0,0 +1,7 @@ +#import +#import +#import + +@interface MFSRootViewController : PSListController + +@end From f1bc476f75ff8a8c34029654e0ee5fb790c8aa2d Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:14:18 +0530 Subject: [PATCH 018/233] Create MFSRootViewController.m --- .../tweaks/downgrader/MFSRootViewController.m | 394 ++++++++++++++++++ 1 file changed, 394 insertions(+) create mode 100644 lara/views/tweaks/downgrader/MFSRootViewController.m diff --git a/lara/views/tweaks/downgrader/MFSRootViewController.m b/lara/views/tweaks/downgrader/MFSRootViewController.m new file mode 100644 index 000000000..187867af6 --- /dev/null +++ b/lara/views/tweaks/downgrader/MFSRootViewController.m @@ -0,0 +1,394 @@ +#import "MFSRootViewController.h" +#import "MFSVersionPickerViewController.h" +#import "CoreServices.h" +#import + +@interface SKUIItemStateCenter : NSObject + ++ (id)defaultCenter; +- (id)_newPurchasesWithItems:(id)items; +- (void)_performPurchases:(id)purchases hasBundlePurchase:(_Bool)purchase withClientContext:(id)context completionBlock:(id /* block */)block; +- (void)_performSoftwarePurchases:(id)purchases withClientContext:(id)context completionBlock:(id /* block */)block; + +@end + +@interface SKUIItem : NSObject +- (id)initWithLookupDictionary:(id)dictionary; +@end + +@interface SKUIItemOffer : NSObject +- (id)initWithLookupDictionary:(id)dictionary; +@end + +@interface SKUIClientContext : NSObject ++ (id)defaultContext; +@end + +@interface MFSRootViewController () +@property (nonatomic, strong) UIAlertController* progressAlert; +@end + +@implementation MFSRootViewController + +- (void)loadView +{ + [super loadView]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadSpecifiers) name:UIApplicationWillEnterForegroundNotification object:nil]; +} + +- (NSMutableArray*)specifiers +{ + if (!_specifiers) + { + _specifiers = [NSMutableArray new]; + + PSSpecifier* downloadGroupSpecifier = [PSSpecifier emptyGroupSpecifier]; + downloadGroupSpecifier.name = @"Download"; + [_specifiers addObject:downloadGroupSpecifier]; + + PSSpecifier* downloadSpecifier = [PSSpecifier preferenceSpecifierNamed:@"Download" target:self set:nil get:nil detail:nil cell:PSButtonCell edit:nil]; + downloadSpecifier.identifier = @"download"; + [downloadSpecifier setProperty:@YES forKey:@"enabled"]; + downloadSpecifier.buttonAction = @selector(downloadApp); + [_specifiers addObject:downloadSpecifier]; + + NSString* aboutText = [self getAboutText]; + [downloadGroupSpecifier setProperty:aboutText forKey:@"footerText"]; + + PSSpecifier* installedGroupSpecifier = [PSSpecifier emptyGroupSpecifier]; + installedGroupSpecifier.name = @"Installed Apps"; + [_specifiers addObject:installedGroupSpecifier]; + + NSMutableArray* appSpecifiers = [NSMutableArray new]; + [[LSApplicationWorkspace defaultWorkspace] enumerateApplicationsOfType:0 block:^(LSApplicationProxy* appProxy) + { + PSSpecifier* appSpecifier = [PSSpecifier preferenceSpecifierNamed:appProxy.localizedName target:self set:nil get:nil detail:nil cell:PSButtonCell edit:nil]; + [appSpecifier setProperty:appProxy.bundleURL forKey:@"bundleURL"]; + [appSpecifier setProperty:@YES forKey:@"enabled"]; + appSpecifier.buttonAction = @selector(downloadAppShortcut:); + [appSpecifiers addObject:appSpecifier]; + }]; + [appSpecifiers sortUsingComparator:^NSComparisonResult(PSSpecifier* a, PSSpecifier* b) + { + return [a.name compare:b.name]; + }]; + [_specifiers addObjectsFromArray:appSpecifiers]; + } + [(UINavigationItem*)self.navigationItem setTitle:@"MuffinStore"]; + return _specifiers; +} + +- (BOOL)isNetworkReachable +{ + SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, "apis.bilin.eu.org"); + SCNetworkReachabilityFlags flags; + BOOL reachable = NO; + if (SCNetworkReachabilityGetFlags(reachability, &flags)) + { + BOOL isReachable = (flags & kSCNetworkFlagsReachable) != 0; + BOOL needsConnection = (flags & kSCNetworkFlagsConnectionRequired) != 0; + reachable = isReachable && !needsConnection; + } + CFRelease(reachability); + return reachable; +} + +- (void)downloadAppShortcut:(PSSpecifier*)specifier +{ + if (![self isNetworkReachable]) + { + [self showAlert:@"No Internet" message:@"Please check your internet connection and try again."]; + return; + } + NSURL* bundleURL = [specifier propertyForKey:@"bundleURL"]; + NSDictionary* infoPlist = [NSDictionary dictionaryWithContentsOfFile:[bundleURL.path stringByAppendingPathComponent:@"Info.plist"]]; + NSString* bundleId = infoPlist[@"CFBundleIdentifier"]; + NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"https://itunes.apple.com/lookup?bundleId=%@&limit=1&media=software", bundleId]]; + NSURLRequest* request = [NSURLRequest requestWithURL:url]; + NSURLSessionDataTask* task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData* data, NSURLResponse* response, NSError* error) + { + if (error) + { + dispatch_async(dispatch_get_main_queue(), ^ + { + [self showAlert:@"Error" message:error.localizedDescription]; + }); + return; + } + NSError* jsonError = nil; + NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError]; + if (jsonError) + { + dispatch_async(dispatch_get_main_queue(), ^ + { + [self showAlert:@"JSON Error" message:jsonError.localizedDescription]; + }); + return; + } + NSArray* results = json[@"results"]; + if (results.count == 0) + { + dispatch_async(dispatch_get_main_queue(), ^ + { + [self showAlert:@"Error" message:@"No results found for this app."]; + }); + return; + } + NSDictionary* app = results[0]; + [self getAllAppVersionIdsAndPrompt:[app[@"trackId"] longLongValue]]; + }]; + [task resume]; +} + +- (NSString*)getAboutText +{ + return @"MuffinStore v1.3\nMade by Mineek\nhttps://github.com/mineek/MuffinStore"; +} + +- (void)showAlert:(NSString*)title message:(NSString*)message +{ + dispatch_async(dispatch_get_main_queue(), ^ + { + UIAlertController* alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction* okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]; + [alert addAction:okAction]; + [self presentViewController:alert animated:YES completion:nil]; + }); +} + +- (void)showDownloadProgressWithMessage:(NSString*)message +{ + dispatch_async(dispatch_get_main_queue(), ^ + { + if (self.progressAlert) + { + self.progressAlert.message = message; + return; + } + self.progressAlert = [UIAlertController alertControllerWithTitle:@"Downloading" message:message preferredStyle:UIAlertControllerStyleAlert]; + UIActivityIndicatorView* indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleMedium]; + indicator.translatesAutoresizingMaskIntoConstraints = NO; + [indicator startAnimating]; + [self.progressAlert.view addSubview:indicator]; + [NSLayoutConstraint activateConstraints:@[ + [indicator.centerXAnchor constraintEqualToAnchor:self.progressAlert.view.centerXAnchor], + [indicator.bottomAnchor constraintEqualToAnchor:self.progressAlert.view.bottomAnchor constant:-20] + ]]; + [self presentViewController:self.progressAlert animated:YES completion:nil]; + }); +} + +- (void)dismissDownloadProgress +{ + dispatch_async(dispatch_get_main_queue(), ^ + { + if (self.progressAlert) + { + [self.progressAlert dismissViewControllerAnimated:YES completion:nil]; + self.progressAlert = nil; + } + }); +} + +- (void)getAllAppVersionIdsFromServer:(long long)appId +{ + if (![self isNetworkReachable]) + { + [self showAlert:@"No Internet" message:@"Please check your internet connection and try again."]; + return; + } + NSString* serverURL = @"https://apis.bilin.eu.org/history/"; + NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%lld", serverURL, appId]]; + NSURLRequest* request = [NSURLRequest requestWithURL:url]; + NSURLSessionDataTask* task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData* data, NSURLResponse* response, NSError* error) + { + if (error) + { + dispatch_async(dispatch_get_main_queue(), ^ + { + [self showAlert:@"Error" message:error.localizedDescription]; + }); + return; + } + NSError* jsonError = nil; + NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError]; + if (jsonError) + { + dispatch_async(dispatch_get_main_queue(), ^ + { + [self showAlert:@"JSON Error" message:jsonError.debugDescription]; + }); + return; + } + NSArray* versionIds = json[@"data"]; + if (versionIds.count == 0) + { + dispatch_async(dispatch_get_main_queue(), ^ + { + [self showAlert:@"Error" message:@"No version IDs found. The server may not have records for this app."]; + }); + return; + } + dispatch_async(dispatch_get_main_queue(), ^ + { + MFSVersionPickerViewController* picker = [[MFSVersionPickerViewController alloc] initWithVersions:versionIds completion:^(NSDictionary* selectedVersion) + { + [self downloadAppWithAppId:appId versionId:[selectedVersion[@"external_identifier"] longLongValue]]; + }]; + UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:picker]; + nav.modalPresentationStyle = UIModalPresentationFormSheet; + if (@available(iOS 15.0, *)) + { + id sheet = [nav performSelector:@selector(sheetPresentationController)]; + Class detentClass = NSClassFromString(@"UISheetPresentationControllerDetent"); + if (sheet && detentClass) + { + id medium = [detentClass performSelector:@selector(mediumDetent)]; + id large = [detentClass performSelector:@selector(largeDetent)]; + if (medium && large) + { + [sheet setValue:@[medium, large] forKey:@"detents"]; + [sheet setValue:@YES forKey:@"prefersGrabberVisible"]; + } + } + } + [self presentViewController:nav animated:YES completion:nil]; + }); + }]; + [task resume]; +} + +- (void)promptForVersionId:(long long)appId +{ + dispatch_async(dispatch_get_main_queue(), ^ + { + UIAlertController* versionAlert = [UIAlertController alertControllerWithTitle:@"Version ID" message:@"Enter the version ID of the app you want to download" preferredStyle:UIAlertControllerStyleAlert]; + [versionAlert addTextFieldWithConfigurationHandler:^(UITextField* textField) + { + textField.placeholder = @"Version ID"; + textField.keyboardType = UIKeyboardTypeNumberPad; + }]; + UIAlertAction* downloadAction = [UIAlertAction actionWithTitle:@"Download" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) + { + long long versionId = [versionAlert.textFields.firstObject.text longLongValue]; + [self downloadAppWithAppId:appId versionId:versionId]; + }]; + [versionAlert addAction:downloadAction]; + UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + [versionAlert addAction:cancelAction]; + [self presentViewController:versionAlert animated:YES completion:nil]; + }); +} + +- (void)getAllAppVersionIdsAndPrompt:(long long)appId +{ + dispatch_async(dispatch_get_main_queue(), ^ + { + UIAlertController* promptAlert = [UIAlertController alertControllerWithTitle:@"Version Selection" message:@"Choose how to select the app version to download." preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction* serverAction = [UIAlertAction actionWithTitle:@"Browse Version List" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) + { + [self getAllAppVersionIdsFromServer:appId]; + }]; + [promptAlert addAction:serverAction]; + UIAlertAction* manualAction = [UIAlertAction actionWithTitle:@"Enter Version ID Manually" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) + { + [self promptForVersionId:appId]; + }]; + [promptAlert addAction:manualAction]; + UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + [promptAlert addAction:cancelAction]; + [self presentViewController:promptAlert animated:YES completion:nil]; + }); +} + +- (void)downloadAppWithAppId:(long long)appId versionId:(long long)versionId +{ + if (![self isNetworkReachable]) + { + [self showAlert:@"No Internet" message:@"Please check your internet connection and try again."]; + return; + } + [self showDownloadProgressWithMessage:@"Initiating download…"]; + NSString* adamId = [NSString stringWithFormat:@"%lld", appId]; + NSString* pricingParameters = @"pricingParameter"; + NSString* appExtVrsId = [NSString stringWithFormat:@"%lld", versionId]; + NSString* installed = @"0"; + NSString* offerString = nil; + if (versionId == 0) + { + offerString = [NSString stringWithFormat:@"productType=C&price=0&salableAdamId=%@&pricingParameters=%@&clientBuyId=1&installed=%@&trolled=1", adamId, pricingParameters, installed]; + } + else + { + offerString = [NSString stringWithFormat:@"productType=C&price=0&salableAdamId=%@&pricingParameters=%@&appExtVrsId=%@&clientBuyId=1&installed=%@&trolled=1", adamId, pricingParameters, appExtVrsId, installed]; + } + NSDictionary* offerDict = @{@"buyParams": offerString}; + NSDictionary* itemDict = @{@"_itemOffer": adamId}; + SKUIItemOffer* offer = [[SKUIItemOffer alloc] initWithLookupDictionary:offerDict]; + SKUIItem* item = [[SKUIItem alloc] initWithLookupDictionary:itemDict]; + [item setValue:offer forKey:@"_itemOffer"]; + [item setValue:@"iosSoftware" forKey:@"_itemKindString"]; + if (versionId != 0) + { + [item setValue:@(versionId) forKey:@"_versionIdentifier"]; + } + SKUIItemStateCenter* center = [SKUIItemStateCenter defaultCenter]; + NSArray* items = @[item]; + dispatch_async(dispatch_get_main_queue(), ^ + { + [self showDownloadProgressWithMessage:@"Purchase request sent. The download will begin in the background."]; + [center _performPurchases:[center _newPurchasesWithItems:items] hasBundlePurchase:0 withClientContext:[SKUIClientContext defaultContext] completionBlock:^(id arg1) + { + [self dismissDownloadProgress]; + }]; + }); +} + +- (void)downloadAppWithLink:(NSString*)link +{ + if (![self isNetworkReachable]) + { + [self showAlert:@"No Internet" message:@"Please check your internet connection and try again."]; + return; + } + NSString* targetAppIdParsed = nil; + if ([link containsString:@"id"]) + { + NSArray* components = [link componentsSeparatedByString:@"id"]; + if (components.count < 2) + { + [self showAlert:@"Error" message:@"Invalid link"]; + return; + } + NSArray* idComponents = [components[1] componentsSeparatedByString:@"?"]; + targetAppIdParsed = idComponents[0]; + } + else + { + [self showAlert:@"Error" message:@"Invalid link"]; + return; + } + dispatch_async(dispatch_get_main_queue(), ^ + { + [self getAllAppVersionIdsAndPrompt:[targetAppIdParsed longLongValue]]; + }); +} + +- (void)downloadApp +{ + UIAlertController* linkAlert = [UIAlertController alertControllerWithTitle:@"App Link" message:@"Enter the App Store link to the app you want to download" preferredStyle:UIAlertControllerStyleAlert]; + [linkAlert addTextFieldWithConfigurationHandler:^(UITextField* textField) + { + textField.placeholder = @"https://apps.apple.com/app/idXXXXXXXXX"; + }]; + UIAlertAction* downloadAction = [UIAlertAction actionWithTitle:@"Continue" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) + { + [self downloadAppWithLink:linkAlert.textFields.firstObject.text]; + }]; + [linkAlert addAction:downloadAction]; + UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + [linkAlert addAction:cancelAction]; + [self presentViewController:linkAlert animated:YES completion:nil]; +} + +@end From f4c7b7ab10c15f3fc4f2bd0d9f4d6219272badc3 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:15:45 +0530 Subject: [PATCH 019/233] Create MFSVersionPickerViewController.h --- .../downgrader/MFSVersionPickerViewController.h | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 lara/views/tweaks/downgrader/MFSVersionPickerViewController.h diff --git a/lara/views/tweaks/downgrader/MFSVersionPickerViewController.h b/lara/views/tweaks/downgrader/MFSVersionPickerViewController.h new file mode 100644 index 000000000..18a4d80de --- /dev/null +++ b/lara/views/tweaks/downgrader/MFSVersionPickerViewController.h @@ -0,0 +1,11 @@ +#import + +typedef void (^MFSVersionPickerCompletion)(NSDictionary* selectedVersion); + +@interface MFSVersionPickerViewController : UITableViewController + +@property (nonatomic, copy) MFSVersionPickerCompletion completionHandler; + +- (instancetype)initWithVersions:(NSArray*)versions completion:(MFSVersionPickerCompletion)completion; + +@end From 61b3075e403cd44657dda4b01c501bf020c582e5 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:16:45 +0530 Subject: [PATCH 020/233] Create MFSVersionPickerViewController.m --- .../MFSVersionPickerViewController.m | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 lara/views/tweaks/downgrader/MFSVersionPickerViewController.m diff --git a/lara/views/tweaks/downgrader/MFSVersionPickerViewController.m b/lara/views/tweaks/downgrader/MFSVersionPickerViewController.m new file mode 100644 index 000000000..f423af051 --- /dev/null +++ b/lara/views/tweaks/downgrader/MFSVersionPickerViewController.m @@ -0,0 +1,72 @@ +#import "MFSVersionPickerViewController.h" + +@interface MFSVersionPickerViewController () +@property (nonatomic, strong) NSArray* versions; +@end + +@implementation MFSVersionPickerViewController + +- (instancetype)initWithVersions:(NSArray*)versions completion:(MFSVersionPickerCompletion)completion +{ + self = [super initWithStyle:UITableViewStyleInsetGrouped]; + if (self) + { + _versions = versions; + _completionHandler = completion; + } + return self; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + self.title = @"Select Version"; + [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"VersionCell"]; + UIBarButtonItem* cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelTapped)]; + self.navigationItem.leftBarButtonItem = cancelButton; +} + +- (void)cancelTapped +{ + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView +{ + return 1; +} + +- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section +{ + return self.versions.count; +} + +- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath +{ + UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"VersionCell" forIndexPath:indexPath]; + NSDictionary* version = self.versions[indexPath.row]; + cell.textLabel.text = version[@"bundle_version"]; + cell.textLabel.font = [UIFont monospacedDigitSystemFontOfSize:15 weight:UIFontWeightRegular]; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + return cell; +} + +- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath +{ + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + NSDictionary* selected = self.versions[indexPath.row]; + [self dismissViewControllerAnimated:YES completion:^ + { + if (self.completionHandler) + { + self.completionHandler(selected); + } + }]; +} + +- (NSString*)tableView:(UITableView*)tableView titleForHeaderInSection:(NSInteger)section +{ + return [NSString stringWithFormat:@"%lu versions available", (unsigned long)self.versions.count]; +} + +@end From 2772ff211ed93ac3b46544aa97344793b911d05e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:27:28 +0530 Subject: [PATCH 021/233] Create DowngradeView.swift --- .../tweaks/downgrader/DowngradeView.swift | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lara/views/tweaks/downgrader/DowngradeView.swift diff --git a/lara/views/tweaks/downgrader/DowngradeView.swift b/lara/views/tweaks/downgrader/DowngradeView.swift new file mode 100644 index 000000000..06ea656fc --- /dev/null +++ b/lara/views/tweaks/downgrader/DowngradeView.swift @@ -0,0 +1,21 @@ +import SwiftUI + +struct RootControllerWrapper: UIViewControllerRepresentable { + func makeUIViewController(context: Context) -> UINavigationController { + UINavigationController( + rootViewController: MFSRootViewController() + ) + } + + func updateUIViewController( + _ uiViewController: UINavigationController, + context: Context + ) {} +} + +struct DowngradeView: View { + var body: some View { + RootControllerWrapper() + .ignoresSafeArea() + } +} From 7d1a9c110ed8697582f3786307a73bc5d62d45ea Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:27:54 +0530 Subject: [PATCH 022/233] Delete lara/views/tweaks/downgrader/MFSAppDelegate.h --- lara/views/tweaks/downgrader/MFSAppDelegate.h | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 lara/views/tweaks/downgrader/MFSAppDelegate.h diff --git a/lara/views/tweaks/downgrader/MFSAppDelegate.h b/lara/views/tweaks/downgrader/MFSAppDelegate.h deleted file mode 100644 index 42e403081..000000000 --- a/lara/views/tweaks/downgrader/MFSAppDelegate.h +++ /dev/null @@ -1,8 +0,0 @@ -#import - -@interface MFSAppDelegate : UIResponder - -@property (nonatomic, strong) UIWindow *window; -@property (nonatomic, strong) UINavigationController *rootViewController; - -@end From 526a15f8f6019504b98a7b757ecfe2767c335a52 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:28:15 +0530 Subject: [PATCH 023/233] Delete lara/views/tweaks/downgrader/MFSAppDelegate.m --- lara/views/tweaks/downgrader/MFSAppDelegate.m | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 lara/views/tweaks/downgrader/MFSAppDelegate.m diff --git a/lara/views/tweaks/downgrader/MFSAppDelegate.m b/lara/views/tweaks/downgrader/MFSAppDelegate.m deleted file mode 100644 index 32f1cf765..000000000 --- a/lara/views/tweaks/downgrader/MFSAppDelegate.m +++ /dev/null @@ -1,14 +0,0 @@ -#import "MFSAppDelegate.h" -#import "MFSRootViewController.h" - -@implementation MFSAppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - _window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - _rootViewController = [[UINavigationController alloc] initWithRootViewController:[[MFSRootViewController alloc] init]]; - _window.rootViewController = _rootViewController; - [_window makeKeyAndVisible]; - return YES; -} - -@end From 60cb10de09680ea2010fa6989e8ef4545cbcd38a Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:32:49 +0530 Subject: [PATCH 024/233] Update lara-Bridging-Header.h --- lara/lara-Bridging-Header.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/lara-Bridging-Header.h b/lara/lara-Bridging-Header.h index f92edf031..69dc1852d 100644 --- a/lara/lara-Bridging-Header.h +++ b/lara/lara-Bridging-Header.h @@ -18,6 +18,7 @@ #import "RemoteCall.h" #import "decrypt.h" #import "persistence.h" +#import "MFSRootViewController.h" #import From 53d3765f94f6d9ddd0eece01dc7ab2b240221485 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:34:09 +0530 Subject: [PATCH 025/233] Rename lara.xcodeproj/project.pbxproj to lar.xcodeprojproject.pbxproj --- lara.xcodeproj/project.pbxproj => lar.xcodeprojproject.pbxproj | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lara.xcodeproj/project.pbxproj => lar.xcodeprojproject.pbxproj (100%) diff --git a/lara.xcodeproj/project.pbxproj b/lar.xcodeprojproject.pbxproj similarity index 100% rename from lara.xcodeproj/project.pbxproj rename to lar.xcodeprojproject.pbxproj From 8e4ae7fff6ac91d1bed2eaf627c80cb59128b431 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:34:41 +0530 Subject: [PATCH 026/233] Rename lar.xcodeprojproject.pbxproj to lar.xcodeproj/project.pbxproj --- lar.xcodeprojproject.pbxproj => lar.xcodeproj/project.pbxproj | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lar.xcodeprojproject.pbxproj => lar.xcodeproj/project.pbxproj (100%) diff --git a/lar.xcodeprojproject.pbxproj b/lar.xcodeproj/project.pbxproj similarity index 100% rename from lar.xcodeprojproject.pbxproj rename to lar.xcodeproj/project.pbxproj From 522f54c04b5051d45cc5a8762c4b5b58c968d275 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:35:21 +0530 Subject: [PATCH 027/233] Rename .gitignore to .gitignore --- lar.xcodeproj/.gitignore | 1 + lara.xcodeproj/.gitignore | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 lar.xcodeproj/.gitignore delete mode 100644 lara.xcodeproj/.gitignore diff --git a/lar.xcodeproj/.gitignore b/lar.xcodeproj/.gitignore new file mode 100644 index 000000000..c54511205 --- /dev/null +++ b/lar.xcodeproj/.gitignore @@ -0,0 +1 @@ +xcuserdata/ diff --git a/lara.xcodeproj/.gitignore b/lara.xcodeproj/.gitignore deleted file mode 100644 index 21166e6fd..000000000 --- a/lara.xcodeproj/.gitignore +++ /dev/null @@ -1 +0,0 @@ -xcuserdata/ \ No newline at end of file From d8ae24342ee1151965f5546f1e63f7bd854c45d5 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:36:41 +0530 Subject: [PATCH 028/233] Rename contents.xcworkspacedata to contents.xcworkspacedata --- .../project.xcworkspace/contents.xcworkspacedata | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {lara.xcodeproj => lar.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) diff --git a/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/lar.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to lar.xcodeproj/project.xcworkspace/contents.xcworkspacedata From ae4fb7ab55a754faf40d9f15d22670094db4dd7e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:41:58 +0530 Subject: [PATCH 029/233] Create Project.yml --- .github/workflows/Project.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/Project.yml diff --git a/.github/workflows/Project.yml b/.github/workflows/Project.yml new file mode 100644 index 000000000..a24247d22 --- /dev/null +++ b/.github/workflows/Project.yml @@ -0,0 +1,28 @@ +name: Project Build + +on: + push: + pull_request: + +jobs: + build: + runs-on: macos-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Install XcodeGen + run: brew install xcodegen + + - name: Generate Xcode project + run: xcodegen generate + + - name: List generated files + run: ls -R + + - name: Upload generated project + uses: actions/upload-artifact@v4 + with: + name: xcodeproj + path: "*.xcodeproj" From 8cd7d3a4f0634fe6c662ce6ae96d9a3418ccf37c Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:49:21 +0530 Subject: [PATCH 030/233] Create project.yml --- project.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 project.yml diff --git a/project.yml b/project.yml new file mode 100644 index 000000000..8e24a77e6 --- /dev/null +++ b/project.yml @@ -0,0 +1,26 @@ +name: lara + +options: + bundleIdPrefix: com.roooot + deploymentTarget: + iOS: 17.0 + +targets: + Lara: + type: application + platform: iOS + + sources: + - path: lara + + settings: + base: + PRODUCT_BUNDLE_IDENTIFIER: com.roooot.lara + INFOPLIST_FILE: lara/Info.plist + SWIFT_OBJC_BRIDGING_HEADER: lara/lara-Bridging-Header.h + LIBRARY_SEARCH_PATHS: $(inherited) $(SRCROOT)/lib + OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel2 + + dependencies: + - sdk: UIKit.framework + - sdk: Foundation.framework From 1c030472e9129edaad4dc0cc1749061fff03311a Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:55:45 +0530 Subject: [PATCH 031/233] Add files via upload --- project.pbxproj | 1218 ++++++++++++++++++ project.xcworkspace/contents.xcworkspacedata | 7 + 2 files changed, 1225 insertions(+) create mode 100644 project.pbxproj create mode 100644 project.xcworkspace/contents.xcworkspacedata diff --git a/project.pbxproj b/project.pbxproj new file mode 100644 index 000000000..a0ea2fabe --- /dev/null +++ b/project.pbxproj @@ -0,0 +1,1218 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; + 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; + 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; + 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; + 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; + 7E6160E64C68CAEEBDCD71D4 /* MFSVersionPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 738E0C0783803806926F9BD4 /* MFSVersionPickerViewController.m */; }; + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; + AA906B15670C182BF2BDCAFE /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88AA027D9E7F041478EDE6D3 /* DowngradeView.swift */; }; + AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; + AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; + BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; + C8EC8FAB2DD32F253B858C1D /* MFSRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3322C0C1AD8069422AB2D8DC /* MFSRootViewController.m */; }; + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; + E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; + 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; + 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; + 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; + 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; + 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; + 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; + 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; + 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; + 3322C0C1AD8069422AB2D8DC /* MFSRootViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MFSRootViewController.m; sourceTree = ""; }; + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; + 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; + 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; + 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; + 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; + 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; + 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; + 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; + 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; + 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; + 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; + 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; + 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; + 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; + 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; + 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; + 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; + 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; + 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; + 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; + 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; + 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 7275146AF2A83D0719B0FC62 /* MFSVersionPickerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSVersionPickerViewController.h; sourceTree = ""; }; + 738E0C0783803806926F9BD4 /* MFSVersionPickerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MFSVersionPickerViewController.m; sourceTree = ""; }; + 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; + 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; + 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; + 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; + 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; + 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; + 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; + 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; + 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; + 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + 88AA027D9E7F041478EDE6D3 /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; + 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; + 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; + 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; + 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; + A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; + A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; + AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; + AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; + AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; + ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; + AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; + B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; + B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; + B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; + B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; + BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; + CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; + CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; + CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; + D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; + D68EE24C2BC6D04A47DE9400 /* CoreServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreServices.h; sourceTree = ""; }; + D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; + D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; + DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; + DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; + E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; + E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; + E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; + E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; + E76FC423799904BB0FF3C08C /* MFSRootViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSRootViewController.h; sourceTree = ""; }; + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; + EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; + EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; + F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; + F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; + F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; + F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; + F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 77D3CA82B4C410701CD229E2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0731B4811AB8A4261C149BD3 /* Inputs */ = { + isa = PBXGroup; + children = ( + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, + ); + path = Inputs; + sourceTree = ""; + }; + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { + isa = PBXGroup; + children = ( + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, + E4F25FF1C3F48BDC5E6BB728 /* exc.m */, + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, + 2329A0992D4982D4E144AB75 /* pac.h */, + 7716BA871D7E897964A49CBD /* pac.m */, + E39629D147580074F13782D6 /* privateapi.h */, + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, + D2ED109B18B57340D5F23066 /* RemoteCall.m */, + 47A521EB489F34847F77161C /* thread.h */, + 69CB9CC7CA7C437D5204AD77 /* thread.m */, + 6FD2D7416B6AA7CE5E184223 /* vm.h */, + 2046AE855EEB1C6D361886E0 /* vm.m */, + ); + path = TaskRop; + sourceTree = ""; + }; + 096D912C986A1ECDD4AE9C57 /* broken */ = { + isa = PBXGroup; + children = ( + DF63A96A2904C5BAA9C6E491 /* CCView.swift */, + 97E7B95F214CEA3C04F0AC58 /* darkboard */, + ); + path = broken; + sourceTree = ""; + }; + 09B6EF0B45C55F479407D990 /* Terminal */ = { + isa = PBXGroup; + children = ( + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, + ); + path = Terminal; + sourceTree = ""; + }; + 0D159B4E42377C38FDD14E18 /* tweaks */ = { + isa = PBXGroup; + children = ( + D7767AE9E778CDC4652EE1AA /* AppsView.swift */, + 87B5A7075908DD63D2DB887E /* CardView.swift */, + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, + AB6983282C48A1F9D8916495 /* DecryptView.swift */, + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, + F2807342CC8396EA700E7626 /* JitView.swift */, + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, + 096D912C986A1ECDD4AE9C57 /* broken */, + F1B195CE1E819A5C7256ED05 /* dirtyZero */, + 779A184BE3B70E496A71CBAF /* downgrader */, + 94239040D8A11FC1A668FCE4 /* liquidglass */, + 8855FA399F2E0D870F89E63A /* mobilegestalt */, + 1CF2706A6E532F38D6DD625F /* passcode */, + BCB9166DBD1D0FB1A634265E /* sbcustomizer */, + ); + path = tweaks; + sourceTree = ""; + }; + 0E9B667B7F6DF2F65554368C /* app */ = { + isa = PBXGroup; + children = ( + AAF0DB241A670081991552A3 /* ContentView.swift */, + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, + A89E6CF98559C612AA19E5CE /* settings */, + ); + path = app; + sourceTree = ""; + }; + 1CF2706A6E532F38D6DD625F /* passcode */ = { + isa = PBXGroup; + children = ( + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 201E76134F22499BFD3DF53F /* Buttons */ = { + isa = PBXGroup; + children = ( + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, + ); + path = Buttons; + sourceTree = ""; + }; + 23942EEA65BBA190D901B7D2 /* choma */ = { + isa = PBXGroup; + children = ( + 6C46703C2B4072AEF8703349 /* arm64.h */, + AAAF3E2619E3D32C626EC2FA /* Base64.h */, + A9376E035DE98BB605BE0C76 /* BufferedStream.h */, + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, + ADC09F6065726F4669F88037 /* CodeDirectory.h */, + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, + E497648156C6CAAA87EEE6CB /* DER.h */, + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, + 3C989876DB6E112F7F3C3698 /* Entitlements.h */, + 09A16D0CCA129CD34402ACAB /* Fat.h */, + 791AEB9809EE46375BD53FF9 /* FileStream.h */, + BB016623AE10E3896FEF50AF /* fixup-chains.h */, + F506183C2CFD8D7D0FA1322D /* Host.h */, + 99CF547D66CF02B4B4DFA30C /* MachO.h */, + 3F975F92D7C580260B59024B /* MachOByteOrder.h */, + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, + F742E837A76B006F367ABC15 /* PatchFinder.h */, + B447AC3664839765F3679082 /* Util.h */, + ); + path = choma; + sourceTree = ""; + }; + 48AB90CB037F435485C6047D /* Settings */ = { + isa = PBXGroup; + children = ( + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 4A3D6651E821914BC1DA4474 /* Indicators */ = { + isa = PBXGroup; + children = ( + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, + ); + path = Indicators; + sourceTree = ""; + }; + 4BE43909AB102BC654C3AA36 /* lara */ = { + isa = PBXGroup; + children = ( + 71B66224C5948251B6008EC4 /* Info.plist */, + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, + 785FE68237A73C050C69066D /* lara.swift */, + E6D45AD3A84FDFFB26A63642 /* assets */, + 761E02C29DBA3FA091780A05 /* classes */, + BD4923F18700F649F4B199C9 /* funcs */, + B8439178F75BD677E46A1DE7 /* headers */, + 9FC4F095CD4B29F2EBA790C6 /* kexploit */, + F0B17F0CA82330A26B5CAE4B /* lib */, + BA72AA8D35B0D97633C2BF5E /* licenses */, + EC0774E5B4020C4D885431BC /* other */, + 9D63227FDF3FDE8908661A7D /* PartyUI */, + D70718477881BA82E605FF53 /* views */, + ); + path = lara; + sourceTree = ""; + }; + 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { + isa = PBXGroup; + children = ( + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 039D284F496260AA52986467 /* Foundation.framework */, + 410B1EDE3D870185074F65BC /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 73E8616A7EF5B51A92B29E54 /* Lists */ = { + isa = PBXGroup; + children = ( + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, + ); + path = Lists; + sourceTree = ""; + }; + 761E02C29DBA3FA091780A05 /* classes */ = { + isa = PBXGroup; + children = ( + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, + 7ADF625620559A728F4B333A /* Logger.swift */, + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, + CBFD358E70EC405DE82C3960 /* zipmgr.swift */, + 860A585202C20E00C82C419C /* tweaks */, + ); + path = classes; + sourceTree = ""; + }; + 779A184BE3B70E496A71CBAF /* downgrader */ = { + isa = PBXGroup; + children = ( + D68EE24C2BC6D04A47DE9400 /* CoreServices.h */, + 88AA027D9E7F041478EDE6D3 /* DowngradeView.swift */, + E76FC423799904BB0FF3C08C /* MFSRootViewController.h */, + 3322C0C1AD8069422AB2D8DC /* MFSRootViewController.m */, + 7275146AF2A83D0719B0FC62 /* MFSVersionPickerViewController.h */, + 738E0C0783803806926F9BD4 /* MFSVersionPickerViewController.m */, + ); + path = downgrader; + sourceTree = ""; + }; + 7814074F0998A8D980C3CBF8 /* other */ = { + isa = PBXGroup; + children = ( + A9BBF565E304760414833AF4 /* respring.swift */, + ); + path = other; + sourceTree = ""; + }; + 7BD2299CAA022F5E87524835 /* Products */ = { + isa = PBXGroup; + children = ( + B1650DE9DA6D35D51EE63DA2 /* Lara.app */, + ); + name = Products; + sourceTree = ""; + }; + 7F048C9DF00CA2EEB9135FFF /* Effects */ = { + isa = PBXGroup; + children = ( + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, + ); + path = Effects; + sourceTree = ""; + }; + 860A585202C20E00C82C419C /* tweaks */ = { + isa = PBXGroup; + children = ( + 4CFE8C17A9569842AF2EDD4E /* darkboard */, + 9CA94EDD3BE9DDBB6B279DCA /* passcode */, + ); + path = tweaks; + sourceTree = ""; + }; + 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { + isa = PBXGroup; + children = ( + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, + ); + path = mobilegestalt; + sourceTree = ""; + }; + 93732F3C530FBFCDA46E1FCE /* Functions */ = { + isa = PBXGroup; + children = ( + 1D1585E8B42B2495142BE67E /* Alertinator.swift */, + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, + 4759F640E231F564F06DB0F5 /* Shareinator.swift */, + ); + path = Functions; + sourceTree = ""; + }; + 94239040D8A11FC1A668FCE4 /* liquidglass */ = { + isa = PBXGroup; + children = ( + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, + ); + path = liquidglass; + sourceTree = ""; + }; + 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { + isa = PBXGroup; + children = ( + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { + isa = PBXGroup; + children = ( + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 9D63227FDF3FDE8908661A7D /* PartyUI */ = { + isa = PBXGroup; + children = ( + 448609047BB8D112B7E99BFA /* PartyUI.swift */, + CCCE9A5AD37D20741B82ADB9 /* App */, + C6CEB364F2625B0EF49D1447 /* UI */, + ); + path = PartyUI; + sourceTree = ""; + }; + 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { + isa = PBXGroup; + children = ( + 0B1831D0D49F9245F54EBDC6 /* compat.h */, + CB0E8E3EC140E01DA032363F /* darksword.h */, + DD123A4DC76BB7C0734B5AE9 /* darksword.m */, + 4A33766163693DFAA30D772A /* decrypt.h */, + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, + 7DC3E2446E97ECC921D3AE94 /* offsets.h */, + EDC9360B2E647660F1BD443F /* offsets.m */, + 617E864CD832D1D3839429F0 /* persistence.h */, + B2BA68871A9D11BCFDC2AE71 /* persistence.m */, + 206327D869325194A5015A1B /* utils.h */, + 5A300D3F6ED3397BE1E6AD87 /* utils.m */, + C6122EC473A3A57510124B02 /* pe */, + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, + ); + path = kexploit; + sourceTree = ""; + }; + A5B06BC43186EA1E4D25299F = { + isa = PBXGroup; + children = ( + 4BE43909AB102BC654C3AA36 /* lara */, + 72729D505A51BDFC8C55A1D9 /* Frameworks */, + 7BD2299CAA022F5E87524835 /* Products */, + ); + sourceTree = ""; + }; + A89E6CF98559C612AA19E5CE /* settings */ = { + isa = PBXGroup; + children = ( + 61F528F680617A48C3CAB181 /* CreditsView.swift */, + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, + 986EBE17846F5764D1456F88 /* SettingsView.swift */, + ); + path = settings; + sourceTree = ""; + }; + B8439178F75BD677E46A1DE7 /* headers */ = { + isa = PBXGroup; + children = ( + B5A1457B7D98C0DDC65ACC3B /* fileport.h */, + EDF19B2325FE621BF70AC862 /* IconServices.h */, + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, + 51BF1E07A44069A4B21B39EE /* xpf.h */, + ); + path = headers; + sourceTree = ""; + }; + B96F95013D086604AB0F746C /* fm */ = { + isa = PBXGroup; + children = ( + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, + 73D525CF14505CE9B85FD317 /* FileView.swift */, + 9C010243976A7D404529C206 /* SantanderView.swift */, + ); + path = fm; + sourceTree = ""; + }; + BA72AA8D35B0D97633C2BF5E /* licenses */ = { + isa = PBXGroup; + children = ( + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, + ); + path = licenses; + sourceTree = ""; + }; + BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { + isa = PBXGroup; + children = ( + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, + ); + path = sbcustomizer; + sourceTree = ""; + }; + BD4923F18700F649F4B199C9 /* funcs */ = { + isa = PBXGroup; + children = ( + CD0D193753BA74B811063956 /* fetchkcache.swift */, + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, + 92C2A1D1BCFA40230A63C752 /* helpers.swift */, + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, + F50A3C705DF2F98AC63AA699 /* keepalive.swift */, + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, + ); + path = funcs; + sourceTree = ""; + }; + C6122EC473A3A57510124B02 /* pe */ = { + isa = PBXGroup; + children = ( + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, + 797DFBA07DCC9320399BC99F /* apfs.m */, + 09BE5060F2C9DFD730796B7E /* rc.h */, + 86610E6990066EDFE2B5D96B /* rc.m */, + 3450D579B9EF6D1B24EA44AB /* sbx.h */, + F7BDDFA67F1109816C300F1E /* sbx.m */, + 33FAD74D2D09DFD7CF1985FA /* vfs.h */, + 7A92CE7743387903DDBFFC8C /* vfs.m */, + D714CE75040A9A3A983B36BE /* vnode.h */, + 09E09CADCF84F1D6D51E5F20 /* vnode.m */, + E6A7B0366B3E502209C65E24 /* xpaci.h */, + ); + path = pe; + sourceTree = ""; + }; + C6CEB364F2625B0EF49D1447 /* UI */ = { + isa = PBXGroup; + children = ( + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, + 201E76134F22499BFD3DF53F /* Buttons */, + 7F048C9DF00CA2EEB9135FFF /* Effects */, + 4A3D6651E821914BC1DA4474 /* Indicators */, + 0731B4811AB8A4261C149BD3 /* Inputs */, + 73E8616A7EF5B51A92B29E54 /* Lists */, + 09B6EF0B45C55F479407D990 /* Terminal */, + ); + path = UI; + sourceTree = ""; + }; + CCCE9A5AD37D20741B82ADB9 /* App */ = { + isa = PBXGroup; + children = ( + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, + CED7197ED6E1E06C45D4927C /* Extensions */, + 93732F3C530FBFCDA46E1FCE /* Functions */, + 48AB90CB037F435485C6047D /* Settings */, + F8BF389C000C82BE834B7E80 /* WelcomeSheet */, + ); + path = App; + sourceTree = ""; + }; + CED7197ED6E1E06C45D4927C /* Extensions */ = { + isa = PBXGroup; + children = ( + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + D70718477881BA82E605FF53 /* views */ = { + isa = PBXGroup; + children = ( + 0E9B667B7F6DF2F65554368C /* app */, + B96F95013D086604AB0F746C /* fm */, + 7814074F0998A8D980C3CBF8 /* other */, + 0D159B4E42377C38FDD14E18 /* tweaks */, + ); + path = views; + sourceTree = ""; + }; + E6D45AD3A84FDFFB26A63642 /* assets */ = { + isa = PBXGroup; + children = ( + AE2331E0F7B3D823CA15DF72 /* lara.png */, + ); + path = assets; + sourceTree = ""; + }; + EC0774E5B4020C4D885431BC /* other */ = { + isa = PBXGroup; + children = ( + 48E6FC849E553C68E397984C /* lara.entitlements */, + 68FA57A36233679708C5E468 /* media.xcassets */, + 60E947B3676E84C6A668511C /* VarCleanRules.json */, + ); + path = other; + sourceTree = ""; + }; + F0B17F0CA82330A26B5CAE4B /* lib */ = { + isa = PBXGroup; + children = ( + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, + 6337EE02AC0706717DFA252A /* libxpf.dylib */, + 23942EEA65BBA190D901B7D2 /* choma */, + ); + path = lib; + sourceTree = ""; + }; + F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { + isa = PBXGroup; + children = ( + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, + ); + path = dirtyZero; + sourceTree = ""; + }; + F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { + isa = PBXGroup; + children = ( + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, + ); + path = WelcomeSheet; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + FD1665B8C8F3A79F013224EE /* Lara */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; + buildPhases = ( + F9DE0523417E74276238FA56 /* Sources */, + 7CE4B9CDA802D229BDFBAFEF /* Resources */, + 77D3CA82B4C410701CD229E2 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Lara; + packageProductDependencies = ( + ); + productName = Lara; + productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + }; + }; + buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = A5B06BC43186EA1E4D25299F; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FD1665B8C8F3A79F013224EE /* Lara */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F9DE0523417E74276238FA56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, + AA906B15670C182BF2BDCAFE /* DowngradeView.swift in Sources */, + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, + 333CD424E2385A8097A3533C /* Logger.swift in Sources */, + AAC093D16E38470615A9725D /* LogsView.swift in Sources */, + C8EC8FAB2DD32F253B858C1D /* MFSRootViewController.m in Sources */, + 7E6160E64C68CAEEBDCD71D4 /* MFSVersionPickerViewController.m in Sources */, + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, + 7AEF609084ED052D6C996095 /* offsets.m in Sources */, + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, + E99D712EE78CA8073C49821B /* respring.swift in Sources */, + 495E4514D5AE764363BAF696 /* sbx.m in Sources */, + AFD8AD5FD3F60467492282EF /* thread.m in Sources */, + BC49811360FE90E8EAE827E8 /* utils.m in Sources */, + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, + 4997659E14575C5B7AAACC12 /* vm.m in Sources */, + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3E810AC91C376ED3F7F9E2BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 82AE279FDF9B38FD75536E7A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + B36A0572D1FE8B1BD286BCB7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + EEB3821768474EEF09187DAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B36A0572D1FE8B1BD286BCB7 /* Debug */, + EEB3821768474EEF09187DAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E810AC91C376ED3F7F9E2BA /* Debug */, + 82AE279FDF9B38FD75536E7A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; +} diff --git a/project.xcworkspace/contents.xcworkspacedata b/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + From 41bf69fa2ce65b33d5a57269955039331ed9358e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:56:19 +0530 Subject: [PATCH 032/233] Rename project.pbxproj to lara.xcodeproj/project.pbxproj --- project.pbxproj => lara.xcodeproj/project.pbxproj | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename project.pbxproj => lara.xcodeproj/project.pbxproj (100%) diff --git a/project.pbxproj b/lara.xcodeproj/project.pbxproj similarity index 100% rename from project.pbxproj rename to lara.xcodeproj/project.pbxproj From cd39eba7f93c6cb960150739e2ebd9d1f78139f1 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:57:21 +0530 Subject: [PATCH 033/233] Rename project.xcworkspace/contents.xcworkspacedata to lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata --- .../project.xcworkspace}/contents.xcworkspacedata | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {project.xcworkspace => lara.xcodeproj/project.xcworkspace}/contents.xcworkspacedata (100%) diff --git a/project.xcworkspace/contents.xcworkspacedata b/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from project.xcworkspace/contents.xcworkspacedata rename to lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata From 8e22bddef78b9208d6025b1fdb77f993ad900fcb Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 30 May 2026 23:58:55 +0530 Subject: [PATCH 034/233] Update build_ipa.sh --- scripts/build_ipa.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index e0a404db8..13daeaf4f 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -9,7 +9,7 @@ echo xcodebuild \ -project lara.xcodeproj \ - -scheme lara \ + -scheme Lara \ -configuration Debug \ -sdk iphoneos \ -arch arm64e \ From 1506d612201a85d3ac573f5ee54c3b473773c4ff Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 00:45:03 +0530 Subject: [PATCH 035/233] Add files via upload --- MuffinStore | Bin 0 -> 89248 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 MuffinStore diff --git a/MuffinStore b/MuffinStore new file mode 100644 index 0000000000000000000000000000000000000000..cd95f95e5e02f8bc12d6622232f0bac73fb708ac GIT binary patch literal 89248 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 L@cS1gJNN$qMGA~u literal 0 HcmV?d00001 From f164901416c3a3fe5acaf9fb576380da96e0ddeb Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 00:46:44 +0530 Subject: [PATCH 036/233] Rename MuffinStore to Lara/lib/libmuffinstore.framework/MuffinStore --- .../lib/libmuffinstore.framework/MuffinStore | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename MuffinStore => Lara/lib/libmuffinstore.framework/MuffinStore (100%) diff --git a/MuffinStore b/Lara/lib/libmuffinstore.framework/MuffinStore similarity index 100% rename from MuffinStore rename to Lara/lib/libmuffinstore.framework/MuffinStore From b444b46c135cc84d9306b90d6b84565e9ce7c6ef Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 00:48:02 +0530 Subject: [PATCH 037/233] Rename MuffinStore to MuffinStore --- .../lib/libmuffinstore.framework/MuffinStore | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename {Lara => lara}/lib/libmuffinstore.framework/MuffinStore (100%) diff --git a/Lara/lib/libmuffinstore.framework/MuffinStore b/lara/lib/libmuffinstore.framework/MuffinStore similarity index 100% rename from Lara/lib/libmuffinstore.framework/MuffinStore rename to lara/lib/libmuffinstore.framework/MuffinStore From 1a90b273a15433e271f61486fe4498eba38e50a9 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 00:49:05 +0530 Subject: [PATCH 038/233] Delete lara.xcodeproj directory --- lara.xcodeproj/project.pbxproj | 1218 ----------------- .../contents.xcworkspacedata | 7 - 2 files changed, 1225 deletions(-) delete mode 100644 lara.xcodeproj/project.pbxproj delete mode 100644 lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj deleted file mode 100644 index a0ea2fabe..000000000 --- a/lara.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1218 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; - 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; - 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; - 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; - 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; - 7E6160E64C68CAEEBDCD71D4 /* MFSVersionPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 738E0C0783803806926F9BD4 /* MFSVersionPickerViewController.m */; }; - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; - AA906B15670C182BF2BDCAFE /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88AA027D9E7F041478EDE6D3 /* DowngradeView.swift */; }; - AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; - AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; - BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; - C8EC8FAB2DD32F253B858C1D /* MFSRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3322C0C1AD8069422AB2D8DC /* MFSRootViewController.m */; }; - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; - E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; - 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; - 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; - 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; - 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; - 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; - 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; - 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; - 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; - 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; - 3322C0C1AD8069422AB2D8DC /* MFSRootViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MFSRootViewController.m; sourceTree = ""; }; - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; - 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; - 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; - 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; - 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; - 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; - 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; - 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; - 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; - 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; - 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; - 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; - 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; - 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; - 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; - 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; - 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; - 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; - 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; - 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; - 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; - 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 7275146AF2A83D0719B0FC62 /* MFSVersionPickerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSVersionPickerViewController.h; sourceTree = ""; }; - 738E0C0783803806926F9BD4 /* MFSVersionPickerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MFSVersionPickerViewController.m; sourceTree = ""; }; - 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; - 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; - 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; - 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; - 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; - 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; - 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; - 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; - 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; - 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; - 88AA027D9E7F041478EDE6D3 /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; - 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; - 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; - 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; - 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; - A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; - A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; - AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; - AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; - AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; - ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; - AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; - B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; - B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; - B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; - B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; - BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; - CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; - CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; - CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; - D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; - D68EE24C2BC6D04A47DE9400 /* CoreServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreServices.h; sourceTree = ""; }; - D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; - D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; - DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; - DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; - E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; - E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; - E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; - E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; - E76FC423799904BB0FF3C08C /* MFSRootViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSRootViewController.h; sourceTree = ""; }; - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; - EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; - EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; - F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; - F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; - F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; - F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; - F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 77D3CA82B4C410701CD229E2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0731B4811AB8A4261C149BD3 /* Inputs */ = { - isa = PBXGroup; - children = ( - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, - ); - path = Inputs; - sourceTree = ""; - }; - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { - isa = PBXGroup; - children = ( - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, - E4F25FF1C3F48BDC5E6BB728 /* exc.m */, - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, - 2329A0992D4982D4E144AB75 /* pac.h */, - 7716BA871D7E897964A49CBD /* pac.m */, - E39629D147580074F13782D6 /* privateapi.h */, - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, - D2ED109B18B57340D5F23066 /* RemoteCall.m */, - 47A521EB489F34847F77161C /* thread.h */, - 69CB9CC7CA7C437D5204AD77 /* thread.m */, - 6FD2D7416B6AA7CE5E184223 /* vm.h */, - 2046AE855EEB1C6D361886E0 /* vm.m */, - ); - path = TaskRop; - sourceTree = ""; - }; - 096D912C986A1ECDD4AE9C57 /* broken */ = { - isa = PBXGroup; - children = ( - DF63A96A2904C5BAA9C6E491 /* CCView.swift */, - 97E7B95F214CEA3C04F0AC58 /* darkboard */, - ); - path = broken; - sourceTree = ""; - }; - 09B6EF0B45C55F479407D990 /* Terminal */ = { - isa = PBXGroup; - children = ( - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, - ); - path = Terminal; - sourceTree = ""; - }; - 0D159B4E42377C38FDD14E18 /* tweaks */ = { - isa = PBXGroup; - children = ( - D7767AE9E778CDC4652EE1AA /* AppsView.swift */, - 87B5A7075908DD63D2DB887E /* CardView.swift */, - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, - AB6983282C48A1F9D8916495 /* DecryptView.swift */, - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, - F2807342CC8396EA700E7626 /* JitView.swift */, - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, - 096D912C986A1ECDD4AE9C57 /* broken */, - F1B195CE1E819A5C7256ED05 /* dirtyZero */, - 779A184BE3B70E496A71CBAF /* downgrader */, - 94239040D8A11FC1A668FCE4 /* liquidglass */, - 8855FA399F2E0D870F89E63A /* mobilegestalt */, - 1CF2706A6E532F38D6DD625F /* passcode */, - BCB9166DBD1D0FB1A634265E /* sbcustomizer */, - ); - path = tweaks; - sourceTree = ""; - }; - 0E9B667B7F6DF2F65554368C /* app */ = { - isa = PBXGroup; - children = ( - AAF0DB241A670081991552A3 /* ContentView.swift */, - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, - A89E6CF98559C612AA19E5CE /* settings */, - ); - path = app; - sourceTree = ""; - }; - 1CF2706A6E532F38D6DD625F /* passcode */ = { - isa = PBXGroup; - children = ( - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 201E76134F22499BFD3DF53F /* Buttons */ = { - isa = PBXGroup; - children = ( - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 23942EEA65BBA190D901B7D2 /* choma */ = { - isa = PBXGroup; - children = ( - 6C46703C2B4072AEF8703349 /* arm64.h */, - AAAF3E2619E3D32C626EC2FA /* Base64.h */, - A9376E035DE98BB605BE0C76 /* BufferedStream.h */, - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, - ADC09F6065726F4669F88037 /* CodeDirectory.h */, - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, - E497648156C6CAAA87EEE6CB /* DER.h */, - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, - 3C989876DB6E112F7F3C3698 /* Entitlements.h */, - 09A16D0CCA129CD34402ACAB /* Fat.h */, - 791AEB9809EE46375BD53FF9 /* FileStream.h */, - BB016623AE10E3896FEF50AF /* fixup-chains.h */, - F506183C2CFD8D7D0FA1322D /* Host.h */, - 99CF547D66CF02B4B4DFA30C /* MachO.h */, - 3F975F92D7C580260B59024B /* MachOByteOrder.h */, - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, - F742E837A76B006F367ABC15 /* PatchFinder.h */, - B447AC3664839765F3679082 /* Util.h */, - ); - path = choma; - sourceTree = ""; - }; - 48AB90CB037F435485C6047D /* Settings */ = { - isa = PBXGroup; - children = ( - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 4A3D6651E821914BC1DA4474 /* Indicators */ = { - isa = PBXGroup; - children = ( - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, - ); - path = Indicators; - sourceTree = ""; - }; - 4BE43909AB102BC654C3AA36 /* lara */ = { - isa = PBXGroup; - children = ( - 71B66224C5948251B6008EC4 /* Info.plist */, - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, - 785FE68237A73C050C69066D /* lara.swift */, - E6D45AD3A84FDFFB26A63642 /* assets */, - 761E02C29DBA3FA091780A05 /* classes */, - BD4923F18700F649F4B199C9 /* funcs */, - B8439178F75BD677E46A1DE7 /* headers */, - 9FC4F095CD4B29F2EBA790C6 /* kexploit */, - F0B17F0CA82330A26B5CAE4B /* lib */, - BA72AA8D35B0D97633C2BF5E /* licenses */, - EC0774E5B4020C4D885431BC /* other */, - 9D63227FDF3FDE8908661A7D /* PartyUI */, - D70718477881BA82E605FF53 /* views */, - ); - path = lara; - sourceTree = ""; - }; - 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { - isa = PBXGroup; - children = ( - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 039D284F496260AA52986467 /* Foundation.framework */, - 410B1EDE3D870185074F65BC /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 73E8616A7EF5B51A92B29E54 /* Lists */ = { - isa = PBXGroup; - children = ( - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, - ); - path = Lists; - sourceTree = ""; - }; - 761E02C29DBA3FA091780A05 /* classes */ = { - isa = PBXGroup; - children = ( - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, - 7ADF625620559A728F4B333A /* Logger.swift */, - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, - CBFD358E70EC405DE82C3960 /* zipmgr.swift */, - 860A585202C20E00C82C419C /* tweaks */, - ); - path = classes; - sourceTree = ""; - }; - 779A184BE3B70E496A71CBAF /* downgrader */ = { - isa = PBXGroup; - children = ( - D68EE24C2BC6D04A47DE9400 /* CoreServices.h */, - 88AA027D9E7F041478EDE6D3 /* DowngradeView.swift */, - E76FC423799904BB0FF3C08C /* MFSRootViewController.h */, - 3322C0C1AD8069422AB2D8DC /* MFSRootViewController.m */, - 7275146AF2A83D0719B0FC62 /* MFSVersionPickerViewController.h */, - 738E0C0783803806926F9BD4 /* MFSVersionPickerViewController.m */, - ); - path = downgrader; - sourceTree = ""; - }; - 7814074F0998A8D980C3CBF8 /* other */ = { - isa = PBXGroup; - children = ( - A9BBF565E304760414833AF4 /* respring.swift */, - ); - path = other; - sourceTree = ""; - }; - 7BD2299CAA022F5E87524835 /* Products */ = { - isa = PBXGroup; - children = ( - B1650DE9DA6D35D51EE63DA2 /* Lara.app */, - ); - name = Products; - sourceTree = ""; - }; - 7F048C9DF00CA2EEB9135FFF /* Effects */ = { - isa = PBXGroup; - children = ( - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, - ); - path = Effects; - sourceTree = ""; - }; - 860A585202C20E00C82C419C /* tweaks */ = { - isa = PBXGroup; - children = ( - 4CFE8C17A9569842AF2EDD4E /* darkboard */, - 9CA94EDD3BE9DDBB6B279DCA /* passcode */, - ); - path = tweaks; - sourceTree = ""; - }; - 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { - isa = PBXGroup; - children = ( - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, - ); - path = mobilegestalt; - sourceTree = ""; - }; - 93732F3C530FBFCDA46E1FCE /* Functions */ = { - isa = PBXGroup; - children = ( - 1D1585E8B42B2495142BE67E /* Alertinator.swift */, - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, - 4759F640E231F564F06DB0F5 /* Shareinator.swift */, - ); - path = Functions; - sourceTree = ""; - }; - 94239040D8A11FC1A668FCE4 /* liquidglass */ = { - isa = PBXGroup; - children = ( - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, - ); - path = liquidglass; - sourceTree = ""; - }; - 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { - isa = PBXGroup; - children = ( - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { - isa = PBXGroup; - children = ( - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 9D63227FDF3FDE8908661A7D /* PartyUI */ = { - isa = PBXGroup; - children = ( - 448609047BB8D112B7E99BFA /* PartyUI.swift */, - CCCE9A5AD37D20741B82ADB9 /* App */, - C6CEB364F2625B0EF49D1447 /* UI */, - ); - path = PartyUI; - sourceTree = ""; - }; - 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { - isa = PBXGroup; - children = ( - 0B1831D0D49F9245F54EBDC6 /* compat.h */, - CB0E8E3EC140E01DA032363F /* darksword.h */, - DD123A4DC76BB7C0734B5AE9 /* darksword.m */, - 4A33766163693DFAA30D772A /* decrypt.h */, - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, - 7DC3E2446E97ECC921D3AE94 /* offsets.h */, - EDC9360B2E647660F1BD443F /* offsets.m */, - 617E864CD832D1D3839429F0 /* persistence.h */, - B2BA68871A9D11BCFDC2AE71 /* persistence.m */, - 206327D869325194A5015A1B /* utils.h */, - 5A300D3F6ED3397BE1E6AD87 /* utils.m */, - C6122EC473A3A57510124B02 /* pe */, - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, - ); - path = kexploit; - sourceTree = ""; - }; - A5B06BC43186EA1E4D25299F = { - isa = PBXGroup; - children = ( - 4BE43909AB102BC654C3AA36 /* lara */, - 72729D505A51BDFC8C55A1D9 /* Frameworks */, - 7BD2299CAA022F5E87524835 /* Products */, - ); - sourceTree = ""; - }; - A89E6CF98559C612AA19E5CE /* settings */ = { - isa = PBXGroup; - children = ( - 61F528F680617A48C3CAB181 /* CreditsView.swift */, - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, - 986EBE17846F5764D1456F88 /* SettingsView.swift */, - ); - path = settings; - sourceTree = ""; - }; - B8439178F75BD677E46A1DE7 /* headers */ = { - isa = PBXGroup; - children = ( - B5A1457B7D98C0DDC65ACC3B /* fileport.h */, - EDF19B2325FE621BF70AC862 /* IconServices.h */, - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, - 51BF1E07A44069A4B21B39EE /* xpf.h */, - ); - path = headers; - sourceTree = ""; - }; - B96F95013D086604AB0F746C /* fm */ = { - isa = PBXGroup; - children = ( - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, - 73D525CF14505CE9B85FD317 /* FileView.swift */, - 9C010243976A7D404529C206 /* SantanderView.swift */, - ); - path = fm; - sourceTree = ""; - }; - BA72AA8D35B0D97633C2BF5E /* licenses */ = { - isa = PBXGroup; - children = ( - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, - ); - path = licenses; - sourceTree = ""; - }; - BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { - isa = PBXGroup; - children = ( - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, - ); - path = sbcustomizer; - sourceTree = ""; - }; - BD4923F18700F649F4B199C9 /* funcs */ = { - isa = PBXGroup; - children = ( - CD0D193753BA74B811063956 /* fetchkcache.swift */, - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, - 92C2A1D1BCFA40230A63C752 /* helpers.swift */, - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, - F50A3C705DF2F98AC63AA699 /* keepalive.swift */, - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, - ); - path = funcs; - sourceTree = ""; - }; - C6122EC473A3A57510124B02 /* pe */ = { - isa = PBXGroup; - children = ( - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, - 797DFBA07DCC9320399BC99F /* apfs.m */, - 09BE5060F2C9DFD730796B7E /* rc.h */, - 86610E6990066EDFE2B5D96B /* rc.m */, - 3450D579B9EF6D1B24EA44AB /* sbx.h */, - F7BDDFA67F1109816C300F1E /* sbx.m */, - 33FAD74D2D09DFD7CF1985FA /* vfs.h */, - 7A92CE7743387903DDBFFC8C /* vfs.m */, - D714CE75040A9A3A983B36BE /* vnode.h */, - 09E09CADCF84F1D6D51E5F20 /* vnode.m */, - E6A7B0366B3E502209C65E24 /* xpaci.h */, - ); - path = pe; - sourceTree = ""; - }; - C6CEB364F2625B0EF49D1447 /* UI */ = { - isa = PBXGroup; - children = ( - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, - 201E76134F22499BFD3DF53F /* Buttons */, - 7F048C9DF00CA2EEB9135FFF /* Effects */, - 4A3D6651E821914BC1DA4474 /* Indicators */, - 0731B4811AB8A4261C149BD3 /* Inputs */, - 73E8616A7EF5B51A92B29E54 /* Lists */, - 09B6EF0B45C55F479407D990 /* Terminal */, - ); - path = UI; - sourceTree = ""; - }; - CCCE9A5AD37D20741B82ADB9 /* App */ = { - isa = PBXGroup; - children = ( - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, - CED7197ED6E1E06C45D4927C /* Extensions */, - 93732F3C530FBFCDA46E1FCE /* Functions */, - 48AB90CB037F435485C6047D /* Settings */, - F8BF389C000C82BE834B7E80 /* WelcomeSheet */, - ); - path = App; - sourceTree = ""; - }; - CED7197ED6E1E06C45D4927C /* Extensions */ = { - isa = PBXGroup; - children = ( - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - D70718477881BA82E605FF53 /* views */ = { - isa = PBXGroup; - children = ( - 0E9B667B7F6DF2F65554368C /* app */, - B96F95013D086604AB0F746C /* fm */, - 7814074F0998A8D980C3CBF8 /* other */, - 0D159B4E42377C38FDD14E18 /* tweaks */, - ); - path = views; - sourceTree = ""; - }; - E6D45AD3A84FDFFB26A63642 /* assets */ = { - isa = PBXGroup; - children = ( - AE2331E0F7B3D823CA15DF72 /* lara.png */, - ); - path = assets; - sourceTree = ""; - }; - EC0774E5B4020C4D885431BC /* other */ = { - isa = PBXGroup; - children = ( - 48E6FC849E553C68E397984C /* lara.entitlements */, - 68FA57A36233679708C5E468 /* media.xcassets */, - 60E947B3676E84C6A668511C /* VarCleanRules.json */, - ); - path = other; - sourceTree = ""; - }; - F0B17F0CA82330A26B5CAE4B /* lib */ = { - isa = PBXGroup; - children = ( - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, - 6337EE02AC0706717DFA252A /* libxpf.dylib */, - 23942EEA65BBA190D901B7D2 /* choma */, - ); - path = lib; - sourceTree = ""; - }; - F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { - isa = PBXGroup; - children = ( - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, - ); - path = dirtyZero; - sourceTree = ""; - }; - F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { - isa = PBXGroup; - children = ( - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, - ); - path = WelcomeSheet; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FD1665B8C8F3A79F013224EE /* Lara */ = { - isa = PBXNativeTarget; - buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; - buildPhases = ( - F9DE0523417E74276238FA56 /* Sources */, - 7CE4B9CDA802D229BDFBAFEF /* Resources */, - 77D3CA82B4C410701CD229E2 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Lara; - packageProductDependencies = ( - ); - productName = Lara; - productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - TargetAttributes = { - }; - }; - buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = A5B06BC43186EA1E4D25299F; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FD1665B8C8F3A79F013224EE /* Lara */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F9DE0523417E74276238FA56 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, - AA906B15670C182BF2BDCAFE /* DowngradeView.swift in Sources */, - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, - 333CD424E2385A8097A3533C /* Logger.swift in Sources */, - AAC093D16E38470615A9725D /* LogsView.swift in Sources */, - C8EC8FAB2DD32F253B858C1D /* MFSRootViewController.m in Sources */, - 7E6160E64C68CAEEBDCD71D4 /* MFSVersionPickerViewController.m in Sources */, - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, - 7AEF609084ED052D6C996095 /* offsets.m in Sources */, - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, - E99D712EE78CA8073C49821B /* respring.swift in Sources */, - 495E4514D5AE764363BAF696 /* sbx.m in Sources */, - AFD8AD5FD3F60467492282EF /* thread.m in Sources */, - BC49811360FE90E8EAE827E8 /* utils.m in Sources */, - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, - 4997659E14575C5B7AAACC12 /* vm.m in Sources */, - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3E810AC91C376ED3F7F9E2BA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 82AE279FDF9B38FD75536E7A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - B36A0572D1FE8B1BD286BCB7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - EEB3821768474EEF09187DAB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B36A0572D1FE8B1BD286BCB7 /* Debug */, - EEB3821768474EEF09187DAB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3E810AC91C376ED3F7F9E2BA /* Debug */, - 82AE279FDF9B38FD75536E7A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; -} diff --git a/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a62..000000000 --- a/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - From f3eb403d73ed65f1e36b7d6c753b6feaa9aea19b Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 00:49:40 +0530 Subject: [PATCH 039/233] Rename lara/views/tweaks/downgrader/DowngradeView.swift to lara/views/tweaks/DowngradeView.swift --- lara/views/tweaks/{downgrader => }/DowngradeView.swift | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lara/views/tweaks/{downgrader => }/DowngradeView.swift (100%) diff --git a/lara/views/tweaks/downgrader/DowngradeView.swift b/lara/views/tweaks/DowngradeView.swift similarity index 100% rename from lara/views/tweaks/downgrader/DowngradeView.swift rename to lara/views/tweaks/DowngradeView.swift From 5fc585d021698b782cc003d97470fc89237a8df0 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 00:49:53 +0530 Subject: [PATCH 040/233] Delete lara/views/tweaks/downgrader directory --- lara/views/tweaks/downgrader/CoreServices.h | 77 ---- .../tweaks/downgrader/MFSRootViewController.h | 7 - .../tweaks/downgrader/MFSRootViewController.m | 394 ------------------ .../MFSVersionPickerViewController.h | 11 - .../MFSVersionPickerViewController.m | 72 ---- 5 files changed, 561 deletions(-) delete mode 100644 lara/views/tweaks/downgrader/CoreServices.h delete mode 100644 lara/views/tweaks/downgrader/MFSRootViewController.h delete mode 100644 lara/views/tweaks/downgrader/MFSRootViewController.m delete mode 100644 lara/views/tweaks/downgrader/MFSVersionPickerViewController.h delete mode 100644 lara/views/tweaks/downgrader/MFSVersionPickerViewController.m diff --git a/lara/views/tweaks/downgrader/CoreServices.h b/lara/views/tweaks/downgrader/CoreServices.h deleted file mode 100644 index dcd25d842..000000000 --- a/lara/views/tweaks/downgrader/CoreServices.h +++ /dev/null @@ -1,77 +0,0 @@ -//MuffinStore -extern NSString *LSInstallTypeKey; - -@interface LSBundleProxy -@property (nonatomic,readonly) NSString * bundleIdentifier; -@property (nonatomic) NSURL* dataContainerURL; -@property (nonatomic,readonly) NSURL* bundleContainerURL; --(NSString*)localizedName; -@end - -@interface LSApplicationProxy : LSBundleProxy -+ (instancetype)applicationProxyForIdentifier:(NSString*)identifier; -+ (instancetype)applicationProxyForBundleURL:(NSURL*)bundleURL; -@property NSURL* bundleURL; -@property NSString* bundleType; -@property NSString* canonicalExecutablePath; -@property (nonatomic,readonly) NSDictionary* groupContainerURLs; -@property (nonatomic,readonly) NSArray* plugInKitPlugins; -@property (getter=isInstalled,nonatomic,readonly) BOOL installed; -@property (getter=isPlaceholder,nonatomic,readonly) BOOL placeholder; -@property (getter=isRestricted,nonatomic,readonly) BOOL restricted; -@property (nonatomic,readonly) NSSet* claimedURLSchemes; -@property (nonatomic,readonly) NSString* applicationType; -@end - -@interface LSApplicationWorkspace : NSObject -+ (instancetype)defaultWorkspace; -- (BOOL)registerApplicationDictionary:(NSDictionary*)dict; -- (BOOL)unregisterApplication:(id)arg1; -- (BOOL)_LSPrivateRebuildApplicationDatabasesForSystemApps:(BOOL)arg1 internal:(BOOL)arg2 user:(BOOL)arg3; -- (BOOL)openApplicationWithBundleID:(NSString *)arg1 ; -- (void)enumerateApplicationsOfType:(NSUInteger)type block:(void (^)(LSApplicationProxy*))block; -- (BOOL)installApplication:(NSURL*)appPackageURL withOptions:(NSDictionary*)options error:(NSError**)error; -- (BOOL)uninstallApplication:(NSString*)appId withOptions:(NSDictionary*)options; -- (void)addObserver:(id)arg1; -- (void)removeObserver:(id)arg1; -@end - -@protocol LSApplicationWorkspaceObserverProtocol -@optional -- (void)applicationsDidInstall:(NSArray *)apps; -- (void)applicationsDidUninstall:(NSArray *)apps; -@end - -@interface LSEnumerator : NSEnumerator -@property (nonatomic,copy) NSPredicate * predicate; -+ (instancetype)enumeratorForApplicationProxiesWithOptions:(NSUInteger)options; -@end - -@interface LSPlugInKitProxy : LSBundleProxy -@property (nonatomic,readonly) NSString* pluginIdentifier; -@property (nonatomic,readonly) NSDictionary * pluginKitDictionary; -+ (instancetype)pluginKitProxyForIdentifier:(NSString*)arg1; -@end - -@interface MCMContainer : NSObject -+ (id)containerWithIdentifier:(id)arg1 createIfNecessary:(BOOL)arg2 existed:(BOOL*)arg3 error:(id*)arg4; -@property (nonatomic,readonly) NSURL * url; -@end - -@interface MCMDataContainer : MCMContainer -@end - -@interface MCMAppDataContainer : MCMDataContainer -@end - -@interface MCMAppContainer : MCMContainer -@end - -@interface MCMPluginKitPluginDataContainer : MCMDataContainer -@end - -@interface MCMSystemDataContainer : MCMContainer -@end - -@interface MCMSharedDataContainer : MCMContainer -@end diff --git a/lara/views/tweaks/downgrader/MFSRootViewController.h b/lara/views/tweaks/downgrader/MFSRootViewController.h deleted file mode 100644 index 161bcf72f..000000000 --- a/lara/views/tweaks/downgrader/MFSRootViewController.h +++ /dev/null @@ -1,7 +0,0 @@ -#import -#import -#import - -@interface MFSRootViewController : PSListController - -@end diff --git a/lara/views/tweaks/downgrader/MFSRootViewController.m b/lara/views/tweaks/downgrader/MFSRootViewController.m deleted file mode 100644 index 187867af6..000000000 --- a/lara/views/tweaks/downgrader/MFSRootViewController.m +++ /dev/null @@ -1,394 +0,0 @@ -#import "MFSRootViewController.h" -#import "MFSVersionPickerViewController.h" -#import "CoreServices.h" -#import - -@interface SKUIItemStateCenter : NSObject - -+ (id)defaultCenter; -- (id)_newPurchasesWithItems:(id)items; -- (void)_performPurchases:(id)purchases hasBundlePurchase:(_Bool)purchase withClientContext:(id)context completionBlock:(id /* block */)block; -- (void)_performSoftwarePurchases:(id)purchases withClientContext:(id)context completionBlock:(id /* block */)block; - -@end - -@interface SKUIItem : NSObject -- (id)initWithLookupDictionary:(id)dictionary; -@end - -@interface SKUIItemOffer : NSObject -- (id)initWithLookupDictionary:(id)dictionary; -@end - -@interface SKUIClientContext : NSObject -+ (id)defaultContext; -@end - -@interface MFSRootViewController () -@property (nonatomic, strong) UIAlertController* progressAlert; -@end - -@implementation MFSRootViewController - -- (void)loadView -{ - [super loadView]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadSpecifiers) name:UIApplicationWillEnterForegroundNotification object:nil]; -} - -- (NSMutableArray*)specifiers -{ - if (!_specifiers) - { - _specifiers = [NSMutableArray new]; - - PSSpecifier* downloadGroupSpecifier = [PSSpecifier emptyGroupSpecifier]; - downloadGroupSpecifier.name = @"Download"; - [_specifiers addObject:downloadGroupSpecifier]; - - PSSpecifier* downloadSpecifier = [PSSpecifier preferenceSpecifierNamed:@"Download" target:self set:nil get:nil detail:nil cell:PSButtonCell edit:nil]; - downloadSpecifier.identifier = @"download"; - [downloadSpecifier setProperty:@YES forKey:@"enabled"]; - downloadSpecifier.buttonAction = @selector(downloadApp); - [_specifiers addObject:downloadSpecifier]; - - NSString* aboutText = [self getAboutText]; - [downloadGroupSpecifier setProperty:aboutText forKey:@"footerText"]; - - PSSpecifier* installedGroupSpecifier = [PSSpecifier emptyGroupSpecifier]; - installedGroupSpecifier.name = @"Installed Apps"; - [_specifiers addObject:installedGroupSpecifier]; - - NSMutableArray* appSpecifiers = [NSMutableArray new]; - [[LSApplicationWorkspace defaultWorkspace] enumerateApplicationsOfType:0 block:^(LSApplicationProxy* appProxy) - { - PSSpecifier* appSpecifier = [PSSpecifier preferenceSpecifierNamed:appProxy.localizedName target:self set:nil get:nil detail:nil cell:PSButtonCell edit:nil]; - [appSpecifier setProperty:appProxy.bundleURL forKey:@"bundleURL"]; - [appSpecifier setProperty:@YES forKey:@"enabled"]; - appSpecifier.buttonAction = @selector(downloadAppShortcut:); - [appSpecifiers addObject:appSpecifier]; - }]; - [appSpecifiers sortUsingComparator:^NSComparisonResult(PSSpecifier* a, PSSpecifier* b) - { - return [a.name compare:b.name]; - }]; - [_specifiers addObjectsFromArray:appSpecifiers]; - } - [(UINavigationItem*)self.navigationItem setTitle:@"MuffinStore"]; - return _specifiers; -} - -- (BOOL)isNetworkReachable -{ - SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, "apis.bilin.eu.org"); - SCNetworkReachabilityFlags flags; - BOOL reachable = NO; - if (SCNetworkReachabilityGetFlags(reachability, &flags)) - { - BOOL isReachable = (flags & kSCNetworkFlagsReachable) != 0; - BOOL needsConnection = (flags & kSCNetworkFlagsConnectionRequired) != 0; - reachable = isReachable && !needsConnection; - } - CFRelease(reachability); - return reachable; -} - -- (void)downloadAppShortcut:(PSSpecifier*)specifier -{ - if (![self isNetworkReachable]) - { - [self showAlert:@"No Internet" message:@"Please check your internet connection and try again."]; - return; - } - NSURL* bundleURL = [specifier propertyForKey:@"bundleURL"]; - NSDictionary* infoPlist = [NSDictionary dictionaryWithContentsOfFile:[bundleURL.path stringByAppendingPathComponent:@"Info.plist"]]; - NSString* bundleId = infoPlist[@"CFBundleIdentifier"]; - NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"https://itunes.apple.com/lookup?bundleId=%@&limit=1&media=software", bundleId]]; - NSURLRequest* request = [NSURLRequest requestWithURL:url]; - NSURLSessionDataTask* task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData* data, NSURLResponse* response, NSError* error) - { - if (error) - { - dispatch_async(dispatch_get_main_queue(), ^ - { - [self showAlert:@"Error" message:error.localizedDescription]; - }); - return; - } - NSError* jsonError = nil; - NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError]; - if (jsonError) - { - dispatch_async(dispatch_get_main_queue(), ^ - { - [self showAlert:@"JSON Error" message:jsonError.localizedDescription]; - }); - return; - } - NSArray* results = json[@"results"]; - if (results.count == 0) - { - dispatch_async(dispatch_get_main_queue(), ^ - { - [self showAlert:@"Error" message:@"No results found for this app."]; - }); - return; - } - NSDictionary* app = results[0]; - [self getAllAppVersionIdsAndPrompt:[app[@"trackId"] longLongValue]]; - }]; - [task resume]; -} - -- (NSString*)getAboutText -{ - return @"MuffinStore v1.3\nMade by Mineek\nhttps://github.com/mineek/MuffinStore"; -} - -- (void)showAlert:(NSString*)title message:(NSString*)message -{ - dispatch_async(dispatch_get_main_queue(), ^ - { - UIAlertController* alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]; - [alert addAction:okAction]; - [self presentViewController:alert animated:YES completion:nil]; - }); -} - -- (void)showDownloadProgressWithMessage:(NSString*)message -{ - dispatch_async(dispatch_get_main_queue(), ^ - { - if (self.progressAlert) - { - self.progressAlert.message = message; - return; - } - self.progressAlert = [UIAlertController alertControllerWithTitle:@"Downloading" message:message preferredStyle:UIAlertControllerStyleAlert]; - UIActivityIndicatorView* indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleMedium]; - indicator.translatesAutoresizingMaskIntoConstraints = NO; - [indicator startAnimating]; - [self.progressAlert.view addSubview:indicator]; - [NSLayoutConstraint activateConstraints:@[ - [indicator.centerXAnchor constraintEqualToAnchor:self.progressAlert.view.centerXAnchor], - [indicator.bottomAnchor constraintEqualToAnchor:self.progressAlert.view.bottomAnchor constant:-20] - ]]; - [self presentViewController:self.progressAlert animated:YES completion:nil]; - }); -} - -- (void)dismissDownloadProgress -{ - dispatch_async(dispatch_get_main_queue(), ^ - { - if (self.progressAlert) - { - [self.progressAlert dismissViewControllerAnimated:YES completion:nil]; - self.progressAlert = nil; - } - }); -} - -- (void)getAllAppVersionIdsFromServer:(long long)appId -{ - if (![self isNetworkReachable]) - { - [self showAlert:@"No Internet" message:@"Please check your internet connection and try again."]; - return; - } - NSString* serverURL = @"https://apis.bilin.eu.org/history/"; - NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%lld", serverURL, appId]]; - NSURLRequest* request = [NSURLRequest requestWithURL:url]; - NSURLSessionDataTask* task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData* data, NSURLResponse* response, NSError* error) - { - if (error) - { - dispatch_async(dispatch_get_main_queue(), ^ - { - [self showAlert:@"Error" message:error.localizedDescription]; - }); - return; - } - NSError* jsonError = nil; - NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError]; - if (jsonError) - { - dispatch_async(dispatch_get_main_queue(), ^ - { - [self showAlert:@"JSON Error" message:jsonError.debugDescription]; - }); - return; - } - NSArray* versionIds = json[@"data"]; - if (versionIds.count == 0) - { - dispatch_async(dispatch_get_main_queue(), ^ - { - [self showAlert:@"Error" message:@"No version IDs found. The server may not have records for this app."]; - }); - return; - } - dispatch_async(dispatch_get_main_queue(), ^ - { - MFSVersionPickerViewController* picker = [[MFSVersionPickerViewController alloc] initWithVersions:versionIds completion:^(NSDictionary* selectedVersion) - { - [self downloadAppWithAppId:appId versionId:[selectedVersion[@"external_identifier"] longLongValue]]; - }]; - UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:picker]; - nav.modalPresentationStyle = UIModalPresentationFormSheet; - if (@available(iOS 15.0, *)) - { - id sheet = [nav performSelector:@selector(sheetPresentationController)]; - Class detentClass = NSClassFromString(@"UISheetPresentationControllerDetent"); - if (sheet && detentClass) - { - id medium = [detentClass performSelector:@selector(mediumDetent)]; - id large = [detentClass performSelector:@selector(largeDetent)]; - if (medium && large) - { - [sheet setValue:@[medium, large] forKey:@"detents"]; - [sheet setValue:@YES forKey:@"prefersGrabberVisible"]; - } - } - } - [self presentViewController:nav animated:YES completion:nil]; - }); - }]; - [task resume]; -} - -- (void)promptForVersionId:(long long)appId -{ - dispatch_async(dispatch_get_main_queue(), ^ - { - UIAlertController* versionAlert = [UIAlertController alertControllerWithTitle:@"Version ID" message:@"Enter the version ID of the app you want to download" preferredStyle:UIAlertControllerStyleAlert]; - [versionAlert addTextFieldWithConfigurationHandler:^(UITextField* textField) - { - textField.placeholder = @"Version ID"; - textField.keyboardType = UIKeyboardTypeNumberPad; - }]; - UIAlertAction* downloadAction = [UIAlertAction actionWithTitle:@"Download" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) - { - long long versionId = [versionAlert.textFields.firstObject.text longLongValue]; - [self downloadAppWithAppId:appId versionId:versionId]; - }]; - [versionAlert addAction:downloadAction]; - UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; - [versionAlert addAction:cancelAction]; - [self presentViewController:versionAlert animated:YES completion:nil]; - }); -} - -- (void)getAllAppVersionIdsAndPrompt:(long long)appId -{ - dispatch_async(dispatch_get_main_queue(), ^ - { - UIAlertController* promptAlert = [UIAlertController alertControllerWithTitle:@"Version Selection" message:@"Choose how to select the app version to download." preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* serverAction = [UIAlertAction actionWithTitle:@"Browse Version List" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) - { - [self getAllAppVersionIdsFromServer:appId]; - }]; - [promptAlert addAction:serverAction]; - UIAlertAction* manualAction = [UIAlertAction actionWithTitle:@"Enter Version ID Manually" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) - { - [self promptForVersionId:appId]; - }]; - [promptAlert addAction:manualAction]; - UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; - [promptAlert addAction:cancelAction]; - [self presentViewController:promptAlert animated:YES completion:nil]; - }); -} - -- (void)downloadAppWithAppId:(long long)appId versionId:(long long)versionId -{ - if (![self isNetworkReachable]) - { - [self showAlert:@"No Internet" message:@"Please check your internet connection and try again."]; - return; - } - [self showDownloadProgressWithMessage:@"Initiating download…"]; - NSString* adamId = [NSString stringWithFormat:@"%lld", appId]; - NSString* pricingParameters = @"pricingParameter"; - NSString* appExtVrsId = [NSString stringWithFormat:@"%lld", versionId]; - NSString* installed = @"0"; - NSString* offerString = nil; - if (versionId == 0) - { - offerString = [NSString stringWithFormat:@"productType=C&price=0&salableAdamId=%@&pricingParameters=%@&clientBuyId=1&installed=%@&trolled=1", adamId, pricingParameters, installed]; - } - else - { - offerString = [NSString stringWithFormat:@"productType=C&price=0&salableAdamId=%@&pricingParameters=%@&appExtVrsId=%@&clientBuyId=1&installed=%@&trolled=1", adamId, pricingParameters, appExtVrsId, installed]; - } - NSDictionary* offerDict = @{@"buyParams": offerString}; - NSDictionary* itemDict = @{@"_itemOffer": adamId}; - SKUIItemOffer* offer = [[SKUIItemOffer alloc] initWithLookupDictionary:offerDict]; - SKUIItem* item = [[SKUIItem alloc] initWithLookupDictionary:itemDict]; - [item setValue:offer forKey:@"_itemOffer"]; - [item setValue:@"iosSoftware" forKey:@"_itemKindString"]; - if (versionId != 0) - { - [item setValue:@(versionId) forKey:@"_versionIdentifier"]; - } - SKUIItemStateCenter* center = [SKUIItemStateCenter defaultCenter]; - NSArray* items = @[item]; - dispatch_async(dispatch_get_main_queue(), ^ - { - [self showDownloadProgressWithMessage:@"Purchase request sent. The download will begin in the background."]; - [center _performPurchases:[center _newPurchasesWithItems:items] hasBundlePurchase:0 withClientContext:[SKUIClientContext defaultContext] completionBlock:^(id arg1) - { - [self dismissDownloadProgress]; - }]; - }); -} - -- (void)downloadAppWithLink:(NSString*)link -{ - if (![self isNetworkReachable]) - { - [self showAlert:@"No Internet" message:@"Please check your internet connection and try again."]; - return; - } - NSString* targetAppIdParsed = nil; - if ([link containsString:@"id"]) - { - NSArray* components = [link componentsSeparatedByString:@"id"]; - if (components.count < 2) - { - [self showAlert:@"Error" message:@"Invalid link"]; - return; - } - NSArray* idComponents = [components[1] componentsSeparatedByString:@"?"]; - targetAppIdParsed = idComponents[0]; - } - else - { - [self showAlert:@"Error" message:@"Invalid link"]; - return; - } - dispatch_async(dispatch_get_main_queue(), ^ - { - [self getAllAppVersionIdsAndPrompt:[targetAppIdParsed longLongValue]]; - }); -} - -- (void)downloadApp -{ - UIAlertController* linkAlert = [UIAlertController alertControllerWithTitle:@"App Link" message:@"Enter the App Store link to the app you want to download" preferredStyle:UIAlertControllerStyleAlert]; - [linkAlert addTextFieldWithConfigurationHandler:^(UITextField* textField) - { - textField.placeholder = @"https://apps.apple.com/app/idXXXXXXXXX"; - }]; - UIAlertAction* downloadAction = [UIAlertAction actionWithTitle:@"Continue" style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) - { - [self downloadAppWithLink:linkAlert.textFields.firstObject.text]; - }]; - [linkAlert addAction:downloadAction]; - UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; - [linkAlert addAction:cancelAction]; - [self presentViewController:linkAlert animated:YES completion:nil]; -} - -@end diff --git a/lara/views/tweaks/downgrader/MFSVersionPickerViewController.h b/lara/views/tweaks/downgrader/MFSVersionPickerViewController.h deleted file mode 100644 index 18a4d80de..000000000 --- a/lara/views/tweaks/downgrader/MFSVersionPickerViewController.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -typedef void (^MFSVersionPickerCompletion)(NSDictionary* selectedVersion); - -@interface MFSVersionPickerViewController : UITableViewController - -@property (nonatomic, copy) MFSVersionPickerCompletion completionHandler; - -- (instancetype)initWithVersions:(NSArray*)versions completion:(MFSVersionPickerCompletion)completion; - -@end diff --git a/lara/views/tweaks/downgrader/MFSVersionPickerViewController.m b/lara/views/tweaks/downgrader/MFSVersionPickerViewController.m deleted file mode 100644 index f423af051..000000000 --- a/lara/views/tweaks/downgrader/MFSVersionPickerViewController.m +++ /dev/null @@ -1,72 +0,0 @@ -#import "MFSVersionPickerViewController.h" - -@interface MFSVersionPickerViewController () -@property (nonatomic, strong) NSArray* versions; -@end - -@implementation MFSVersionPickerViewController - -- (instancetype)initWithVersions:(NSArray*)versions completion:(MFSVersionPickerCompletion)completion -{ - self = [super initWithStyle:UITableViewStyleInsetGrouped]; - if (self) - { - _versions = versions; - _completionHandler = completion; - } - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - self.title = @"Select Version"; - [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"VersionCell"]; - UIBarButtonItem* cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelTapped)]; - self.navigationItem.leftBarButtonItem = cancelButton; -} - -- (void)cancelTapped -{ - [self dismissViewControllerAnimated:YES completion:nil]; -} - -- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView -{ - return 1; -} - -- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section -{ - return self.versions.count; -} - -- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath -{ - UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"VersionCell" forIndexPath:indexPath]; - NSDictionary* version = self.versions[indexPath.row]; - cell.textLabel.text = version[@"bundle_version"]; - cell.textLabel.font = [UIFont monospacedDigitSystemFontOfSize:15 weight:UIFontWeightRegular]; - cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; - return cell; -} - -- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath -{ - [tableView deselectRowAtIndexPath:indexPath animated:YES]; - NSDictionary* selected = self.versions[indexPath.row]; - [self dismissViewControllerAnimated:YES completion:^ - { - if (self.completionHandler) - { - self.completionHandler(selected); - } - }]; -} - -- (NSString*)tableView:(UITableView*)tableView titleForHeaderInSection:(NSInteger)section -{ - return [NSString stringWithFormat:@"%lu versions available", (unsigned long)self.versions.count]; -} - -@end From 57227b28800d85c66709c1d2cce4ab387d86a28d Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 00:51:40 +0530 Subject: [PATCH 041/233] Update project.yml --- project.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/project.yml b/project.yml index 8e24a77e6..9696ac4b8 100644 --- a/project.yml +++ b/project.yml @@ -19,7 +19,8 @@ targets: INFOPLIST_FILE: lara/Info.plist SWIFT_OBJC_BRIDGING_HEADER: lara/lara-Bridging-Header.h LIBRARY_SEARCH_PATHS: $(inherited) $(SRCROOT)/lib - OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel2 + FRAMEWORK_SEARCH_PATHS: $(inherited) $(SRCROOT)/lib + OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel dependencies: - sdk: UIKit.framework From 292ecee47ccdb4ed50feb60a3d66c4ca2e374fdf Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 19:14:00 +0530 Subject: [PATCH 042/233] Delete lara/lib/libmuffinstore.framework directory --- lara/lib/libmuffinstore.framework/MuffinStore | Bin 89248 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lara/lib/libmuffinstore.framework/MuffinStore diff --git a/lara/lib/libmuffinstore.framework/MuffinStore b/lara/lib/libmuffinstore.framework/MuffinStore deleted file mode 100644 index cd95f95e5e02f8bc12d6622232f0bac73fb708ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89248 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 L@cS1gJNN$qMGA~u From a1b1111242af3f50c9d39e10e00a9fc5c1337d9d Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 22:17:46 +0530 Subject: [PATCH 043/233] Add files via upload --- lara/lib/MuffinStore.dylib | Bin 0 -> 129488 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lara/lib/MuffinStore.dylib diff --git a/lara/lib/MuffinStore.dylib b/lara/lib/MuffinStore.dylib new file mode 100644 index 0000000000000000000000000000000000000000..25dfbf47332b27ab56a02d09dd3808cdad471d98 GIT binary patch literal 129488 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 vfBwaaZ|&`VtZ>_&?|P2@=&y18 Date: Sun, 31 May 2026 22:18:19 +0530 Subject: [PATCH 044/233] Rename MuffinStore.dylib to libmuffinstore.dylib --- .../lib/{MuffinStore.dylib => libmuffinstore.dylib} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename lara/lib/{MuffinStore.dylib => libmuffinstore.dylib} (100%) diff --git a/lara/lib/MuffinStore.dylib b/lara/lib/libmuffinstore.dylib similarity index 100% rename from lara/lib/MuffinStore.dylib rename to lara/lib/libmuffinstore.dylib From 29bc6617dd8677b13cae432dfa22c1d354fdf0f7 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 22:19:06 +0530 Subject: [PATCH 045/233] Update project.yml --- project.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/project.yml b/project.yml index 9696ac4b8..118ec108c 100644 --- a/project.yml +++ b/project.yml @@ -19,8 +19,7 @@ targets: INFOPLIST_FILE: lara/Info.plist SWIFT_OBJC_BRIDGING_HEADER: lara/lara-Bridging-Header.h LIBRARY_SEARCH_PATHS: $(inherited) $(SRCROOT)/lib - FRAMEWORK_SEARCH_PATHS: $(inherited) $(SRCROOT)/lib - OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel + OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel -lmuffinstore dependencies: - sdk: UIKit.framework From 78e240304c04bd1bc270da957df5c3b5207e597c Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 22:22:10 +0530 Subject: [PATCH 046/233] Add files via upload --- project.pbxproj | 1200 ++++++++++++++++++ project.xcworkspace/contents.xcworkspacedata | 7 + 2 files changed, 1207 insertions(+) create mode 100644 project.pbxproj create mode 100644 project.xcworkspace/contents.xcworkspacedata diff --git a/project.pbxproj b/project.pbxproj new file mode 100644 index 000000000..f51dc2700 --- /dev/null +++ b/project.pbxproj @@ -0,0 +1,1200 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; + 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; + 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; + 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; + 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; + AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; + AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; + BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; + E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; + 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; + 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; + 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; + 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; + 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; + 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; + 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; + 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; + 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; + 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; + 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; + 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; + 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; + 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; + 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; + 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; + 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; + 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; + 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; + 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; + 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; + 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; + 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; + 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; + 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; + 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; + 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; + 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; + 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; + 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; + 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; + 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; + 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; + 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; + 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; + 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; + 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; + 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; + 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; + 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; + 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; + 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; + 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; + A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; + A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; + AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; + AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; + AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; + ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; + AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; + B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; + B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; + B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; + B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; + BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; + CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; + CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; + CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; + D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; + D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; + D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; + DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; + DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; + E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; + E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; + E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; + E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; + EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; + EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; + F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; + F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; + F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; + F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; + F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 77D3CA82B4C410701CD229E2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0731B4811AB8A4261C149BD3 /* Inputs */ = { + isa = PBXGroup; + children = ( + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, + ); + path = Inputs; + sourceTree = ""; + }; + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { + isa = PBXGroup; + children = ( + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, + E4F25FF1C3F48BDC5E6BB728 /* exc.m */, + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, + 2329A0992D4982D4E144AB75 /* pac.h */, + 7716BA871D7E897964A49CBD /* pac.m */, + E39629D147580074F13782D6 /* privateapi.h */, + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, + D2ED109B18B57340D5F23066 /* RemoteCall.m */, + 47A521EB489F34847F77161C /* thread.h */, + 69CB9CC7CA7C437D5204AD77 /* thread.m */, + 6FD2D7416B6AA7CE5E184223 /* vm.h */, + 2046AE855EEB1C6D361886E0 /* vm.m */, + ); + path = TaskRop; + sourceTree = ""; + }; + 096D912C986A1ECDD4AE9C57 /* broken */ = { + isa = PBXGroup; + children = ( + DF63A96A2904C5BAA9C6E491 /* CCView.swift */, + 97E7B95F214CEA3C04F0AC58 /* darkboard */, + ); + path = broken; + sourceTree = ""; + }; + 09B6EF0B45C55F479407D990 /* Terminal */ = { + isa = PBXGroup; + children = ( + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, + ); + path = Terminal; + sourceTree = ""; + }; + 0D159B4E42377C38FDD14E18 /* tweaks */ = { + isa = PBXGroup; + children = ( + D7767AE9E778CDC4652EE1AA /* AppsView.swift */, + 87B5A7075908DD63D2DB887E /* CardView.swift */, + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, + AB6983282C48A1F9D8916495 /* DecryptView.swift */, + 31508EF562095117FB765FFF /* DowngradeView.swift */, + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, + F2807342CC8396EA700E7626 /* JitView.swift */, + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, + 096D912C986A1ECDD4AE9C57 /* broken */, + F1B195CE1E819A5C7256ED05 /* dirtyZero */, + 94239040D8A11FC1A668FCE4 /* liquidglass */, + 8855FA399F2E0D870F89E63A /* mobilegestalt */, + 1CF2706A6E532F38D6DD625F /* passcode */, + BCB9166DBD1D0FB1A634265E /* sbcustomizer */, + ); + path = tweaks; + sourceTree = ""; + }; + 0E9B667B7F6DF2F65554368C /* app */ = { + isa = PBXGroup; + children = ( + AAF0DB241A670081991552A3 /* ContentView.swift */, + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, + A89E6CF98559C612AA19E5CE /* settings */, + ); + path = app; + sourceTree = ""; + }; + 1CF2706A6E532F38D6DD625F /* passcode */ = { + isa = PBXGroup; + children = ( + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 201E76134F22499BFD3DF53F /* Buttons */ = { + isa = PBXGroup; + children = ( + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, + ); + path = Buttons; + sourceTree = ""; + }; + 23942EEA65BBA190D901B7D2 /* choma */ = { + isa = PBXGroup; + children = ( + 6C46703C2B4072AEF8703349 /* arm64.h */, + AAAF3E2619E3D32C626EC2FA /* Base64.h */, + A9376E035DE98BB605BE0C76 /* BufferedStream.h */, + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, + ADC09F6065726F4669F88037 /* CodeDirectory.h */, + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, + E497648156C6CAAA87EEE6CB /* DER.h */, + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, + 3C989876DB6E112F7F3C3698 /* Entitlements.h */, + 09A16D0CCA129CD34402ACAB /* Fat.h */, + 791AEB9809EE46375BD53FF9 /* FileStream.h */, + BB016623AE10E3896FEF50AF /* fixup-chains.h */, + F506183C2CFD8D7D0FA1322D /* Host.h */, + 99CF547D66CF02B4B4DFA30C /* MachO.h */, + 3F975F92D7C580260B59024B /* MachOByteOrder.h */, + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, + F742E837A76B006F367ABC15 /* PatchFinder.h */, + B447AC3664839765F3679082 /* Util.h */, + ); + path = choma; + sourceTree = ""; + }; + 48AB90CB037F435485C6047D /* Settings */ = { + isa = PBXGroup; + children = ( + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 4A3D6651E821914BC1DA4474 /* Indicators */ = { + isa = PBXGroup; + children = ( + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, + ); + path = Indicators; + sourceTree = ""; + }; + 4BE43909AB102BC654C3AA36 /* lara */ = { + isa = PBXGroup; + children = ( + 71B66224C5948251B6008EC4 /* Info.plist */, + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, + 785FE68237A73C050C69066D /* lara.swift */, + E6D45AD3A84FDFFB26A63642 /* assets */, + 761E02C29DBA3FA091780A05 /* classes */, + BD4923F18700F649F4B199C9 /* funcs */, + B8439178F75BD677E46A1DE7 /* headers */, + 9FC4F095CD4B29F2EBA790C6 /* kexploit */, + F0B17F0CA82330A26B5CAE4B /* lib */, + BA72AA8D35B0D97633C2BF5E /* licenses */, + EC0774E5B4020C4D885431BC /* other */, + 9D63227FDF3FDE8908661A7D /* PartyUI */, + D70718477881BA82E605FF53 /* views */, + ); + path = lara; + sourceTree = ""; + }; + 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { + isa = PBXGroup; + children = ( + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 039D284F496260AA52986467 /* Foundation.framework */, + 410B1EDE3D870185074F65BC /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 73E8616A7EF5B51A92B29E54 /* Lists */ = { + isa = PBXGroup; + children = ( + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, + ); + path = Lists; + sourceTree = ""; + }; + 761E02C29DBA3FA091780A05 /* classes */ = { + isa = PBXGroup; + children = ( + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, + 7ADF625620559A728F4B333A /* Logger.swift */, + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, + CBFD358E70EC405DE82C3960 /* zipmgr.swift */, + 860A585202C20E00C82C419C /* tweaks */, + ); + path = classes; + sourceTree = ""; + }; + 7814074F0998A8D980C3CBF8 /* other */ = { + isa = PBXGroup; + children = ( + A9BBF565E304760414833AF4 /* respring.swift */, + ); + path = other; + sourceTree = ""; + }; + 7BD2299CAA022F5E87524835 /* Products */ = { + isa = PBXGroup; + children = ( + B1650DE9DA6D35D51EE63DA2 /* Lara.app */, + ); + name = Products; + sourceTree = ""; + }; + 7F048C9DF00CA2EEB9135FFF /* Effects */ = { + isa = PBXGroup; + children = ( + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, + ); + path = Effects; + sourceTree = ""; + }; + 860A585202C20E00C82C419C /* tweaks */ = { + isa = PBXGroup; + children = ( + 4CFE8C17A9569842AF2EDD4E /* darkboard */, + 9CA94EDD3BE9DDBB6B279DCA /* passcode */, + ); + path = tweaks; + sourceTree = ""; + }; + 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { + isa = PBXGroup; + children = ( + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, + ); + path = mobilegestalt; + sourceTree = ""; + }; + 93732F3C530FBFCDA46E1FCE /* Functions */ = { + isa = PBXGroup; + children = ( + 1D1585E8B42B2495142BE67E /* Alertinator.swift */, + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, + 4759F640E231F564F06DB0F5 /* Shareinator.swift */, + ); + path = Functions; + sourceTree = ""; + }; + 94239040D8A11FC1A668FCE4 /* liquidglass */ = { + isa = PBXGroup; + children = ( + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, + ); + path = liquidglass; + sourceTree = ""; + }; + 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { + isa = PBXGroup; + children = ( + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { + isa = PBXGroup; + children = ( + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 9D63227FDF3FDE8908661A7D /* PartyUI */ = { + isa = PBXGroup; + children = ( + 448609047BB8D112B7E99BFA /* PartyUI.swift */, + CCCE9A5AD37D20741B82ADB9 /* App */, + C6CEB364F2625B0EF49D1447 /* UI */, + ); + path = PartyUI; + sourceTree = ""; + }; + 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { + isa = PBXGroup; + children = ( + 0B1831D0D49F9245F54EBDC6 /* compat.h */, + CB0E8E3EC140E01DA032363F /* darksword.h */, + DD123A4DC76BB7C0734B5AE9 /* darksword.m */, + 4A33766163693DFAA30D772A /* decrypt.h */, + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, + 7DC3E2446E97ECC921D3AE94 /* offsets.h */, + EDC9360B2E647660F1BD443F /* offsets.m */, + 617E864CD832D1D3839429F0 /* persistence.h */, + B2BA68871A9D11BCFDC2AE71 /* persistence.m */, + 206327D869325194A5015A1B /* utils.h */, + 5A300D3F6ED3397BE1E6AD87 /* utils.m */, + C6122EC473A3A57510124B02 /* pe */, + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, + ); + path = kexploit; + sourceTree = ""; + }; + A5B06BC43186EA1E4D25299F = { + isa = PBXGroup; + children = ( + 4BE43909AB102BC654C3AA36 /* lara */, + 72729D505A51BDFC8C55A1D9 /* Frameworks */, + 7BD2299CAA022F5E87524835 /* Products */, + ); + sourceTree = ""; + }; + A89E6CF98559C612AA19E5CE /* settings */ = { + isa = PBXGroup; + children = ( + 61F528F680617A48C3CAB181 /* CreditsView.swift */, + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, + 986EBE17846F5764D1456F88 /* SettingsView.swift */, + ); + path = settings; + sourceTree = ""; + }; + B8439178F75BD677E46A1DE7 /* headers */ = { + isa = PBXGroup; + children = ( + B5A1457B7D98C0DDC65ACC3B /* fileport.h */, + EDF19B2325FE621BF70AC862 /* IconServices.h */, + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, + 51BF1E07A44069A4B21B39EE /* xpf.h */, + ); + path = headers; + sourceTree = ""; + }; + B96F95013D086604AB0F746C /* fm */ = { + isa = PBXGroup; + children = ( + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, + 73D525CF14505CE9B85FD317 /* FileView.swift */, + 9C010243976A7D404529C206 /* SantanderView.swift */, + ); + path = fm; + sourceTree = ""; + }; + BA72AA8D35B0D97633C2BF5E /* licenses */ = { + isa = PBXGroup; + children = ( + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, + ); + path = licenses; + sourceTree = ""; + }; + BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { + isa = PBXGroup; + children = ( + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, + ); + path = sbcustomizer; + sourceTree = ""; + }; + BD4923F18700F649F4B199C9 /* funcs */ = { + isa = PBXGroup; + children = ( + CD0D193753BA74B811063956 /* fetchkcache.swift */, + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, + 92C2A1D1BCFA40230A63C752 /* helpers.swift */, + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, + F50A3C705DF2F98AC63AA699 /* keepalive.swift */, + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, + ); + path = funcs; + sourceTree = ""; + }; + C6122EC473A3A57510124B02 /* pe */ = { + isa = PBXGroup; + children = ( + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, + 797DFBA07DCC9320399BC99F /* apfs.m */, + 09BE5060F2C9DFD730796B7E /* rc.h */, + 86610E6990066EDFE2B5D96B /* rc.m */, + 3450D579B9EF6D1B24EA44AB /* sbx.h */, + F7BDDFA67F1109816C300F1E /* sbx.m */, + 33FAD74D2D09DFD7CF1985FA /* vfs.h */, + 7A92CE7743387903DDBFFC8C /* vfs.m */, + D714CE75040A9A3A983B36BE /* vnode.h */, + 09E09CADCF84F1D6D51E5F20 /* vnode.m */, + E6A7B0366B3E502209C65E24 /* xpaci.h */, + ); + path = pe; + sourceTree = ""; + }; + C6CEB364F2625B0EF49D1447 /* UI */ = { + isa = PBXGroup; + children = ( + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, + 201E76134F22499BFD3DF53F /* Buttons */, + 7F048C9DF00CA2EEB9135FFF /* Effects */, + 4A3D6651E821914BC1DA4474 /* Indicators */, + 0731B4811AB8A4261C149BD3 /* Inputs */, + 73E8616A7EF5B51A92B29E54 /* Lists */, + 09B6EF0B45C55F479407D990 /* Terminal */, + ); + path = UI; + sourceTree = ""; + }; + CCCE9A5AD37D20741B82ADB9 /* App */ = { + isa = PBXGroup; + children = ( + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, + CED7197ED6E1E06C45D4927C /* Extensions */, + 93732F3C530FBFCDA46E1FCE /* Functions */, + 48AB90CB037F435485C6047D /* Settings */, + F8BF389C000C82BE834B7E80 /* WelcomeSheet */, + ); + path = App; + sourceTree = ""; + }; + CED7197ED6E1E06C45D4927C /* Extensions */ = { + isa = PBXGroup; + children = ( + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + D70718477881BA82E605FF53 /* views */ = { + isa = PBXGroup; + children = ( + 0E9B667B7F6DF2F65554368C /* app */, + B96F95013D086604AB0F746C /* fm */, + 7814074F0998A8D980C3CBF8 /* other */, + 0D159B4E42377C38FDD14E18 /* tweaks */, + ); + path = views; + sourceTree = ""; + }; + E6D45AD3A84FDFFB26A63642 /* assets */ = { + isa = PBXGroup; + children = ( + AE2331E0F7B3D823CA15DF72 /* lara.png */, + ); + path = assets; + sourceTree = ""; + }; + EC0774E5B4020C4D885431BC /* other */ = { + isa = PBXGroup; + children = ( + 48E6FC849E553C68E397984C /* lara.entitlements */, + 68FA57A36233679708C5E468 /* media.xcassets */, + 60E947B3676E84C6A668511C /* VarCleanRules.json */, + ); + path = other; + sourceTree = ""; + }; + F0B17F0CA82330A26B5CAE4B /* lib */ = { + isa = PBXGroup; + children = ( + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, + 6337EE02AC0706717DFA252A /* libxpf.dylib */, + 23942EEA65BBA190D901B7D2 /* choma */, + ); + path = lib; + sourceTree = ""; + }; + F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { + isa = PBXGroup; + children = ( + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, + ); + path = dirtyZero; + sourceTree = ""; + }; + F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { + isa = PBXGroup; + children = ( + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, + ); + path = WelcomeSheet; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + FD1665B8C8F3A79F013224EE /* Lara */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; + buildPhases = ( + F9DE0523417E74276238FA56 /* Sources */, + 7CE4B9CDA802D229BDFBAFEF /* Resources */, + 77D3CA82B4C410701CD229E2 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Lara; + packageProductDependencies = ( + ); + productName = Lara; + productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + }; + }; + buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = A5B06BC43186EA1E4D25299F; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FD1665B8C8F3A79F013224EE /* Lara */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F9DE0523417E74276238FA56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, + 333CD424E2385A8097A3533C /* Logger.swift in Sources */, + AAC093D16E38470615A9725D /* LogsView.swift in Sources */, + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, + 7AEF609084ED052D6C996095 /* offsets.m in Sources */, + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, + E99D712EE78CA8073C49821B /* respring.swift in Sources */, + 495E4514D5AE764363BAF696 /* sbx.m in Sources */, + AFD8AD5FD3F60467492282EF /* thread.m in Sources */, + BC49811360FE90E8EAE827E8 /* utils.m in Sources */, + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, + 4997659E14575C5B7AAACC12 /* vm.m in Sources */, + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3E810AC91C376ED3F7F9E2BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 82AE279FDF9B38FD75536E7A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + B36A0572D1FE8B1BD286BCB7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + EEB3821768474EEF09187DAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B36A0572D1FE8B1BD286BCB7 /* Debug */, + EEB3821768474EEF09187DAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E810AC91C376ED3F7F9E2BA /* Debug */, + 82AE279FDF9B38FD75536E7A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; +} diff --git a/project.xcworkspace/contents.xcworkspacedata b/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + From 2314f253b28035602a1d55536f3eee7345880ce8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 22:23:06 +0530 Subject: [PATCH 047/233] Rename project.pbxproj to lara.xcodeproj/project.pbxproj --- project.pbxproj => lara.xcodeproj/project.pbxproj | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename project.pbxproj => lara.xcodeproj/project.pbxproj (100%) diff --git a/project.pbxproj b/lara.xcodeproj/project.pbxproj similarity index 100% rename from project.pbxproj rename to lara.xcodeproj/project.pbxproj From 74ba5db7bd6fc9c7241d99d18a7fb70dd8fa229f Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 22:24:25 +0530 Subject: [PATCH 048/233] Rename project.xcworkspace/contents.xcworkspacedata to lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata --- .../project.xcworkspace}/contents.xcworkspacedata | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {project.xcworkspace => lara.xcodeproj/project.xcworkspace}/contents.xcworkspacedata (100%) diff --git a/project.xcworkspace/contents.xcworkspacedata b/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from project.xcworkspace/contents.xcworkspacedata rename to lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata From 1b60a48f502f0ee0a1b19b2aacd98b7d5e536e1e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 22:25:41 +0530 Subject: [PATCH 049/233] Update lara-Bridging-Header.h --- lara/lara-Bridging-Header.h | 1 - 1 file changed, 1 deletion(-) diff --git a/lara/lara-Bridging-Header.h b/lara/lara-Bridging-Header.h index 69dc1852d..f92edf031 100644 --- a/lara/lara-Bridging-Header.h +++ b/lara/lara-Bridging-Header.h @@ -18,7 +18,6 @@ #import "RemoteCall.h" #import "decrypt.h" #import "persistence.h" -#import "MFSRootViewController.h" #import From 186c2d3e9077850522ebe4ac1971f2c242b48ff3 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 22:36:14 +0530 Subject: [PATCH 050/233] Create libmuffinstore.h --- lara/headers/libmuffinstore.h | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 lara/headers/libmuffinstore.h diff --git a/lara/headers/libmuffinstore.h b/lara/headers/libmuffinstore.h new file mode 100644 index 000000000..eae7622c5 --- /dev/null +++ b/lara/headers/libmuffinstore.h @@ -0,0 +1,4 @@ +#import + +@interface MFSRootViewController : UIViewController +@end From 8da94f874a0305179791905e09f1714e77e3c057 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 31 May 2026 22:40:32 +0530 Subject: [PATCH 051/233] Update lara-Bridging-Header.h --- lara/lara-Bridging-Header.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/lara-Bridging-Header.h b/lara/lara-Bridging-Header.h index f92edf031..bdbbbab88 100644 --- a/lara/lara-Bridging-Header.h +++ b/lara/lara-Bridging-Header.h @@ -18,6 +18,7 @@ #import "RemoteCall.h" #import "decrypt.h" #import "persistence.h" +#import "libmuffinstore.h" #import From 49f0562f646c556983a9604816f18b5ce58c068f Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:10:51 +0530 Subject: [PATCH 052/233] Update DowngradeView.swift --- lara/views/tweaks/DowngradeView.swift | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lara/views/tweaks/DowngradeView.swift b/lara/views/tweaks/DowngradeView.swift index 06ea656fc..8b28e5a57 100644 --- a/lara/views/tweaks/DowngradeView.swift +++ b/lara/views/tweaks/DowngradeView.swift @@ -1,16 +1,17 @@ import SwiftUI +import UIKit struct RootControllerWrapper: UIViewControllerRepresentable { - func makeUIViewController(context: Context) -> UINavigationController { - UINavigationController( - rootViewController: MFSRootViewController() - ) + + func makeUIViewController(context: Context) -> UIViewController { + MFSCreateController() } func updateUIViewController( - _ uiViewController: UINavigationController, + _ uiViewController: UIViewController, context: Context - ) {} + ) { + } } struct DowngradeView: View { From 2eb85d00dbcef9baa82cc245adc8a6fb3669b473 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:12:08 +0530 Subject: [PATCH 053/233] Delete lara/lib/libmuffinstore.dylib --- lara/lib/libmuffinstore.dylib | Bin 129488 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lara/lib/libmuffinstore.dylib diff --git a/lara/lib/libmuffinstore.dylib b/lara/lib/libmuffinstore.dylib deleted file mode 100644 index 25dfbf47332b27ab56a02d09dd3808cdad471d98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129488 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 vfBwaaZ|&`VtZ>_&?|P2@=&y18 Date: Mon, 1 Jun 2026 16:12:39 +0530 Subject: [PATCH 054/233] Add files via upload --- lara/lib/libmuffinstore.dylib | Bin 0 -> 129664 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lara/lib/libmuffinstore.dylib diff --git a/lara/lib/libmuffinstore.dylib b/lara/lib/libmuffinstore.dylib new file mode 100644 index 0000000000000000000000000000000000000000..e06e8f930610e21ea364f74a30f9e94bf8127ad1 GIT binary patch literal 129664 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 literal 0 HcmV?d00001 From 24cbc699b03cd53ac6cef34cd0d72a8bbfb6256f Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:14:09 +0530 Subject: [PATCH 055/233] Update and rename libmuffinstore.h to MFSLauncher.h --- lara/headers/MFSLauncher.h | 11 +++++++++++ lara/headers/libmuffinstore.h | 4 ---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 lara/headers/MFSLauncher.h delete mode 100644 lara/headers/libmuffinstore.h diff --git a/lara/headers/MFSLauncher.h b/lara/headers/MFSLauncher.h new file mode 100644 index 000000000..cb9f8648d --- /dev/null +++ b/lara/headers/MFSLauncher.h @@ -0,0 +1,11 @@ +#import + +#ifdef __cplusplus +extern "C" { +#endif + +UIViewController *MFSCreateController(void); + +#ifdef __cplusplus +} +#endif diff --git a/lara/headers/libmuffinstore.h b/lara/headers/libmuffinstore.h deleted file mode 100644 index eae7622c5..000000000 --- a/lara/headers/libmuffinstore.h +++ /dev/null @@ -1,4 +0,0 @@ -#import - -@interface MFSRootViewController : UIViewController -@end From bddcd8ef2bc5109f07042f0b0ea86cd22534c7a7 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:14:43 +0530 Subject: [PATCH 056/233] Update lara-Bridging-Header.h --- lara/lara-Bridging-Header.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/lara-Bridging-Header.h b/lara/lara-Bridging-Header.h index bdbbbab88..24b23f710 100644 --- a/lara/lara-Bridging-Header.h +++ b/lara/lara-Bridging-Header.h @@ -18,7 +18,7 @@ #import "RemoteCall.h" #import "decrypt.h" #import "persistence.h" -#import "libmuffinstore.h" +#import "MFSLauncher.h" #import From 7a5d15da0d8cf750bc199ba3c13b34626090654f Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:16:07 +0530 Subject: [PATCH 057/233] Delete lara.xcodeproj/project.pbxproj --- lara.xcodeproj/project.pbxproj | 1200 -------------------------------- 1 file changed, 1200 deletions(-) delete mode 100644 lara.xcodeproj/project.pbxproj diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj deleted file mode 100644 index f51dc2700..000000000 --- a/lara.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1200 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; - 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; - 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; - 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; - 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; - AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; - AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; - BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; - E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; - 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; - 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; - 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; - 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; - 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; - 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; - 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; - 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; - 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; - 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; - 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; - 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; - 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; - 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; - 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; - 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; - 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; - 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; - 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; - 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; - 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; - 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; - 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; - 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; - 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; - 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; - 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; - 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; - 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; - 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; - 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; - 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; - 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; - 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; - 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; - 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; - 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; - 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; - 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; - 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; - 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; - 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; - 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; - 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; - A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; - A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; - AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; - AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; - AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; - ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; - AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; - B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; - B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; - B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; - B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; - BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; - CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; - CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; - CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; - D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; - D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; - D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; - DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; - DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; - E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; - E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; - E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; - E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; - EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; - EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; - F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; - F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; - F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; - F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; - F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 77D3CA82B4C410701CD229E2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0731B4811AB8A4261C149BD3 /* Inputs */ = { - isa = PBXGroup; - children = ( - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, - ); - path = Inputs; - sourceTree = ""; - }; - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { - isa = PBXGroup; - children = ( - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, - E4F25FF1C3F48BDC5E6BB728 /* exc.m */, - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, - 2329A0992D4982D4E144AB75 /* pac.h */, - 7716BA871D7E897964A49CBD /* pac.m */, - E39629D147580074F13782D6 /* privateapi.h */, - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, - D2ED109B18B57340D5F23066 /* RemoteCall.m */, - 47A521EB489F34847F77161C /* thread.h */, - 69CB9CC7CA7C437D5204AD77 /* thread.m */, - 6FD2D7416B6AA7CE5E184223 /* vm.h */, - 2046AE855EEB1C6D361886E0 /* vm.m */, - ); - path = TaskRop; - sourceTree = ""; - }; - 096D912C986A1ECDD4AE9C57 /* broken */ = { - isa = PBXGroup; - children = ( - DF63A96A2904C5BAA9C6E491 /* CCView.swift */, - 97E7B95F214CEA3C04F0AC58 /* darkboard */, - ); - path = broken; - sourceTree = ""; - }; - 09B6EF0B45C55F479407D990 /* Terminal */ = { - isa = PBXGroup; - children = ( - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, - ); - path = Terminal; - sourceTree = ""; - }; - 0D159B4E42377C38FDD14E18 /* tweaks */ = { - isa = PBXGroup; - children = ( - D7767AE9E778CDC4652EE1AA /* AppsView.swift */, - 87B5A7075908DD63D2DB887E /* CardView.swift */, - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, - AB6983282C48A1F9D8916495 /* DecryptView.swift */, - 31508EF562095117FB765FFF /* DowngradeView.swift */, - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, - F2807342CC8396EA700E7626 /* JitView.swift */, - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, - 096D912C986A1ECDD4AE9C57 /* broken */, - F1B195CE1E819A5C7256ED05 /* dirtyZero */, - 94239040D8A11FC1A668FCE4 /* liquidglass */, - 8855FA399F2E0D870F89E63A /* mobilegestalt */, - 1CF2706A6E532F38D6DD625F /* passcode */, - BCB9166DBD1D0FB1A634265E /* sbcustomizer */, - ); - path = tweaks; - sourceTree = ""; - }; - 0E9B667B7F6DF2F65554368C /* app */ = { - isa = PBXGroup; - children = ( - AAF0DB241A670081991552A3 /* ContentView.swift */, - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, - A89E6CF98559C612AA19E5CE /* settings */, - ); - path = app; - sourceTree = ""; - }; - 1CF2706A6E532F38D6DD625F /* passcode */ = { - isa = PBXGroup; - children = ( - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 201E76134F22499BFD3DF53F /* Buttons */ = { - isa = PBXGroup; - children = ( - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 23942EEA65BBA190D901B7D2 /* choma */ = { - isa = PBXGroup; - children = ( - 6C46703C2B4072AEF8703349 /* arm64.h */, - AAAF3E2619E3D32C626EC2FA /* Base64.h */, - A9376E035DE98BB605BE0C76 /* BufferedStream.h */, - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, - ADC09F6065726F4669F88037 /* CodeDirectory.h */, - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, - E497648156C6CAAA87EEE6CB /* DER.h */, - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, - 3C989876DB6E112F7F3C3698 /* Entitlements.h */, - 09A16D0CCA129CD34402ACAB /* Fat.h */, - 791AEB9809EE46375BD53FF9 /* FileStream.h */, - BB016623AE10E3896FEF50AF /* fixup-chains.h */, - F506183C2CFD8D7D0FA1322D /* Host.h */, - 99CF547D66CF02B4B4DFA30C /* MachO.h */, - 3F975F92D7C580260B59024B /* MachOByteOrder.h */, - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, - F742E837A76B006F367ABC15 /* PatchFinder.h */, - B447AC3664839765F3679082 /* Util.h */, - ); - path = choma; - sourceTree = ""; - }; - 48AB90CB037F435485C6047D /* Settings */ = { - isa = PBXGroup; - children = ( - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 4A3D6651E821914BC1DA4474 /* Indicators */ = { - isa = PBXGroup; - children = ( - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, - ); - path = Indicators; - sourceTree = ""; - }; - 4BE43909AB102BC654C3AA36 /* lara */ = { - isa = PBXGroup; - children = ( - 71B66224C5948251B6008EC4 /* Info.plist */, - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, - 785FE68237A73C050C69066D /* lara.swift */, - E6D45AD3A84FDFFB26A63642 /* assets */, - 761E02C29DBA3FA091780A05 /* classes */, - BD4923F18700F649F4B199C9 /* funcs */, - B8439178F75BD677E46A1DE7 /* headers */, - 9FC4F095CD4B29F2EBA790C6 /* kexploit */, - F0B17F0CA82330A26B5CAE4B /* lib */, - BA72AA8D35B0D97633C2BF5E /* licenses */, - EC0774E5B4020C4D885431BC /* other */, - 9D63227FDF3FDE8908661A7D /* PartyUI */, - D70718477881BA82E605FF53 /* views */, - ); - path = lara; - sourceTree = ""; - }; - 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { - isa = PBXGroup; - children = ( - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 039D284F496260AA52986467 /* Foundation.framework */, - 410B1EDE3D870185074F65BC /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 73E8616A7EF5B51A92B29E54 /* Lists */ = { - isa = PBXGroup; - children = ( - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, - ); - path = Lists; - sourceTree = ""; - }; - 761E02C29DBA3FA091780A05 /* classes */ = { - isa = PBXGroup; - children = ( - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, - 7ADF625620559A728F4B333A /* Logger.swift */, - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, - CBFD358E70EC405DE82C3960 /* zipmgr.swift */, - 860A585202C20E00C82C419C /* tweaks */, - ); - path = classes; - sourceTree = ""; - }; - 7814074F0998A8D980C3CBF8 /* other */ = { - isa = PBXGroup; - children = ( - A9BBF565E304760414833AF4 /* respring.swift */, - ); - path = other; - sourceTree = ""; - }; - 7BD2299CAA022F5E87524835 /* Products */ = { - isa = PBXGroup; - children = ( - B1650DE9DA6D35D51EE63DA2 /* Lara.app */, - ); - name = Products; - sourceTree = ""; - }; - 7F048C9DF00CA2EEB9135FFF /* Effects */ = { - isa = PBXGroup; - children = ( - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, - ); - path = Effects; - sourceTree = ""; - }; - 860A585202C20E00C82C419C /* tweaks */ = { - isa = PBXGroup; - children = ( - 4CFE8C17A9569842AF2EDD4E /* darkboard */, - 9CA94EDD3BE9DDBB6B279DCA /* passcode */, - ); - path = tweaks; - sourceTree = ""; - }; - 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { - isa = PBXGroup; - children = ( - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, - ); - path = mobilegestalt; - sourceTree = ""; - }; - 93732F3C530FBFCDA46E1FCE /* Functions */ = { - isa = PBXGroup; - children = ( - 1D1585E8B42B2495142BE67E /* Alertinator.swift */, - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, - 4759F640E231F564F06DB0F5 /* Shareinator.swift */, - ); - path = Functions; - sourceTree = ""; - }; - 94239040D8A11FC1A668FCE4 /* liquidglass */ = { - isa = PBXGroup; - children = ( - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, - ); - path = liquidglass; - sourceTree = ""; - }; - 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { - isa = PBXGroup; - children = ( - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { - isa = PBXGroup; - children = ( - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 9D63227FDF3FDE8908661A7D /* PartyUI */ = { - isa = PBXGroup; - children = ( - 448609047BB8D112B7E99BFA /* PartyUI.swift */, - CCCE9A5AD37D20741B82ADB9 /* App */, - C6CEB364F2625B0EF49D1447 /* UI */, - ); - path = PartyUI; - sourceTree = ""; - }; - 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { - isa = PBXGroup; - children = ( - 0B1831D0D49F9245F54EBDC6 /* compat.h */, - CB0E8E3EC140E01DA032363F /* darksword.h */, - DD123A4DC76BB7C0734B5AE9 /* darksword.m */, - 4A33766163693DFAA30D772A /* decrypt.h */, - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, - 7DC3E2446E97ECC921D3AE94 /* offsets.h */, - EDC9360B2E647660F1BD443F /* offsets.m */, - 617E864CD832D1D3839429F0 /* persistence.h */, - B2BA68871A9D11BCFDC2AE71 /* persistence.m */, - 206327D869325194A5015A1B /* utils.h */, - 5A300D3F6ED3397BE1E6AD87 /* utils.m */, - C6122EC473A3A57510124B02 /* pe */, - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, - ); - path = kexploit; - sourceTree = ""; - }; - A5B06BC43186EA1E4D25299F = { - isa = PBXGroup; - children = ( - 4BE43909AB102BC654C3AA36 /* lara */, - 72729D505A51BDFC8C55A1D9 /* Frameworks */, - 7BD2299CAA022F5E87524835 /* Products */, - ); - sourceTree = ""; - }; - A89E6CF98559C612AA19E5CE /* settings */ = { - isa = PBXGroup; - children = ( - 61F528F680617A48C3CAB181 /* CreditsView.swift */, - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, - 986EBE17846F5764D1456F88 /* SettingsView.swift */, - ); - path = settings; - sourceTree = ""; - }; - B8439178F75BD677E46A1DE7 /* headers */ = { - isa = PBXGroup; - children = ( - B5A1457B7D98C0DDC65ACC3B /* fileport.h */, - EDF19B2325FE621BF70AC862 /* IconServices.h */, - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, - 51BF1E07A44069A4B21B39EE /* xpf.h */, - ); - path = headers; - sourceTree = ""; - }; - B96F95013D086604AB0F746C /* fm */ = { - isa = PBXGroup; - children = ( - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, - 73D525CF14505CE9B85FD317 /* FileView.swift */, - 9C010243976A7D404529C206 /* SantanderView.swift */, - ); - path = fm; - sourceTree = ""; - }; - BA72AA8D35B0D97633C2BF5E /* licenses */ = { - isa = PBXGroup; - children = ( - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, - ); - path = licenses; - sourceTree = ""; - }; - BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { - isa = PBXGroup; - children = ( - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, - ); - path = sbcustomizer; - sourceTree = ""; - }; - BD4923F18700F649F4B199C9 /* funcs */ = { - isa = PBXGroup; - children = ( - CD0D193753BA74B811063956 /* fetchkcache.swift */, - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, - 92C2A1D1BCFA40230A63C752 /* helpers.swift */, - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, - F50A3C705DF2F98AC63AA699 /* keepalive.swift */, - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, - ); - path = funcs; - sourceTree = ""; - }; - C6122EC473A3A57510124B02 /* pe */ = { - isa = PBXGroup; - children = ( - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, - 797DFBA07DCC9320399BC99F /* apfs.m */, - 09BE5060F2C9DFD730796B7E /* rc.h */, - 86610E6990066EDFE2B5D96B /* rc.m */, - 3450D579B9EF6D1B24EA44AB /* sbx.h */, - F7BDDFA67F1109816C300F1E /* sbx.m */, - 33FAD74D2D09DFD7CF1985FA /* vfs.h */, - 7A92CE7743387903DDBFFC8C /* vfs.m */, - D714CE75040A9A3A983B36BE /* vnode.h */, - 09E09CADCF84F1D6D51E5F20 /* vnode.m */, - E6A7B0366B3E502209C65E24 /* xpaci.h */, - ); - path = pe; - sourceTree = ""; - }; - C6CEB364F2625B0EF49D1447 /* UI */ = { - isa = PBXGroup; - children = ( - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, - 201E76134F22499BFD3DF53F /* Buttons */, - 7F048C9DF00CA2EEB9135FFF /* Effects */, - 4A3D6651E821914BC1DA4474 /* Indicators */, - 0731B4811AB8A4261C149BD3 /* Inputs */, - 73E8616A7EF5B51A92B29E54 /* Lists */, - 09B6EF0B45C55F479407D990 /* Terminal */, - ); - path = UI; - sourceTree = ""; - }; - CCCE9A5AD37D20741B82ADB9 /* App */ = { - isa = PBXGroup; - children = ( - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, - CED7197ED6E1E06C45D4927C /* Extensions */, - 93732F3C530FBFCDA46E1FCE /* Functions */, - 48AB90CB037F435485C6047D /* Settings */, - F8BF389C000C82BE834B7E80 /* WelcomeSheet */, - ); - path = App; - sourceTree = ""; - }; - CED7197ED6E1E06C45D4927C /* Extensions */ = { - isa = PBXGroup; - children = ( - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - D70718477881BA82E605FF53 /* views */ = { - isa = PBXGroup; - children = ( - 0E9B667B7F6DF2F65554368C /* app */, - B96F95013D086604AB0F746C /* fm */, - 7814074F0998A8D980C3CBF8 /* other */, - 0D159B4E42377C38FDD14E18 /* tweaks */, - ); - path = views; - sourceTree = ""; - }; - E6D45AD3A84FDFFB26A63642 /* assets */ = { - isa = PBXGroup; - children = ( - AE2331E0F7B3D823CA15DF72 /* lara.png */, - ); - path = assets; - sourceTree = ""; - }; - EC0774E5B4020C4D885431BC /* other */ = { - isa = PBXGroup; - children = ( - 48E6FC849E553C68E397984C /* lara.entitlements */, - 68FA57A36233679708C5E468 /* media.xcassets */, - 60E947B3676E84C6A668511C /* VarCleanRules.json */, - ); - path = other; - sourceTree = ""; - }; - F0B17F0CA82330A26B5CAE4B /* lib */ = { - isa = PBXGroup; - children = ( - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, - 6337EE02AC0706717DFA252A /* libxpf.dylib */, - 23942EEA65BBA190D901B7D2 /* choma */, - ); - path = lib; - sourceTree = ""; - }; - F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { - isa = PBXGroup; - children = ( - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, - ); - path = dirtyZero; - sourceTree = ""; - }; - F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { - isa = PBXGroup; - children = ( - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, - ); - path = WelcomeSheet; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FD1665B8C8F3A79F013224EE /* Lara */ = { - isa = PBXNativeTarget; - buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; - buildPhases = ( - F9DE0523417E74276238FA56 /* Sources */, - 7CE4B9CDA802D229BDFBAFEF /* Resources */, - 77D3CA82B4C410701CD229E2 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Lara; - packageProductDependencies = ( - ); - productName = Lara; - productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - TargetAttributes = { - }; - }; - buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = A5B06BC43186EA1E4D25299F; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FD1665B8C8F3A79F013224EE /* Lara */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F9DE0523417E74276238FA56 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, - 333CD424E2385A8097A3533C /* Logger.swift in Sources */, - AAC093D16E38470615A9725D /* LogsView.swift in Sources */, - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, - 7AEF609084ED052D6C996095 /* offsets.m in Sources */, - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, - E99D712EE78CA8073C49821B /* respring.swift in Sources */, - 495E4514D5AE764363BAF696 /* sbx.m in Sources */, - AFD8AD5FD3F60467492282EF /* thread.m in Sources */, - BC49811360FE90E8EAE827E8 /* utils.m in Sources */, - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, - 4997659E14575C5B7AAACC12 /* vm.m in Sources */, - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3E810AC91C376ED3F7F9E2BA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 82AE279FDF9B38FD75536E7A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - B36A0572D1FE8B1BD286BCB7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - EEB3821768474EEF09187DAB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B36A0572D1FE8B1BD286BCB7 /* Debug */, - EEB3821768474EEF09187DAB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3E810AC91C376ED3F7F9E2BA /* Debug */, - 82AE279FDF9B38FD75536E7A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; -} From 622aa31724d27104de59a6ab6eb8cec39346d6c5 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:17:37 +0530 Subject: [PATCH 058/233] Add files via upload --- lara.xcodeproj/project.pbxproj | 1202 ++++++++++++++++++++++++++++++++ 1 file changed, 1202 insertions(+) create mode 100644 lara.xcodeproj/project.pbxproj diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj new file mode 100644 index 000000000..bcdf0f7a3 --- /dev/null +++ b/lara.xcodeproj/project.pbxproj @@ -0,0 +1,1202 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; + 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; + 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; + 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; + 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; + AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; + AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; + BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; + E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; + 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; + 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; + 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; + 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; + 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; + 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; + 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; + 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; + 2DAE2515228311435D9959EB /* MFSLauncher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSLauncher.h; sourceTree = ""; }; + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; + 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; + 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; + 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; + 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; + 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; + 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; + 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; + 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; + 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; + 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; + 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; + 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; + 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; + 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; + 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; + 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; + 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; + 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; + 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; + 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; + 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; + 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; + 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; + 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; + 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; + 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; + 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; + 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; + 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; + 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; + 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; + 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; + 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; + 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; + 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; + A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; + A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; + AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; + AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; + AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; + ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; + AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; + B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; + B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; + B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; + B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; + BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; + CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; + CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; + CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; + D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; + D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; + D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; + DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; + DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; + E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; + E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; + E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; + E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; + EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; + EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; + F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; + F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; + F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; + F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; + F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 77D3CA82B4C410701CD229E2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0731B4811AB8A4261C149BD3 /* Inputs */ = { + isa = PBXGroup; + children = ( + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, + ); + path = Inputs; + sourceTree = ""; + }; + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { + isa = PBXGroup; + children = ( + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, + E4F25FF1C3F48BDC5E6BB728 /* exc.m */, + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, + 2329A0992D4982D4E144AB75 /* pac.h */, + 7716BA871D7E897964A49CBD /* pac.m */, + E39629D147580074F13782D6 /* privateapi.h */, + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, + D2ED109B18B57340D5F23066 /* RemoteCall.m */, + 47A521EB489F34847F77161C /* thread.h */, + 69CB9CC7CA7C437D5204AD77 /* thread.m */, + 6FD2D7416B6AA7CE5E184223 /* vm.h */, + 2046AE855EEB1C6D361886E0 /* vm.m */, + ); + path = TaskRop; + sourceTree = ""; + }; + 096D912C986A1ECDD4AE9C57 /* broken */ = { + isa = PBXGroup; + children = ( + DF63A96A2904C5BAA9C6E491 /* CCView.swift */, + 97E7B95F214CEA3C04F0AC58 /* darkboard */, + ); + path = broken; + sourceTree = ""; + }; + 09B6EF0B45C55F479407D990 /* Terminal */ = { + isa = PBXGroup; + children = ( + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, + ); + path = Terminal; + sourceTree = ""; + }; + 0D159B4E42377C38FDD14E18 /* tweaks */ = { + isa = PBXGroup; + children = ( + D7767AE9E778CDC4652EE1AA /* AppsView.swift */, + 87B5A7075908DD63D2DB887E /* CardView.swift */, + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, + AB6983282C48A1F9D8916495 /* DecryptView.swift */, + 31508EF562095117FB765FFF /* DowngradeView.swift */, + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, + F2807342CC8396EA700E7626 /* JitView.swift */, + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, + 096D912C986A1ECDD4AE9C57 /* broken */, + F1B195CE1E819A5C7256ED05 /* dirtyZero */, + 94239040D8A11FC1A668FCE4 /* liquidglass */, + 8855FA399F2E0D870F89E63A /* mobilegestalt */, + 1CF2706A6E532F38D6DD625F /* passcode */, + BCB9166DBD1D0FB1A634265E /* sbcustomizer */, + ); + path = tweaks; + sourceTree = ""; + }; + 0E9B667B7F6DF2F65554368C /* app */ = { + isa = PBXGroup; + children = ( + AAF0DB241A670081991552A3 /* ContentView.swift */, + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, + A89E6CF98559C612AA19E5CE /* settings */, + ); + path = app; + sourceTree = ""; + }; + 1CF2706A6E532F38D6DD625F /* passcode */ = { + isa = PBXGroup; + children = ( + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 201E76134F22499BFD3DF53F /* Buttons */ = { + isa = PBXGroup; + children = ( + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, + ); + path = Buttons; + sourceTree = ""; + }; + 23942EEA65BBA190D901B7D2 /* choma */ = { + isa = PBXGroup; + children = ( + 6C46703C2B4072AEF8703349 /* arm64.h */, + AAAF3E2619E3D32C626EC2FA /* Base64.h */, + A9376E035DE98BB605BE0C76 /* BufferedStream.h */, + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, + ADC09F6065726F4669F88037 /* CodeDirectory.h */, + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, + E497648156C6CAAA87EEE6CB /* DER.h */, + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, + 3C989876DB6E112F7F3C3698 /* Entitlements.h */, + 09A16D0CCA129CD34402ACAB /* Fat.h */, + 791AEB9809EE46375BD53FF9 /* FileStream.h */, + BB016623AE10E3896FEF50AF /* fixup-chains.h */, + F506183C2CFD8D7D0FA1322D /* Host.h */, + 99CF547D66CF02B4B4DFA30C /* MachO.h */, + 3F975F92D7C580260B59024B /* MachOByteOrder.h */, + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, + F742E837A76B006F367ABC15 /* PatchFinder.h */, + B447AC3664839765F3679082 /* Util.h */, + ); + path = choma; + sourceTree = ""; + }; + 48AB90CB037F435485C6047D /* Settings */ = { + isa = PBXGroup; + children = ( + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 4A3D6651E821914BC1DA4474 /* Indicators */ = { + isa = PBXGroup; + children = ( + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, + ); + path = Indicators; + sourceTree = ""; + }; + 4BE43909AB102BC654C3AA36 /* lara */ = { + isa = PBXGroup; + children = ( + 71B66224C5948251B6008EC4 /* Info.plist */, + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, + 785FE68237A73C050C69066D /* lara.swift */, + E6D45AD3A84FDFFB26A63642 /* assets */, + 761E02C29DBA3FA091780A05 /* classes */, + BD4923F18700F649F4B199C9 /* funcs */, + B8439178F75BD677E46A1DE7 /* headers */, + 9FC4F095CD4B29F2EBA790C6 /* kexploit */, + F0B17F0CA82330A26B5CAE4B /* lib */, + BA72AA8D35B0D97633C2BF5E /* licenses */, + EC0774E5B4020C4D885431BC /* other */, + 9D63227FDF3FDE8908661A7D /* PartyUI */, + D70718477881BA82E605FF53 /* views */, + ); + path = lara; + sourceTree = ""; + }; + 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { + isa = PBXGroup; + children = ( + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 039D284F496260AA52986467 /* Foundation.framework */, + 410B1EDE3D870185074F65BC /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 73E8616A7EF5B51A92B29E54 /* Lists */ = { + isa = PBXGroup; + children = ( + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, + ); + path = Lists; + sourceTree = ""; + }; + 761E02C29DBA3FA091780A05 /* classes */ = { + isa = PBXGroup; + children = ( + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, + 7ADF625620559A728F4B333A /* Logger.swift */, + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, + CBFD358E70EC405DE82C3960 /* zipmgr.swift */, + 860A585202C20E00C82C419C /* tweaks */, + ); + path = classes; + sourceTree = ""; + }; + 7814074F0998A8D980C3CBF8 /* other */ = { + isa = PBXGroup; + children = ( + A9BBF565E304760414833AF4 /* respring.swift */, + ); + path = other; + sourceTree = ""; + }; + 7BD2299CAA022F5E87524835 /* Products */ = { + isa = PBXGroup; + children = ( + B1650DE9DA6D35D51EE63DA2 /* Lara.app */, + ); + name = Products; + sourceTree = ""; + }; + 7F048C9DF00CA2EEB9135FFF /* Effects */ = { + isa = PBXGroup; + children = ( + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, + ); + path = Effects; + sourceTree = ""; + }; + 860A585202C20E00C82C419C /* tweaks */ = { + isa = PBXGroup; + children = ( + 4CFE8C17A9569842AF2EDD4E /* darkboard */, + 9CA94EDD3BE9DDBB6B279DCA /* passcode */, + ); + path = tweaks; + sourceTree = ""; + }; + 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { + isa = PBXGroup; + children = ( + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, + ); + path = mobilegestalt; + sourceTree = ""; + }; + 93732F3C530FBFCDA46E1FCE /* Functions */ = { + isa = PBXGroup; + children = ( + 1D1585E8B42B2495142BE67E /* Alertinator.swift */, + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, + 4759F640E231F564F06DB0F5 /* Shareinator.swift */, + ); + path = Functions; + sourceTree = ""; + }; + 94239040D8A11FC1A668FCE4 /* liquidglass */ = { + isa = PBXGroup; + children = ( + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, + ); + path = liquidglass; + sourceTree = ""; + }; + 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { + isa = PBXGroup; + children = ( + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { + isa = PBXGroup; + children = ( + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 9D63227FDF3FDE8908661A7D /* PartyUI */ = { + isa = PBXGroup; + children = ( + 448609047BB8D112B7E99BFA /* PartyUI.swift */, + CCCE9A5AD37D20741B82ADB9 /* App */, + C6CEB364F2625B0EF49D1447 /* UI */, + ); + path = PartyUI; + sourceTree = ""; + }; + 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { + isa = PBXGroup; + children = ( + 0B1831D0D49F9245F54EBDC6 /* compat.h */, + CB0E8E3EC140E01DA032363F /* darksword.h */, + DD123A4DC76BB7C0734B5AE9 /* darksword.m */, + 4A33766163693DFAA30D772A /* decrypt.h */, + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, + 7DC3E2446E97ECC921D3AE94 /* offsets.h */, + EDC9360B2E647660F1BD443F /* offsets.m */, + 617E864CD832D1D3839429F0 /* persistence.h */, + B2BA68871A9D11BCFDC2AE71 /* persistence.m */, + 206327D869325194A5015A1B /* utils.h */, + 5A300D3F6ED3397BE1E6AD87 /* utils.m */, + C6122EC473A3A57510124B02 /* pe */, + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, + ); + path = kexploit; + sourceTree = ""; + }; + A5B06BC43186EA1E4D25299F = { + isa = PBXGroup; + children = ( + 4BE43909AB102BC654C3AA36 /* lara */, + 72729D505A51BDFC8C55A1D9 /* Frameworks */, + 7BD2299CAA022F5E87524835 /* Products */, + ); + sourceTree = ""; + }; + A89E6CF98559C612AA19E5CE /* settings */ = { + isa = PBXGroup; + children = ( + 61F528F680617A48C3CAB181 /* CreditsView.swift */, + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, + 986EBE17846F5764D1456F88 /* SettingsView.swift */, + ); + path = settings; + sourceTree = ""; + }; + B8439178F75BD677E46A1DE7 /* headers */ = { + isa = PBXGroup; + children = ( + B5A1457B7D98C0DDC65ACC3B /* fileport.h */, + EDF19B2325FE621BF70AC862 /* IconServices.h */, + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, + 2DAE2515228311435D9959EB /* MFSLauncher.h */, + 51BF1E07A44069A4B21B39EE /* xpf.h */, + ); + path = headers; + sourceTree = ""; + }; + B96F95013D086604AB0F746C /* fm */ = { + isa = PBXGroup; + children = ( + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, + 73D525CF14505CE9B85FD317 /* FileView.swift */, + 9C010243976A7D404529C206 /* SantanderView.swift */, + ); + path = fm; + sourceTree = ""; + }; + BA72AA8D35B0D97633C2BF5E /* licenses */ = { + isa = PBXGroup; + children = ( + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, + ); + path = licenses; + sourceTree = ""; + }; + BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { + isa = PBXGroup; + children = ( + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, + ); + path = sbcustomizer; + sourceTree = ""; + }; + BD4923F18700F649F4B199C9 /* funcs */ = { + isa = PBXGroup; + children = ( + CD0D193753BA74B811063956 /* fetchkcache.swift */, + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, + 92C2A1D1BCFA40230A63C752 /* helpers.swift */, + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, + F50A3C705DF2F98AC63AA699 /* keepalive.swift */, + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, + ); + path = funcs; + sourceTree = ""; + }; + C6122EC473A3A57510124B02 /* pe */ = { + isa = PBXGroup; + children = ( + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, + 797DFBA07DCC9320399BC99F /* apfs.m */, + 09BE5060F2C9DFD730796B7E /* rc.h */, + 86610E6990066EDFE2B5D96B /* rc.m */, + 3450D579B9EF6D1B24EA44AB /* sbx.h */, + F7BDDFA67F1109816C300F1E /* sbx.m */, + 33FAD74D2D09DFD7CF1985FA /* vfs.h */, + 7A92CE7743387903DDBFFC8C /* vfs.m */, + D714CE75040A9A3A983B36BE /* vnode.h */, + 09E09CADCF84F1D6D51E5F20 /* vnode.m */, + E6A7B0366B3E502209C65E24 /* xpaci.h */, + ); + path = pe; + sourceTree = ""; + }; + C6CEB364F2625B0EF49D1447 /* UI */ = { + isa = PBXGroup; + children = ( + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, + 201E76134F22499BFD3DF53F /* Buttons */, + 7F048C9DF00CA2EEB9135FFF /* Effects */, + 4A3D6651E821914BC1DA4474 /* Indicators */, + 0731B4811AB8A4261C149BD3 /* Inputs */, + 73E8616A7EF5B51A92B29E54 /* Lists */, + 09B6EF0B45C55F479407D990 /* Terminal */, + ); + path = UI; + sourceTree = ""; + }; + CCCE9A5AD37D20741B82ADB9 /* App */ = { + isa = PBXGroup; + children = ( + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, + CED7197ED6E1E06C45D4927C /* Extensions */, + 93732F3C530FBFCDA46E1FCE /* Functions */, + 48AB90CB037F435485C6047D /* Settings */, + F8BF389C000C82BE834B7E80 /* WelcomeSheet */, + ); + path = App; + sourceTree = ""; + }; + CED7197ED6E1E06C45D4927C /* Extensions */ = { + isa = PBXGroup; + children = ( + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + D70718477881BA82E605FF53 /* views */ = { + isa = PBXGroup; + children = ( + 0E9B667B7F6DF2F65554368C /* app */, + B96F95013D086604AB0F746C /* fm */, + 7814074F0998A8D980C3CBF8 /* other */, + 0D159B4E42377C38FDD14E18 /* tweaks */, + ); + path = views; + sourceTree = ""; + }; + E6D45AD3A84FDFFB26A63642 /* assets */ = { + isa = PBXGroup; + children = ( + AE2331E0F7B3D823CA15DF72 /* lara.png */, + ); + path = assets; + sourceTree = ""; + }; + EC0774E5B4020C4D885431BC /* other */ = { + isa = PBXGroup; + children = ( + 48E6FC849E553C68E397984C /* lara.entitlements */, + 68FA57A36233679708C5E468 /* media.xcassets */, + 60E947B3676E84C6A668511C /* VarCleanRules.json */, + ); + path = other; + sourceTree = ""; + }; + F0B17F0CA82330A26B5CAE4B /* lib */ = { + isa = PBXGroup; + children = ( + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, + 6337EE02AC0706717DFA252A /* libxpf.dylib */, + 23942EEA65BBA190D901B7D2 /* choma */, + ); + path = lib; + sourceTree = ""; + }; + F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { + isa = PBXGroup; + children = ( + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, + ); + path = dirtyZero; + sourceTree = ""; + }; + F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { + isa = PBXGroup; + children = ( + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, + ); + path = WelcomeSheet; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + FD1665B8C8F3A79F013224EE /* Lara */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; + buildPhases = ( + F9DE0523417E74276238FA56 /* Sources */, + 7CE4B9CDA802D229BDFBAFEF /* Resources */, + 77D3CA82B4C410701CD229E2 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Lara; + packageProductDependencies = ( + ); + productName = Lara; + productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + }; + }; + buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = A5B06BC43186EA1E4D25299F; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FD1665B8C8F3A79F013224EE /* Lara */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F9DE0523417E74276238FA56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, + 333CD424E2385A8097A3533C /* Logger.swift in Sources */, + AAC093D16E38470615A9725D /* LogsView.swift in Sources */, + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, + 7AEF609084ED052D6C996095 /* offsets.m in Sources */, + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, + E99D712EE78CA8073C49821B /* respring.swift in Sources */, + 495E4514D5AE764363BAF696 /* sbx.m in Sources */, + AFD8AD5FD3F60467492282EF /* thread.m in Sources */, + BC49811360FE90E8EAE827E8 /* utils.m in Sources */, + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, + 4997659E14575C5B7AAACC12 /* vm.m in Sources */, + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3E810AC91C376ED3F7F9E2BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 82AE279FDF9B38FD75536E7A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + B36A0572D1FE8B1BD286BCB7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + EEB3821768474EEF09187DAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B36A0572D1FE8B1BD286BCB7 /* Debug */, + EEB3821768474EEF09187DAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E810AC91C376ED3F7F9E2BA /* Debug */, + 82AE279FDF9B38FD75536E7A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; +} From be97c594a8c62a5b2dc079afeef6a75144407205 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:27:51 +0530 Subject: [PATCH 059/233] Update project.yml --- project.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/project.yml b/project.yml index 118ec108c..9197b4d5a 100644 --- a/project.yml +++ b/project.yml @@ -20,6 +20,8 @@ targets: SWIFT_OBJC_BRIDGING_HEADER: lara/lara-Bridging-Header.h LIBRARY_SEARCH_PATHS: $(inherited) $(SRCROOT)/lib OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel -lmuffinstore + SWIFT_VERSION: 5.0 + SWIFT_STRICT_CONCURRENCY: minimal dependencies: - sdk: UIKit.framework From 5ff48964549cea162c409c7693dd0358d6156584 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:34:07 +0530 Subject: [PATCH 060/233] Delete lara.xcodeproj/project.pbxproj --- lara.xcodeproj/project.pbxproj | 1202 -------------------------------- 1 file changed, 1202 deletions(-) delete mode 100644 lara.xcodeproj/project.pbxproj diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj deleted file mode 100644 index bcdf0f7a3..000000000 --- a/lara.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1202 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; - 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; - 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; - 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; - 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; - AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; - AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; - BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; - E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; - 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; - 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; - 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; - 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; - 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; - 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; - 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; - 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; - 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; - 2DAE2515228311435D9959EB /* MFSLauncher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSLauncher.h; sourceTree = ""; }; - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; - 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; - 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; - 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; - 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; - 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; - 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; - 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; - 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; - 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; - 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; - 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; - 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; - 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; - 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; - 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; - 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; - 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; - 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; - 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; - 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; - 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; - 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; - 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; - 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; - 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; - 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; - 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; - 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; - 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; - 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; - 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; - 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; - 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; - 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; - 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; - A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; - A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; - AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; - AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; - AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; - ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; - AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; - B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; - B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; - B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; - B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; - BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; - CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; - CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; - CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; - D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; - D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; - D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; - DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; - DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; - E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; - E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; - E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; - E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; - EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; - EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; - F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; - F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; - F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; - F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; - F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 77D3CA82B4C410701CD229E2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0731B4811AB8A4261C149BD3 /* Inputs */ = { - isa = PBXGroup; - children = ( - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, - ); - path = Inputs; - sourceTree = ""; - }; - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { - isa = PBXGroup; - children = ( - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, - E4F25FF1C3F48BDC5E6BB728 /* exc.m */, - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, - 2329A0992D4982D4E144AB75 /* pac.h */, - 7716BA871D7E897964A49CBD /* pac.m */, - E39629D147580074F13782D6 /* privateapi.h */, - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, - D2ED109B18B57340D5F23066 /* RemoteCall.m */, - 47A521EB489F34847F77161C /* thread.h */, - 69CB9CC7CA7C437D5204AD77 /* thread.m */, - 6FD2D7416B6AA7CE5E184223 /* vm.h */, - 2046AE855EEB1C6D361886E0 /* vm.m */, - ); - path = TaskRop; - sourceTree = ""; - }; - 096D912C986A1ECDD4AE9C57 /* broken */ = { - isa = PBXGroup; - children = ( - DF63A96A2904C5BAA9C6E491 /* CCView.swift */, - 97E7B95F214CEA3C04F0AC58 /* darkboard */, - ); - path = broken; - sourceTree = ""; - }; - 09B6EF0B45C55F479407D990 /* Terminal */ = { - isa = PBXGroup; - children = ( - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, - ); - path = Terminal; - sourceTree = ""; - }; - 0D159B4E42377C38FDD14E18 /* tweaks */ = { - isa = PBXGroup; - children = ( - D7767AE9E778CDC4652EE1AA /* AppsView.swift */, - 87B5A7075908DD63D2DB887E /* CardView.swift */, - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, - AB6983282C48A1F9D8916495 /* DecryptView.swift */, - 31508EF562095117FB765FFF /* DowngradeView.swift */, - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, - F2807342CC8396EA700E7626 /* JitView.swift */, - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, - 096D912C986A1ECDD4AE9C57 /* broken */, - F1B195CE1E819A5C7256ED05 /* dirtyZero */, - 94239040D8A11FC1A668FCE4 /* liquidglass */, - 8855FA399F2E0D870F89E63A /* mobilegestalt */, - 1CF2706A6E532F38D6DD625F /* passcode */, - BCB9166DBD1D0FB1A634265E /* sbcustomizer */, - ); - path = tweaks; - sourceTree = ""; - }; - 0E9B667B7F6DF2F65554368C /* app */ = { - isa = PBXGroup; - children = ( - AAF0DB241A670081991552A3 /* ContentView.swift */, - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, - A89E6CF98559C612AA19E5CE /* settings */, - ); - path = app; - sourceTree = ""; - }; - 1CF2706A6E532F38D6DD625F /* passcode */ = { - isa = PBXGroup; - children = ( - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 201E76134F22499BFD3DF53F /* Buttons */ = { - isa = PBXGroup; - children = ( - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 23942EEA65BBA190D901B7D2 /* choma */ = { - isa = PBXGroup; - children = ( - 6C46703C2B4072AEF8703349 /* arm64.h */, - AAAF3E2619E3D32C626EC2FA /* Base64.h */, - A9376E035DE98BB605BE0C76 /* BufferedStream.h */, - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, - ADC09F6065726F4669F88037 /* CodeDirectory.h */, - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, - E497648156C6CAAA87EEE6CB /* DER.h */, - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, - 3C989876DB6E112F7F3C3698 /* Entitlements.h */, - 09A16D0CCA129CD34402ACAB /* Fat.h */, - 791AEB9809EE46375BD53FF9 /* FileStream.h */, - BB016623AE10E3896FEF50AF /* fixup-chains.h */, - F506183C2CFD8D7D0FA1322D /* Host.h */, - 99CF547D66CF02B4B4DFA30C /* MachO.h */, - 3F975F92D7C580260B59024B /* MachOByteOrder.h */, - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, - F742E837A76B006F367ABC15 /* PatchFinder.h */, - B447AC3664839765F3679082 /* Util.h */, - ); - path = choma; - sourceTree = ""; - }; - 48AB90CB037F435485C6047D /* Settings */ = { - isa = PBXGroup; - children = ( - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 4A3D6651E821914BC1DA4474 /* Indicators */ = { - isa = PBXGroup; - children = ( - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, - ); - path = Indicators; - sourceTree = ""; - }; - 4BE43909AB102BC654C3AA36 /* lara */ = { - isa = PBXGroup; - children = ( - 71B66224C5948251B6008EC4 /* Info.plist */, - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, - 785FE68237A73C050C69066D /* lara.swift */, - E6D45AD3A84FDFFB26A63642 /* assets */, - 761E02C29DBA3FA091780A05 /* classes */, - BD4923F18700F649F4B199C9 /* funcs */, - B8439178F75BD677E46A1DE7 /* headers */, - 9FC4F095CD4B29F2EBA790C6 /* kexploit */, - F0B17F0CA82330A26B5CAE4B /* lib */, - BA72AA8D35B0D97633C2BF5E /* licenses */, - EC0774E5B4020C4D885431BC /* other */, - 9D63227FDF3FDE8908661A7D /* PartyUI */, - D70718477881BA82E605FF53 /* views */, - ); - path = lara; - sourceTree = ""; - }; - 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { - isa = PBXGroup; - children = ( - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 039D284F496260AA52986467 /* Foundation.framework */, - 410B1EDE3D870185074F65BC /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 73E8616A7EF5B51A92B29E54 /* Lists */ = { - isa = PBXGroup; - children = ( - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, - ); - path = Lists; - sourceTree = ""; - }; - 761E02C29DBA3FA091780A05 /* classes */ = { - isa = PBXGroup; - children = ( - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, - 7ADF625620559A728F4B333A /* Logger.swift */, - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, - CBFD358E70EC405DE82C3960 /* zipmgr.swift */, - 860A585202C20E00C82C419C /* tweaks */, - ); - path = classes; - sourceTree = ""; - }; - 7814074F0998A8D980C3CBF8 /* other */ = { - isa = PBXGroup; - children = ( - A9BBF565E304760414833AF4 /* respring.swift */, - ); - path = other; - sourceTree = ""; - }; - 7BD2299CAA022F5E87524835 /* Products */ = { - isa = PBXGroup; - children = ( - B1650DE9DA6D35D51EE63DA2 /* Lara.app */, - ); - name = Products; - sourceTree = ""; - }; - 7F048C9DF00CA2EEB9135FFF /* Effects */ = { - isa = PBXGroup; - children = ( - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, - ); - path = Effects; - sourceTree = ""; - }; - 860A585202C20E00C82C419C /* tweaks */ = { - isa = PBXGroup; - children = ( - 4CFE8C17A9569842AF2EDD4E /* darkboard */, - 9CA94EDD3BE9DDBB6B279DCA /* passcode */, - ); - path = tweaks; - sourceTree = ""; - }; - 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { - isa = PBXGroup; - children = ( - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, - ); - path = mobilegestalt; - sourceTree = ""; - }; - 93732F3C530FBFCDA46E1FCE /* Functions */ = { - isa = PBXGroup; - children = ( - 1D1585E8B42B2495142BE67E /* Alertinator.swift */, - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, - 4759F640E231F564F06DB0F5 /* Shareinator.swift */, - ); - path = Functions; - sourceTree = ""; - }; - 94239040D8A11FC1A668FCE4 /* liquidglass */ = { - isa = PBXGroup; - children = ( - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, - ); - path = liquidglass; - sourceTree = ""; - }; - 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { - isa = PBXGroup; - children = ( - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { - isa = PBXGroup; - children = ( - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 9D63227FDF3FDE8908661A7D /* PartyUI */ = { - isa = PBXGroup; - children = ( - 448609047BB8D112B7E99BFA /* PartyUI.swift */, - CCCE9A5AD37D20741B82ADB9 /* App */, - C6CEB364F2625B0EF49D1447 /* UI */, - ); - path = PartyUI; - sourceTree = ""; - }; - 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { - isa = PBXGroup; - children = ( - 0B1831D0D49F9245F54EBDC6 /* compat.h */, - CB0E8E3EC140E01DA032363F /* darksword.h */, - DD123A4DC76BB7C0734B5AE9 /* darksword.m */, - 4A33766163693DFAA30D772A /* decrypt.h */, - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, - 7DC3E2446E97ECC921D3AE94 /* offsets.h */, - EDC9360B2E647660F1BD443F /* offsets.m */, - 617E864CD832D1D3839429F0 /* persistence.h */, - B2BA68871A9D11BCFDC2AE71 /* persistence.m */, - 206327D869325194A5015A1B /* utils.h */, - 5A300D3F6ED3397BE1E6AD87 /* utils.m */, - C6122EC473A3A57510124B02 /* pe */, - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, - ); - path = kexploit; - sourceTree = ""; - }; - A5B06BC43186EA1E4D25299F = { - isa = PBXGroup; - children = ( - 4BE43909AB102BC654C3AA36 /* lara */, - 72729D505A51BDFC8C55A1D9 /* Frameworks */, - 7BD2299CAA022F5E87524835 /* Products */, - ); - sourceTree = ""; - }; - A89E6CF98559C612AA19E5CE /* settings */ = { - isa = PBXGroup; - children = ( - 61F528F680617A48C3CAB181 /* CreditsView.swift */, - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, - 986EBE17846F5764D1456F88 /* SettingsView.swift */, - ); - path = settings; - sourceTree = ""; - }; - B8439178F75BD677E46A1DE7 /* headers */ = { - isa = PBXGroup; - children = ( - B5A1457B7D98C0DDC65ACC3B /* fileport.h */, - EDF19B2325FE621BF70AC862 /* IconServices.h */, - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, - 2DAE2515228311435D9959EB /* MFSLauncher.h */, - 51BF1E07A44069A4B21B39EE /* xpf.h */, - ); - path = headers; - sourceTree = ""; - }; - B96F95013D086604AB0F746C /* fm */ = { - isa = PBXGroup; - children = ( - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, - 73D525CF14505CE9B85FD317 /* FileView.swift */, - 9C010243976A7D404529C206 /* SantanderView.swift */, - ); - path = fm; - sourceTree = ""; - }; - BA72AA8D35B0D97633C2BF5E /* licenses */ = { - isa = PBXGroup; - children = ( - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, - ); - path = licenses; - sourceTree = ""; - }; - BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { - isa = PBXGroup; - children = ( - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, - ); - path = sbcustomizer; - sourceTree = ""; - }; - BD4923F18700F649F4B199C9 /* funcs */ = { - isa = PBXGroup; - children = ( - CD0D193753BA74B811063956 /* fetchkcache.swift */, - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, - 92C2A1D1BCFA40230A63C752 /* helpers.swift */, - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, - F50A3C705DF2F98AC63AA699 /* keepalive.swift */, - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, - ); - path = funcs; - sourceTree = ""; - }; - C6122EC473A3A57510124B02 /* pe */ = { - isa = PBXGroup; - children = ( - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, - 797DFBA07DCC9320399BC99F /* apfs.m */, - 09BE5060F2C9DFD730796B7E /* rc.h */, - 86610E6990066EDFE2B5D96B /* rc.m */, - 3450D579B9EF6D1B24EA44AB /* sbx.h */, - F7BDDFA67F1109816C300F1E /* sbx.m */, - 33FAD74D2D09DFD7CF1985FA /* vfs.h */, - 7A92CE7743387903DDBFFC8C /* vfs.m */, - D714CE75040A9A3A983B36BE /* vnode.h */, - 09E09CADCF84F1D6D51E5F20 /* vnode.m */, - E6A7B0366B3E502209C65E24 /* xpaci.h */, - ); - path = pe; - sourceTree = ""; - }; - C6CEB364F2625B0EF49D1447 /* UI */ = { - isa = PBXGroup; - children = ( - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, - 201E76134F22499BFD3DF53F /* Buttons */, - 7F048C9DF00CA2EEB9135FFF /* Effects */, - 4A3D6651E821914BC1DA4474 /* Indicators */, - 0731B4811AB8A4261C149BD3 /* Inputs */, - 73E8616A7EF5B51A92B29E54 /* Lists */, - 09B6EF0B45C55F479407D990 /* Terminal */, - ); - path = UI; - sourceTree = ""; - }; - CCCE9A5AD37D20741B82ADB9 /* App */ = { - isa = PBXGroup; - children = ( - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, - CED7197ED6E1E06C45D4927C /* Extensions */, - 93732F3C530FBFCDA46E1FCE /* Functions */, - 48AB90CB037F435485C6047D /* Settings */, - F8BF389C000C82BE834B7E80 /* WelcomeSheet */, - ); - path = App; - sourceTree = ""; - }; - CED7197ED6E1E06C45D4927C /* Extensions */ = { - isa = PBXGroup; - children = ( - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - D70718477881BA82E605FF53 /* views */ = { - isa = PBXGroup; - children = ( - 0E9B667B7F6DF2F65554368C /* app */, - B96F95013D086604AB0F746C /* fm */, - 7814074F0998A8D980C3CBF8 /* other */, - 0D159B4E42377C38FDD14E18 /* tweaks */, - ); - path = views; - sourceTree = ""; - }; - E6D45AD3A84FDFFB26A63642 /* assets */ = { - isa = PBXGroup; - children = ( - AE2331E0F7B3D823CA15DF72 /* lara.png */, - ); - path = assets; - sourceTree = ""; - }; - EC0774E5B4020C4D885431BC /* other */ = { - isa = PBXGroup; - children = ( - 48E6FC849E553C68E397984C /* lara.entitlements */, - 68FA57A36233679708C5E468 /* media.xcassets */, - 60E947B3676E84C6A668511C /* VarCleanRules.json */, - ); - path = other; - sourceTree = ""; - }; - F0B17F0CA82330A26B5CAE4B /* lib */ = { - isa = PBXGroup; - children = ( - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, - 6337EE02AC0706717DFA252A /* libxpf.dylib */, - 23942EEA65BBA190D901B7D2 /* choma */, - ); - path = lib; - sourceTree = ""; - }; - F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { - isa = PBXGroup; - children = ( - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, - ); - path = dirtyZero; - sourceTree = ""; - }; - F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { - isa = PBXGroup; - children = ( - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, - ); - path = WelcomeSheet; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FD1665B8C8F3A79F013224EE /* Lara */ = { - isa = PBXNativeTarget; - buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; - buildPhases = ( - F9DE0523417E74276238FA56 /* Sources */, - 7CE4B9CDA802D229BDFBAFEF /* Resources */, - 77D3CA82B4C410701CD229E2 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Lara; - packageProductDependencies = ( - ); - productName = Lara; - productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - TargetAttributes = { - }; - }; - buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = A5B06BC43186EA1E4D25299F; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FD1665B8C8F3A79F013224EE /* Lara */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F9DE0523417E74276238FA56 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, - 333CD424E2385A8097A3533C /* Logger.swift in Sources */, - AAC093D16E38470615A9725D /* LogsView.swift in Sources */, - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, - 7AEF609084ED052D6C996095 /* offsets.m in Sources */, - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, - E99D712EE78CA8073C49821B /* respring.swift in Sources */, - 495E4514D5AE764363BAF696 /* sbx.m in Sources */, - AFD8AD5FD3F60467492282EF /* thread.m in Sources */, - BC49811360FE90E8EAE827E8 /* utils.m in Sources */, - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, - 4997659E14575C5B7AAACC12 /* vm.m in Sources */, - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3E810AC91C376ED3F7F9E2BA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 82AE279FDF9B38FD75536E7A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - B36A0572D1FE8B1BD286BCB7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - EEB3821768474EEF09187DAB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B36A0572D1FE8B1BD286BCB7 /* Debug */, - EEB3821768474EEF09187DAB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3E810AC91C376ED3F7F9E2BA /* Debug */, - 82AE279FDF9B38FD75536E7A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; -} From aae9b9612a71fb49d227c014d848e919a398d887 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:34:44 +0530 Subject: [PATCH 061/233] Add files via upload --- lara.xcodeproj/project.pbxproj | 1206 ++++++++++++++++++++++++++++++++ 1 file changed, 1206 insertions(+) create mode 100644 lara.xcodeproj/project.pbxproj diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj new file mode 100644 index 000000000..411a6454a --- /dev/null +++ b/lara.xcodeproj/project.pbxproj @@ -0,0 +1,1206 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; + 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; + 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; + 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; + 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; + AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; + AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; + BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; + E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; + 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; + 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; + 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; + 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; + 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; + 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; + 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; + 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; + 2DAE2515228311435D9959EB /* MFSLauncher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSLauncher.h; sourceTree = ""; }; + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; + 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; + 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; + 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; + 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; + 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; + 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; + 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; + 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; + 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; + 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; + 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; + 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; + 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; + 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; + 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; + 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; + 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; + 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; + 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; + 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; + 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; + 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; + 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; + 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; + 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; + 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; + 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; + 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; + 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; + 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; + 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; + 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; + 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; + 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; + 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; + A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; + A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; + AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; + AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; + AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; + ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; + AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; + B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; + B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; + B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; + B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; + BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; + CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; + CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; + CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; + D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; + D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; + D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; + DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; + DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; + E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; + E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; + E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; + E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; + EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; + EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; + F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; + F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; + F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; + F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; + F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 77D3CA82B4C410701CD229E2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0731B4811AB8A4261C149BD3 /* Inputs */ = { + isa = PBXGroup; + children = ( + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, + ); + path = Inputs; + sourceTree = ""; + }; + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { + isa = PBXGroup; + children = ( + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, + E4F25FF1C3F48BDC5E6BB728 /* exc.m */, + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, + 2329A0992D4982D4E144AB75 /* pac.h */, + 7716BA871D7E897964A49CBD /* pac.m */, + E39629D147580074F13782D6 /* privateapi.h */, + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, + D2ED109B18B57340D5F23066 /* RemoteCall.m */, + 47A521EB489F34847F77161C /* thread.h */, + 69CB9CC7CA7C437D5204AD77 /* thread.m */, + 6FD2D7416B6AA7CE5E184223 /* vm.h */, + 2046AE855EEB1C6D361886E0 /* vm.m */, + ); + path = TaskRop; + sourceTree = ""; + }; + 096D912C986A1ECDD4AE9C57 /* broken */ = { + isa = PBXGroup; + children = ( + DF63A96A2904C5BAA9C6E491 /* CCView.swift */, + 97E7B95F214CEA3C04F0AC58 /* darkboard */, + ); + path = broken; + sourceTree = ""; + }; + 09B6EF0B45C55F479407D990 /* Terminal */ = { + isa = PBXGroup; + children = ( + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, + ); + path = Terminal; + sourceTree = ""; + }; + 0D159B4E42377C38FDD14E18 /* tweaks */ = { + isa = PBXGroup; + children = ( + D7767AE9E778CDC4652EE1AA /* AppsView.swift */, + 87B5A7075908DD63D2DB887E /* CardView.swift */, + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, + AB6983282C48A1F9D8916495 /* DecryptView.swift */, + 31508EF562095117FB765FFF /* DowngradeView.swift */, + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, + F2807342CC8396EA700E7626 /* JitView.swift */, + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, + 096D912C986A1ECDD4AE9C57 /* broken */, + F1B195CE1E819A5C7256ED05 /* dirtyZero */, + 94239040D8A11FC1A668FCE4 /* liquidglass */, + 8855FA399F2E0D870F89E63A /* mobilegestalt */, + 1CF2706A6E532F38D6DD625F /* passcode */, + BCB9166DBD1D0FB1A634265E /* sbcustomizer */, + ); + path = tweaks; + sourceTree = ""; + }; + 0E9B667B7F6DF2F65554368C /* app */ = { + isa = PBXGroup; + children = ( + AAF0DB241A670081991552A3 /* ContentView.swift */, + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, + A89E6CF98559C612AA19E5CE /* settings */, + ); + path = app; + sourceTree = ""; + }; + 1CF2706A6E532F38D6DD625F /* passcode */ = { + isa = PBXGroup; + children = ( + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 201E76134F22499BFD3DF53F /* Buttons */ = { + isa = PBXGroup; + children = ( + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, + ); + path = Buttons; + sourceTree = ""; + }; + 23942EEA65BBA190D901B7D2 /* choma */ = { + isa = PBXGroup; + children = ( + 6C46703C2B4072AEF8703349 /* arm64.h */, + AAAF3E2619E3D32C626EC2FA /* Base64.h */, + A9376E035DE98BB605BE0C76 /* BufferedStream.h */, + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, + ADC09F6065726F4669F88037 /* CodeDirectory.h */, + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, + E497648156C6CAAA87EEE6CB /* DER.h */, + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, + 3C989876DB6E112F7F3C3698 /* Entitlements.h */, + 09A16D0CCA129CD34402ACAB /* Fat.h */, + 791AEB9809EE46375BD53FF9 /* FileStream.h */, + BB016623AE10E3896FEF50AF /* fixup-chains.h */, + F506183C2CFD8D7D0FA1322D /* Host.h */, + 99CF547D66CF02B4B4DFA30C /* MachO.h */, + 3F975F92D7C580260B59024B /* MachOByteOrder.h */, + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, + F742E837A76B006F367ABC15 /* PatchFinder.h */, + B447AC3664839765F3679082 /* Util.h */, + ); + path = choma; + sourceTree = ""; + }; + 48AB90CB037F435485C6047D /* Settings */ = { + isa = PBXGroup; + children = ( + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 4A3D6651E821914BC1DA4474 /* Indicators */ = { + isa = PBXGroup; + children = ( + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, + ); + path = Indicators; + sourceTree = ""; + }; + 4BE43909AB102BC654C3AA36 /* lara */ = { + isa = PBXGroup; + children = ( + 71B66224C5948251B6008EC4 /* Info.plist */, + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, + 785FE68237A73C050C69066D /* lara.swift */, + E6D45AD3A84FDFFB26A63642 /* assets */, + 761E02C29DBA3FA091780A05 /* classes */, + BD4923F18700F649F4B199C9 /* funcs */, + B8439178F75BD677E46A1DE7 /* headers */, + 9FC4F095CD4B29F2EBA790C6 /* kexploit */, + F0B17F0CA82330A26B5CAE4B /* lib */, + BA72AA8D35B0D97633C2BF5E /* licenses */, + EC0774E5B4020C4D885431BC /* other */, + 9D63227FDF3FDE8908661A7D /* PartyUI */, + D70718477881BA82E605FF53 /* views */, + ); + path = lara; + sourceTree = ""; + }; + 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { + isa = PBXGroup; + children = ( + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 039D284F496260AA52986467 /* Foundation.framework */, + 410B1EDE3D870185074F65BC /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 73E8616A7EF5B51A92B29E54 /* Lists */ = { + isa = PBXGroup; + children = ( + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, + ); + path = Lists; + sourceTree = ""; + }; + 761E02C29DBA3FA091780A05 /* classes */ = { + isa = PBXGroup; + children = ( + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, + 7ADF625620559A728F4B333A /* Logger.swift */, + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, + CBFD358E70EC405DE82C3960 /* zipmgr.swift */, + 860A585202C20E00C82C419C /* tweaks */, + ); + path = classes; + sourceTree = ""; + }; + 7814074F0998A8D980C3CBF8 /* other */ = { + isa = PBXGroup; + children = ( + A9BBF565E304760414833AF4 /* respring.swift */, + ); + path = other; + sourceTree = ""; + }; + 7BD2299CAA022F5E87524835 /* Products */ = { + isa = PBXGroup; + children = ( + B1650DE9DA6D35D51EE63DA2 /* Lara.app */, + ); + name = Products; + sourceTree = ""; + }; + 7F048C9DF00CA2EEB9135FFF /* Effects */ = { + isa = PBXGroup; + children = ( + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, + ); + path = Effects; + sourceTree = ""; + }; + 860A585202C20E00C82C419C /* tweaks */ = { + isa = PBXGroup; + children = ( + 4CFE8C17A9569842AF2EDD4E /* darkboard */, + 9CA94EDD3BE9DDBB6B279DCA /* passcode */, + ); + path = tweaks; + sourceTree = ""; + }; + 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { + isa = PBXGroup; + children = ( + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, + ); + path = mobilegestalt; + sourceTree = ""; + }; + 93732F3C530FBFCDA46E1FCE /* Functions */ = { + isa = PBXGroup; + children = ( + 1D1585E8B42B2495142BE67E /* Alertinator.swift */, + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, + 4759F640E231F564F06DB0F5 /* Shareinator.swift */, + ); + path = Functions; + sourceTree = ""; + }; + 94239040D8A11FC1A668FCE4 /* liquidglass */ = { + isa = PBXGroup; + children = ( + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, + ); + path = liquidglass; + sourceTree = ""; + }; + 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { + isa = PBXGroup; + children = ( + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { + isa = PBXGroup; + children = ( + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 9D63227FDF3FDE8908661A7D /* PartyUI */ = { + isa = PBXGroup; + children = ( + 448609047BB8D112B7E99BFA /* PartyUI.swift */, + CCCE9A5AD37D20741B82ADB9 /* App */, + C6CEB364F2625B0EF49D1447 /* UI */, + ); + path = PartyUI; + sourceTree = ""; + }; + 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { + isa = PBXGroup; + children = ( + 0B1831D0D49F9245F54EBDC6 /* compat.h */, + CB0E8E3EC140E01DA032363F /* darksword.h */, + DD123A4DC76BB7C0734B5AE9 /* darksword.m */, + 4A33766163693DFAA30D772A /* decrypt.h */, + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, + 7DC3E2446E97ECC921D3AE94 /* offsets.h */, + EDC9360B2E647660F1BD443F /* offsets.m */, + 617E864CD832D1D3839429F0 /* persistence.h */, + B2BA68871A9D11BCFDC2AE71 /* persistence.m */, + 206327D869325194A5015A1B /* utils.h */, + 5A300D3F6ED3397BE1E6AD87 /* utils.m */, + C6122EC473A3A57510124B02 /* pe */, + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, + ); + path = kexploit; + sourceTree = ""; + }; + A5B06BC43186EA1E4D25299F = { + isa = PBXGroup; + children = ( + 4BE43909AB102BC654C3AA36 /* lara */, + 72729D505A51BDFC8C55A1D9 /* Frameworks */, + 7BD2299CAA022F5E87524835 /* Products */, + ); + sourceTree = ""; + }; + A89E6CF98559C612AA19E5CE /* settings */ = { + isa = PBXGroup; + children = ( + 61F528F680617A48C3CAB181 /* CreditsView.swift */, + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, + 986EBE17846F5764D1456F88 /* SettingsView.swift */, + ); + path = settings; + sourceTree = ""; + }; + B8439178F75BD677E46A1DE7 /* headers */ = { + isa = PBXGroup; + children = ( + B5A1457B7D98C0DDC65ACC3B /* fileport.h */, + EDF19B2325FE621BF70AC862 /* IconServices.h */, + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, + 2DAE2515228311435D9959EB /* MFSLauncher.h */, + 51BF1E07A44069A4B21B39EE /* xpf.h */, + ); + path = headers; + sourceTree = ""; + }; + B96F95013D086604AB0F746C /* fm */ = { + isa = PBXGroup; + children = ( + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, + 73D525CF14505CE9B85FD317 /* FileView.swift */, + 9C010243976A7D404529C206 /* SantanderView.swift */, + ); + path = fm; + sourceTree = ""; + }; + BA72AA8D35B0D97633C2BF5E /* licenses */ = { + isa = PBXGroup; + children = ( + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, + ); + path = licenses; + sourceTree = ""; + }; + BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { + isa = PBXGroup; + children = ( + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, + ); + path = sbcustomizer; + sourceTree = ""; + }; + BD4923F18700F649F4B199C9 /* funcs */ = { + isa = PBXGroup; + children = ( + CD0D193753BA74B811063956 /* fetchkcache.swift */, + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, + 92C2A1D1BCFA40230A63C752 /* helpers.swift */, + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, + F50A3C705DF2F98AC63AA699 /* keepalive.swift */, + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, + ); + path = funcs; + sourceTree = ""; + }; + C6122EC473A3A57510124B02 /* pe */ = { + isa = PBXGroup; + children = ( + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, + 797DFBA07DCC9320399BC99F /* apfs.m */, + 09BE5060F2C9DFD730796B7E /* rc.h */, + 86610E6990066EDFE2B5D96B /* rc.m */, + 3450D579B9EF6D1B24EA44AB /* sbx.h */, + F7BDDFA67F1109816C300F1E /* sbx.m */, + 33FAD74D2D09DFD7CF1985FA /* vfs.h */, + 7A92CE7743387903DDBFFC8C /* vfs.m */, + D714CE75040A9A3A983B36BE /* vnode.h */, + 09E09CADCF84F1D6D51E5F20 /* vnode.m */, + E6A7B0366B3E502209C65E24 /* xpaci.h */, + ); + path = pe; + sourceTree = ""; + }; + C6CEB364F2625B0EF49D1447 /* UI */ = { + isa = PBXGroup; + children = ( + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, + 201E76134F22499BFD3DF53F /* Buttons */, + 7F048C9DF00CA2EEB9135FFF /* Effects */, + 4A3D6651E821914BC1DA4474 /* Indicators */, + 0731B4811AB8A4261C149BD3 /* Inputs */, + 73E8616A7EF5B51A92B29E54 /* Lists */, + 09B6EF0B45C55F479407D990 /* Terminal */, + ); + path = UI; + sourceTree = ""; + }; + CCCE9A5AD37D20741B82ADB9 /* App */ = { + isa = PBXGroup; + children = ( + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, + CED7197ED6E1E06C45D4927C /* Extensions */, + 93732F3C530FBFCDA46E1FCE /* Functions */, + 48AB90CB037F435485C6047D /* Settings */, + F8BF389C000C82BE834B7E80 /* WelcomeSheet */, + ); + path = App; + sourceTree = ""; + }; + CED7197ED6E1E06C45D4927C /* Extensions */ = { + isa = PBXGroup; + children = ( + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + D70718477881BA82E605FF53 /* views */ = { + isa = PBXGroup; + children = ( + 0E9B667B7F6DF2F65554368C /* app */, + B96F95013D086604AB0F746C /* fm */, + 7814074F0998A8D980C3CBF8 /* other */, + 0D159B4E42377C38FDD14E18 /* tweaks */, + ); + path = views; + sourceTree = ""; + }; + E6D45AD3A84FDFFB26A63642 /* assets */ = { + isa = PBXGroup; + children = ( + AE2331E0F7B3D823CA15DF72 /* lara.png */, + ); + path = assets; + sourceTree = ""; + }; + EC0774E5B4020C4D885431BC /* other */ = { + isa = PBXGroup; + children = ( + 48E6FC849E553C68E397984C /* lara.entitlements */, + 68FA57A36233679708C5E468 /* media.xcassets */, + 60E947B3676E84C6A668511C /* VarCleanRules.json */, + ); + path = other; + sourceTree = ""; + }; + F0B17F0CA82330A26B5CAE4B /* lib */ = { + isa = PBXGroup; + children = ( + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, + 6337EE02AC0706717DFA252A /* libxpf.dylib */, + 23942EEA65BBA190D901B7D2 /* choma */, + ); + path = lib; + sourceTree = ""; + }; + F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { + isa = PBXGroup; + children = ( + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, + ); + path = dirtyZero; + sourceTree = ""; + }; + F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { + isa = PBXGroup; + children = ( + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, + ); + path = WelcomeSheet; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + FD1665B8C8F3A79F013224EE /* Lara */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; + buildPhases = ( + F9DE0523417E74276238FA56 /* Sources */, + 7CE4B9CDA802D229BDFBAFEF /* Resources */, + 77D3CA82B4C410701CD229E2 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Lara; + packageProductDependencies = ( + ); + productName = Lara; + productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + }; + }; + buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = A5B06BC43186EA1E4D25299F; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FD1665B8C8F3A79F013224EE /* Lara */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F9DE0523417E74276238FA56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, + 333CD424E2385A8097A3533C /* Logger.swift in Sources */, + AAC093D16E38470615A9725D /* LogsView.swift in Sources */, + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, + 7AEF609084ED052D6C996095 /* offsets.m in Sources */, + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, + E99D712EE78CA8073C49821B /* respring.swift in Sources */, + 495E4514D5AE764363BAF696 /* sbx.m in Sources */, + AFD8AD5FD3F60467492282EF /* thread.m in Sources */, + BC49811360FE90E8EAE827E8 /* utils.m in Sources */, + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, + 4997659E14575C5B7AAACC12 /* vm.m in Sources */, + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3E810AC91C376ED3F7F9E2BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 82AE279FDF9B38FD75536E7A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + B36A0572D1FE8B1BD286BCB7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + EEB3821768474EEF09187DAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B36A0572D1FE8B1BD286BCB7 /* Debug */, + EEB3821768474EEF09187DAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E810AC91C376ED3F7F9E2BA /* Debug */, + 82AE279FDF9B38FD75536E7A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; +} From a8483a11f62a9b02d03b52a97c0e5907fe0c8cc0 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:51:47 +0530 Subject: [PATCH 062/233] Update GestaltView.swift --- lara/views/tweaks/mobilegestalt/GestaltView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/views/tweaks/mobilegestalt/GestaltView.swift b/lara/views/tweaks/mobilegestalt/GestaltView.swift index 5c843b041..e3d3348d6 100644 --- a/lara/views/tweaks/mobilegestalt/GestaltView.swift +++ b/lara/views/tweaks/mobilegestalt/GestaltView.swift @@ -28,6 +28,7 @@ enum fileloc: String, CaseIterable { let mgCurrentPath = "/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/com.apple.MobileGestalt.plist" +@MainActor struct GestaltView: View { @AppStorage("gestaltwarn") private var gestaltwarn: Bool = true @AppStorage("mgDeviceName") private var mgDeviceName: String = "" From 4de553a78841b7716866c79b2c9f6a8604459010 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:08:40 +0530 Subject: [PATCH 063/233] Update GestaltView.swift --- .../tweaks/mobilegestalt/GestaltView.swift | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/lara/views/tweaks/mobilegestalt/GestaltView.swift b/lara/views/tweaks/mobilegestalt/GestaltView.swift index e3d3348d6..ca96a1d0c 100644 --- a/lara/views/tweaks/mobilegestalt/GestaltView.swift +++ b/lara/views/tweaks/mobilegestalt/GestaltView.swift @@ -744,19 +744,23 @@ func verifyPlist(_ plist: Any, targetPath: String) throws -> Data { let attrs = try fm.attributesOfItem(atPath: targetPath) if let current = attrs[.size] as? NSNumber, current.intValue == 0 { - Alertinator.shared.alert( - title: "Dangerous Plist State Detected", - body: "The current plist file is already 0 bytes. Overwriting has been aborted to prevent corruption." - ) + Task { @MainActor in + Alertinator.shared.alert( + title: "Dangerous Plist State Detected", + body: "The current plist file is already 0 bytes. Overwriting has been aborted to prevent corruption." + ) + } throw "Current MobileGestalt file is 0 bytes." } } guard PropertyListSerialization.propertyList(plist, isValidFor: .binary) else { - Alertinator.shared.alert( - title: "Invalid Property List", - body: "The plist is invalid and cannot be written safely." - ) + Task { @MainActor in + Alertinator.shared.alert( + title: "Invalid Property List", + body: "The plist is invalid and cannot be written safely." + ) + } throw "Invalid plist structure." } @@ -767,10 +771,12 @@ func verifyPlist(_ plist: Any, targetPath: String) throws -> Data { ) if data.isEmpty || data.count == 0 { - Alertinator.shared.alert( - title: "Refusing Empty Plist Write", - body: "The generated plist would become 0 bytes after overwrite. Operation cancelled." - ) + Task { @MainActor in + Alertinator.shared.alert( + title: "Refusing Empty Plist Write", + body: "The generated plist would become 0 bytes after overwrite. Operation cancelled." + ) + } throw "Serialized plist data is empty." } @@ -781,10 +787,12 @@ func verifyPlist(_ plist: Any, targetPath: String) throws -> Data { format: nil ) } catch { - Alertinator.shared.alert( - title: "Invalid Serialized Property List", - body: "The generated plist failed validation after serialization." - ) + Task { @MainActor in + Alertinator.shared.alert( + title: "Invalid Serialized Property List", + body: "The generated plist failed validation after serialization." + ) + } throw "Serialized plist validation failed." } From c2cf0b9008c890c9cb8b8c29e7f32b3cec5881f7 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:14:49 +0530 Subject: [PATCH 064/233] Update project.yml --- project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.yml b/project.yml index 9197b4d5a..409fe3e7c 100644 --- a/project.yml +++ b/project.yml @@ -18,7 +18,7 @@ targets: PRODUCT_BUNDLE_IDENTIFIER: com.roooot.lara INFOPLIST_FILE: lara/Info.plist SWIFT_OBJC_BRIDGING_HEADER: lara/lara-Bridging-Header.h - LIBRARY_SEARCH_PATHS: $(inherited) $(SRCROOT)/lib + LIBRARY_SEARCH_PATHS: $(inherited) lara/lib/ OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel -lmuffinstore SWIFT_VERSION: 5.0 SWIFT_STRICT_CONCURRENCY: minimal From 6f6c21a9337037716c84f89b9c7e6da2af2e3cce Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:16:45 +0530 Subject: [PATCH 065/233] Delete lara.xcodeproj/project.pbxproj --- lara.xcodeproj/project.pbxproj | 1206 -------------------------------- 1 file changed, 1206 deletions(-) delete mode 100644 lara.xcodeproj/project.pbxproj diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj deleted file mode 100644 index 411a6454a..000000000 --- a/lara.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1206 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; - 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; - 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; - 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; - 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; - AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; - AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; - BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; - E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; - 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; - 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; - 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; - 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; - 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; - 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; - 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; - 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; - 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; - 2DAE2515228311435D9959EB /* MFSLauncher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSLauncher.h; sourceTree = ""; }; - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; - 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; - 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; - 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; - 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; - 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; - 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; - 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; - 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; - 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; - 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; - 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; - 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; - 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; - 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; - 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; - 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; - 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; - 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; - 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; - 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; - 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; - 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; - 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; - 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; - 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; - 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; - 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; - 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; - 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; - 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; - 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; - 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; - 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; - 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; - 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; - A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; - A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; - AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; - AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; - AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; - ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; - AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; - B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; - B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; - B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; - B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; - BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; - CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; - CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; - CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; - D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; - D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; - D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; - DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; - DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; - E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; - E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; - E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; - E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; - EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; - EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; - F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; - F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; - F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; - F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; - F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 77D3CA82B4C410701CD229E2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0731B4811AB8A4261C149BD3 /* Inputs */ = { - isa = PBXGroup; - children = ( - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, - ); - path = Inputs; - sourceTree = ""; - }; - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { - isa = PBXGroup; - children = ( - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, - E4F25FF1C3F48BDC5E6BB728 /* exc.m */, - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, - 2329A0992D4982D4E144AB75 /* pac.h */, - 7716BA871D7E897964A49CBD /* pac.m */, - E39629D147580074F13782D6 /* privateapi.h */, - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, - D2ED109B18B57340D5F23066 /* RemoteCall.m */, - 47A521EB489F34847F77161C /* thread.h */, - 69CB9CC7CA7C437D5204AD77 /* thread.m */, - 6FD2D7416B6AA7CE5E184223 /* vm.h */, - 2046AE855EEB1C6D361886E0 /* vm.m */, - ); - path = TaskRop; - sourceTree = ""; - }; - 096D912C986A1ECDD4AE9C57 /* broken */ = { - isa = PBXGroup; - children = ( - DF63A96A2904C5BAA9C6E491 /* CCView.swift */, - 97E7B95F214CEA3C04F0AC58 /* darkboard */, - ); - path = broken; - sourceTree = ""; - }; - 09B6EF0B45C55F479407D990 /* Terminal */ = { - isa = PBXGroup; - children = ( - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, - ); - path = Terminal; - sourceTree = ""; - }; - 0D159B4E42377C38FDD14E18 /* tweaks */ = { - isa = PBXGroup; - children = ( - D7767AE9E778CDC4652EE1AA /* AppsView.swift */, - 87B5A7075908DD63D2DB887E /* CardView.swift */, - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, - AB6983282C48A1F9D8916495 /* DecryptView.swift */, - 31508EF562095117FB765FFF /* DowngradeView.swift */, - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, - F2807342CC8396EA700E7626 /* JitView.swift */, - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, - 096D912C986A1ECDD4AE9C57 /* broken */, - F1B195CE1E819A5C7256ED05 /* dirtyZero */, - 94239040D8A11FC1A668FCE4 /* liquidglass */, - 8855FA399F2E0D870F89E63A /* mobilegestalt */, - 1CF2706A6E532F38D6DD625F /* passcode */, - BCB9166DBD1D0FB1A634265E /* sbcustomizer */, - ); - path = tweaks; - sourceTree = ""; - }; - 0E9B667B7F6DF2F65554368C /* app */ = { - isa = PBXGroup; - children = ( - AAF0DB241A670081991552A3 /* ContentView.swift */, - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, - A89E6CF98559C612AA19E5CE /* settings */, - ); - path = app; - sourceTree = ""; - }; - 1CF2706A6E532F38D6DD625F /* passcode */ = { - isa = PBXGroup; - children = ( - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 201E76134F22499BFD3DF53F /* Buttons */ = { - isa = PBXGroup; - children = ( - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 23942EEA65BBA190D901B7D2 /* choma */ = { - isa = PBXGroup; - children = ( - 6C46703C2B4072AEF8703349 /* arm64.h */, - AAAF3E2619E3D32C626EC2FA /* Base64.h */, - A9376E035DE98BB605BE0C76 /* BufferedStream.h */, - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, - ADC09F6065726F4669F88037 /* CodeDirectory.h */, - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, - E497648156C6CAAA87EEE6CB /* DER.h */, - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, - 3C989876DB6E112F7F3C3698 /* Entitlements.h */, - 09A16D0CCA129CD34402ACAB /* Fat.h */, - 791AEB9809EE46375BD53FF9 /* FileStream.h */, - BB016623AE10E3896FEF50AF /* fixup-chains.h */, - F506183C2CFD8D7D0FA1322D /* Host.h */, - 99CF547D66CF02B4B4DFA30C /* MachO.h */, - 3F975F92D7C580260B59024B /* MachOByteOrder.h */, - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, - F742E837A76B006F367ABC15 /* PatchFinder.h */, - B447AC3664839765F3679082 /* Util.h */, - ); - path = choma; - sourceTree = ""; - }; - 48AB90CB037F435485C6047D /* Settings */ = { - isa = PBXGroup; - children = ( - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 4A3D6651E821914BC1DA4474 /* Indicators */ = { - isa = PBXGroup; - children = ( - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, - ); - path = Indicators; - sourceTree = ""; - }; - 4BE43909AB102BC654C3AA36 /* lara */ = { - isa = PBXGroup; - children = ( - 71B66224C5948251B6008EC4 /* Info.plist */, - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, - 785FE68237A73C050C69066D /* lara.swift */, - E6D45AD3A84FDFFB26A63642 /* assets */, - 761E02C29DBA3FA091780A05 /* classes */, - BD4923F18700F649F4B199C9 /* funcs */, - B8439178F75BD677E46A1DE7 /* headers */, - 9FC4F095CD4B29F2EBA790C6 /* kexploit */, - F0B17F0CA82330A26B5CAE4B /* lib */, - BA72AA8D35B0D97633C2BF5E /* licenses */, - EC0774E5B4020C4D885431BC /* other */, - 9D63227FDF3FDE8908661A7D /* PartyUI */, - D70718477881BA82E605FF53 /* views */, - ); - path = lara; - sourceTree = ""; - }; - 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { - isa = PBXGroup; - children = ( - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 039D284F496260AA52986467 /* Foundation.framework */, - 410B1EDE3D870185074F65BC /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 73E8616A7EF5B51A92B29E54 /* Lists */ = { - isa = PBXGroup; - children = ( - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, - ); - path = Lists; - sourceTree = ""; - }; - 761E02C29DBA3FA091780A05 /* classes */ = { - isa = PBXGroup; - children = ( - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, - 7ADF625620559A728F4B333A /* Logger.swift */, - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, - CBFD358E70EC405DE82C3960 /* zipmgr.swift */, - 860A585202C20E00C82C419C /* tweaks */, - ); - path = classes; - sourceTree = ""; - }; - 7814074F0998A8D980C3CBF8 /* other */ = { - isa = PBXGroup; - children = ( - A9BBF565E304760414833AF4 /* respring.swift */, - ); - path = other; - sourceTree = ""; - }; - 7BD2299CAA022F5E87524835 /* Products */ = { - isa = PBXGroup; - children = ( - B1650DE9DA6D35D51EE63DA2 /* Lara.app */, - ); - name = Products; - sourceTree = ""; - }; - 7F048C9DF00CA2EEB9135FFF /* Effects */ = { - isa = PBXGroup; - children = ( - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, - ); - path = Effects; - sourceTree = ""; - }; - 860A585202C20E00C82C419C /* tweaks */ = { - isa = PBXGroup; - children = ( - 4CFE8C17A9569842AF2EDD4E /* darkboard */, - 9CA94EDD3BE9DDBB6B279DCA /* passcode */, - ); - path = tweaks; - sourceTree = ""; - }; - 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { - isa = PBXGroup; - children = ( - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, - ); - path = mobilegestalt; - sourceTree = ""; - }; - 93732F3C530FBFCDA46E1FCE /* Functions */ = { - isa = PBXGroup; - children = ( - 1D1585E8B42B2495142BE67E /* Alertinator.swift */, - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, - 4759F640E231F564F06DB0F5 /* Shareinator.swift */, - ); - path = Functions; - sourceTree = ""; - }; - 94239040D8A11FC1A668FCE4 /* liquidglass */ = { - isa = PBXGroup; - children = ( - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, - ); - path = liquidglass; - sourceTree = ""; - }; - 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { - isa = PBXGroup; - children = ( - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { - isa = PBXGroup; - children = ( - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 9D63227FDF3FDE8908661A7D /* PartyUI */ = { - isa = PBXGroup; - children = ( - 448609047BB8D112B7E99BFA /* PartyUI.swift */, - CCCE9A5AD37D20741B82ADB9 /* App */, - C6CEB364F2625B0EF49D1447 /* UI */, - ); - path = PartyUI; - sourceTree = ""; - }; - 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { - isa = PBXGroup; - children = ( - 0B1831D0D49F9245F54EBDC6 /* compat.h */, - CB0E8E3EC140E01DA032363F /* darksword.h */, - DD123A4DC76BB7C0734B5AE9 /* darksword.m */, - 4A33766163693DFAA30D772A /* decrypt.h */, - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, - 7DC3E2446E97ECC921D3AE94 /* offsets.h */, - EDC9360B2E647660F1BD443F /* offsets.m */, - 617E864CD832D1D3839429F0 /* persistence.h */, - B2BA68871A9D11BCFDC2AE71 /* persistence.m */, - 206327D869325194A5015A1B /* utils.h */, - 5A300D3F6ED3397BE1E6AD87 /* utils.m */, - C6122EC473A3A57510124B02 /* pe */, - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, - ); - path = kexploit; - sourceTree = ""; - }; - A5B06BC43186EA1E4D25299F = { - isa = PBXGroup; - children = ( - 4BE43909AB102BC654C3AA36 /* lara */, - 72729D505A51BDFC8C55A1D9 /* Frameworks */, - 7BD2299CAA022F5E87524835 /* Products */, - ); - sourceTree = ""; - }; - A89E6CF98559C612AA19E5CE /* settings */ = { - isa = PBXGroup; - children = ( - 61F528F680617A48C3CAB181 /* CreditsView.swift */, - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, - 986EBE17846F5764D1456F88 /* SettingsView.swift */, - ); - path = settings; - sourceTree = ""; - }; - B8439178F75BD677E46A1DE7 /* headers */ = { - isa = PBXGroup; - children = ( - B5A1457B7D98C0DDC65ACC3B /* fileport.h */, - EDF19B2325FE621BF70AC862 /* IconServices.h */, - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, - 2DAE2515228311435D9959EB /* MFSLauncher.h */, - 51BF1E07A44069A4B21B39EE /* xpf.h */, - ); - path = headers; - sourceTree = ""; - }; - B96F95013D086604AB0F746C /* fm */ = { - isa = PBXGroup; - children = ( - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, - 73D525CF14505CE9B85FD317 /* FileView.swift */, - 9C010243976A7D404529C206 /* SantanderView.swift */, - ); - path = fm; - sourceTree = ""; - }; - BA72AA8D35B0D97633C2BF5E /* licenses */ = { - isa = PBXGroup; - children = ( - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, - ); - path = licenses; - sourceTree = ""; - }; - BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { - isa = PBXGroup; - children = ( - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, - ); - path = sbcustomizer; - sourceTree = ""; - }; - BD4923F18700F649F4B199C9 /* funcs */ = { - isa = PBXGroup; - children = ( - CD0D193753BA74B811063956 /* fetchkcache.swift */, - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, - 92C2A1D1BCFA40230A63C752 /* helpers.swift */, - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, - F50A3C705DF2F98AC63AA699 /* keepalive.swift */, - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, - ); - path = funcs; - sourceTree = ""; - }; - C6122EC473A3A57510124B02 /* pe */ = { - isa = PBXGroup; - children = ( - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, - 797DFBA07DCC9320399BC99F /* apfs.m */, - 09BE5060F2C9DFD730796B7E /* rc.h */, - 86610E6990066EDFE2B5D96B /* rc.m */, - 3450D579B9EF6D1B24EA44AB /* sbx.h */, - F7BDDFA67F1109816C300F1E /* sbx.m */, - 33FAD74D2D09DFD7CF1985FA /* vfs.h */, - 7A92CE7743387903DDBFFC8C /* vfs.m */, - D714CE75040A9A3A983B36BE /* vnode.h */, - 09E09CADCF84F1D6D51E5F20 /* vnode.m */, - E6A7B0366B3E502209C65E24 /* xpaci.h */, - ); - path = pe; - sourceTree = ""; - }; - C6CEB364F2625B0EF49D1447 /* UI */ = { - isa = PBXGroup; - children = ( - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, - 201E76134F22499BFD3DF53F /* Buttons */, - 7F048C9DF00CA2EEB9135FFF /* Effects */, - 4A3D6651E821914BC1DA4474 /* Indicators */, - 0731B4811AB8A4261C149BD3 /* Inputs */, - 73E8616A7EF5B51A92B29E54 /* Lists */, - 09B6EF0B45C55F479407D990 /* Terminal */, - ); - path = UI; - sourceTree = ""; - }; - CCCE9A5AD37D20741B82ADB9 /* App */ = { - isa = PBXGroup; - children = ( - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, - CED7197ED6E1E06C45D4927C /* Extensions */, - 93732F3C530FBFCDA46E1FCE /* Functions */, - 48AB90CB037F435485C6047D /* Settings */, - F8BF389C000C82BE834B7E80 /* WelcomeSheet */, - ); - path = App; - sourceTree = ""; - }; - CED7197ED6E1E06C45D4927C /* Extensions */ = { - isa = PBXGroup; - children = ( - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - D70718477881BA82E605FF53 /* views */ = { - isa = PBXGroup; - children = ( - 0E9B667B7F6DF2F65554368C /* app */, - B96F95013D086604AB0F746C /* fm */, - 7814074F0998A8D980C3CBF8 /* other */, - 0D159B4E42377C38FDD14E18 /* tweaks */, - ); - path = views; - sourceTree = ""; - }; - E6D45AD3A84FDFFB26A63642 /* assets */ = { - isa = PBXGroup; - children = ( - AE2331E0F7B3D823CA15DF72 /* lara.png */, - ); - path = assets; - sourceTree = ""; - }; - EC0774E5B4020C4D885431BC /* other */ = { - isa = PBXGroup; - children = ( - 48E6FC849E553C68E397984C /* lara.entitlements */, - 68FA57A36233679708C5E468 /* media.xcassets */, - 60E947B3676E84C6A668511C /* VarCleanRules.json */, - ); - path = other; - sourceTree = ""; - }; - F0B17F0CA82330A26B5CAE4B /* lib */ = { - isa = PBXGroup; - children = ( - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, - 6337EE02AC0706717DFA252A /* libxpf.dylib */, - 23942EEA65BBA190D901B7D2 /* choma */, - ); - path = lib; - sourceTree = ""; - }; - F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { - isa = PBXGroup; - children = ( - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, - ); - path = dirtyZero; - sourceTree = ""; - }; - F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { - isa = PBXGroup; - children = ( - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, - ); - path = WelcomeSheet; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FD1665B8C8F3A79F013224EE /* Lara */ = { - isa = PBXNativeTarget; - buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; - buildPhases = ( - F9DE0523417E74276238FA56 /* Sources */, - 7CE4B9CDA802D229BDFBAFEF /* Resources */, - 77D3CA82B4C410701CD229E2 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Lara; - packageProductDependencies = ( - ); - productName = Lara; - productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - TargetAttributes = { - }; - }; - buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = A5B06BC43186EA1E4D25299F; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FD1665B8C8F3A79F013224EE /* Lara */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F9DE0523417E74276238FA56 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, - 333CD424E2385A8097A3533C /* Logger.swift in Sources */, - AAC093D16E38470615A9725D /* LogsView.swift in Sources */, - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, - 7AEF609084ED052D6C996095 /* offsets.m in Sources */, - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, - E99D712EE78CA8073C49821B /* respring.swift in Sources */, - 495E4514D5AE764363BAF696 /* sbx.m in Sources */, - AFD8AD5FD3F60467492282EF /* thread.m in Sources */, - BC49811360FE90E8EAE827E8 /* utils.m in Sources */, - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, - 4997659E14575C5B7AAACC12 /* vm.m in Sources */, - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3E810AC91C376ED3F7F9E2BA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 82AE279FDF9B38FD75536E7A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) $(SRCROOT)/lib"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - B36A0572D1FE8B1BD286BCB7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - EEB3821768474EEF09187DAB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B36A0572D1FE8B1BD286BCB7 /* Debug */, - EEB3821768474EEF09187DAB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3E810AC91C376ED3F7F9E2BA /* Debug */, - 82AE279FDF9B38FD75536E7A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; -} From 7aa3db0acf1557884845ca52e5eb54b9a7718d52 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:17:17 +0530 Subject: [PATCH 066/233] Add files via upload --- lara.xcodeproj/project.pbxproj | 1206 ++++++++++++++++++++++++++++++++ 1 file changed, 1206 insertions(+) create mode 100644 lara.xcodeproj/project.pbxproj diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj new file mode 100644 index 000000000..306666e4b --- /dev/null +++ b/lara.xcodeproj/project.pbxproj @@ -0,0 +1,1206 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; + 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; + 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; + 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; + 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; + AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; + AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; + BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; + E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; + 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; + 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; + 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; + 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; + 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; + 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; + 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; + 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; + 2DAE2515228311435D9959EB /* MFSLauncher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSLauncher.h; sourceTree = ""; }; + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; + 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; + 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; + 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; + 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; + 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; + 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; + 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; + 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; + 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; + 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; + 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; + 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; + 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; + 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; + 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; + 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; + 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; + 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; + 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; + 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; + 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; + 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; + 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; + 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; + 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; + 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; + 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; + 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; + 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; + 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; + 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; + 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; + 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; + 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; + 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; + A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; + A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; + AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; + AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; + AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; + ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; + AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; + B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; + B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; + B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; + B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; + BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; + CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; + CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; + CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; + D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; + D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; + D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; + DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; + DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; + E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; + E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; + E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; + E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; + EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; + EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; + F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; + F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; + F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; + F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; + F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 77D3CA82B4C410701CD229E2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0731B4811AB8A4261C149BD3 /* Inputs */ = { + isa = PBXGroup; + children = ( + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, + ); + path = Inputs; + sourceTree = ""; + }; + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { + isa = PBXGroup; + children = ( + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, + E4F25FF1C3F48BDC5E6BB728 /* exc.m */, + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, + 2329A0992D4982D4E144AB75 /* pac.h */, + 7716BA871D7E897964A49CBD /* pac.m */, + E39629D147580074F13782D6 /* privateapi.h */, + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, + D2ED109B18B57340D5F23066 /* RemoteCall.m */, + 47A521EB489F34847F77161C /* thread.h */, + 69CB9CC7CA7C437D5204AD77 /* thread.m */, + 6FD2D7416B6AA7CE5E184223 /* vm.h */, + 2046AE855EEB1C6D361886E0 /* vm.m */, + ); + path = TaskRop; + sourceTree = ""; + }; + 096D912C986A1ECDD4AE9C57 /* broken */ = { + isa = PBXGroup; + children = ( + DF63A96A2904C5BAA9C6E491 /* CCView.swift */, + 97E7B95F214CEA3C04F0AC58 /* darkboard */, + ); + path = broken; + sourceTree = ""; + }; + 09B6EF0B45C55F479407D990 /* Terminal */ = { + isa = PBXGroup; + children = ( + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, + ); + path = Terminal; + sourceTree = ""; + }; + 0D159B4E42377C38FDD14E18 /* tweaks */ = { + isa = PBXGroup; + children = ( + D7767AE9E778CDC4652EE1AA /* AppsView.swift */, + 87B5A7075908DD63D2DB887E /* CardView.swift */, + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, + AB6983282C48A1F9D8916495 /* DecryptView.swift */, + 31508EF562095117FB765FFF /* DowngradeView.swift */, + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, + F2807342CC8396EA700E7626 /* JitView.swift */, + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, + 096D912C986A1ECDD4AE9C57 /* broken */, + F1B195CE1E819A5C7256ED05 /* dirtyZero */, + 94239040D8A11FC1A668FCE4 /* liquidglass */, + 8855FA399F2E0D870F89E63A /* mobilegestalt */, + 1CF2706A6E532F38D6DD625F /* passcode */, + BCB9166DBD1D0FB1A634265E /* sbcustomizer */, + ); + path = tweaks; + sourceTree = ""; + }; + 0E9B667B7F6DF2F65554368C /* app */ = { + isa = PBXGroup; + children = ( + AAF0DB241A670081991552A3 /* ContentView.swift */, + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, + A89E6CF98559C612AA19E5CE /* settings */, + ); + path = app; + sourceTree = ""; + }; + 1CF2706A6E532F38D6DD625F /* passcode */ = { + isa = PBXGroup; + children = ( + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 201E76134F22499BFD3DF53F /* Buttons */ = { + isa = PBXGroup; + children = ( + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, + ); + path = Buttons; + sourceTree = ""; + }; + 23942EEA65BBA190D901B7D2 /* choma */ = { + isa = PBXGroup; + children = ( + 6C46703C2B4072AEF8703349 /* arm64.h */, + AAAF3E2619E3D32C626EC2FA /* Base64.h */, + A9376E035DE98BB605BE0C76 /* BufferedStream.h */, + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, + ADC09F6065726F4669F88037 /* CodeDirectory.h */, + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, + E497648156C6CAAA87EEE6CB /* DER.h */, + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, + 3C989876DB6E112F7F3C3698 /* Entitlements.h */, + 09A16D0CCA129CD34402ACAB /* Fat.h */, + 791AEB9809EE46375BD53FF9 /* FileStream.h */, + BB016623AE10E3896FEF50AF /* fixup-chains.h */, + F506183C2CFD8D7D0FA1322D /* Host.h */, + 99CF547D66CF02B4B4DFA30C /* MachO.h */, + 3F975F92D7C580260B59024B /* MachOByteOrder.h */, + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, + F742E837A76B006F367ABC15 /* PatchFinder.h */, + B447AC3664839765F3679082 /* Util.h */, + ); + path = choma; + sourceTree = ""; + }; + 48AB90CB037F435485C6047D /* Settings */ = { + isa = PBXGroup; + children = ( + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 4A3D6651E821914BC1DA4474 /* Indicators */ = { + isa = PBXGroup; + children = ( + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, + ); + path = Indicators; + sourceTree = ""; + }; + 4BE43909AB102BC654C3AA36 /* lara */ = { + isa = PBXGroup; + children = ( + 71B66224C5948251B6008EC4 /* Info.plist */, + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, + 785FE68237A73C050C69066D /* lara.swift */, + E6D45AD3A84FDFFB26A63642 /* assets */, + 761E02C29DBA3FA091780A05 /* classes */, + BD4923F18700F649F4B199C9 /* funcs */, + B8439178F75BD677E46A1DE7 /* headers */, + 9FC4F095CD4B29F2EBA790C6 /* kexploit */, + F0B17F0CA82330A26B5CAE4B /* lib */, + BA72AA8D35B0D97633C2BF5E /* licenses */, + EC0774E5B4020C4D885431BC /* other */, + 9D63227FDF3FDE8908661A7D /* PartyUI */, + D70718477881BA82E605FF53 /* views */, + ); + path = lara; + sourceTree = ""; + }; + 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { + isa = PBXGroup; + children = ( + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 039D284F496260AA52986467 /* Foundation.framework */, + 410B1EDE3D870185074F65BC /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 73E8616A7EF5B51A92B29E54 /* Lists */ = { + isa = PBXGroup; + children = ( + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, + ); + path = Lists; + sourceTree = ""; + }; + 761E02C29DBA3FA091780A05 /* classes */ = { + isa = PBXGroup; + children = ( + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, + 7ADF625620559A728F4B333A /* Logger.swift */, + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, + CBFD358E70EC405DE82C3960 /* zipmgr.swift */, + 860A585202C20E00C82C419C /* tweaks */, + ); + path = classes; + sourceTree = ""; + }; + 7814074F0998A8D980C3CBF8 /* other */ = { + isa = PBXGroup; + children = ( + A9BBF565E304760414833AF4 /* respring.swift */, + ); + path = other; + sourceTree = ""; + }; + 7BD2299CAA022F5E87524835 /* Products */ = { + isa = PBXGroup; + children = ( + B1650DE9DA6D35D51EE63DA2 /* Lara.app */, + ); + name = Products; + sourceTree = ""; + }; + 7F048C9DF00CA2EEB9135FFF /* Effects */ = { + isa = PBXGroup; + children = ( + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, + ); + path = Effects; + sourceTree = ""; + }; + 860A585202C20E00C82C419C /* tweaks */ = { + isa = PBXGroup; + children = ( + 4CFE8C17A9569842AF2EDD4E /* darkboard */, + 9CA94EDD3BE9DDBB6B279DCA /* passcode */, + ); + path = tweaks; + sourceTree = ""; + }; + 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { + isa = PBXGroup; + children = ( + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, + ); + path = mobilegestalt; + sourceTree = ""; + }; + 93732F3C530FBFCDA46E1FCE /* Functions */ = { + isa = PBXGroup; + children = ( + 1D1585E8B42B2495142BE67E /* Alertinator.swift */, + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, + 4759F640E231F564F06DB0F5 /* Shareinator.swift */, + ); + path = Functions; + sourceTree = ""; + }; + 94239040D8A11FC1A668FCE4 /* liquidglass */ = { + isa = PBXGroup; + children = ( + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, + ); + path = liquidglass; + sourceTree = ""; + }; + 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { + isa = PBXGroup; + children = ( + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { + isa = PBXGroup; + children = ( + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 9D63227FDF3FDE8908661A7D /* PartyUI */ = { + isa = PBXGroup; + children = ( + 448609047BB8D112B7E99BFA /* PartyUI.swift */, + CCCE9A5AD37D20741B82ADB9 /* App */, + C6CEB364F2625B0EF49D1447 /* UI */, + ); + path = PartyUI; + sourceTree = ""; + }; + 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { + isa = PBXGroup; + children = ( + 0B1831D0D49F9245F54EBDC6 /* compat.h */, + CB0E8E3EC140E01DA032363F /* darksword.h */, + DD123A4DC76BB7C0734B5AE9 /* darksword.m */, + 4A33766163693DFAA30D772A /* decrypt.h */, + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, + 7DC3E2446E97ECC921D3AE94 /* offsets.h */, + EDC9360B2E647660F1BD443F /* offsets.m */, + 617E864CD832D1D3839429F0 /* persistence.h */, + B2BA68871A9D11BCFDC2AE71 /* persistence.m */, + 206327D869325194A5015A1B /* utils.h */, + 5A300D3F6ED3397BE1E6AD87 /* utils.m */, + C6122EC473A3A57510124B02 /* pe */, + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, + ); + path = kexploit; + sourceTree = ""; + }; + A5B06BC43186EA1E4D25299F = { + isa = PBXGroup; + children = ( + 4BE43909AB102BC654C3AA36 /* lara */, + 72729D505A51BDFC8C55A1D9 /* Frameworks */, + 7BD2299CAA022F5E87524835 /* Products */, + ); + sourceTree = ""; + }; + A89E6CF98559C612AA19E5CE /* settings */ = { + isa = PBXGroup; + children = ( + 61F528F680617A48C3CAB181 /* CreditsView.swift */, + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, + 986EBE17846F5764D1456F88 /* SettingsView.swift */, + ); + path = settings; + sourceTree = ""; + }; + B8439178F75BD677E46A1DE7 /* headers */ = { + isa = PBXGroup; + children = ( + B5A1457B7D98C0DDC65ACC3B /* fileport.h */, + EDF19B2325FE621BF70AC862 /* IconServices.h */, + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, + 2DAE2515228311435D9959EB /* MFSLauncher.h */, + 51BF1E07A44069A4B21B39EE /* xpf.h */, + ); + path = headers; + sourceTree = ""; + }; + B96F95013D086604AB0F746C /* fm */ = { + isa = PBXGroup; + children = ( + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, + 73D525CF14505CE9B85FD317 /* FileView.swift */, + 9C010243976A7D404529C206 /* SantanderView.swift */, + ); + path = fm; + sourceTree = ""; + }; + BA72AA8D35B0D97633C2BF5E /* licenses */ = { + isa = PBXGroup; + children = ( + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, + ); + path = licenses; + sourceTree = ""; + }; + BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { + isa = PBXGroup; + children = ( + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, + ); + path = sbcustomizer; + sourceTree = ""; + }; + BD4923F18700F649F4B199C9 /* funcs */ = { + isa = PBXGroup; + children = ( + CD0D193753BA74B811063956 /* fetchkcache.swift */, + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, + 92C2A1D1BCFA40230A63C752 /* helpers.swift */, + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, + F50A3C705DF2F98AC63AA699 /* keepalive.swift */, + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, + ); + path = funcs; + sourceTree = ""; + }; + C6122EC473A3A57510124B02 /* pe */ = { + isa = PBXGroup; + children = ( + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, + 797DFBA07DCC9320399BC99F /* apfs.m */, + 09BE5060F2C9DFD730796B7E /* rc.h */, + 86610E6990066EDFE2B5D96B /* rc.m */, + 3450D579B9EF6D1B24EA44AB /* sbx.h */, + F7BDDFA67F1109816C300F1E /* sbx.m */, + 33FAD74D2D09DFD7CF1985FA /* vfs.h */, + 7A92CE7743387903DDBFFC8C /* vfs.m */, + D714CE75040A9A3A983B36BE /* vnode.h */, + 09E09CADCF84F1D6D51E5F20 /* vnode.m */, + E6A7B0366B3E502209C65E24 /* xpaci.h */, + ); + path = pe; + sourceTree = ""; + }; + C6CEB364F2625B0EF49D1447 /* UI */ = { + isa = PBXGroup; + children = ( + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, + 201E76134F22499BFD3DF53F /* Buttons */, + 7F048C9DF00CA2EEB9135FFF /* Effects */, + 4A3D6651E821914BC1DA4474 /* Indicators */, + 0731B4811AB8A4261C149BD3 /* Inputs */, + 73E8616A7EF5B51A92B29E54 /* Lists */, + 09B6EF0B45C55F479407D990 /* Terminal */, + ); + path = UI; + sourceTree = ""; + }; + CCCE9A5AD37D20741B82ADB9 /* App */ = { + isa = PBXGroup; + children = ( + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, + CED7197ED6E1E06C45D4927C /* Extensions */, + 93732F3C530FBFCDA46E1FCE /* Functions */, + 48AB90CB037F435485C6047D /* Settings */, + F8BF389C000C82BE834B7E80 /* WelcomeSheet */, + ); + path = App; + sourceTree = ""; + }; + CED7197ED6E1E06C45D4927C /* Extensions */ = { + isa = PBXGroup; + children = ( + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + D70718477881BA82E605FF53 /* views */ = { + isa = PBXGroup; + children = ( + 0E9B667B7F6DF2F65554368C /* app */, + B96F95013D086604AB0F746C /* fm */, + 7814074F0998A8D980C3CBF8 /* other */, + 0D159B4E42377C38FDD14E18 /* tweaks */, + ); + path = views; + sourceTree = ""; + }; + E6D45AD3A84FDFFB26A63642 /* assets */ = { + isa = PBXGroup; + children = ( + AE2331E0F7B3D823CA15DF72 /* lara.png */, + ); + path = assets; + sourceTree = ""; + }; + EC0774E5B4020C4D885431BC /* other */ = { + isa = PBXGroup; + children = ( + 48E6FC849E553C68E397984C /* lara.entitlements */, + 68FA57A36233679708C5E468 /* media.xcassets */, + 60E947B3676E84C6A668511C /* VarCleanRules.json */, + ); + path = other; + sourceTree = ""; + }; + F0B17F0CA82330A26B5CAE4B /* lib */ = { + isa = PBXGroup; + children = ( + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, + 6337EE02AC0706717DFA252A /* libxpf.dylib */, + 23942EEA65BBA190D901B7D2 /* choma */, + ); + path = lib; + sourceTree = ""; + }; + F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { + isa = PBXGroup; + children = ( + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, + ); + path = dirtyZero; + sourceTree = ""; + }; + F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { + isa = PBXGroup; + children = ( + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, + ); + path = WelcomeSheet; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + FD1665B8C8F3A79F013224EE /* Lara */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; + buildPhases = ( + F9DE0523417E74276238FA56 /* Sources */, + 7CE4B9CDA802D229BDFBAFEF /* Resources */, + 77D3CA82B4C410701CD229E2 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Lara; + packageProductDependencies = ( + ); + productName = Lara; + productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + }; + }; + buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = A5B06BC43186EA1E4D25299F; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FD1665B8C8F3A79F013224EE /* Lara */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F9DE0523417E74276238FA56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, + 333CD424E2385A8097A3533C /* Logger.swift in Sources */, + AAC093D16E38470615A9725D /* LogsView.swift in Sources */, + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, + 7AEF609084ED052D6C996095 /* offsets.m in Sources */, + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, + E99D712EE78CA8073C49821B /* respring.swift in Sources */, + 495E4514D5AE764363BAF696 /* sbx.m in Sources */, + AFD8AD5FD3F60467492282EF /* thread.m in Sources */, + BC49811360FE90E8EAE827E8 /* utils.m in Sources */, + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, + 4997659E14575C5B7AAACC12 /* vm.m in Sources */, + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3E810AC91C376ED3F7F9E2BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 82AE279FDF9B38FD75536E7A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + B36A0572D1FE8B1BD286BCB7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + EEB3821768474EEF09187DAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B36A0572D1FE8B1BD286BCB7 /* Debug */, + EEB3821768474EEF09187DAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E810AC91C376ED3F7F9E2BA /* Debug */, + 82AE279FDF9B38FD75536E7A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; +} From 4660cf6398a6bec167657fb22f8f16ba3bed8941 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:21:32 +0530 Subject: [PATCH 067/233] Update project.pbxproj --- lara.xcodeproj/project.pbxproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj index 306666e4b..f7a74853d 100644 --- a/lara.xcodeproj/project.pbxproj +++ b/lara.xcodeproj/project.pbxproj @@ -1050,7 +1050,7 @@ "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; SDKROOT = iphoneos; SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; From 5b6ec4cf4e1359501ac9f37ef8403cd131d353a6 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:23:28 +0530 Subject: [PATCH 068/233] Update project.yml --- project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.yml b/project.yml index 409fe3e7c..0b26f3b77 100644 --- a/project.yml +++ b/project.yml @@ -19,7 +19,7 @@ targets: INFOPLIST_FILE: lara/Info.plist SWIFT_OBJC_BRIDGING_HEADER: lara/lara-Bridging-Header.h LIBRARY_SEARCH_PATHS: $(inherited) lara/lib/ - OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel -lmuffinstore + OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel2 -lmuffinstore SWIFT_VERSION: 5.0 SWIFT_STRICT_CONCURRENCY: minimal From 1539ff5f5d830195db0267aafcc15bcf690b1f69 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:24:44 +0530 Subject: [PATCH 069/233] Delete lara.xcodeproj/project.pbxproj --- lara.xcodeproj/project.pbxproj | 1206 -------------------------------- 1 file changed, 1206 deletions(-) delete mode 100644 lara.xcodeproj/project.pbxproj diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj deleted file mode 100644 index f7a74853d..000000000 --- a/lara.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1206 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; - 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; - 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; - 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; - 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; - AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; - AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; - BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; - E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; - 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; - 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; - 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; - 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; - 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; - 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; - 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; - 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; - 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; - 2DAE2515228311435D9959EB /* MFSLauncher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSLauncher.h; sourceTree = ""; }; - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; - 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; - 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; - 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; - 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; - 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; - 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; - 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; - 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; - 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; - 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; - 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; - 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; - 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; - 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; - 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; - 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; - 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; - 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; - 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; - 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; - 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; - 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; - 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; - 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; - 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; - 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; - 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; - 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; - 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; - 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; - 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; - 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; - 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; - 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; - 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; - A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; - A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; - AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; - AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; - AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; - ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; - AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; - B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; - B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; - B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; - B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; - BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; - CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; - CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; - CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; - D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; - D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; - D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; - DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; - DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; - E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; - E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; - E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; - E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; - EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; - EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; - F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; - F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; - F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; - F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; - F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 77D3CA82B4C410701CD229E2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0731B4811AB8A4261C149BD3 /* Inputs */ = { - isa = PBXGroup; - children = ( - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, - ); - path = Inputs; - sourceTree = ""; - }; - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { - isa = PBXGroup; - children = ( - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, - E4F25FF1C3F48BDC5E6BB728 /* exc.m */, - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, - 2329A0992D4982D4E144AB75 /* pac.h */, - 7716BA871D7E897964A49CBD /* pac.m */, - E39629D147580074F13782D6 /* privateapi.h */, - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, - D2ED109B18B57340D5F23066 /* RemoteCall.m */, - 47A521EB489F34847F77161C /* thread.h */, - 69CB9CC7CA7C437D5204AD77 /* thread.m */, - 6FD2D7416B6AA7CE5E184223 /* vm.h */, - 2046AE855EEB1C6D361886E0 /* vm.m */, - ); - path = TaskRop; - sourceTree = ""; - }; - 096D912C986A1ECDD4AE9C57 /* broken */ = { - isa = PBXGroup; - children = ( - DF63A96A2904C5BAA9C6E491 /* CCView.swift */, - 97E7B95F214CEA3C04F0AC58 /* darkboard */, - ); - path = broken; - sourceTree = ""; - }; - 09B6EF0B45C55F479407D990 /* Terminal */ = { - isa = PBXGroup; - children = ( - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, - ); - path = Terminal; - sourceTree = ""; - }; - 0D159B4E42377C38FDD14E18 /* tweaks */ = { - isa = PBXGroup; - children = ( - D7767AE9E778CDC4652EE1AA /* AppsView.swift */, - 87B5A7075908DD63D2DB887E /* CardView.swift */, - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, - AB6983282C48A1F9D8916495 /* DecryptView.swift */, - 31508EF562095117FB765FFF /* DowngradeView.swift */, - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, - F2807342CC8396EA700E7626 /* JitView.swift */, - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, - 096D912C986A1ECDD4AE9C57 /* broken */, - F1B195CE1E819A5C7256ED05 /* dirtyZero */, - 94239040D8A11FC1A668FCE4 /* liquidglass */, - 8855FA399F2E0D870F89E63A /* mobilegestalt */, - 1CF2706A6E532F38D6DD625F /* passcode */, - BCB9166DBD1D0FB1A634265E /* sbcustomizer */, - ); - path = tweaks; - sourceTree = ""; - }; - 0E9B667B7F6DF2F65554368C /* app */ = { - isa = PBXGroup; - children = ( - AAF0DB241A670081991552A3 /* ContentView.swift */, - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, - A89E6CF98559C612AA19E5CE /* settings */, - ); - path = app; - sourceTree = ""; - }; - 1CF2706A6E532F38D6DD625F /* passcode */ = { - isa = PBXGroup; - children = ( - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 201E76134F22499BFD3DF53F /* Buttons */ = { - isa = PBXGroup; - children = ( - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 23942EEA65BBA190D901B7D2 /* choma */ = { - isa = PBXGroup; - children = ( - 6C46703C2B4072AEF8703349 /* arm64.h */, - AAAF3E2619E3D32C626EC2FA /* Base64.h */, - A9376E035DE98BB605BE0C76 /* BufferedStream.h */, - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, - ADC09F6065726F4669F88037 /* CodeDirectory.h */, - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, - E497648156C6CAAA87EEE6CB /* DER.h */, - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, - 3C989876DB6E112F7F3C3698 /* Entitlements.h */, - 09A16D0CCA129CD34402ACAB /* Fat.h */, - 791AEB9809EE46375BD53FF9 /* FileStream.h */, - BB016623AE10E3896FEF50AF /* fixup-chains.h */, - F506183C2CFD8D7D0FA1322D /* Host.h */, - 99CF547D66CF02B4B4DFA30C /* MachO.h */, - 3F975F92D7C580260B59024B /* MachOByteOrder.h */, - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, - F742E837A76B006F367ABC15 /* PatchFinder.h */, - B447AC3664839765F3679082 /* Util.h */, - ); - path = choma; - sourceTree = ""; - }; - 48AB90CB037F435485C6047D /* Settings */ = { - isa = PBXGroup; - children = ( - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 4A3D6651E821914BC1DA4474 /* Indicators */ = { - isa = PBXGroup; - children = ( - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, - ); - path = Indicators; - sourceTree = ""; - }; - 4BE43909AB102BC654C3AA36 /* lara */ = { - isa = PBXGroup; - children = ( - 71B66224C5948251B6008EC4 /* Info.plist */, - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, - 785FE68237A73C050C69066D /* lara.swift */, - E6D45AD3A84FDFFB26A63642 /* assets */, - 761E02C29DBA3FA091780A05 /* classes */, - BD4923F18700F649F4B199C9 /* funcs */, - B8439178F75BD677E46A1DE7 /* headers */, - 9FC4F095CD4B29F2EBA790C6 /* kexploit */, - F0B17F0CA82330A26B5CAE4B /* lib */, - BA72AA8D35B0D97633C2BF5E /* licenses */, - EC0774E5B4020C4D885431BC /* other */, - 9D63227FDF3FDE8908661A7D /* PartyUI */, - D70718477881BA82E605FF53 /* views */, - ); - path = lara; - sourceTree = ""; - }; - 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { - isa = PBXGroup; - children = ( - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 039D284F496260AA52986467 /* Foundation.framework */, - 410B1EDE3D870185074F65BC /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 73E8616A7EF5B51A92B29E54 /* Lists */ = { - isa = PBXGroup; - children = ( - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, - ); - path = Lists; - sourceTree = ""; - }; - 761E02C29DBA3FA091780A05 /* classes */ = { - isa = PBXGroup; - children = ( - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, - 7ADF625620559A728F4B333A /* Logger.swift */, - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, - CBFD358E70EC405DE82C3960 /* zipmgr.swift */, - 860A585202C20E00C82C419C /* tweaks */, - ); - path = classes; - sourceTree = ""; - }; - 7814074F0998A8D980C3CBF8 /* other */ = { - isa = PBXGroup; - children = ( - A9BBF565E304760414833AF4 /* respring.swift */, - ); - path = other; - sourceTree = ""; - }; - 7BD2299CAA022F5E87524835 /* Products */ = { - isa = PBXGroup; - children = ( - B1650DE9DA6D35D51EE63DA2 /* Lara.app */, - ); - name = Products; - sourceTree = ""; - }; - 7F048C9DF00CA2EEB9135FFF /* Effects */ = { - isa = PBXGroup; - children = ( - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, - ); - path = Effects; - sourceTree = ""; - }; - 860A585202C20E00C82C419C /* tweaks */ = { - isa = PBXGroup; - children = ( - 4CFE8C17A9569842AF2EDD4E /* darkboard */, - 9CA94EDD3BE9DDBB6B279DCA /* passcode */, - ); - path = tweaks; - sourceTree = ""; - }; - 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { - isa = PBXGroup; - children = ( - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, - ); - path = mobilegestalt; - sourceTree = ""; - }; - 93732F3C530FBFCDA46E1FCE /* Functions */ = { - isa = PBXGroup; - children = ( - 1D1585E8B42B2495142BE67E /* Alertinator.swift */, - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, - 4759F640E231F564F06DB0F5 /* Shareinator.swift */, - ); - path = Functions; - sourceTree = ""; - }; - 94239040D8A11FC1A668FCE4 /* liquidglass */ = { - isa = PBXGroup; - children = ( - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, - ); - path = liquidglass; - sourceTree = ""; - }; - 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { - isa = PBXGroup; - children = ( - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { - isa = PBXGroup; - children = ( - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 9D63227FDF3FDE8908661A7D /* PartyUI */ = { - isa = PBXGroup; - children = ( - 448609047BB8D112B7E99BFA /* PartyUI.swift */, - CCCE9A5AD37D20741B82ADB9 /* App */, - C6CEB364F2625B0EF49D1447 /* UI */, - ); - path = PartyUI; - sourceTree = ""; - }; - 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { - isa = PBXGroup; - children = ( - 0B1831D0D49F9245F54EBDC6 /* compat.h */, - CB0E8E3EC140E01DA032363F /* darksword.h */, - DD123A4DC76BB7C0734B5AE9 /* darksword.m */, - 4A33766163693DFAA30D772A /* decrypt.h */, - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, - 7DC3E2446E97ECC921D3AE94 /* offsets.h */, - EDC9360B2E647660F1BD443F /* offsets.m */, - 617E864CD832D1D3839429F0 /* persistence.h */, - B2BA68871A9D11BCFDC2AE71 /* persistence.m */, - 206327D869325194A5015A1B /* utils.h */, - 5A300D3F6ED3397BE1E6AD87 /* utils.m */, - C6122EC473A3A57510124B02 /* pe */, - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, - ); - path = kexploit; - sourceTree = ""; - }; - A5B06BC43186EA1E4D25299F = { - isa = PBXGroup; - children = ( - 4BE43909AB102BC654C3AA36 /* lara */, - 72729D505A51BDFC8C55A1D9 /* Frameworks */, - 7BD2299CAA022F5E87524835 /* Products */, - ); - sourceTree = ""; - }; - A89E6CF98559C612AA19E5CE /* settings */ = { - isa = PBXGroup; - children = ( - 61F528F680617A48C3CAB181 /* CreditsView.swift */, - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, - 986EBE17846F5764D1456F88 /* SettingsView.swift */, - ); - path = settings; - sourceTree = ""; - }; - B8439178F75BD677E46A1DE7 /* headers */ = { - isa = PBXGroup; - children = ( - B5A1457B7D98C0DDC65ACC3B /* fileport.h */, - EDF19B2325FE621BF70AC862 /* IconServices.h */, - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, - 2DAE2515228311435D9959EB /* MFSLauncher.h */, - 51BF1E07A44069A4B21B39EE /* xpf.h */, - ); - path = headers; - sourceTree = ""; - }; - B96F95013D086604AB0F746C /* fm */ = { - isa = PBXGroup; - children = ( - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, - 73D525CF14505CE9B85FD317 /* FileView.swift */, - 9C010243976A7D404529C206 /* SantanderView.swift */, - ); - path = fm; - sourceTree = ""; - }; - BA72AA8D35B0D97633C2BF5E /* licenses */ = { - isa = PBXGroup; - children = ( - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, - ); - path = licenses; - sourceTree = ""; - }; - BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { - isa = PBXGroup; - children = ( - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, - ); - path = sbcustomizer; - sourceTree = ""; - }; - BD4923F18700F649F4B199C9 /* funcs */ = { - isa = PBXGroup; - children = ( - CD0D193753BA74B811063956 /* fetchkcache.swift */, - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, - 92C2A1D1BCFA40230A63C752 /* helpers.swift */, - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, - F50A3C705DF2F98AC63AA699 /* keepalive.swift */, - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, - ); - path = funcs; - sourceTree = ""; - }; - C6122EC473A3A57510124B02 /* pe */ = { - isa = PBXGroup; - children = ( - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, - 797DFBA07DCC9320399BC99F /* apfs.m */, - 09BE5060F2C9DFD730796B7E /* rc.h */, - 86610E6990066EDFE2B5D96B /* rc.m */, - 3450D579B9EF6D1B24EA44AB /* sbx.h */, - F7BDDFA67F1109816C300F1E /* sbx.m */, - 33FAD74D2D09DFD7CF1985FA /* vfs.h */, - 7A92CE7743387903DDBFFC8C /* vfs.m */, - D714CE75040A9A3A983B36BE /* vnode.h */, - 09E09CADCF84F1D6D51E5F20 /* vnode.m */, - E6A7B0366B3E502209C65E24 /* xpaci.h */, - ); - path = pe; - sourceTree = ""; - }; - C6CEB364F2625B0EF49D1447 /* UI */ = { - isa = PBXGroup; - children = ( - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, - 201E76134F22499BFD3DF53F /* Buttons */, - 7F048C9DF00CA2EEB9135FFF /* Effects */, - 4A3D6651E821914BC1DA4474 /* Indicators */, - 0731B4811AB8A4261C149BD3 /* Inputs */, - 73E8616A7EF5B51A92B29E54 /* Lists */, - 09B6EF0B45C55F479407D990 /* Terminal */, - ); - path = UI; - sourceTree = ""; - }; - CCCE9A5AD37D20741B82ADB9 /* App */ = { - isa = PBXGroup; - children = ( - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, - CED7197ED6E1E06C45D4927C /* Extensions */, - 93732F3C530FBFCDA46E1FCE /* Functions */, - 48AB90CB037F435485C6047D /* Settings */, - F8BF389C000C82BE834B7E80 /* WelcomeSheet */, - ); - path = App; - sourceTree = ""; - }; - CED7197ED6E1E06C45D4927C /* Extensions */ = { - isa = PBXGroup; - children = ( - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - D70718477881BA82E605FF53 /* views */ = { - isa = PBXGroup; - children = ( - 0E9B667B7F6DF2F65554368C /* app */, - B96F95013D086604AB0F746C /* fm */, - 7814074F0998A8D980C3CBF8 /* other */, - 0D159B4E42377C38FDD14E18 /* tweaks */, - ); - path = views; - sourceTree = ""; - }; - E6D45AD3A84FDFFB26A63642 /* assets */ = { - isa = PBXGroup; - children = ( - AE2331E0F7B3D823CA15DF72 /* lara.png */, - ); - path = assets; - sourceTree = ""; - }; - EC0774E5B4020C4D885431BC /* other */ = { - isa = PBXGroup; - children = ( - 48E6FC849E553C68E397984C /* lara.entitlements */, - 68FA57A36233679708C5E468 /* media.xcassets */, - 60E947B3676E84C6A668511C /* VarCleanRules.json */, - ); - path = other; - sourceTree = ""; - }; - F0B17F0CA82330A26B5CAE4B /* lib */ = { - isa = PBXGroup; - children = ( - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, - 6337EE02AC0706717DFA252A /* libxpf.dylib */, - 23942EEA65BBA190D901B7D2 /* choma */, - ); - path = lib; - sourceTree = ""; - }; - F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { - isa = PBXGroup; - children = ( - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, - ); - path = dirtyZero; - sourceTree = ""; - }; - F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { - isa = PBXGroup; - children = ( - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, - ); - path = WelcomeSheet; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FD1665B8C8F3A79F013224EE /* Lara */ = { - isa = PBXNativeTarget; - buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; - buildPhases = ( - F9DE0523417E74276238FA56 /* Sources */, - 7CE4B9CDA802D229BDFBAFEF /* Resources */, - 77D3CA82B4C410701CD229E2 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Lara; - packageProductDependencies = ( - ); - productName = Lara; - productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - TargetAttributes = { - }; - }; - buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = A5B06BC43186EA1E4D25299F; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FD1665B8C8F3A79F013224EE /* Lara */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F9DE0523417E74276238FA56 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, - 333CD424E2385A8097A3533C /* Logger.swift in Sources */, - AAC093D16E38470615A9725D /* LogsView.swift in Sources */, - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, - 7AEF609084ED052D6C996095 /* offsets.m in Sources */, - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, - E99D712EE78CA8073C49821B /* respring.swift in Sources */, - 495E4514D5AE764363BAF696 /* sbx.m in Sources */, - AFD8AD5FD3F60467492282EF /* thread.m in Sources */, - BC49811360FE90E8EAE827E8 /* utils.m in Sources */, - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, - 4997659E14575C5B7AAACC12 /* vm.m in Sources */, - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3E810AC91C376ED3F7F9E2BA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 82AE279FDF9B38FD75536E7A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - B36A0572D1FE8B1BD286BCB7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - EEB3821768474EEF09187DAB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B36A0572D1FE8B1BD286BCB7 /* Debug */, - EEB3821768474EEF09187DAB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3E810AC91C376ED3F7F9E2BA /* Debug */, - 82AE279FDF9B38FD75536E7A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; -} From 6cb50dce0d6bc412e221ff391dcb47d92bc813d8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:25:13 +0530 Subject: [PATCH 070/233] Add files via upload --- lara.xcodeproj/project.pbxproj | 1206 ++++++++++++++++++++++++++++++++ 1 file changed, 1206 insertions(+) create mode 100644 lara.xcodeproj/project.pbxproj diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj new file mode 100644 index 000000000..5b9c53b77 --- /dev/null +++ b/lara.xcodeproj/project.pbxproj @@ -0,0 +1,1206 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; + 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; + 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; + 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; + 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; + AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; + AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; + BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; + E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; + 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; + 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; + 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; + 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; + 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; + 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; + 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; + 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; + 2DAE2515228311435D9959EB /* MFSLauncher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSLauncher.h; sourceTree = ""; }; + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; + 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; + 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; + 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; + 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; + 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; + 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; + 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; + 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; + 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; + 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; + 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; + 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; + 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; + 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; + 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; + 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; + 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; + 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; + 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; + 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; + 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; + 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; + 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; + 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; + 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; + 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; + 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; + 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; + 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; + 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; + 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; + 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; + 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; + 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; + 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; + A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; + A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; + AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; + AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; + AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; + ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; + AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; + B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; + B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; + B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; + B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; + BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; + CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; + CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; + CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; + D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; + D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; + D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; + DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; + DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; + E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; + E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; + E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; + E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; + EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; + EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; + F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; + F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; + F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; + F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; + F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 77D3CA82B4C410701CD229E2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0731B4811AB8A4261C149BD3 /* Inputs */ = { + isa = PBXGroup; + children = ( + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, + ); + path = Inputs; + sourceTree = ""; + }; + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { + isa = PBXGroup; + children = ( + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, + E4F25FF1C3F48BDC5E6BB728 /* exc.m */, + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, + 2329A0992D4982D4E144AB75 /* pac.h */, + 7716BA871D7E897964A49CBD /* pac.m */, + E39629D147580074F13782D6 /* privateapi.h */, + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, + D2ED109B18B57340D5F23066 /* RemoteCall.m */, + 47A521EB489F34847F77161C /* thread.h */, + 69CB9CC7CA7C437D5204AD77 /* thread.m */, + 6FD2D7416B6AA7CE5E184223 /* vm.h */, + 2046AE855EEB1C6D361886E0 /* vm.m */, + ); + path = TaskRop; + sourceTree = ""; + }; + 096D912C986A1ECDD4AE9C57 /* broken */ = { + isa = PBXGroup; + children = ( + DF63A96A2904C5BAA9C6E491 /* CCView.swift */, + 97E7B95F214CEA3C04F0AC58 /* darkboard */, + ); + path = broken; + sourceTree = ""; + }; + 09B6EF0B45C55F479407D990 /* Terminal */ = { + isa = PBXGroup; + children = ( + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, + ); + path = Terminal; + sourceTree = ""; + }; + 0D159B4E42377C38FDD14E18 /* tweaks */ = { + isa = PBXGroup; + children = ( + D7767AE9E778CDC4652EE1AA /* AppsView.swift */, + 87B5A7075908DD63D2DB887E /* CardView.swift */, + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, + AB6983282C48A1F9D8916495 /* DecryptView.swift */, + 31508EF562095117FB765FFF /* DowngradeView.swift */, + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, + F2807342CC8396EA700E7626 /* JitView.swift */, + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, + 096D912C986A1ECDD4AE9C57 /* broken */, + F1B195CE1E819A5C7256ED05 /* dirtyZero */, + 94239040D8A11FC1A668FCE4 /* liquidglass */, + 8855FA399F2E0D870F89E63A /* mobilegestalt */, + 1CF2706A6E532F38D6DD625F /* passcode */, + BCB9166DBD1D0FB1A634265E /* sbcustomizer */, + ); + path = tweaks; + sourceTree = ""; + }; + 0E9B667B7F6DF2F65554368C /* app */ = { + isa = PBXGroup; + children = ( + AAF0DB241A670081991552A3 /* ContentView.swift */, + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, + A89E6CF98559C612AA19E5CE /* settings */, + ); + path = app; + sourceTree = ""; + }; + 1CF2706A6E532F38D6DD625F /* passcode */ = { + isa = PBXGroup; + children = ( + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 201E76134F22499BFD3DF53F /* Buttons */ = { + isa = PBXGroup; + children = ( + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, + ); + path = Buttons; + sourceTree = ""; + }; + 23942EEA65BBA190D901B7D2 /* choma */ = { + isa = PBXGroup; + children = ( + 6C46703C2B4072AEF8703349 /* arm64.h */, + AAAF3E2619E3D32C626EC2FA /* Base64.h */, + A9376E035DE98BB605BE0C76 /* BufferedStream.h */, + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, + ADC09F6065726F4669F88037 /* CodeDirectory.h */, + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, + E497648156C6CAAA87EEE6CB /* DER.h */, + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, + 3C989876DB6E112F7F3C3698 /* Entitlements.h */, + 09A16D0CCA129CD34402ACAB /* Fat.h */, + 791AEB9809EE46375BD53FF9 /* FileStream.h */, + BB016623AE10E3896FEF50AF /* fixup-chains.h */, + F506183C2CFD8D7D0FA1322D /* Host.h */, + 99CF547D66CF02B4B4DFA30C /* MachO.h */, + 3F975F92D7C580260B59024B /* MachOByteOrder.h */, + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, + F742E837A76B006F367ABC15 /* PatchFinder.h */, + B447AC3664839765F3679082 /* Util.h */, + ); + path = choma; + sourceTree = ""; + }; + 48AB90CB037F435485C6047D /* Settings */ = { + isa = PBXGroup; + children = ( + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 4A3D6651E821914BC1DA4474 /* Indicators */ = { + isa = PBXGroup; + children = ( + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, + ); + path = Indicators; + sourceTree = ""; + }; + 4BE43909AB102BC654C3AA36 /* lara */ = { + isa = PBXGroup; + children = ( + 71B66224C5948251B6008EC4 /* Info.plist */, + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, + 785FE68237A73C050C69066D /* lara.swift */, + E6D45AD3A84FDFFB26A63642 /* assets */, + 761E02C29DBA3FA091780A05 /* classes */, + BD4923F18700F649F4B199C9 /* funcs */, + B8439178F75BD677E46A1DE7 /* headers */, + 9FC4F095CD4B29F2EBA790C6 /* kexploit */, + F0B17F0CA82330A26B5CAE4B /* lib */, + BA72AA8D35B0D97633C2BF5E /* licenses */, + EC0774E5B4020C4D885431BC /* other */, + 9D63227FDF3FDE8908661A7D /* PartyUI */, + D70718477881BA82E605FF53 /* views */, + ); + path = lara; + sourceTree = ""; + }; + 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { + isa = PBXGroup; + children = ( + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 039D284F496260AA52986467 /* Foundation.framework */, + 410B1EDE3D870185074F65BC /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 73E8616A7EF5B51A92B29E54 /* Lists */ = { + isa = PBXGroup; + children = ( + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, + ); + path = Lists; + sourceTree = ""; + }; + 761E02C29DBA3FA091780A05 /* classes */ = { + isa = PBXGroup; + children = ( + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, + 7ADF625620559A728F4B333A /* Logger.swift */, + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, + CBFD358E70EC405DE82C3960 /* zipmgr.swift */, + 860A585202C20E00C82C419C /* tweaks */, + ); + path = classes; + sourceTree = ""; + }; + 7814074F0998A8D980C3CBF8 /* other */ = { + isa = PBXGroup; + children = ( + A9BBF565E304760414833AF4 /* respring.swift */, + ); + path = other; + sourceTree = ""; + }; + 7BD2299CAA022F5E87524835 /* Products */ = { + isa = PBXGroup; + children = ( + B1650DE9DA6D35D51EE63DA2 /* Lara.app */, + ); + name = Products; + sourceTree = ""; + }; + 7F048C9DF00CA2EEB9135FFF /* Effects */ = { + isa = PBXGroup; + children = ( + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, + ); + path = Effects; + sourceTree = ""; + }; + 860A585202C20E00C82C419C /* tweaks */ = { + isa = PBXGroup; + children = ( + 4CFE8C17A9569842AF2EDD4E /* darkboard */, + 9CA94EDD3BE9DDBB6B279DCA /* passcode */, + ); + path = tweaks; + sourceTree = ""; + }; + 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { + isa = PBXGroup; + children = ( + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, + ); + path = mobilegestalt; + sourceTree = ""; + }; + 93732F3C530FBFCDA46E1FCE /* Functions */ = { + isa = PBXGroup; + children = ( + 1D1585E8B42B2495142BE67E /* Alertinator.swift */, + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, + 4759F640E231F564F06DB0F5 /* Shareinator.swift */, + ); + path = Functions; + sourceTree = ""; + }; + 94239040D8A11FC1A668FCE4 /* liquidglass */ = { + isa = PBXGroup; + children = ( + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, + ); + path = liquidglass; + sourceTree = ""; + }; + 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { + isa = PBXGroup; + children = ( + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { + isa = PBXGroup; + children = ( + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 9D63227FDF3FDE8908661A7D /* PartyUI */ = { + isa = PBXGroup; + children = ( + 448609047BB8D112B7E99BFA /* PartyUI.swift */, + CCCE9A5AD37D20741B82ADB9 /* App */, + C6CEB364F2625B0EF49D1447 /* UI */, + ); + path = PartyUI; + sourceTree = ""; + }; + 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { + isa = PBXGroup; + children = ( + 0B1831D0D49F9245F54EBDC6 /* compat.h */, + CB0E8E3EC140E01DA032363F /* darksword.h */, + DD123A4DC76BB7C0734B5AE9 /* darksword.m */, + 4A33766163693DFAA30D772A /* decrypt.h */, + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, + 7DC3E2446E97ECC921D3AE94 /* offsets.h */, + EDC9360B2E647660F1BD443F /* offsets.m */, + 617E864CD832D1D3839429F0 /* persistence.h */, + B2BA68871A9D11BCFDC2AE71 /* persistence.m */, + 206327D869325194A5015A1B /* utils.h */, + 5A300D3F6ED3397BE1E6AD87 /* utils.m */, + C6122EC473A3A57510124B02 /* pe */, + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, + ); + path = kexploit; + sourceTree = ""; + }; + A5B06BC43186EA1E4D25299F = { + isa = PBXGroup; + children = ( + 4BE43909AB102BC654C3AA36 /* lara */, + 72729D505A51BDFC8C55A1D9 /* Frameworks */, + 7BD2299CAA022F5E87524835 /* Products */, + ); + sourceTree = ""; + }; + A89E6CF98559C612AA19E5CE /* settings */ = { + isa = PBXGroup; + children = ( + 61F528F680617A48C3CAB181 /* CreditsView.swift */, + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, + 986EBE17846F5764D1456F88 /* SettingsView.swift */, + ); + path = settings; + sourceTree = ""; + }; + B8439178F75BD677E46A1DE7 /* headers */ = { + isa = PBXGroup; + children = ( + B5A1457B7D98C0DDC65ACC3B /* fileport.h */, + EDF19B2325FE621BF70AC862 /* IconServices.h */, + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, + 2DAE2515228311435D9959EB /* MFSLauncher.h */, + 51BF1E07A44069A4B21B39EE /* xpf.h */, + ); + path = headers; + sourceTree = ""; + }; + B96F95013D086604AB0F746C /* fm */ = { + isa = PBXGroup; + children = ( + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, + 73D525CF14505CE9B85FD317 /* FileView.swift */, + 9C010243976A7D404529C206 /* SantanderView.swift */, + ); + path = fm; + sourceTree = ""; + }; + BA72AA8D35B0D97633C2BF5E /* licenses */ = { + isa = PBXGroup; + children = ( + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, + ); + path = licenses; + sourceTree = ""; + }; + BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { + isa = PBXGroup; + children = ( + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, + ); + path = sbcustomizer; + sourceTree = ""; + }; + BD4923F18700F649F4B199C9 /* funcs */ = { + isa = PBXGroup; + children = ( + CD0D193753BA74B811063956 /* fetchkcache.swift */, + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, + 92C2A1D1BCFA40230A63C752 /* helpers.swift */, + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, + F50A3C705DF2F98AC63AA699 /* keepalive.swift */, + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, + ); + path = funcs; + sourceTree = ""; + }; + C6122EC473A3A57510124B02 /* pe */ = { + isa = PBXGroup; + children = ( + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, + 797DFBA07DCC9320399BC99F /* apfs.m */, + 09BE5060F2C9DFD730796B7E /* rc.h */, + 86610E6990066EDFE2B5D96B /* rc.m */, + 3450D579B9EF6D1B24EA44AB /* sbx.h */, + F7BDDFA67F1109816C300F1E /* sbx.m */, + 33FAD74D2D09DFD7CF1985FA /* vfs.h */, + 7A92CE7743387903DDBFFC8C /* vfs.m */, + D714CE75040A9A3A983B36BE /* vnode.h */, + 09E09CADCF84F1D6D51E5F20 /* vnode.m */, + E6A7B0366B3E502209C65E24 /* xpaci.h */, + ); + path = pe; + sourceTree = ""; + }; + C6CEB364F2625B0EF49D1447 /* UI */ = { + isa = PBXGroup; + children = ( + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, + 201E76134F22499BFD3DF53F /* Buttons */, + 7F048C9DF00CA2EEB9135FFF /* Effects */, + 4A3D6651E821914BC1DA4474 /* Indicators */, + 0731B4811AB8A4261C149BD3 /* Inputs */, + 73E8616A7EF5B51A92B29E54 /* Lists */, + 09B6EF0B45C55F479407D990 /* Terminal */, + ); + path = UI; + sourceTree = ""; + }; + CCCE9A5AD37D20741B82ADB9 /* App */ = { + isa = PBXGroup; + children = ( + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, + CED7197ED6E1E06C45D4927C /* Extensions */, + 93732F3C530FBFCDA46E1FCE /* Functions */, + 48AB90CB037F435485C6047D /* Settings */, + F8BF389C000C82BE834B7E80 /* WelcomeSheet */, + ); + path = App; + sourceTree = ""; + }; + CED7197ED6E1E06C45D4927C /* Extensions */ = { + isa = PBXGroup; + children = ( + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + D70718477881BA82E605FF53 /* views */ = { + isa = PBXGroup; + children = ( + 0E9B667B7F6DF2F65554368C /* app */, + B96F95013D086604AB0F746C /* fm */, + 7814074F0998A8D980C3CBF8 /* other */, + 0D159B4E42377C38FDD14E18 /* tweaks */, + ); + path = views; + sourceTree = ""; + }; + E6D45AD3A84FDFFB26A63642 /* assets */ = { + isa = PBXGroup; + children = ( + AE2331E0F7B3D823CA15DF72 /* lara.png */, + ); + path = assets; + sourceTree = ""; + }; + EC0774E5B4020C4D885431BC /* other */ = { + isa = PBXGroup; + children = ( + 48E6FC849E553C68E397984C /* lara.entitlements */, + 68FA57A36233679708C5E468 /* media.xcassets */, + 60E947B3676E84C6A668511C /* VarCleanRules.json */, + ); + path = other; + sourceTree = ""; + }; + F0B17F0CA82330A26B5CAE4B /* lib */ = { + isa = PBXGroup; + children = ( + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, + DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, + 6337EE02AC0706717DFA252A /* libxpf.dylib */, + 23942EEA65BBA190D901B7D2 /* choma */, + ); + path = lib; + sourceTree = ""; + }; + F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { + isa = PBXGroup; + children = ( + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, + ); + path = dirtyZero; + sourceTree = ""; + }; + F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { + isa = PBXGroup; + children = ( + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, + ); + path = WelcomeSheet; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + FD1665B8C8F3A79F013224EE /* Lara */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; + buildPhases = ( + F9DE0523417E74276238FA56 /* Sources */, + 7CE4B9CDA802D229BDFBAFEF /* Resources */, + 77D3CA82B4C410701CD229E2 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Lara; + packageProductDependencies = ( + ); + productName = Lara; + productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + }; + }; + buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = A5B06BC43186EA1E4D25299F; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FD1665B8C8F3A79F013224EE /* Lara */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, + D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F9DE0523417E74276238FA56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, + 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, + 333CD424E2385A8097A3533C /* Logger.swift in Sources */, + AAC093D16E38470615A9725D /* LogsView.swift in Sources */, + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, + 7AEF609084ED052D6C996095 /* offsets.m in Sources */, + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, + E99D712EE78CA8073C49821B /* respring.swift in Sources */, + 495E4514D5AE764363BAF696 /* sbx.m in Sources */, + AFD8AD5FD3F60467492282EF /* thread.m in Sources */, + BC49811360FE90E8EAE827E8 /* utils.m in Sources */, + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, + 4997659E14575C5B7AAACC12 /* vm.m in Sources */, + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3E810AC91C376ED3F7F9E2BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 82AE279FDF9B38FD75536E7A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + B36A0572D1FE8B1BD286BCB7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + EEB3821768474EEF09187DAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B36A0572D1FE8B1BD286BCB7 /* Debug */, + EEB3821768474EEF09187DAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E810AC91C376ED3F7F9E2BA /* Debug */, + 82AE279FDF9B38FD75536E7A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; +} From afdb1d5d3e8c1ea07160a520dcbe81e4291b45d2 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:30:45 +0530 Subject: [PATCH 071/233] Update Info.plist --- lara/Info.plist | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lara/Info.plist b/lara/Info.plist index 7f18d78f0..b8dcef69c 100644 --- a/lara/Info.plist +++ b/lara/Info.plist @@ -6,6 +6,8 @@ audio + CFBundleIdentifier + com.your.app UIFileSharingEnabled From c89f97fe0f1dbe3402db22935d6f7eec3b51f9f9 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:39:52 +0530 Subject: [PATCH 072/233] Update Info.plist --- lara/Info.plist | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lara/Info.plist b/lara/Info.plist index b8dcef69c..a2ac7e1f6 100644 --- a/lara/Info.plist +++ b/lara/Info.plist @@ -7,7 +7,9 @@ audio CFBundleIdentifier - com.your.app + + com.roooot.lara + UIFileSharingEnabled From c01c2c8e45597eeb9b7ea53a69a6583820bac700 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:41:26 +0530 Subject: [PATCH 073/233] Update Info.plist --- lara/Info.plist | 2 -- 1 file changed, 2 deletions(-) diff --git a/lara/Info.plist b/lara/Info.plist index a2ac7e1f6..73fcfba37 100644 --- a/lara/Info.plist +++ b/lara/Info.plist @@ -7,9 +7,7 @@ audio CFBundleIdentifier - com.roooot.lara - UIFileSharingEnabled From f296bcb2a69ee24c2e59ae65240e6b2b7c2392f1 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:26:49 +0530 Subject: [PATCH 074/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index 7a10ea7d6..d09c9d4c6 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -59,6 +59,8 @@ struct TweaksView: View { .disabled(!mgr.sbxready) NavigationLink("Custom Overwrite", destination: CustomView(mgr: mgr)) .disabled(!mgr.vfsready) + NavigationLink("OTA Updates", destination: OTAView(mgr: mgr)) + NavigationLink("Screen Time", destination: ScreenTimeView(mgr: mgr)) } Section(header: HeaderLabel(text: "Broken", icon: "exclamationmark.triangle.fill")) { From 960315101f4457d87f7b3ee8211c3bd2c852dfa8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:29:14 +0530 Subject: [PATCH 075/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index d09c9d4c6..7a10ea7d6 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -59,8 +59,6 @@ struct TweaksView: View { .disabled(!mgr.sbxready) NavigationLink("Custom Overwrite", destination: CustomView(mgr: mgr)) .disabled(!mgr.vfsready) - NavigationLink("OTA Updates", destination: OTAView(mgr: mgr)) - NavigationLink("Screen Time", destination: ScreenTimeView(mgr: mgr)) } Section(header: HeaderLabel(text: "Broken", icon: "exclamationmark.triangle.fill")) { From 484171a95b2fcbcf9d9cbfccb946eae71772019e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:34:05 +0530 Subject: [PATCH 076/233] Update Info.plist --- lara/Info.plist | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lara/Info.plist b/lara/Info.plist index 73fcfba37..6fb54bf22 100644 --- a/lara/Info.plist +++ b/lara/Info.plist @@ -8,6 +8,16 @@ CFBundleIdentifier com.roooot.lara + CFBundleExecutable + Lara + CFBundleName + Lara + CFBundlePackageType + APPL + CFBundleVersion + 2 + CFBundleShortVersionString + 0.2 UIFileSharingEnabled From 3842925ef5a282ef785b96299b01ee609ecd07c5 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:53:01 +0530 Subject: [PATCH 077/233] Delete lara/lib/libmuffinstore.dylib --- lara/lib/libmuffinstore.dylib | Bin 129664 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lara/lib/libmuffinstore.dylib diff --git a/lara/lib/libmuffinstore.dylib b/lara/lib/libmuffinstore.dylib deleted file mode 100644 index e06e8f930610e21ea364f74a30f9e94bf8127ad1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129664 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 From 1d273f1c74706301ad3121bdcbab87072746e5c7 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:53:34 +0530 Subject: [PATCH 078/233] Add files via upload --- lara/lib/libmuffinstore.dylib | Bin 0 -> 89408 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lara/lib/libmuffinstore.dylib diff --git a/lara/lib/libmuffinstore.dylib b/lara/lib/libmuffinstore.dylib new file mode 100644 index 0000000000000000000000000000000000000000..de0f17da8f6ce7acb1ab3a18f9552f4027d79a3a GIT binary patch literal 89408 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 bxZ$^Jj+P9bvhDoryUzTea>c{R#{GW*U2y(} literal 0 HcmV?d00001 From 28ae121bc0f18a8c3e25d4eef0940db473b26dde Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:29:47 +0530 Subject: [PATCH 079/233] Update sbx.h --- lara/kexploit/pe/sbx.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/kexploit/pe/sbx.h b/lara/kexploit/pe/sbx.h index 7956e8c49..58b71bfa0 100644 --- a/lara/kexploit/pe/sbx.h +++ b/lara/kexploit/pe/sbx.h @@ -17,5 +17,6 @@ char *sbx_copytoken(pid_t pid); char *sbx_issue_token(const char *extension_class, const char *path); void sbx_freestr(char *s); int sbx_elevate(void); +uint64_t sbx_ucredbyproc(uint64_t proc) #endif /* sbx_h */ From 187dd4f95675eabd1c3354ad608145f476271878 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:52:24 +0530 Subject: [PATCH 080/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index a0b79d333..31a694113 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -224,6 +224,21 @@ struct ToolsView: View { crashname.isEmpty || !pausedProcesses.contains(crashname) ) + Button("SBX Escape Helper") { + crashname.withCString { cstr in + proc = procbyname(cstr) + } + if (!proc) { + status = "Failed to get proc" + } + let errorcheck = sbx_escape(proc) + if (!errorcheck) { + continue + } else { + status = "Failure! - Steven He" + } + } + .disabled(crashname.isEmpty) } header: { Text("Task Manager") From d810afcbd7b222699e3fbcb29f9a47c404190825 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:52:56 +0530 Subject: [PATCH 081/233] Update sbx.h --- lara/kexploit/pe/sbx.h | 1 - 1 file changed, 1 deletion(-) diff --git a/lara/kexploit/pe/sbx.h b/lara/kexploit/pe/sbx.h index 58b71bfa0..7956e8c49 100644 --- a/lara/kexploit/pe/sbx.h +++ b/lara/kexploit/pe/sbx.h @@ -17,6 +17,5 @@ char *sbx_copytoken(pid_t pid); char *sbx_issue_token(const char *extension_class, const char *path); void sbx_freestr(char *s); int sbx_elevate(void); -uint64_t sbx_ucredbyproc(uint64_t proc) #endif /* sbx_h */ From 8e974780cbed83645d0e4c8de6105873bb680c96 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:57:34 +0530 Subject: [PATCH 082/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 31a694113..46d731d55 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -226,12 +226,12 @@ struct ToolsView: View { ) Button("SBX Escape Helper") { crashname.withCString { cstr in - proc = procbyname(cstr) + proc_sbx = procbyname(cstr) } if (!proc) { status = "Failed to get proc" } - let errorcheck = sbx_escape(proc) + let errorcheck = sbx_escape(proc_sbx) if (!errorcheck) { continue } else { From a06f59546e1a56ceebee1ae564528d78b8bc1ed6 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 18:01:21 +0530 Subject: [PATCH 083/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 46d731d55..6f00e9f5d 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -26,6 +26,7 @@ struct ToolsView: View { @State private var status: String? @State private var crashname: String = "SpringBoard" @State private var pausedProcesses: Set = [] + @State private var proc_sbx: UInt64 = 0 private enum tokenclass: String, CaseIterable, Identifiable { case read = "com.apple.app-sandbox.read" From 873f1f03ce357476891bc79b0c05b858410b133b Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 18:05:21 +0530 Subject: [PATCH 084/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 6f00e9f5d..39119fb07 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -229,7 +229,7 @@ struct ToolsView: View { crashname.withCString { cstr in proc_sbx = procbyname(cstr) } - if (!proc) { + if (!proc_sbx) { status = "Failed to get proc" } let errorcheck = sbx_escape(proc_sbx) From 415b49dc3fd7241fb12e5bb6701ad29ca61a1158 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 18:07:13 +0530 Subject: [PATCH 085/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 39119fb07..3567aad33 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -229,11 +229,11 @@ struct ToolsView: View { crashname.withCString { cstr in proc_sbx = procbyname(cstr) } - if (!proc_sbx) { + if (proc_sbx == 0) { status = "Failed to get proc" } let errorcheck = sbx_escape(proc_sbx) - if (!errorcheck) { + if (errorcheck == 0) { continue } else { status = "Failure! - Steven He" From 91834b73775ea43b119addaf282be8fc321cb8f1 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 18:09:53 +0530 Subject: [PATCH 086/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 3567aad33..a6ce61286 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -234,7 +234,7 @@ struct ToolsView: View { } let errorcheck = sbx_escape(proc_sbx) if (errorcheck == 0) { - continue + return } else { status = "Failure! - Steven He" } From 44095424ee06c282de5f2037b7020317a2436acb Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:25:23 +0530 Subject: [PATCH 087/233] Delete lara.xcodeproj directory --- lara.xcodeproj/project.pbxproj | 1206 ----------------- .../contents.xcworkspacedata | 7 - 2 files changed, 1213 deletions(-) delete mode 100644 lara.xcodeproj/project.pbxproj delete mode 100644 lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj deleted file mode 100644 index 5b9c53b77..000000000 --- a/lara.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1206 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; - 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; - 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; - 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31508EF562095117FB765FFF /* DowngradeView.swift */; }; - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; - 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; - AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; - AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; - BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */ = {isa = PBXBuildFile; fileRef = DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */; }; - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; - E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; - 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; - 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; - 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; - 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; - 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; - 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; - 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; - 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; - 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; - 2DAE2515228311435D9959EB /* MFSLauncher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MFSLauncher.h; sourceTree = ""; }; - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; - 31508EF562095117FB765FFF /* DowngradeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DowngradeView.swift; sourceTree = ""; }; - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; - 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; - 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; - 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; - 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; - 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; - 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; - 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; - 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; - 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; - 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; - 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; - 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; - 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; - 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; - 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; - 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; - 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; - 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; - 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; - 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; - 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; - 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; - 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; - 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; - 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; - 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; - 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; - 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; - 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; - 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; - 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; - 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; - 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; - 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; - A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; - A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; - AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; - AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; - AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; - ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; - AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; - B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; - B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; - B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; - B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; - BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; - CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; - CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; - CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; - D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; - D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; - D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; - DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmuffinstore.dylib; sourceTree = ""; }; - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; - DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; - E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; - E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; - E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; - E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; - EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; - EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; - F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; - F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; - F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; - F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; - F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 77D3CA82B4C410701CD229E2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0731B4811AB8A4261C149BD3 /* Inputs */ = { - isa = PBXGroup; - children = ( - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, - ); - path = Inputs; - sourceTree = ""; - }; - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { - isa = PBXGroup; - children = ( - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, - E4F25FF1C3F48BDC5E6BB728 /* exc.m */, - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, - 2329A0992D4982D4E144AB75 /* pac.h */, - 7716BA871D7E897964A49CBD /* pac.m */, - E39629D147580074F13782D6 /* privateapi.h */, - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, - D2ED109B18B57340D5F23066 /* RemoteCall.m */, - 47A521EB489F34847F77161C /* thread.h */, - 69CB9CC7CA7C437D5204AD77 /* thread.m */, - 6FD2D7416B6AA7CE5E184223 /* vm.h */, - 2046AE855EEB1C6D361886E0 /* vm.m */, - ); - path = TaskRop; - sourceTree = ""; - }; - 096D912C986A1ECDD4AE9C57 /* broken */ = { - isa = PBXGroup; - children = ( - DF63A96A2904C5BAA9C6E491 /* CCView.swift */, - 97E7B95F214CEA3C04F0AC58 /* darkboard */, - ); - path = broken; - sourceTree = ""; - }; - 09B6EF0B45C55F479407D990 /* Terminal */ = { - isa = PBXGroup; - children = ( - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, - ); - path = Terminal; - sourceTree = ""; - }; - 0D159B4E42377C38FDD14E18 /* tweaks */ = { - isa = PBXGroup; - children = ( - D7767AE9E778CDC4652EE1AA /* AppsView.swift */, - 87B5A7075908DD63D2DB887E /* CardView.swift */, - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, - AB6983282C48A1F9D8916495 /* DecryptView.swift */, - 31508EF562095117FB765FFF /* DowngradeView.swift */, - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, - F2807342CC8396EA700E7626 /* JitView.swift */, - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, - 096D912C986A1ECDD4AE9C57 /* broken */, - F1B195CE1E819A5C7256ED05 /* dirtyZero */, - 94239040D8A11FC1A668FCE4 /* liquidglass */, - 8855FA399F2E0D870F89E63A /* mobilegestalt */, - 1CF2706A6E532F38D6DD625F /* passcode */, - BCB9166DBD1D0FB1A634265E /* sbcustomizer */, - ); - path = tweaks; - sourceTree = ""; - }; - 0E9B667B7F6DF2F65554368C /* app */ = { - isa = PBXGroup; - children = ( - AAF0DB241A670081991552A3 /* ContentView.swift */, - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, - A89E6CF98559C612AA19E5CE /* settings */, - ); - path = app; - sourceTree = ""; - }; - 1CF2706A6E532F38D6DD625F /* passcode */ = { - isa = PBXGroup; - children = ( - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 201E76134F22499BFD3DF53F /* Buttons */ = { - isa = PBXGroup; - children = ( - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 23942EEA65BBA190D901B7D2 /* choma */ = { - isa = PBXGroup; - children = ( - 6C46703C2B4072AEF8703349 /* arm64.h */, - AAAF3E2619E3D32C626EC2FA /* Base64.h */, - A9376E035DE98BB605BE0C76 /* BufferedStream.h */, - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, - ADC09F6065726F4669F88037 /* CodeDirectory.h */, - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, - E497648156C6CAAA87EEE6CB /* DER.h */, - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, - 3C989876DB6E112F7F3C3698 /* Entitlements.h */, - 09A16D0CCA129CD34402ACAB /* Fat.h */, - 791AEB9809EE46375BD53FF9 /* FileStream.h */, - BB016623AE10E3896FEF50AF /* fixup-chains.h */, - F506183C2CFD8D7D0FA1322D /* Host.h */, - 99CF547D66CF02B4B4DFA30C /* MachO.h */, - 3F975F92D7C580260B59024B /* MachOByteOrder.h */, - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, - F742E837A76B006F367ABC15 /* PatchFinder.h */, - B447AC3664839765F3679082 /* Util.h */, - ); - path = choma; - sourceTree = ""; - }; - 48AB90CB037F435485C6047D /* Settings */ = { - isa = PBXGroup; - children = ( - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 4A3D6651E821914BC1DA4474 /* Indicators */ = { - isa = PBXGroup; - children = ( - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, - ); - path = Indicators; - sourceTree = ""; - }; - 4BE43909AB102BC654C3AA36 /* lara */ = { - isa = PBXGroup; - children = ( - 71B66224C5948251B6008EC4 /* Info.plist */, - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, - 785FE68237A73C050C69066D /* lara.swift */, - E6D45AD3A84FDFFB26A63642 /* assets */, - 761E02C29DBA3FA091780A05 /* classes */, - BD4923F18700F649F4B199C9 /* funcs */, - B8439178F75BD677E46A1DE7 /* headers */, - 9FC4F095CD4B29F2EBA790C6 /* kexploit */, - F0B17F0CA82330A26B5CAE4B /* lib */, - BA72AA8D35B0D97633C2BF5E /* licenses */, - EC0774E5B4020C4D885431BC /* other */, - 9D63227FDF3FDE8908661A7D /* PartyUI */, - D70718477881BA82E605FF53 /* views */, - ); - path = lara; - sourceTree = ""; - }; - 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { - isa = PBXGroup; - children = ( - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 039D284F496260AA52986467 /* Foundation.framework */, - 410B1EDE3D870185074F65BC /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 73E8616A7EF5B51A92B29E54 /* Lists */ = { - isa = PBXGroup; - children = ( - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, - ); - path = Lists; - sourceTree = ""; - }; - 761E02C29DBA3FA091780A05 /* classes */ = { - isa = PBXGroup; - children = ( - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, - 7ADF625620559A728F4B333A /* Logger.swift */, - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, - CBFD358E70EC405DE82C3960 /* zipmgr.swift */, - 860A585202C20E00C82C419C /* tweaks */, - ); - path = classes; - sourceTree = ""; - }; - 7814074F0998A8D980C3CBF8 /* other */ = { - isa = PBXGroup; - children = ( - A9BBF565E304760414833AF4 /* respring.swift */, - ); - path = other; - sourceTree = ""; - }; - 7BD2299CAA022F5E87524835 /* Products */ = { - isa = PBXGroup; - children = ( - B1650DE9DA6D35D51EE63DA2 /* Lara.app */, - ); - name = Products; - sourceTree = ""; - }; - 7F048C9DF00CA2EEB9135FFF /* Effects */ = { - isa = PBXGroup; - children = ( - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, - ); - path = Effects; - sourceTree = ""; - }; - 860A585202C20E00C82C419C /* tweaks */ = { - isa = PBXGroup; - children = ( - 4CFE8C17A9569842AF2EDD4E /* darkboard */, - 9CA94EDD3BE9DDBB6B279DCA /* passcode */, - ); - path = tweaks; - sourceTree = ""; - }; - 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { - isa = PBXGroup; - children = ( - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, - ); - path = mobilegestalt; - sourceTree = ""; - }; - 93732F3C530FBFCDA46E1FCE /* Functions */ = { - isa = PBXGroup; - children = ( - 1D1585E8B42B2495142BE67E /* Alertinator.swift */, - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, - 4759F640E231F564F06DB0F5 /* Shareinator.swift */, - ); - path = Functions; - sourceTree = ""; - }; - 94239040D8A11FC1A668FCE4 /* liquidglass */ = { - isa = PBXGroup; - children = ( - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, - ); - path = liquidglass; - sourceTree = ""; - }; - 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { - isa = PBXGroup; - children = ( - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { - isa = PBXGroup; - children = ( - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 9D63227FDF3FDE8908661A7D /* PartyUI */ = { - isa = PBXGroup; - children = ( - 448609047BB8D112B7E99BFA /* PartyUI.swift */, - CCCE9A5AD37D20741B82ADB9 /* App */, - C6CEB364F2625B0EF49D1447 /* UI */, - ); - path = PartyUI; - sourceTree = ""; - }; - 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { - isa = PBXGroup; - children = ( - 0B1831D0D49F9245F54EBDC6 /* compat.h */, - CB0E8E3EC140E01DA032363F /* darksword.h */, - DD123A4DC76BB7C0734B5AE9 /* darksword.m */, - 4A33766163693DFAA30D772A /* decrypt.h */, - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, - 7DC3E2446E97ECC921D3AE94 /* offsets.h */, - EDC9360B2E647660F1BD443F /* offsets.m */, - 617E864CD832D1D3839429F0 /* persistence.h */, - B2BA68871A9D11BCFDC2AE71 /* persistence.m */, - 206327D869325194A5015A1B /* utils.h */, - 5A300D3F6ED3397BE1E6AD87 /* utils.m */, - C6122EC473A3A57510124B02 /* pe */, - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, - ); - path = kexploit; - sourceTree = ""; - }; - A5B06BC43186EA1E4D25299F = { - isa = PBXGroup; - children = ( - 4BE43909AB102BC654C3AA36 /* lara */, - 72729D505A51BDFC8C55A1D9 /* Frameworks */, - 7BD2299CAA022F5E87524835 /* Products */, - ); - sourceTree = ""; - }; - A89E6CF98559C612AA19E5CE /* settings */ = { - isa = PBXGroup; - children = ( - 61F528F680617A48C3CAB181 /* CreditsView.swift */, - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, - 986EBE17846F5764D1456F88 /* SettingsView.swift */, - ); - path = settings; - sourceTree = ""; - }; - B8439178F75BD677E46A1DE7 /* headers */ = { - isa = PBXGroup; - children = ( - B5A1457B7D98C0DDC65ACC3B /* fileport.h */, - EDF19B2325FE621BF70AC862 /* IconServices.h */, - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, - 2DAE2515228311435D9959EB /* MFSLauncher.h */, - 51BF1E07A44069A4B21B39EE /* xpf.h */, - ); - path = headers; - sourceTree = ""; - }; - B96F95013D086604AB0F746C /* fm */ = { - isa = PBXGroup; - children = ( - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, - 73D525CF14505CE9B85FD317 /* FileView.swift */, - 9C010243976A7D404529C206 /* SantanderView.swift */, - ); - path = fm; - sourceTree = ""; - }; - BA72AA8D35B0D97633C2BF5E /* licenses */ = { - isa = PBXGroup; - children = ( - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, - ); - path = licenses; - sourceTree = ""; - }; - BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { - isa = PBXGroup; - children = ( - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, - ); - path = sbcustomizer; - sourceTree = ""; - }; - BD4923F18700F649F4B199C9 /* funcs */ = { - isa = PBXGroup; - children = ( - CD0D193753BA74B811063956 /* fetchkcache.swift */, - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, - 92C2A1D1BCFA40230A63C752 /* helpers.swift */, - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, - F50A3C705DF2F98AC63AA699 /* keepalive.swift */, - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, - ); - path = funcs; - sourceTree = ""; - }; - C6122EC473A3A57510124B02 /* pe */ = { - isa = PBXGroup; - children = ( - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, - 797DFBA07DCC9320399BC99F /* apfs.m */, - 09BE5060F2C9DFD730796B7E /* rc.h */, - 86610E6990066EDFE2B5D96B /* rc.m */, - 3450D579B9EF6D1B24EA44AB /* sbx.h */, - F7BDDFA67F1109816C300F1E /* sbx.m */, - 33FAD74D2D09DFD7CF1985FA /* vfs.h */, - 7A92CE7743387903DDBFFC8C /* vfs.m */, - D714CE75040A9A3A983B36BE /* vnode.h */, - 09E09CADCF84F1D6D51E5F20 /* vnode.m */, - E6A7B0366B3E502209C65E24 /* xpaci.h */, - ); - path = pe; - sourceTree = ""; - }; - C6CEB364F2625B0EF49D1447 /* UI */ = { - isa = PBXGroup; - children = ( - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, - 201E76134F22499BFD3DF53F /* Buttons */, - 7F048C9DF00CA2EEB9135FFF /* Effects */, - 4A3D6651E821914BC1DA4474 /* Indicators */, - 0731B4811AB8A4261C149BD3 /* Inputs */, - 73E8616A7EF5B51A92B29E54 /* Lists */, - 09B6EF0B45C55F479407D990 /* Terminal */, - ); - path = UI; - sourceTree = ""; - }; - CCCE9A5AD37D20741B82ADB9 /* App */ = { - isa = PBXGroup; - children = ( - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, - CED7197ED6E1E06C45D4927C /* Extensions */, - 93732F3C530FBFCDA46E1FCE /* Functions */, - 48AB90CB037F435485C6047D /* Settings */, - F8BF389C000C82BE834B7E80 /* WelcomeSheet */, - ); - path = App; - sourceTree = ""; - }; - CED7197ED6E1E06C45D4927C /* Extensions */ = { - isa = PBXGroup; - children = ( - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - D70718477881BA82E605FF53 /* views */ = { - isa = PBXGroup; - children = ( - 0E9B667B7F6DF2F65554368C /* app */, - B96F95013D086604AB0F746C /* fm */, - 7814074F0998A8D980C3CBF8 /* other */, - 0D159B4E42377C38FDD14E18 /* tweaks */, - ); - path = views; - sourceTree = ""; - }; - E6D45AD3A84FDFFB26A63642 /* assets */ = { - isa = PBXGroup; - children = ( - AE2331E0F7B3D823CA15DF72 /* lara.png */, - ); - path = assets; - sourceTree = ""; - }; - EC0774E5B4020C4D885431BC /* other */ = { - isa = PBXGroup; - children = ( - 48E6FC849E553C68E397984C /* lara.entitlements */, - 68FA57A36233679708C5E468 /* media.xcassets */, - 60E947B3676E84C6A668511C /* VarCleanRules.json */, - ); - path = other; - sourceTree = ""; - }; - F0B17F0CA82330A26B5CAE4B /* lib */ = { - isa = PBXGroup; - children = ( - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, - DD7F3DC66742B927E18E4F84 /* libmuffinstore.dylib */, - 6337EE02AC0706717DFA252A /* libxpf.dylib */, - 23942EEA65BBA190D901B7D2 /* choma */, - ); - path = lib; - sourceTree = ""; - }; - F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { - isa = PBXGroup; - children = ( - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, - ); - path = dirtyZero; - sourceTree = ""; - }; - F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { - isa = PBXGroup; - children = ( - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, - ); - path = WelcomeSheet; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FD1665B8C8F3A79F013224EE /* Lara */ = { - isa = PBXNativeTarget; - buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; - buildPhases = ( - F9DE0523417E74276238FA56 /* Sources */, - 7CE4B9CDA802D229BDFBAFEF /* Resources */, - 77D3CA82B4C410701CD229E2 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Lara; - packageProductDependencies = ( - ); - productName = Lara; - productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - TargetAttributes = { - }; - }; - buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = A5B06BC43186EA1E4D25299F; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FD1665B8C8F3A79F013224EE /* Lara */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, - D176CC232E82A283A7DB6095 /* libmuffinstore.dylib in Resources */, - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F9DE0523417E74276238FA56 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, - 5965140CE8091F322A58EE80 /* DowngradeView.swift in Sources */, - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, - 333CD424E2385A8097A3533C /* Logger.swift in Sources */, - AAC093D16E38470615A9725D /* LogsView.swift in Sources */, - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, - 7AEF609084ED052D6C996095 /* offsets.m in Sources */, - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, - E99D712EE78CA8073C49821B /* respring.swift in Sources */, - 495E4514D5AE764363BAF696 /* sbx.m in Sources */, - AFD8AD5FD3F60467492282EF /* thread.m in Sources */, - BC49811360FE90E8EAE827E8 /* utils.m in Sources */, - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, - 4997659E14575C5B7AAACC12 /* vm.m in Sources */, - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3E810AC91C376ED3F7F9E2BA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 82AE279FDF9B38FD75536E7A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - B36A0572D1FE8B1BD286BCB7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - EEB3821768474EEF09187DAB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B36A0572D1FE8B1BD286BCB7 /* Debug */, - EEB3821768474EEF09187DAB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3E810AC91C376ED3F7F9E2BA /* Debug */, - 82AE279FDF9B38FD75536E7A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; -} diff --git a/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a62..000000000 --- a/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - From 98dc57f6bbe95e71cb6454c5f43fa12c2ba61f82 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:26:05 +0530 Subject: [PATCH 088/233] Rename project.pbxproj to project.pbxproj --- {lar.xcodeproj => lara.xcodeproj}/project.pbxproj | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {lar.xcodeproj => lara.xcodeproj}/project.pbxproj (100%) diff --git a/lar.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj similarity index 100% rename from lar.xcodeproj/project.pbxproj rename to lara.xcodeproj/project.pbxproj From 6337f70bfadfacc91b646b9444727d65315c1855 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:26:32 +0530 Subject: [PATCH 089/233] Rename lar.xcodeproj/.gitignore to lara.xcodeproj.gitignore --- lar.xcodeproj/.gitignore => lara.xcodeproj.gitignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lar.xcodeproj/.gitignore => lara.xcodeproj.gitignore (100%) diff --git a/lar.xcodeproj/.gitignore b/lara.xcodeproj.gitignore similarity index 100% rename from lar.xcodeproj/.gitignore rename to lara.xcodeproj.gitignore From 33c3c21de5d728d5ec99e4541c8d746dfa81a6ca Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:26:45 +0530 Subject: [PATCH 090/233] Rename lara.xcodeproj.gitignore to lara.xcodeproj/.gitignore --- lara.xcodeproj.gitignore => lara.xcodeproj/.gitignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lara.xcodeproj.gitignore => lara.xcodeproj/.gitignore (100%) diff --git a/lara.xcodeproj.gitignore b/lara.xcodeproj/.gitignore similarity index 100% rename from lara.xcodeproj.gitignore rename to lara.xcodeproj/.gitignore From bf9c0446777e51e2b1b58d9949cfb3e109920ca4 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:27:42 +0530 Subject: [PATCH 091/233] Rename contents.xcworkspacedata to contents.xcworkspacedata --- .../project.xcworkspace/contents.xcworkspacedata | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {lar.xcodeproj => lara.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) diff --git a/lar.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from lar.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata From e981ff33db42a04d193ea96cd2e0ffcdceb99e6f Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:28:07 +0530 Subject: [PATCH 092/233] Delete lara/lib/libmuffinstore.dylib --- lara/lib/libmuffinstore.dylib | Bin 89408 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lara/lib/libmuffinstore.dylib diff --git a/lara/lib/libmuffinstore.dylib b/lara/lib/libmuffinstore.dylib deleted file mode 100644 index de0f17da8f6ce7acb1ab3a18f9552f4027d79a3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89408 zcmeHw33yw@)%Hm8B4;(&PMigz>et*z-`T7%;l<{ zzq*TZ_n4K-CmY3E0%ng;fTrJ0yH*1S%d5RQ3c@0Wg)Q8CV zt@F7JZ&;N`|3qLY78}$m&+9w#Y>X( zdqPyS%lZuY#Bq|mc^VH?>en2W{zEU%F6C+KjPi-{5=8N2^1AIi-i1+JLcwWPda@%++q;qBn(WKFxQEA#e~M4q^bvJgtKxws2;<@R8+ zJKR|0^VT-C)Yp5lwFiRAbWbY^P?NFQh{yQcKz=S3%jq(oyU@h;flt_y%!TD9wiI;k zG80=3V;_k0a@=%jx=@@#er^F3rnm|#O#Sjlp+5Ctp6CoR~LTJII*i@o6lm3f|I z(WS>BBl8!SYWwlzky;Ca?&d~sT_{0pVsWxu#-7VaqbCWdQiAKfb&6iDRxIQ;LT_#S z13hn~lPi#M2K@EjhL)gy0{h`=xYQ){LuGX7ab6yTOA9LrX0jaaQVA;lzN1Je<#Lkk zM69;-@~dd2V@6k$CxG8u$fXOM<|3`(WbsVKGVZ%B#L%ZZ5?96~w4rqug`Xgtr^-C} z3A)Hl5r6Ya6T6R`f^iuL7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$ z7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$ z7zh{$7zq5YM&Q!%mRF80`(wwkHdDtjCyU@SBb(VD9I;Oau`Qojn9B1{IAR|nf6$Vr zZW+S197TB)>0>C1TJqInZ6zH?m+jfv16ljBPkv@OJMysYhPi)zcM!`b`8|8t{-etv zzs=lnY!i!Ua;+1cvFLc#L4BBRa>Sw*7I_OYd7n=@Vs8v)TaH;yQvZcA>XXVXw>V-8 zL9JKXV;LrUjC9Im?Jt#~F6r_*>KUx#y;56_5sv)DJ+m+ez#i}gu zv!Rc*e$Q(K9jUL_r}4ITodX|Hg|khXX%Jq3e`s0*CEJ^T1Kd5VD%tjiS&iwaa?M$z$;YG ziR)UZJ_=rRj6GIO6ue4KhpWpu9i~=rTA(iBG+$lBX`VV-&H>dYn-lW$BVVALFteka zFh16{5H_>`wp0e2n&0tNLup5k(;U&SfwQ$WU@`6gVwDMPum;*J9mims+B(R8p61V_ zo(9=8?|+kc&P1N(tnNfRw;OHF^ma2w>O4{E9L2m2Lz-;jK2WmHlcg*w8;Z2BgS@yM z+{?!|OtpfSY-{=Io#1m@yNz_sS1XaP8Aj_bUtNVZRCcV*iSapr3D%y)l!V161BE|G z^f#Yj+_qeM?4JXLyi~sAy?)y=mF3%Gf1|d*C{^2+W!o=S{Q>&*`k|=BtWy6kqP^zR zwn*$>LK)2ujq9hf?0J;Y{7~5+k*4)UYqG-9=0xzp*q2tL9rb(QbQU=uX?)kgMO{PfyRDgHPGln-7atvd>qzRiOeepOud|S^ zv%oGhFc+B^a~5n4{%)@+BJ?+_H_Cp<9*Qu&&cSRBpZ6%)M4qb3F>gja&G!y_#Ssh3 z@@r8Z_Y={Ah+o>^6(}d)KsI;~>uxi!A^ZCg%E^{#Ee4Q|T867lpkjRuL!ZOc6;gHx zXOePxd-7BsDJ9O7F6glLajoY%Q)bGy%wsQ zWIu#2wdK5b9kBu_lj?tk@~-hI{8)B^9~&tA824YFj^X}mA@sGnt&ts!p&SHlk zhjc5DSbPui#XO8ury)&qP!FAmPT~0x>LgAJ)d`#qSI2QWOto>EubvEw4?O1!Jn|!A zUnl^M1?oSztUR>tihTmUBv1X< z0E~SBi`i+Ox7lL{ApcHYW{=fljC_7Rz}{KJVu$NYz%pO8V6B*Fe30`*DK>C^;0A^#FyW{=^sx?(PB3b{|+ zA?Laie6r;mplj63c9GrF9(JSTKLS44>8rp)tc4MgpGn^R;E{d0kUt1YYh)18wDr)A8U5PSZ~V~bK;mL=fot&nwKy>$Smdk3|BAbG+%A!v_Sn4 zr+F%k|5)2n*v%5y&tlloBG_1YN6#ip+{P09eI9dkjFRJPMO&ITG4A2q?;OJ1evjL4 z>bTN1AbB4lxtUUKU83A*uiS}gQ(Z(+lqSuCp97tHD$=p@#Bo_adc-`TeWXY~4(u{pxGY%+Ho9m8T{ zAW!U71?p%y_V`*F&mu49z*a`tV<&(Y9d3^eC5m-7nA3c9An38SGUz@ZbBH)*FZOQf zAM|@B^~2ZW$BtO-5J$%Z)?RrjwZ}Tl1l9Hm_K8E<^T-ITRf<{8koCTXJ^~AhK?_vi zxus^Lh$Y5D9@YJn)(d!tNq5*ppM6yKobk7uWP8x!ir3Me;*?j3qK{ND!VCS%KzvbX zkL{H*o*;UhIAgbz(c?7Xc?U6GTLzvl$PQ@jn$?HU{yVQz&3EoOGrmqgvzR+}Ko-f3 z&okEQ`6#3L{W($0?@ge`+Db96@cGW(IqlhG-v3P?1M4&s>op5=o{c(q7HZ3Z-%ofR zy2&21n&78lV`TR?Nq>7CY{>36KH9Q`gt{|lf;8T6Uo@l62sw<$S}t_8N5-PK_}#lAN(LiYC#jT3z< zQZJe#t$(teDwOlKpF3i6k-mITd*w6IR^f{)v$;>rSI+>Ywin2;oQJw(rvd3#mLgC4 zA<2FKY4XQsb6TJlgHj*Xm?PGO_<;I-17)PwJWy`$Ls^XEJEi=ys4e_0#m`jl49epf z=~>xsCa8#E3eabv`mQWL6_m$3*vF`!-^uccpkG5j>f;pIhYe-lpzK`P$7tj!wjukW zJ_|ufH@12G$x+KFz8=Y65bp#~zWrLrz6x4IW1JXhz_*J-Xof4j~ymD6tY1>7#G>i zXVQ;+fHL7nL>#X9jzi#+?|6mU0-u*b$qum(9+{e8hht5w`nWa-A9xAc^78|WX}|W| zM!tInWFmC*9s$w1Ez;i@LMSRjOFNQ86wj|pg zrrwM^*<2V@%;_*yL7L0raeIM!lN{eV*_QJVw@;QbsXo~voj>$DKUiDw`H|-j+$P)u zMJ%*ui1e{If2gu_(3u12Hd)&GQpl%yAp1TSX|lzQ(1~a<&ks}Qa$2Cy0oBLeTHGzL z$d8N%CUrFwvy(6E8>jQSx_$0*8Ta%!GcX^6;WvlCe-4G;&c!~H(I;LXiT+7fii3A< zGVSjVkNYemyEQzvZyNaxoyTxIv^{4>A;;ss$=~C#;ZDnFoPXu17RcVdX>_+{zqdjD zquErprn?ETD4!R^>yK|5(S675ru|yHUO<>&j=x4-vfb^Q&hI{gG|jh&*G>J;+nEXT z_B|29_R-TkQq0?3^0@-f614u`fb8hvgmreiDYBWDVIP8?d>(2>^LYJXImdqmpKNFc zbnT>P9jwj%u!G*cwv@Qm_l!zd>jT7EhrK)uxld1WbVP4AcYJ{TRKxB7$Kw4U4mpqdfi6GgG++G*rv>VDoaU+5fF5gG z4x3sA+p55xycBUmMm!cw^hXqLPnDSc80~021)ja}HsWdSf8+i{XU|R9$#EOWt&(x*46j$(e z9gbMGY*T>cHPMaz=F3Bt4z4f71cyXSa3$){`nG^ld?NhY z$yi@>7Bqs#zx3?-FX+POXR|gpqRu_&i~4*Ye6rJbIUS}R0u^VC1&}G84@A6BpuWZH zuD^UYED+%9|`&d3pG=H572_`J!8B?g*1 zde=FNtb&gESOU*<{XCyao5Qo5STAG5o)jI!!VB8SljVN0>h9W*xB*ji8#Cx~ardy(&i zK4Kg;j6>MTR$2cCpd#K7fA`pdJjFsZcUs*Qm{YRV1>jMC^NGSQJ9$1|EdfpSoSf(z z$zF<4m-b%`*QdDbJoR$u^-Gyf<-aCNJLz^k20xtqHv{r%v*fy*f_`Xj*2}q?fIQ(c zPV#NY)3{#%pVl^wZz#%We1kc~^FL_KwT_NMSaXSI_}#8QCH+nBZ0WQATWom8tdur< zCwyD74V(9WFg~lP+m#Jmtk|dUyxKMZXDw#LJ~~^Dk_}LNHJ01*N{o^0<}Jvjd07Qs zlpTa%S9c7F9JwH)<7(J%7xr8}*U_<&!;nd~ z8ly3w&&NT9t%~Oq3*knnd-(_ESfC@XO zzJ{q?$WveXb%8%Ta^1Fq3cH~C!#O_fd|l+l*M*1|hO3v6EXcf+(*pH}oaU)*pvT%4 zVLr++FAEVjEa>=Pd|6Y^UUANBwIc4p-vQyz^R@J~njP)6;4C5s&;A3@ZXntZf*hPb zw++F(S|Z&zL&JH8O889y=2p2c@7y%9+XS1oWw1E{_i@}u%*NUx-_-ecM-1~E!}q8j z*-|^6pBYp9PV;dA^d%dhI@r^=4=9toYVgRGh{yYLPk;_=*U|B&4xT?SKJppbi*V+F^U}RIFV)3I zF<{h%XO^UXqZ1+&-_uy8Kwp|~QDn~pf2s>3mLw0Hq#mVAcNwP;p%nZ(-{IU z&vC{M@$wPsl_;n4hl7@p`1|%~bvNb*80>RIC(&BmS64F`b2LiDH??l*HnCm2{a`2X zFI1nBeIA7@iZgiqsHji;JJE(>gDCjC-3iXve&|OSyf52)jd+*yC??rt;(GvM9bV_} zsMB>jUvK-8p4*4>wZ4x(x68i=@U^}NXXN6!eV>(|xmr3tKa|lC#orfM}sb?V!@$_9dTX9LKg0>y)D{Kg)n!e6h*`JH+{98_uhp;*65^6+T}zQzEs% zJB&Sn_T%599gUS^Ti}fG^$y&xK{?r;i~*8y70*ZlSNV*Db+T`&d#L<-5T3i~@BMd~ zIvU|~x-buTA0)B?a%p{1-*i3<|5kYze&=1pTHC;*nCl0e4pY}~TA+R(^jO<`jHwiB z3+E`9e>%gaF~MKS_fSlDZnl8m_ne;AJDtxig$%9V4`Dakt=zZ3ey6~0@%J=QHe1-V zDC?$vfkhc8VU&+LV=~w$3(T0~Vd@abBOKy3 zjD6)v3;II*W8r<~tNG%Y8F+A?hV@(!!I#qJ3!51(*Z5Rmm9IVn-JwIjyuIMj7(OQX z!1W)XiE&l83-hHpm$hc@RaY@OS(hNP|$-#_O0eDzAu{?-)5w_?sujpWK$HR<^Y^K^~0-%BBfaC~0k+J-!hrB(7bATM+k zG0Shcz2W>1<%B~Wr^o*r(DyC;+-aZn{Hu1e#>Q^?yW9b+X_{wV#;n(Q6YC&v0tOzG zY3IB8SouLl4bAIFP0>arsl7u`du4P}+1qJvXz60~k+59ctSt_d4r^ zSMBaJTdzBSF_p9%*SaQ+n>og z_oG~_`8@THvX8q_Mt#t}SkAEoxY6$z(sq_9-W?lrpy^ z$n20Zf1V)oFzS&{xJt^rf>YQZaHsW4b9AXJ)8>i4+oX$K>&t7YcTbE* z%^6(MJtb$}Ycv;eo7Uk!4EV=+(%$txf@~!Zf2S#uI2Xu%4uQgliC8d7HkqgXTjDzi zJk9QpnZ!J4cEH!GPLIPT>6hW(G`~#!T9C(&j^$ID{G!H-`)n$MkNyVj`@=5YPWtgr zp$jjA+#2{;^6l~Q>vVcw%1m7UV(pvwb0(Mb6K8BpCcD1`=Z8F>vtaiaQ^C5WW>!r; zNE@^EUY{M~VE9`Ce{Oi-%*c`PPrP~1lB<#)8#LXdj6whIseXnr{Gv#*9NyPp>MMWU z^QhBbU&n2G0=3Os7ybRMBlS9xthI>A`rGfsyDIdYE#CQ>Lh~Y@wdwEKT(5}41Q_uA zP0rXt`uozkxm8!6TzGop$?SCOgHsP+eNbOBG43w>U6{xG3D3rMoIlTn9vriFiJ9Zv zKA4@NVTL}e$9f*({b_T8_B=1~d=5B0tIdDR*Ume(Hb>dl= zw%7806ENn{MWXor}@)-6FDi4ct{6y21nmo3Pp6z-0VNw1h%IVz#UbcEL zm(hu`t5Mc<0^3D?o%3E7JS^xfHk8xzy=XIpw|S7{=dxWft^96LehimxsA$kZpXmm<;|k}mn45M&TvqlVO(tM&X_V)9X<_hUNd` zHrNm5@}&cKci~H{DZ$TEFC94VRs7Hm$MPuNZ{T%sCSpciigECJfH*Q}f9Y1#qvt2$ zAB9|6FVUAvI_7{tX@U&dTu4gm~BR1hk!rb~DX*HZ#-vZew2K`Ek0uLzl1BY513< z;kT#ZUy+7?bsGNlY51Gd@VBJlZ%xDBmWIDQ4gZcb{GDm|cc`1{iE|C)yXdK&&)Y537J{KIMZU1|6qrQsh*!#|pa-<^j4O&UIP zq}l(|@U3b1gVOMG)9~}t@C(!MN2lT2((osw;ZI4!pO%I{BMpCc8vfig{Ik>W?P>U> zY4{7%@RuByzj^F(&fh$<|M+?H*y=R=)oJ)^((r52@I7hxjcNG4)O`GoXFHx7ne7V3 zuF1o1vp(L_^V}xJu0;B2q-R{t*kwpB{8LX)KI;4s>1{~Aei>tKq`Uvp({ncJH_P-~ zq|c}HvpqeRpw1accj92@5v0G5^nLq!da5C_0_mf#_4I5-xdZ9D-|XpGgLDbfU2paD ztVa3-q!%9O>DdCAAD_tBj6*#=xoGAJQ9ShQXdMU^Gq2yvc_npW?|N^z zwcPLV*17THs#W1upHj@K?c-LIm-v)m7(X2w4hDQkj+-`VTE(=LuI6B%A*h5xoXvvD zMJ-B*3tLgSq?qA9>QqxDq=c9I+;vK0z~@oWvCFS)Sl$w>YjlT{5LGP44-SWl+4Q=N z8(kg<3bxdRnJ2Kp?+ds+CC$xL2c+Cnyj}^0Fb1SZy^5-mV9?#FDJ7X92JP^x-Qm`< zKyb0rN>%4gb8@}w0!__6gUv3P8x;M#f;eWv%3%sO)>9b;OF*uXf6YOo)nXxkPMXt15F$-Ss21^4P!p= z6YQ`OScD(H^jwVJibjstsA{QQ?^QPNbT!m3^C~_Msf1p8e@a*aiCTS4rC0YR7z%#P zzPOqHFmO=uNCR`zly<=R?9JkMX@?Jep1+1?Z%9FSRGJR zf~#dE!qpvw&GrJU%`cVkISW-Or~}MAj#kYw>*Dauzo^CSs}2ZxBuB%wFN2r6NlC6N zqn}@|c8Au{C@RG&NSNd}G#;h4rJ+;_)djtL4Kj~X?{4vhoqQDWoUjrtyNZ5vyBX^S z1z2A#N~O{ga@YD4r{eQbhvgnL_ttwchcHDfUu7d%X))@HIjszAC<*tLyZzoK8b2y{ zxt-wmy-5zHGYm&#k^qcIJiW|NahQfTLL#aZu%gC3KcqHoFKJUefC($6|g%xlDsN!!} zf_tUg*P^f{#p7*hl46tqOg_=F_hKfTk+fm>jh0%mgfxzD@O>D~SOH8r=PJ#! zVMow@lRR!UG*FK=OW2}{X|_BHHc?+O{EV*{qsBPUG6eW^6BA!bi4)M*mm>!gf`)O! zD#k|H;0?iVIeqR>h!!m^Wm?us!dgZxnya{?ArypQ;0#KZ)ZtgvLxEr`w{0pBcBlD$ z6gcB15qCc*r5P%w`iUJOizQtfa0fkcc}tY~aNL}^AyccR(uMPMz~lDe=iCVvKDW|1 zQH?O=y=d-$#|K&o-;-(7d{ahsT7aA>_Baw=9d!FcJ}l)>NelhXd&qk+Hs7UivE}}7 z03M}xyF+bmpNSIV3xkCku_1V>pf@ZHIR!yTg3i6Z2|Tz-+PjLijfxlPJsVkOFAVTe zD?-qW(57950;-VakU}hk)gKmK50#Lmpo}EI9^iwESy(gt-W0bw@O550p@PSY0nuii zx{9{MPy@?LF0_R1io+C6pqGV;8^Ks&74n7@rSNS&#FIp0F6O7Th)uLl^!YqIW}=Zvv$B8%cE3l0>w}J;(&qD$-$=*8D zqF*Kj-m8}`k$f>Lz0I7WATGRj`7e-h0)!$-7K}CQEEDznEs?TNsS?{QwhdM!;@qMo z-r69Znu?s*aOfcb%OE6qay7~ABFHd0S~0SiP4rCX{}?N0e&%Ii+;0BApEWQW^RNKh z0FDpTjoc&~V@u1bk{=3~iOQwe<=(n=v$mX6(yknKc7&{x^`BN(VCY(>N47GMHseIDuKV;?UD}BFmUE zjIq~;G1HM@EHh&S+KphA!=R<37~49EWy~JUEIUWDY|qKebjisq>&RGUj*erdu5m15 z`vk_`n!wDnCqe!sW_}JdV=^=UX)?|gr!dnacUxrmvz7O?@@CYFI0oh)|Tjksx?x%3|{)5Vp{wDDw9?w~OY;uzlBW2LY5@arg5 zplkV%8NW9D%KS6SmW-P+Z_c73sK!ch=i`i(u5C0KbX5tr})S^r+6=v(*jBHx+>4(ixN4d_d%)M2uVju ziq}_h<#f{fw?t2p6u;NN^LWpeQyZsN`&dcGNjhFqdXE&}Lu#KWsldT%pVTK`*vYf_ zZ-z`X)61tUr~Ph8zxNZ$+r-Pil$4iE($$==z4gi%UZG_N))sVvET<}6QqIOFC?`fu zsZ{-y-auSiQh)RgEnQO<)Bic`GbD}IH&J=-m8$*~ntWY-dcT>jr^m&>yy%}1*7$H$|?H&y+(d|mxi^LOrzq&LPV>+9`pHhy@!zwv4P>+u); zL!QK+`X&2)S~v=J?0S-y%dA9j>G@gG{!{UXO1>1A)PA_+3;&ZWf1KnC|C7w0Dfz;W zCG&qI`NFRy^S7np@05Ic-<&S}_}`ZNRQh*GzVMI9?Z1|MhY+76|6IOabD8j8$?X?O zeyaXgNPa5(FO+=YUz6oulBWHGl0QF%{xQkdmbV_iZzMm}{8+g^$z|hG$Ujx`#r~G8 z|18PRNYVaG$#9+4XOf@FK38t0 zf#tGP_*^LYVjoZLKOp%tQ{Z!(tA;}l}e6Rd{5|CM2gnlAk=;dqv=SA5*)%^Wc z@^e$@_pan??p1Gp?@NA7iuMa5Lcc%?{v(o~%Kz+<{8aPzyyT~{|2HImXo~(nko;8s zkO_uU`HyC11pC$@Z})jr?aN ze@Ke{-<14R_`jE?{pXS|;#+)gQx+j%Wsh(wIPP- z{ikgxrcW%bmY-WX_X?_KW$$n~h5SdI=(Ah&`8ujM@LK!_{+pK*Eo4`qka*fBse`k7!E5V=_PGY9ZGlX_KVaO8S7Lf0pzWNsmZcc#UX(lBDI5UMT4XNjFP+ zlcaY_8kJOAMXWAn6;DYU}JHnI9mnTRuq10l=PlJP*jSrA!<1?`X zp2GbP+!IV}Kq>Be++p1KB7gxm;@*z?ZrqRJe%i!Luj4*~`$RJ{Ey3N0do%9)a6gB; z3%A+AObc;u#=Q&o7Zx^PWCj~>N(QqQXRwSLaDRw=ekQXxGSMgQ>v7+Qd^D3~Ovqwp ze-^Xs%3{`kX0fbs+05d@y(62MpTXUYd%BgGJyw>n6L%MGTMje(a+u}b9G3GY?h^+v zvwZ-|@#B7A0L%Ck_w<1*W9>j@-7=7wUc%jt^z=b2BaHj8K>|RRv#e6_DejQMToqML zpF0#P3kI61!a=XUfw`)j6-szRAh@nlao07vYrQ^ixYZd{++k&vH{4j^ZbG|$D=kpM zWj=R9h`C&@P}p6!&Q;gA&QUnr07-$`wRNtf zw9D)FhBanOI1m(YR4U=fZ9;^yb2X3S~-;*LzYGPqK!hjst_m;JM(C5?&qzK*4aU%OCK&!+|DmovSX; z+^SWe0b{lUG}}RCgO>&v3e~y&Kzf;Dk<(SavZT^A!L__2K=b&^C`jUu28d5 z=dJf*_Lyr$c}a7#&s*mXVTQBj+|>snjb$1qLPu?Oak)RfSQnD6ep@_crih^^RRvsiG=zcus|e zo>XONOW0lOQ%ZtCH?Zf(YMm^vs?wm;ah6mi!ir^xrIDm#MOCS{j&OGe^^z;9R#Yz0 z$*ic-7Iz;dc-2bfq825D)sW1pQbM#!lUR$YmQ_?KL9g5Ay_mzKs{zY^wImo$|NIg@ zf@B_w*TdzM`#oemf#6CnttXv&OWdu27V07t4r2b3_3sb$s>LhH%fm|3vU*ItPNc@u z6=R}Xnrc(lhS`Rdey5-0IelJO1{smEQLo{O@@g^;8l026tUd!=QSNXD9WCK-z)uS6 zloE?cSEygDSP(M6eV)xKSp26DNP58g-dTg5Pk)I$CFjocwVGd1ii=ivUrm@^xw@%?kk+3=o zGT3G`%wW+}%`1-AyqcLcK$ezOu~CWoQ^EI{8ANP?3BBfUK-f=s7=uC7Tw!X@yxx5F z*;kut?#?)zv3hl()jH^P)7_@h((R^QS>dY@FmzM#mJDAwYOda93O{BUH0Ws75tH>1 z%h|7+bFVh#=I3{sqNYJs`(g9-=62I1xr1`^tB;zj+bsMmE*54pM&Fg;nD5S{4V~hq zp`?KwH?9%5hvGl+JsFJA_i0dG`+fJdGEd)=K^OfTJn`v!F6i2e8z~FV;J+6{9#NIJ z4v2h~mZxTk^+)USXNr8h{rS55#k%@G*YOdSk^Ff3{knXY$j9~lM#mqHmWl0WiM;l8 zA?!R|ex1nYXydz1m*1hw|52BZio6!ivMgwZ{^R*^y1YY|uhHdObopQC@{j29Z;5<- zd|BvOKq5voR^;RSQjw4A=M#BYnYbdl{C&Fmf7j(d6ZrvJ`+=}h^dHZU6M1MUu2Nlo zrLKOXF5kxU2z=$WRmWFF9$kv-4?6zyy8PdD`FC~sk9GN@y8PF=ya_8KalBSteyA=# zT;${Wj@RX9>+_b$=+ z#rG{Cfy>q3?$b9ULXCbl&7?ZV+XY2s-QJf{sIJ~|1t0&3vrky@E#u$*!n@-}#p#09 zimJ3B<#FQqZ}mLTZzOrV*jyLk{nz64G+|uoCy{g!Y>J3kD?VP3ojPpBv%|ND|K$@# zswapvPaoeowEk9)go$x(e*t~!X!%<`Zu3QwxaPil{Y?|At0-+M67 z_fbC8fkC<_{No=f$RnzRLo4l&;drN3{hUA~KX4gGTR3M-b!?Sz`t?75v=wxFg2hEe zXUv&7`;6K662q_lKByBBz^}2rYO&}9q!GQFH;L~%wTwX>%Db2uL9Mv%0$Gh4ml0KhtxDr~Zt&XHIYNhrA7b#lwE~ z!-wa7S=srUo4{)7Nc1Cw<$pbKZD%-eoSk z`2Kr$zxL&~)$h;wOA4-kbN9|4zW>77ypR6<*CD5to%e0q_E+y+CHL^#Yi@sMz_0Jy z_4|jHUv+Hz1sVO-`?h7XT8A7N@~2DkKmF>7kKgjXeYE?dy)QeyXnC(`#9MC{Wf%EM z9{<+|i>`9q4D+I}c^ht`WQO@D1HrdciZY5&$&(kmXZBpO>ynGFeDe?2ExcyhUH>V6 z><1sOFFNwOSxa`99(wRs_n&az<0V4||KOjIx8MG3(n)WPb04Yv>eAxTh424u&Aqd_ zBHt|C)%@7i;Xme-cfP&n^eul`{^l{)&%b`S;lL|vZ~ei%AzMyvyZM?22JX53!M5;k zp2=8Hd}#5lPntFj|3AAkJ{^1gr5~Mg%lVI-I)7X7;F_5~w%z}!ZTYQ}_Z{>;^IXYg zgC6>-u=_W*uWEm>_4&4iIqRmqQoL>V&#${M>+vzCo%XXA7C(6E!rD{JWmB*1`n5WA zQOmRMeewFmqxX-iKl-1JfA{E@e!F|(f*&oYcDvFN{Ga^d zts%9SKe_+C7k+i1>h_)HrAH^;9CKZ??CGb^v$~WAr(W`lPj8&@!5J6q`Fz#>r>39R bxZ$^Jj+P9bvhDoryUzTea>c{R#{GW*U2y(} From 7de87830ec6c0959c1e98a0cde2a6b773b6fa6f4 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:28:29 +0530 Subject: [PATCH 093/233] Update lara-Bridging-Header.h --- lara/lara-Bridging-Header.h | 1 - 1 file changed, 1 deletion(-) diff --git a/lara/lara-Bridging-Header.h b/lara/lara-Bridging-Header.h index 24b23f710..f92edf031 100644 --- a/lara/lara-Bridging-Header.h +++ b/lara/lara-Bridging-Header.h @@ -18,7 +18,6 @@ #import "RemoteCall.h" #import "decrypt.h" #import "persistence.h" -#import "MFSLauncher.h" #import From 609dcee093cd842fb72fac9e68745ff53a3c976a Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:29:00 +0530 Subject: [PATCH 094/233] Delete lara/headers/MFSLauncher.h --- lara/headers/MFSLauncher.h | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 lara/headers/MFSLauncher.h diff --git a/lara/headers/MFSLauncher.h b/lara/headers/MFSLauncher.h deleted file mode 100644 index cb9f8648d..000000000 --- a/lara/headers/MFSLauncher.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -#ifdef __cplusplus -extern "C" { -#endif - -UIViewController *MFSCreateController(void); - -#ifdef __cplusplus -} -#endif From 42dba1204ad594cfc63efb35f8dd4b37f55e6828 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:29:46 +0530 Subject: [PATCH 095/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index 7a10ea7d6..5da5348bc 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -39,8 +39,6 @@ struct TweaksView: View { .disabled(!mgr.sbxready) NavigationLink("JIT Enabler", destination: JitView()) .disabled(!mgr.sbxready) - NavigationLink("App Downgrader", destination: DowngradeView()) - .disabled(!mgr.sbxready || !mgr.vfsready) } Section(header: HeaderLabel(text: "User Interface", icon: "eye")) { From ea07469b0350cad3631ca12b6916249714537abd Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:30:00 +0530 Subject: [PATCH 096/233] Delete lara/views/tweaks/DowngradeView.swift --- lara/views/tweaks/DowngradeView.swift | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 lara/views/tweaks/DowngradeView.swift diff --git a/lara/views/tweaks/DowngradeView.swift b/lara/views/tweaks/DowngradeView.swift deleted file mode 100644 index 8b28e5a57..000000000 --- a/lara/views/tweaks/DowngradeView.swift +++ /dev/null @@ -1,22 +0,0 @@ -import SwiftUI -import UIKit - -struct RootControllerWrapper: UIViewControllerRepresentable { - - func makeUIViewController(context: Context) -> UIViewController { - MFSCreateController() - } - - func updateUIViewController( - _ uiViewController: UIViewController, - context: Context - ) { - } -} - -struct DowngradeView: View { - var body: some View { - RootControllerWrapper() - .ignoresSafeArea() - } -} From ed0ebd522a62687c7b7afaa2504d306c04d7da61 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 2 Jun 2026 20:32:42 +0530 Subject: [PATCH 097/233] Update build_ipa.sh --- scripts/build_ipa.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index 13daeaf4f..e0a404db8 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -9,7 +9,7 @@ echo xcodebuild \ -project lara.xcodeproj \ - -scheme Lara \ + -scheme lara \ -configuration Debug \ -sdk iphoneos \ -arch arm64e \ From 4e3d98d4c94e85e1247418df5a42100341acd528 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 17:27:12 +0530 Subject: [PATCH 098/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index 443948457..2c2e9d68f 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -63,7 +63,7 @@ struct TweaksView: View { Section(header: HeaderLabel(text: "Broken", icon: "exclamationmark.triangle.fill")) { NavigationLink("DarkBoard", destination: DarkBoardView()) - .disabled(true) + .disabled(false) } NavigationLink("Extra Tools", destination: ToolsView()) From e006b04d3039bca461f43dee974cbee0c683c19a Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 17:56:21 +0530 Subject: [PATCH 099/233] Update utils.h --- lara/kexploit/utils.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/kexploit/utils.h b/lara/kexploit/utils.h index f82fad67d..0ef8598a1 100644 --- a/lara/kexploit/utils.h +++ b/lara/kexploit/utils.h @@ -19,6 +19,7 @@ extern "C" { #endif void init_offsets(void); +static uint64_t kernproc_head(void) uint64_t ourproc(void); uint64_t taskbyproc(uint64_t procaddr); uint64_t procbyname(const char *procname); From e76d5df1644a6f86743731d4f4c6d220629e7cf4 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 17:56:57 +0530 Subject: [PATCH 100/233] Update utils.h --- lara/kexploit/utils.h | 1 - 1 file changed, 1 deletion(-) diff --git a/lara/kexploit/utils.h b/lara/kexploit/utils.h index 0ef8598a1..f82fad67d 100644 --- a/lara/kexploit/utils.h +++ b/lara/kexploit/utils.h @@ -19,7 +19,6 @@ extern "C" { #endif void init_offsets(void); -static uint64_t kernproc_head(void) uint64_t ourproc(void); uint64_t taskbyproc(uint64_t procaddr); uint64_t procbyname(const char *procname); From 5b8f5e9fdca5d71ce7a7d295365ca9935fed59d6 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 18:05:07 +0530 Subject: [PATCH 101/233] Update sbx.h --- lara/kexploit/pe/sbx.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/kexploit/pe/sbx.h b/lara/kexploit/pe/sbx.h index 7956e8c49..812b7ccd0 100644 --- a/lara/kexploit/pe/sbx.h +++ b/lara/kexploit/pe/sbx.h @@ -10,6 +10,7 @@ #include +uint64_t sbx_ucredbyproc(uint64_t proc) int sbx_escape(uint64_t self_proc); void sbx_setlogcallback(void (*callback)(const char *message)); uint64_t sbx_gettoken(pid_t pid); From e5920ab0de5a07dec119ef1b91b0fb9f3d833d0d Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 18:07:08 +0530 Subject: [PATCH 102/233] Update sbx.h --- lara/kexploit/pe/sbx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/kexploit/pe/sbx.h b/lara/kexploit/pe/sbx.h index 812b7ccd0..fc139486d 100644 --- a/lara/kexploit/pe/sbx.h +++ b/lara/kexploit/pe/sbx.h @@ -10,7 +10,7 @@ #include -uint64_t sbx_ucredbyproc(uint64_t proc) +uint64_t sbx_ucredbyproc(uint64_t proc); int sbx_escape(uint64_t self_proc); void sbx_setlogcallback(void (*callback)(const char *message)); uint64_t sbx_gettoken(pid_t pid); From 7958f4530a7b77f04511699e7f2afa29928b31fc Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 19:42:08 +0530 Subject: [PATCH 103/233] Update offsets.m --- lara/kexploit/offsets.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lara/kexploit/offsets.m b/lara/kexploit/offsets.m index 604190147..e9786f773 100644 --- a/lara/kexploit/offsets.m +++ b/lara/kexploit/offsets.m @@ -67,6 +67,7 @@ uint32_t off_proc_ro_pr_task = 0; uint32_t off_proc_ro_p_ucred = 0; uint32_t off_ucred_cr_label = 0; +uint32_t off_ucred_cr_ref = 0; uint32_t off_task_itk_space = 0; uint32_t off_task_threads_next = 0; uint32_t off_task_task_exc_guard = 0; @@ -168,6 +169,7 @@ OFFSET32(off_proc_ro_pr_task), OFFSET32(off_proc_ro_p_ucred), OFFSET32(off_ucred_cr_label), + OFFSET32(off_ucred_cr_ref), OFFSET32(off_task_itk_space), OFFSET32(off_task_threads_next), OFFSET32(off_task_task_exc_guard), @@ -354,6 +356,7 @@ void savealloffsets(void) { @"off_proc_p_name": @(off_proc_p_name), @"off_proc_ro_pr_task": @(off_proc_ro_pr_task), @"off_ucred_cr_label": @(off_ucred_cr_label), + @"off_ucred_cr_ref": @(off_ucred_cr_ref), @"off_task_itk_space": @(off_task_itk_space), @"off_task_threads_next": @(off_task_threads_next), @"off_task_task_exc_guard": @(off_task_task_exc_guard), From 047923f76fed85c6bbaf2c8ab99abf4adff98a92 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 19:43:27 +0530 Subject: [PATCH 104/233] Add off_ucred_cr_ref to offsets.h --- lara/kexploit/offsets.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/kexploit/offsets.h b/lara/kexploit/offsets.h index c49f1462f..3b4868b86 100644 --- a/lara/kexploit/offsets.h +++ b/lara/kexploit/offsets.h @@ -57,6 +57,7 @@ extern uint32_t off_proc_p_name; extern uint32_t off_proc_ro_pr_task; extern uint32_t off_proc_ro_p_ucred; extern uint32_t off_ucred_cr_label; +extern uint32_t off_ucred_cr_ref; extern uint32_t off_task_itk_space; extern uint32_t off_task_threads_next; extern uint32_t off_task_task_exc_guard; From 8688d9917ee32518c63fe2300808661d0f74fb46 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:07:41 +0530 Subject: [PATCH 105/233] Update utils.m --- lara/kexploit/utils.m | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/lara/kexploit/utils.m b/lara/kexploit/utils.m index c0f4d9c26..6b2f0f070 100644 --- a/lara/kexploit/utils.m +++ b/lara/kexploit/utils.m @@ -47,6 +47,7 @@ static const uint32_t ARM_SS_OFFSET = 0x8; uint32_t TASK_TNEXT_OFFSET; uint32_t THREAD_MUPCB_OFFSET; +bool launchd = true struct arm_saved_state64 { uint64_t x[29]; @@ -885,6 +886,49 @@ int proc_pause_resume(const char *name, bool resume) { return 0; } +void kexit(void) { + uint64_t kp = kernproc_head(); + uint64_t ku = sbx_ucredbyproc(kp); + uint64_t refaddr = ku + off_cr_ref; + uint32_t ref = ds_kread32(refaddr); + ds_kwrite32(refaddr, ref - 1); +} + +void lexit(void) { + uint64_t lp = procbyname(launchd); + uint64_t lu = sbx_ucredbyproc(lp); + uint64_t refaddr = lu + off_cr_ref; + uint32_t ref = ds_kread32(refaddr); + ds_kwrite32(refaddr, ref - 1); + +void get_root(void) { + if (launchd = false) { + uint64_t kp = kernproc_head(); + uint64_t ku = sbx_ucredbyproc(kp); + uint64_t refaddr = ku + off_cr_ref; + uint32_t ref = ds_kread32(refaddr); + uint64_t op = ourproc(); + uint64_t ou = sbx_ucredbyproc(op); + ds_kwrite32(refaddr, ref + 1); + ds_kwrite64(ou, ku); + atexit(kexit); + } +} + +void launchd_root(void) { + if (launchd = true) { + uint64_t lp = procbyname(launchd); + uint64_t lu = sbx_ucredbyproc(lp); + uint64_t op = ourproc(); + uint64_t ou = sbx_ucredbyproc(op); + uint64_t refaddr = lu + off_cr_ref; + uint32_t ref = ds_kread32(refaddr); + ds_kwrite32(refaddr, ref + 1); + ds_kwrite64(ou, lu); + atexit(lexit); + } +} + int count_pids(uint64_t allproc) { int count = 0; uint64_t proc = allproc; From 4d31ebef74f1e321c95c33574d35c7903cd4f281 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:10:09 +0530 Subject: [PATCH 106/233] Update utils.h --- lara/kexploit/utils.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lara/kexploit/utils.h b/lara/kexploit/utils.h index f82fad67d..a36ed3cf8 100644 --- a/lara/kexploit/utils.h +++ b/lara/kexploit/utils.h @@ -70,6 +70,9 @@ uint64_t task_self(void); int crashproc(const char* pid); int proc_pause_resume(const char *name, bool resume); int count_pids(uint64_t allproc); +void get_root(void); +void launchd_root(void); +bool launchd = true #ifdef __cplusplus } From ff50c15b60ae7058a7c276955628fbeb08fb1a6b Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:10:59 +0530 Subject: [PATCH 107/233] Fix root()s --- lara/kexploit/utils.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lara/kexploit/utils.m b/lara/kexploit/utils.m index 6b2f0f070..4c064e2a6 100644 --- a/lara/kexploit/utils.m +++ b/lara/kexploit/utils.m @@ -902,7 +902,7 @@ void lexit(void) { ds_kwrite32(refaddr, ref - 1); void get_root(void) { - if (launchd = false) { + if (launchd == false) { uint64_t kp = kernproc_head(); uint64_t ku = sbx_ucredbyproc(kp); uint64_t refaddr = ku + off_cr_ref; @@ -916,7 +916,7 @@ void get_root(void) { } void launchd_root(void) { - if (launchd = true) { + if (launchd == true) { uint64_t lp = procbyname(launchd); uint64_t lu = sbx_ucredbyproc(lp); uint64_t op = ourproc(); From 71886d001d6e72ede17e877de018fd2b9a573b5c Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:23:25 +0530 Subject: [PATCH 108/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index 2a9b54de2..1c6f5b895 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -68,7 +68,18 @@ struct SettingsView: View { NavigationLink("Modify Offsets", destination: OffsetManagementView()) } - + Section(header: HeaderLabel(text: "Root Method", icon "arrow.up")) { + Menu { + Button("Kernel") { + launchd = false + + } + + Button("Launchd") { + launchd = true + + } + } // kernelcache Section { if !mgr.hasOffsets { From 8dc4d96bc83882c87b8904071cd55990101415d2 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:24:07 +0530 Subject: [PATCH 109/233] Update utils.h --- lara/kexploit/utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/kexploit/utils.h b/lara/kexploit/utils.h index a36ed3cf8..a75b2ef00 100644 --- a/lara/kexploit/utils.h +++ b/lara/kexploit/utils.h @@ -72,7 +72,7 @@ int proc_pause_resume(const char *name, bool resume); int count_pids(uint64_t allproc); void get_root(void); void launchd_root(void); -bool launchd = true +extern bool launchd; #ifdef __cplusplus } From 9443d9ca18ed8b87a894b6ab40d5938fb5e1e0a1 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:24:38 +0530 Subject: [PATCH 110/233] Update utils.m --- lara/kexploit/utils.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/kexploit/utils.m b/lara/kexploit/utils.m index 4c064e2a6..0d45276c5 100644 --- a/lara/kexploit/utils.m +++ b/lara/kexploit/utils.m @@ -47,7 +47,7 @@ static const uint32_t ARM_SS_OFFSET = 0x8; uint32_t TASK_TNEXT_OFFSET; uint32_t THREAD_MUPCB_OFFSET; -bool launchd = true +bool launchd = true; struct arm_saved_state64 { uint64_t x[29]; From 0622980521249609462a4cabb149337fb8a9de3b Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:28:03 +0530 Subject: [PATCH 111/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index 1c6f5b895..d4543c5c9 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -73,12 +73,13 @@ struct SettingsView: View { Button("Kernel") { launchd = false - } + } Button("Launchd") { launchd = true - } + } + } } // kernelcache Section { From 340c3c12f54835344af184478ed716a78d1f1da8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:32:43 +0530 Subject: [PATCH 112/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index d4543c5c9..0c6858279 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -68,7 +68,7 @@ struct SettingsView: View { NavigationLink("Modify Offsets", destination: OffsetManagementView()) } - Section(header: HeaderLabel(text: "Root Method", icon "arrow.up")) { + Section(header: HeaderLabel(text: "Root", icon "arrow.up")) { Menu { Button("Kernel") { launchd = false From b3d1470487156e1791fade9391642c26a304e05b Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:37:01 +0530 Subject: [PATCH 113/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index 0c6858279..ba863e166 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -68,7 +68,8 @@ struct SettingsView: View { NavigationLink("Modify Offsets", destination: OffsetManagementView()) } - Section(header: HeaderLabel(text: "Root", icon "arrow.up")) { + + Section(header: HeaderLabel(text: "Root", icon: "arrow.up")) { Menu { Button("Kernel") { launchd = false From 5a6bf8b66ce99077c63fe4497e6d2d41e4f99397 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 15:28:59 +0530 Subject: [PATCH 114/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index ba863e166..0cb49bd35 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -70,7 +70,7 @@ struct SettingsView: View { } Section(header: HeaderLabel(text: "Root", icon: "arrow.up")) { - Menu { + SwiftUI.Menu { Button("Kernel") { launchd = false From 4dcc1b54562f6c91dcc8df43d906925c333ebaa0 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 15:33:39 +0530 Subject: [PATCH 115/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index 0cb49bd35..f7f0e2957 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -80,7 +80,9 @@ struct SettingsView: View { launchd = true } - } + } label: { + Text("Root Method") + } } // kernelcache Section { From fd979d7c853f8f63a79e2b07f70a87cdddde58ea Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 15:45:54 +0530 Subject: [PATCH 116/233] Update ContentView.swift --- lara/views/app/ContentView.swift | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lara/views/app/ContentView.swift b/lara/views/app/ContentView.swift index 0d87f8794..0bd9aab7b 100644 --- a/lara/views/app/ContentView.swift +++ b/lara/views/app/ContentView.swift @@ -27,6 +27,7 @@ struct ContentView: View { List { AlertsSection KRWSection + RootSection RCSection ActionsSection DebugSection @@ -188,6 +189,21 @@ struct ContentView: View { } } } + + private var RootSection: some View { + Group { + Section { + Button("Get Root Access", action: { + if (launchd == true) { + launchd_root() + } else if (launchd == false) { + get_root() + } + }) + .disabled(!mgr.dsready) + } + } + } private var RCSection: some View { Group { From 9cd9ae4288b0ab70c4fd96ae0e66f80d858ea3de Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 15:57:43 +0530 Subject: [PATCH 117/233] Update utils.m --- lara/kexploit/utils.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lara/kexploit/utils.m b/lara/kexploit/utils.m index 0d45276c5..7a5cea415 100644 --- a/lara/kexploit/utils.m +++ b/lara/kexploit/utils.m @@ -900,12 +900,13 @@ void lexit(void) { uint64_t refaddr = lu + off_cr_ref; uint32_t ref = ds_kread32(refaddr); ds_kwrite32(refaddr, ref - 1); +} void get_root(void) { if (launchd == false) { uint64_t kp = kernproc_head(); uint64_t ku = sbx_ucredbyproc(kp); - uint64_t refaddr = ku + off_cr_ref; + uint64_t refaddr = ku + off_ucred_cr_ref; uint32_t ref = ds_kread32(refaddr); uint64_t op = ourproc(); uint64_t ou = sbx_ucredbyproc(op); @@ -917,11 +918,11 @@ void get_root(void) { void launchd_root(void) { if (launchd == true) { - uint64_t lp = procbyname(launchd); + uint64_t lp = procbyname("launchd"); uint64_t lu = sbx_ucredbyproc(lp); uint64_t op = ourproc(); uint64_t ou = sbx_ucredbyproc(op); - uint64_t refaddr = lu + off_cr_ref; + uint64_t refaddr = lu + off_ucred_cr_ref; uint32_t ref = ds_kread32(refaddr); ds_kwrite32(refaddr, ref + 1); ds_kwrite64(ou, lu); From 01673d1c245bae84d27bfd72022c506738ff80b3 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 16:06:03 +0530 Subject: [PATCH 118/233] Update utils.m --- lara/kexploit/utils.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lara/kexploit/utils.m b/lara/kexploit/utils.m index 7a5cea415..6b90b02e7 100644 --- a/lara/kexploit/utils.m +++ b/lara/kexploit/utils.m @@ -10,6 +10,7 @@ #import "xpf.h" #import "offsets.h" #import "xpaci.h" +#import "pe/sbx.h" #import #import @@ -889,15 +890,15 @@ int proc_pause_resume(const char *name, bool resume) { void kexit(void) { uint64_t kp = kernproc_head(); uint64_t ku = sbx_ucredbyproc(kp); - uint64_t refaddr = ku + off_cr_ref; + uint64_t refaddr = ku + off_ucred_cr_ref; uint32_t ref = ds_kread32(refaddr); ds_kwrite32(refaddr, ref - 1); } void lexit(void) { - uint64_t lp = procbyname(launchd); + uint64_t lp = procbyname("launchd"); uint64_t lu = sbx_ucredbyproc(lp); - uint64_t refaddr = lu + off_cr_ref; + uint64_t refaddr = lu + off_ucred_cr_ref; uint32_t ref = ds_kread32(refaddr); ds_kwrite32(refaddr, ref - 1); } From 49e28050ce0d499517b111965c9fd9410028db00 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 16:34:16 +0530 Subject: [PATCH 119/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index f7f0e2957..2a9b54de2 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -69,21 +69,6 @@ struct SettingsView: View { NavigationLink("Modify Offsets", destination: OffsetManagementView()) } - Section(header: HeaderLabel(text: "Root", icon: "arrow.up")) { - SwiftUI.Menu { - Button("Kernel") { - launchd = false - - } - - Button("Launchd") { - launchd = true - - } - } label: { - Text("Root Method") - } - } // kernelcache Section { if !mgr.hasOffsets { From e8c54cb4a017b6027edcf42b9c07af752c7a6148 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 16:35:04 +0530 Subject: [PATCH 120/233] Update ContentView.swift --- lara/views/app/ContentView.swift | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/lara/views/app/ContentView.swift b/lara/views/app/ContentView.swift index 0bd9aab7b..0d87f8794 100644 --- a/lara/views/app/ContentView.swift +++ b/lara/views/app/ContentView.swift @@ -27,7 +27,6 @@ struct ContentView: View { List { AlertsSection KRWSection - RootSection RCSection ActionsSection DebugSection @@ -189,21 +188,6 @@ struct ContentView: View { } } } - - private var RootSection: some View { - Group { - Section { - Button("Get Root Access", action: { - if (launchd == true) { - launchd_root() - } else if (launchd == false) { - get_root() - } - }) - .disabled(!mgr.dsready) - } - } - } private var RCSection: some View { Group { From c8bc2b57d884edcc828950e61ec055bd8fa29313 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 16:37:05 +0530 Subject: [PATCH 121/233] Update utils.h --- lara/kexploit/utils.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/lara/kexploit/utils.h b/lara/kexploit/utils.h index a75b2ef00..f82fad67d 100644 --- a/lara/kexploit/utils.h +++ b/lara/kexploit/utils.h @@ -70,9 +70,6 @@ uint64_t task_self(void); int crashproc(const char* pid); int proc_pause_resume(const char *name, bool resume); int count_pids(uint64_t allproc); -void get_root(void); -void launchd_root(void); -extern bool launchd; #ifdef __cplusplus } From 6d8eaccd4b36836da1eba6554fe9bce786c2e158 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 16:57:12 +0530 Subject: [PATCH 122/233] Delete kexit, lexit, get_root, and launchd_root functions Removed functions related to process exit and root access. --- lara/kexploit/utils.m | 44 ------------------------------------------- 1 file changed, 44 deletions(-) diff --git a/lara/kexploit/utils.m b/lara/kexploit/utils.m index 6b90b02e7..2a1f725cb 100644 --- a/lara/kexploit/utils.m +++ b/lara/kexploit/utils.m @@ -887,50 +887,6 @@ int proc_pause_resume(const char *name, bool resume) { return 0; } -void kexit(void) { - uint64_t kp = kernproc_head(); - uint64_t ku = sbx_ucredbyproc(kp); - uint64_t refaddr = ku + off_ucred_cr_ref; - uint32_t ref = ds_kread32(refaddr); - ds_kwrite32(refaddr, ref - 1); -} - -void lexit(void) { - uint64_t lp = procbyname("launchd"); - uint64_t lu = sbx_ucredbyproc(lp); - uint64_t refaddr = lu + off_ucred_cr_ref; - uint32_t ref = ds_kread32(refaddr); - ds_kwrite32(refaddr, ref - 1); -} - -void get_root(void) { - if (launchd == false) { - uint64_t kp = kernproc_head(); - uint64_t ku = sbx_ucredbyproc(kp); - uint64_t refaddr = ku + off_ucred_cr_ref; - uint32_t ref = ds_kread32(refaddr); - uint64_t op = ourproc(); - uint64_t ou = sbx_ucredbyproc(op); - ds_kwrite32(refaddr, ref + 1); - ds_kwrite64(ou, ku); - atexit(kexit); - } -} - -void launchd_root(void) { - if (launchd == true) { - uint64_t lp = procbyname("launchd"); - uint64_t lu = sbx_ucredbyproc(lp); - uint64_t op = ourproc(); - uint64_t ou = sbx_ucredbyproc(op); - uint64_t refaddr = lu + off_ucred_cr_ref; - uint32_t ref = ds_kread32(refaddr); - ds_kwrite32(refaddr, ref + 1); - ds_kwrite64(ou, lu); - atexit(lexit); - } -} - int count_pids(uint64_t allproc) { int count = 0; uint64_t proc = allproc; From 434820b5544b5e4dc12b30fab6f48d257c6628c8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:12:22 +0530 Subject: [PATCH 123/233] Create CacheView --- lara/views/tweaks/CacheView | 261 ++++++++++++++++++++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 lara/views/tweaks/CacheView diff --git a/lara/views/tweaks/CacheView b/lara/views/tweaks/CacheView new file mode 100644 index 000000000..dbaee88a6 --- /dev/null +++ b/lara/views/tweaks/CacheView @@ -0,0 +1,261 @@ +import SwiftUI +import UIKit + +// MARK: - Model + +struct CacheApp: Identifiable { + let id: String + let name: String + let bundleID: String + let appPath: String + let icon: UIImage? + let cacheSize: Int64 + let cachePath: String +} + +// MARK: - Manager + +final class CleanerManager: ObservableObject { + + @Published var apps: [CacheApp] = [] + + @Published var isScanning = false + @Published var scanProgress: Double = 0 + @Published var statusText = "" + + @Published var totalCacheBytes: Int64 = 0 + + private let fm = FileManager.default + + // MARK: Auto Scan + + func startScan(minSizeMB: Int64 = 4) { + guard !isScanning else { return } + + isScanning = true + scanProgress = 0 + totalCacheBytes = 0 + statusText = "Scanning apps..." + + DispatchQueue.global(qos: .userInitiated).async { + + let base = "/private/var/containers/Bundle/Application" + + var results: [CacheApp] = [] + + guard let bundles = try? self.fm.contentsOfDirectory(atPath: base) else { + DispatchQueue.main.async { + self.isScanning = false + self.statusText = "No apps found" + } + return + } + + let total = max(bundles.count, 1) + + for (index, bundle) in bundles.enumerated() { + + let appContainer = base + "/" + bundle + + guard let items = try? self.fm.contentsOfDirectory(atPath: appContainer) else { continue } + + for item in items where item.hasSuffix(".app") { + + let appPath = appContainer + "/" + item + let cachePath = appPath + "/Library/Caches" + + guard self.fm.fileExists(atPath: cachePath) else { continue } + + let size = self.folderSize(cachePath) + guard size > (minSizeMB * 1024 * 1024) else { continue } + + let info = NSDictionary(contentsOfFile: appPath + "/Info.plist") + let bundleID = info?["CFBundleIdentifier"] as? String ?? UUID().uuidString + + let name = + info?["CFBundleDisplayName"] as? String ?? + info?["CFBundleName"] as? String ?? + item + + let icon = self.loadIcon(appPath: appPath, info: info) + + results.append(CacheApp( + id: bundleID, + name: name, + bundleID: bundleID, + appPath: appPath, + icon: icon, + cacheSize: size, + cachePath: cachePath + )) + + break + } + + // update progress LIVE + let progress = Double(index + 1) / Double(total) + + DispatchQueue.main.async { + self.scanProgress = progress + self.statusText = "Scanning... \(Int(progress * 100))%" + } + } + + let totalBytes = results.reduce(0) { $0 + $1.cacheSize } + + DispatchQueue.main.async { + self.apps = results.sorted { $0.cacheSize > $1.cacheSize } + self.totalCacheBytes = totalBytes + self.isScanning = false + self.statusText = "Found \(results.count) apps" + } + } + } + + // MARK: TMP Cleaner + + func cleanTMP() { + let tmp = "/var/mobile/tmp" + guard let files = try? fm.contentsOfDirectory(atPath: tmp) else { return } + + for file in files { + try? fm.removeItem(atPath: tmp + "/" + file) + } + } + + // MARK: Cache Delete + + func deleteCache(_ app: CacheApp) { + try? fm.removeItem(atPath: app.cachePath) + try? fm.createDirectory(atPath: app.cachePath, withIntermediateDirectories: true) + startScan() + } + + func deleteAll() { + for app in apps { + deleteCache(app) + } + startScan() + } + + // MARK: Helpers + + private func folderSize(_ path: String) -> Int64 { + guard let e = fm.enumerator(atPath: path) else { return 0 } + + var size: Int64 = 0 + + for case let file as String in e { + let full = (path as NSString).appendingPathComponent(file) + + if let attrs = try? fm.attributesOfItem(atPath: full), + let fileSize = attrs[.size] as? NSNumber { + size += fileSize.int64Value + } + } + + return size + } + + private func loadIcon(appPath: String, info: NSDictionary?) -> UIImage? { + guard let icons = info?["CFBundleIcons"] as? [String: Any], + let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], + let files = primary["CFBundleIconFiles"] as? [String], + let name = files.last else { + return UIImage(systemName: "app") + } + + let path = appPath + "/" + name + + return UIImage(contentsOfFile: path) + ?? UIImage(contentsOfFile: path + "@2x.png") + ?? UIImage(contentsOfFile: path + ".png") + } +} + +// MARK: - UI + +struct CleanerView: View { + + @StateObject var mgr = CleanerManager() + + var body: some View { + NavigationStack { + + VStack(spacing: 0) { + + VStack(spacing: 10) { + + Text("Cache Found") + .font(.headline) + + Text("\(mgr.totalCacheBytes / 1024 / 1024) MB") + .font(.system(size: 34, weight: .bold)) + + ProgressView(value: Double(mgr.totalCacheBytes)) + .padding(.horizontal) + + ProgressView(value: mgr.scanProgress) + .padding(.horizontal) + + Text(mgr.statusText) + .font(.caption) + .foregroundStyle(.secondary) + } + .padding() + + Divider() + + List { + + Section("Apps") { + + ForEach(mgr.apps) { app in + + HStack { + if let icon = app.icon { + Image(uiImage: icon) + .resizable() + .frame(width: 40, height: 40) + .cornerRadius(8) + } else { + Image(systemName: "app") + } + + VStack(alignment: .leading) { + Text(app.name) + Text("\(app.cacheSize / 1024 / 1024) MB cache") + .font(.caption) + .foregroundStyle(.secondary) + } + } + .swipeActions { + Button(role: .destructive) { + mgr.deleteCache(app) + } label: { + Text("Delete") + } + } + } + } + + Section { + Button("Delete All Cache") { + mgr.deleteAll() + } + .foregroundStyle(.red) + + Button("Clean TMP") { + mgr.cleanTMP() + } + } + } + } + .navigationTitle("Live Cleaner") + + .onAppear { + mgr.startScan() + } + } + } +} From 3d54312809140e3f13f8c40f502b43842d9348d7 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:12:37 +0530 Subject: [PATCH 124/233] Rename CacheView to CacheView.swift --- lara/views/tweaks/{CacheView => CacheView.swift} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lara/views/tweaks/{CacheView => CacheView.swift} (100%) diff --git a/lara/views/tweaks/CacheView b/lara/views/tweaks/CacheView.swift similarity index 100% rename from lara/views/tweaks/CacheView rename to lara/views/tweaks/CacheView.swift From 63b05a5146b0b18fca9557573f16baab26a52a2f Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:17:28 +0530 Subject: [PATCH 125/233] Update project.yml --- project.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/project.yml b/project.yml index 0b26f3b77..9472258d5 100644 --- a/project.yml +++ b/project.yml @@ -26,3 +26,11 @@ targets: dependencies: - sdk: UIKit.framework - sdk: Foundation.framework + + postBuildScripts: + - name: Copy Dylibs + script: | + mkdir -p "lara.ipa/Payload/lara.app/Frameworks" + cp -f "lara.ipa/Payload/lara.app/libgrabkernel2.dylib" "lara.ipa/Payload/lara.app/Frameworks/" + cp -f "lara.ipa/Payload/lara.app/libxpf.dylib" "lara.ipa/Payload/lara.app/Frameworks/" + From be60ef9e0860a81f171d6aaa72230a8f1884c8ee Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:19:28 +0530 Subject: [PATCH 126/233] Update CacheView.swift --- lara/views/tweaks/CacheView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/views/tweaks/CacheView.swift b/lara/views/tweaks/CacheView.swift index dbaee88a6..4185222e9 100644 --- a/lara/views/tweaks/CacheView.swift +++ b/lara/views/tweaks/CacheView.swift @@ -1,5 +1,6 @@ import SwiftUI import UIKit +import Combine // MARK: - Model From 3820006047a2d97b22f63fd0537c664f74ae94c8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:29:10 +0530 Subject: [PATCH 127/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index 2c2e9d68f..3fd689d3f 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -58,7 +58,11 @@ struct TweaksView: View { NavigationLink("Custom Overwrite", destination: CustomView(mgr: mgr)) .disabled(!mgr.vfsready) NavigationLink("OTA Updates", destination: OTAView(mgr: mgr)) + .disabled(!mgr.vfsready || !mgr.sbxready) NavigationLink("Screen Time", destination: ScreenTimeView(mgr: mgr)) + .disabled(!mgr.vfsready || !mgr.sbxready) + NavigationLink("Clean Cache", destination: CacheView()) + .disabled(!mgr.vfsready || !mgr.sbxready) } Section(header: HeaderLabel(text: "Broken", icon: "exclamationmark.triangle.fill")) { From 9ca5971c8d73c0c562f942c4852601d53ad0d5a1 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:29:38 +0530 Subject: [PATCH 128/233] Update CacheView.swift --- lara/views/tweaks/CacheView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/CacheView.swift b/lara/views/tweaks/CacheView.swift index 4185222e9..3cc1e1377 100644 --- a/lara/views/tweaks/CacheView.swift +++ b/lara/views/tweaks/CacheView.swift @@ -252,7 +252,7 @@ struct CleanerView: View { } } } - .navigationTitle("Live Cleaner") + .navigationTitle("Clean Cache") .onAppear { mgr.startScan() From 8b9a14301cee8c7cee842e593a8a8c1da6641167 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:40:06 +0530 Subject: [PATCH 129/233] Rename project.pbxproj to project.pbxproj --- {lara.xcodeproj => lara1.xcodeproj}/project.pbxproj | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {lara.xcodeproj => lara1.xcodeproj}/project.pbxproj (100%) diff --git a/lara.xcodeproj/project.pbxproj b/lara1.xcodeproj/project.pbxproj similarity index 100% rename from lara.xcodeproj/project.pbxproj rename to lara1.xcodeproj/project.pbxproj From 8c2a68fb2660b11146b7dc05d85cfd0b8a715e32 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:41:13 +0530 Subject: [PATCH 130/233] Add files via upload --- lara.xcodeproj/project.pbxproj | 1242 ++++++++++++++++++++++++++++++++ 1 file changed, 1242 insertions(+) create mode 100644 lara.xcodeproj/project.pbxproj diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj new file mode 100644 index 000000000..3bf734669 --- /dev/null +++ b/lara.xcodeproj/project.pbxproj @@ -0,0 +1,1242 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; + 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; + 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; + 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; + 6CED6786094A6039B7B1DEDC /* CacheView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B881FEDBA1A71AE1C0A051D5 /* CacheView.swift */; }; + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; + 7117AB33747CB29995DF2DF5 /* OTAView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804238A057A2DF3D3EDD2D2A /* OTAView.swift */; }; + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; + 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; + AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; + AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; + BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; + D38CACF5DF25975A943AB066 /* ScreenTimeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */; }; + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; + D3D3187930A0075CB526AB01 /* screentime.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FE05E69C027F81699504C0E /* screentime.m */; }; + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; + E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; + F4911325FE3CB897E92D1E30 /* ota.m in Sources */ = {isa = PBXBuildFile; fileRef = 629153B59D4C44844AE0B04F /* ota.m */; }; + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; + 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; + 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; + 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; + 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; + 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; + 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; + 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; + 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; + 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; + 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; + 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; + 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; + 3FE05E69C027F81699504C0E /* screentime.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = screentime.m; sourceTree = ""; }; + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; + 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; + 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; + 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; + 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; + 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; + 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; + 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; + 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenTimeView.swift; sourceTree = ""; }; + 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; + 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; + 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; + 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; + 629153B59D4C44844AE0B04F /* ota.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ota.m; sourceTree = ""; }; + 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; + 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; + 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; + 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; + 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; + 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; + 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; + 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; + 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; + 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; + 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; + 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; + 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; + 804238A057A2DF3D3EDD2D2A /* OTAView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTAView.swift; sourceTree = ""; }; + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; + 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; + 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; + 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; + 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; + 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; + 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; + A3A220FFB44F9BE6C2DFB8D3 /* ota.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ota.h; sourceTree = ""; }; + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; + A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; + A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; + AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; + AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; + AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; + ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; + AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; + B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; + B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; + B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; + B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; + B881FEDBA1A71AE1C0A051D5 /* CacheView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheView.swift; sourceTree = ""; }; + BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; + CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; + CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; + CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; + D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; + D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; + D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; + DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; + DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; + E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; + E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; + E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; + E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; + EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; + EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; + F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; + F4EB254782F7A19F5DB271A4 /* screentime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = screentime.h; sourceTree = ""; }; + F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; + F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; + F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; + F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 77D3CA82B4C410701CD229E2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, + 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0731B4811AB8A4261C149BD3 /* Inputs */ = { + isa = PBXGroup; + children = ( + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, + ); + path = Inputs; + sourceTree = ""; + }; + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { + isa = PBXGroup; + children = ( + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, + E4F25FF1C3F48BDC5E6BB728 /* exc.m */, + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, + 2329A0992D4982D4E144AB75 /* pac.h */, + 7716BA871D7E897964A49CBD /* pac.m */, + E39629D147580074F13782D6 /* privateapi.h */, + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, + D2ED109B18B57340D5F23066 /* RemoteCall.m */, + 47A521EB489F34847F77161C /* thread.h */, + 69CB9CC7CA7C437D5204AD77 /* thread.m */, + 6FD2D7416B6AA7CE5E184223 /* vm.h */, + 2046AE855EEB1C6D361886E0 /* vm.m */, + ); + path = TaskRop; + sourceTree = ""; + }; + 096D912C986A1ECDD4AE9C57 /* broken */ = { + isa = PBXGroup; + children = ( + DF63A96A2904C5BAA9C6E491 /* CCView.swift */, + 97E7B95F214CEA3C04F0AC58 /* darkboard */, + ); + path = broken; + sourceTree = ""; + }; + 09B6EF0B45C55F479407D990 /* Terminal */ = { + isa = PBXGroup; + children = ( + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, + ); + path = Terminal; + sourceTree = ""; + }; + 0D159B4E42377C38FDD14E18 /* tweaks */ = { + isa = PBXGroup; + children = ( + D7767AE9E778CDC4652EE1AA /* AppsView.swift */, + B881FEDBA1A71AE1C0A051D5 /* CacheView.swift */, + 87B5A7075908DD63D2DB887E /* CardView.swift */, + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, + AB6983282C48A1F9D8916495 /* DecryptView.swift */, + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, + F2807342CC8396EA700E7626 /* JitView.swift */, + 804238A057A2DF3D3EDD2D2A /* OTAView.swift */, + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, + 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */, + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, + 096D912C986A1ECDD4AE9C57 /* broken */, + F1B195CE1E819A5C7256ED05 /* dirtyZero */, + 94239040D8A11FC1A668FCE4 /* liquidglass */, + 8855FA399F2E0D870F89E63A /* mobilegestalt */, + 1CF2706A6E532F38D6DD625F /* passcode */, + BCB9166DBD1D0FB1A634265E /* sbcustomizer */, + ); + path = tweaks; + sourceTree = ""; + }; + 0E9B667B7F6DF2F65554368C /* app */ = { + isa = PBXGroup; + children = ( + AAF0DB241A670081991552A3 /* ContentView.swift */, + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, + A89E6CF98559C612AA19E5CE /* settings */, + ); + path = app; + sourceTree = ""; + }; + 1CF2706A6E532F38D6DD625F /* passcode */ = { + isa = PBXGroup; + children = ( + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 201E76134F22499BFD3DF53F /* Buttons */ = { + isa = PBXGroup; + children = ( + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, + ); + path = Buttons; + sourceTree = ""; + }; + 23942EEA65BBA190D901B7D2 /* choma */ = { + isa = PBXGroup; + children = ( + 6C46703C2B4072AEF8703349 /* arm64.h */, + AAAF3E2619E3D32C626EC2FA /* Base64.h */, + A9376E035DE98BB605BE0C76 /* BufferedStream.h */, + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, + ADC09F6065726F4669F88037 /* CodeDirectory.h */, + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, + E497648156C6CAAA87EEE6CB /* DER.h */, + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, + 3C989876DB6E112F7F3C3698 /* Entitlements.h */, + 09A16D0CCA129CD34402ACAB /* Fat.h */, + 791AEB9809EE46375BD53FF9 /* FileStream.h */, + BB016623AE10E3896FEF50AF /* fixup-chains.h */, + F506183C2CFD8D7D0FA1322D /* Host.h */, + 99CF547D66CF02B4B4DFA30C /* MachO.h */, + 3F975F92D7C580260B59024B /* MachOByteOrder.h */, + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, + F742E837A76B006F367ABC15 /* PatchFinder.h */, + B447AC3664839765F3679082 /* Util.h */, + ); + path = choma; + sourceTree = ""; + }; + 48AB90CB037F435485C6047D /* Settings */ = { + isa = PBXGroup; + children = ( + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 4A3D6651E821914BC1DA4474 /* Indicators */ = { + isa = PBXGroup; + children = ( + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, + ); + path = Indicators; + sourceTree = ""; + }; + 4BE43909AB102BC654C3AA36 /* lara */ = { + isa = PBXGroup; + children = ( + 71B66224C5948251B6008EC4 /* Info.plist */, + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, + 785FE68237A73C050C69066D /* lara.swift */, + E6D45AD3A84FDFFB26A63642 /* assets */, + 761E02C29DBA3FA091780A05 /* classes */, + BD4923F18700F649F4B199C9 /* funcs */, + B8439178F75BD677E46A1DE7 /* headers */, + 9FC4F095CD4B29F2EBA790C6 /* kexploit */, + F0B17F0CA82330A26B5CAE4B /* lib */, + BA72AA8D35B0D97633C2BF5E /* licenses */, + EC0774E5B4020C4D885431BC /* other */, + 9D63227FDF3FDE8908661A7D /* PartyUI */, + D70718477881BA82E605FF53 /* views */, + ); + path = lara; + sourceTree = ""; + }; + 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { + isa = PBXGroup; + children = ( + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 039D284F496260AA52986467 /* Foundation.framework */, + 410B1EDE3D870185074F65BC /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 73E8616A7EF5B51A92B29E54 /* Lists */ = { + isa = PBXGroup; + children = ( + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, + ); + path = Lists; + sourceTree = ""; + }; + 761E02C29DBA3FA091780A05 /* classes */ = { + isa = PBXGroup; + children = ( + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, + 7ADF625620559A728F4B333A /* Logger.swift */, + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, + CBFD358E70EC405DE82C3960 /* zipmgr.swift */, + 860A585202C20E00C82C419C /* tweaks */, + ); + path = classes; + sourceTree = ""; + }; + 7814074F0998A8D980C3CBF8 /* other */ = { + isa = PBXGroup; + children = ( + A9BBF565E304760414833AF4 /* respring.swift */, + ); + path = other; + sourceTree = ""; + }; + 7BD2299CAA022F5E87524835 /* Products */ = { + isa = PBXGroup; + children = ( + B1650DE9DA6D35D51EE63DA2 /* Lara.app */, + ); + name = Products; + sourceTree = ""; + }; + 7F048C9DF00CA2EEB9135FFF /* Effects */ = { + isa = PBXGroup; + children = ( + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, + ); + path = Effects; + sourceTree = ""; + }; + 860A585202C20E00C82C419C /* tweaks */ = { + isa = PBXGroup; + children = ( + 4CFE8C17A9569842AF2EDD4E /* darkboard */, + 9CA94EDD3BE9DDBB6B279DCA /* passcode */, + ); + path = tweaks; + sourceTree = ""; + }; + 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { + isa = PBXGroup; + children = ( + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, + ); + path = mobilegestalt; + sourceTree = ""; + }; + 93732F3C530FBFCDA46E1FCE /* Functions */ = { + isa = PBXGroup; + children = ( + 1D1585E8B42B2495142BE67E /* Alertinator.swift */, + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, + 4759F640E231F564F06DB0F5 /* Shareinator.swift */, + ); + path = Functions; + sourceTree = ""; + }; + 94239040D8A11FC1A668FCE4 /* liquidglass */ = { + isa = PBXGroup; + children = ( + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, + ); + path = liquidglass; + sourceTree = ""; + }; + 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { + isa = PBXGroup; + children = ( + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { + isa = PBXGroup; + children = ( + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 9D63227FDF3FDE8908661A7D /* PartyUI */ = { + isa = PBXGroup; + children = ( + 448609047BB8D112B7E99BFA /* PartyUI.swift */, + CCCE9A5AD37D20741B82ADB9 /* App */, + C6CEB364F2625B0EF49D1447 /* UI */, + ); + path = PartyUI; + sourceTree = ""; + }; + 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { + isa = PBXGroup; + children = ( + 0B1831D0D49F9245F54EBDC6 /* compat.h */, + CB0E8E3EC140E01DA032363F /* darksword.h */, + DD123A4DC76BB7C0734B5AE9 /* darksword.m */, + 4A33766163693DFAA30D772A /* decrypt.h */, + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, + 7DC3E2446E97ECC921D3AE94 /* offsets.h */, + EDC9360B2E647660F1BD443F /* offsets.m */, + A3A220FFB44F9BE6C2DFB8D3 /* ota.h */, + 629153B59D4C44844AE0B04F /* ota.m */, + 617E864CD832D1D3839429F0 /* persistence.h */, + B2BA68871A9D11BCFDC2AE71 /* persistence.m */, + F4EB254782F7A19F5DB271A4 /* screentime.h */, + 3FE05E69C027F81699504C0E /* screentime.m */, + 206327D869325194A5015A1B /* utils.h */, + 5A300D3F6ED3397BE1E6AD87 /* utils.m */, + C6122EC473A3A57510124B02 /* pe */, + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, + ); + path = kexploit; + sourceTree = ""; + }; + A5B06BC43186EA1E4D25299F = { + isa = PBXGroup; + children = ( + 4BE43909AB102BC654C3AA36 /* lara */, + 72729D505A51BDFC8C55A1D9 /* Frameworks */, + 7BD2299CAA022F5E87524835 /* Products */, + ); + sourceTree = ""; + }; + A89E6CF98559C612AA19E5CE /* settings */ = { + isa = PBXGroup; + children = ( + 61F528F680617A48C3CAB181 /* CreditsView.swift */, + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, + 986EBE17846F5764D1456F88 /* SettingsView.swift */, + ); + path = settings; + sourceTree = ""; + }; + B8439178F75BD677E46A1DE7 /* headers */ = { + isa = PBXGroup; + children = ( + B5A1457B7D98C0DDC65ACC3B /* fileport.h */, + EDF19B2325FE621BF70AC862 /* IconServices.h */, + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, + 51BF1E07A44069A4B21B39EE /* xpf.h */, + ); + path = headers; + sourceTree = ""; + }; + B96F95013D086604AB0F746C /* fm */ = { + isa = PBXGroup; + children = ( + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, + 73D525CF14505CE9B85FD317 /* FileView.swift */, + 9C010243976A7D404529C206 /* SantanderView.swift */, + ); + path = fm; + sourceTree = ""; + }; + BA72AA8D35B0D97633C2BF5E /* licenses */ = { + isa = PBXGroup; + children = ( + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, + ); + path = licenses; + sourceTree = ""; + }; + BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { + isa = PBXGroup; + children = ( + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, + ); + path = sbcustomizer; + sourceTree = ""; + }; + BD4923F18700F649F4B199C9 /* funcs */ = { + isa = PBXGroup; + children = ( + CD0D193753BA74B811063956 /* fetchkcache.swift */, + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, + 92C2A1D1BCFA40230A63C752 /* helpers.swift */, + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, + F50A3C705DF2F98AC63AA699 /* keepalive.swift */, + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, + ); + path = funcs; + sourceTree = ""; + }; + C6122EC473A3A57510124B02 /* pe */ = { + isa = PBXGroup; + children = ( + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, + 797DFBA07DCC9320399BC99F /* apfs.m */, + 09BE5060F2C9DFD730796B7E /* rc.h */, + 86610E6990066EDFE2B5D96B /* rc.m */, + 3450D579B9EF6D1B24EA44AB /* sbx.h */, + F7BDDFA67F1109816C300F1E /* sbx.m */, + 33FAD74D2D09DFD7CF1985FA /* vfs.h */, + 7A92CE7743387903DDBFFC8C /* vfs.m */, + D714CE75040A9A3A983B36BE /* vnode.h */, + 09E09CADCF84F1D6D51E5F20 /* vnode.m */, + E6A7B0366B3E502209C65E24 /* xpaci.h */, + ); + path = pe; + sourceTree = ""; + }; + C6CEB364F2625B0EF49D1447 /* UI */ = { + isa = PBXGroup; + children = ( + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, + 201E76134F22499BFD3DF53F /* Buttons */, + 7F048C9DF00CA2EEB9135FFF /* Effects */, + 4A3D6651E821914BC1DA4474 /* Indicators */, + 0731B4811AB8A4261C149BD3 /* Inputs */, + 73E8616A7EF5B51A92B29E54 /* Lists */, + 09B6EF0B45C55F479407D990 /* Terminal */, + ); + path = UI; + sourceTree = ""; + }; + CCCE9A5AD37D20741B82ADB9 /* App */ = { + isa = PBXGroup; + children = ( + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, + CED7197ED6E1E06C45D4927C /* Extensions */, + 93732F3C530FBFCDA46E1FCE /* Functions */, + 48AB90CB037F435485C6047D /* Settings */, + F8BF389C000C82BE834B7E80 /* WelcomeSheet */, + ); + path = App; + sourceTree = ""; + }; + CED7197ED6E1E06C45D4927C /* Extensions */ = { + isa = PBXGroup; + children = ( + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + D70718477881BA82E605FF53 /* views */ = { + isa = PBXGroup; + children = ( + 0E9B667B7F6DF2F65554368C /* app */, + B96F95013D086604AB0F746C /* fm */, + 7814074F0998A8D980C3CBF8 /* other */, + 0D159B4E42377C38FDD14E18 /* tweaks */, + ); + path = views; + sourceTree = ""; + }; + E6D45AD3A84FDFFB26A63642 /* assets */ = { + isa = PBXGroup; + children = ( + AE2331E0F7B3D823CA15DF72 /* lara.png */, + ); + path = assets; + sourceTree = ""; + }; + EC0774E5B4020C4D885431BC /* other */ = { + isa = PBXGroup; + children = ( + 48E6FC849E553C68E397984C /* lara.entitlements */, + 68FA57A36233679708C5E468 /* media.xcassets */, + 60E947B3676E84C6A668511C /* VarCleanRules.json */, + ); + path = other; + sourceTree = ""; + }; + F0B17F0CA82330A26B5CAE4B /* lib */ = { + isa = PBXGroup; + children = ( + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, + 6337EE02AC0706717DFA252A /* libxpf.dylib */, + 23942EEA65BBA190D901B7D2 /* choma */, + ); + path = lib; + sourceTree = ""; + }; + F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { + isa = PBXGroup; + children = ( + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, + ); + path = dirtyZero; + sourceTree = ""; + }; + F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { + isa = PBXGroup; + children = ( + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, + ); + path = WelcomeSheet; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + FD1665B8C8F3A79F013224EE /* Lara */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; + buildPhases = ( + F9DE0523417E74276238FA56 /* Sources */, + 7CE4B9CDA802D229BDFBAFEF /* Resources */, + 77D3CA82B4C410701CD229E2 /* Frameworks */, + 8D7C94460EE958C050E58351 /* Copy Dylibs */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Lara; + packageProductDependencies = ( + ); + productName = Lara; + productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + }; + }; + buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = A5B06BC43186EA1E4D25299F; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FD1665B8C8F3A79F013224EE /* Lara */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, + 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, + 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, + BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, + BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, + 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, + 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, + 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, + 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 8D7C94460EE958C050E58351 /* Copy Dylibs */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Copy Dylibs"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "mkdir -p \"lara.ipa/Payload/lara.app/Frameworks\"\ncp -f \"lara.ipa/Payload/lara.app/libgrabkernel2.dylib\" \"lara.ipa/Payload/lara.app/Frameworks/\"\ncp -f \"lara.ipa/Payload/lara.app/libxpf.dylib\" \"lara.ipa/Payload/lara.app/Frameworks/\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F9DE0523417E74276238FA56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, + 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, + D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, + 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, + 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, + 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, + 6CED6786094A6039B7B1DEDC /* CacheView.swift in Sources */, + 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, + 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, + E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, + E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, + CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, + 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, + CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, + CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, + B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, + 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, + AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, + DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, + A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, + 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, + 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, + 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, + E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, + 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, + 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, + 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, + 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, + A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, + 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, + EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, + 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, + 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, + D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, + CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, + 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, + 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, + C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, + 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, + 333CD424E2385A8097A3533C /* Logger.swift in Sources */, + AAC093D16E38470615A9725D /* LogsView.swift in Sources */, + B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, + 7117AB33747CB29995DF2DF5 /* OTAView.swift in Sources */, + 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, + 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, + 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, + 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, + 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, + D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, + EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, + EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, + FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, + 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, + 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, + 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, + 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, + 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, + 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, + D38CACF5DF25975A943AB066 /* ScreenTimeView.swift in Sources */, + 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, + 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, + C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, + BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, + 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, + 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, + 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, + 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, + 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, + 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, + 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, + 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, + C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, + FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, + 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, + E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, + 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, + EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, + 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, + 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, + 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, + E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, + 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, + A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, + 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, + B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, + B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, + ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, + A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, + AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, + 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, + 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, + 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, + 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, + B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, + 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, + 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, + 7AEF609084ED052D6C996095 /* offsets.m in Sources */, + F4911325FE3CB897E92D1E30 /* ota.m in Sources */, + 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, + AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, + 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, + C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, + E99D712EE78CA8073C49821B /* respring.swift in Sources */, + 495E4514D5AE764363BAF696 /* sbx.m in Sources */, + D3D3187930A0075CB526AB01 /* screentime.m in Sources */, + AFD8AD5FD3F60467492282EF /* thread.m in Sources */, + BC49811360FE90E8EAE827E8 /* utils.m in Sources */, + F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, + 4997659E14575C5B7AAACC12 /* vm.m in Sources */, + 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, + 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3E810AC91C376ED3F7F9E2BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 82AE279FDF9B38FD75536E7A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + B36A0572D1FE8B1BD286BCB7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + EEB3821768474EEF09187DAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B36A0572D1FE8B1BD286BCB7 /* Debug */, + EEB3821768474EEF09187DAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E810AC91C376ED3F7F9E2BA /* Debug */, + 82AE279FDF9B38FD75536E7A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; +} From 78090b6408eff4a6e50dc6ebc7ab9928bf08d282 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:46:19 +0530 Subject: [PATCH 131/233] Update build_ipa.sh --- scripts/build_ipa.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index e0a404db8..13daeaf4f 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -9,7 +9,7 @@ echo xcodebuild \ -project lara.xcodeproj \ - -scheme lara \ + -scheme Lara \ -configuration Debug \ -sdk iphoneos \ -arch arm64e \ From d818d6d3b5e9905f73999371ca186fa48120b106 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:54:00 +0530 Subject: [PATCH 132/233] Update CacheView.swift --- lara/views/tweaks/CacheView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/CacheView.swift b/lara/views/tweaks/CacheView.swift index 3cc1e1377..5fb998d34 100644 --- a/lara/views/tweaks/CacheView.swift +++ b/lara/views/tweaks/CacheView.swift @@ -176,7 +176,7 @@ final class CleanerManager: ObservableObject { // MARK: - UI -struct CleanerView: View { +struct CacheView: View { @StateObject var mgr = CleanerManager() From e4ffe202969364fb88c46f39049f09db3e2f524c Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 17:59:47 +0530 Subject: [PATCH 133/233] Update project.yml --- project.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/project.yml b/project.yml index 9472258d5..4acef0ee8 100644 --- a/project.yml +++ b/project.yml @@ -6,7 +6,7 @@ options: iOS: 17.0 targets: - Lara: + lara: type: application platform: iOS @@ -19,7 +19,7 @@ targets: INFOPLIST_FILE: lara/Info.plist SWIFT_OBJC_BRIDGING_HEADER: lara/lara-Bridging-Header.h LIBRARY_SEARCH_PATHS: $(inherited) lara/lib/ - OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel2 -lmuffinstore + OTHER_LDFLAGS: $(inherited) -lxpf -lgrabkernel2 SWIFT_VERSION: 5.0 SWIFT_STRICT_CONCURRENCY: minimal From 091ede1c35cd8416decbae6f2facb67526422ed4 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:00:09 +0530 Subject: [PATCH 134/233] Update build_ipa.sh --- scripts/build_ipa.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index 13daeaf4f..e0a404db8 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -9,7 +9,7 @@ echo xcodebuild \ -project lara.xcodeproj \ - -scheme Lara \ + -scheme lara \ -configuration Debug \ -sdk iphoneos \ -arch arm64e \ From 8818d63729f7d4c99947ab6097be074f37b554cc Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:03:41 +0530 Subject: [PATCH 135/233] Update build.yml --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1d0d0bea9..f3d00474f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,6 +19,12 @@ jobs: with: fetch-depth: 0 + - name: setup xcodegen + run: brew install xcodegen + + - name: make project + run: xcodegen generate + - name: setup xcode uses: maxim-lobanov/setup-xcode@v1 with: From fb66cac92cf5680a482cc0cc258283964f6e79d1 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:05:03 +0530 Subject: [PATCH 136/233] Create contents.xcworkspacedata --- .../project.xcworkspace/contents.xcworkspacedata | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 lara1.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/lara1.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/lara1.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/lara1.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + From c6a211190d0489881e5a2e4e67a39154fc6f688f Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:05:16 +0530 Subject: [PATCH 137/233] Delete lara.xcodeproj directory --- lara.xcodeproj/.gitignore | 1 - lara.xcodeproj/project.pbxproj | 1242 ----------------- .../contents.xcworkspacedata | 7 - 3 files changed, 1250 deletions(-) delete mode 100644 lara.xcodeproj/.gitignore delete mode 100644 lara.xcodeproj/project.pbxproj delete mode 100644 lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/lara.xcodeproj/.gitignore b/lara.xcodeproj/.gitignore deleted file mode 100644 index c54511205..000000000 --- a/lara.xcodeproj/.gitignore +++ /dev/null @@ -1 +0,0 @@ -xcuserdata/ diff --git a/lara.xcodeproj/project.pbxproj b/lara.xcodeproj/project.pbxproj deleted file mode 100644 index 3bf734669..000000000 --- a/lara.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1242 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; - 333CD424E2385A8097A3533C /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; - 495E4514D5AE764363BAF696 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; - 4997659E14575C5B7AAACC12 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; - 6CED6786094A6039B7B1DEDC /* CacheView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B881FEDBA1A71AE1C0A051D5 /* CacheView.swift */; }; - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; - 7117AB33747CB29995DF2DF5 /* OTAView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804238A057A2DF3D3EDD2D2A /* OTAView.swift */; }; - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; - 7AEF609084ED052D6C996095 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; - AAC093D16E38470615A9725D /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; - AFD8AD5FD3F60467492282EF /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; - BC49811360FE90E8EAE827E8 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; - D38CACF5DF25975A943AB066 /* ScreenTimeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */; }; - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; - D3D3187930A0075CB526AB01 /* screentime.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FE05E69C027F81699504C0E /* screentime.m */; }; - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; - E99D712EE78CA8073C49821B /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; - F4911325FE3CB897E92D1E30 /* ota.m in Sources */ = {isa = PBXBuildFile; fileRef = 629153B59D4C44844AE0B04F /* ota.m */; }; - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; - 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; - 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; - 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; - 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; - 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; - 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; - 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; - 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; - 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; - 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; - 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; - 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; - 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; - 3FE05E69C027F81699504C0E /* screentime.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = screentime.m; sourceTree = ""; }; - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; - 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; - 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; - 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; - 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; - 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; - 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; - 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; - 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenTimeView.swift; sourceTree = ""; }; - 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; - 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; - 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; - 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; - 629153B59D4C44844AE0B04F /* ota.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ota.m; sourceTree = ""; }; - 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; - 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; - 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; - 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; - 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; - 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; - 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; - 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; - 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; - 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; - 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; - 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; - 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; - 804238A057A2DF3D3EDD2D2A /* OTAView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTAView.swift; sourceTree = ""; }; - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; - 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; - 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; - 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; - 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; - 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; - 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; - A3A220FFB44F9BE6C2DFB8D3 /* ota.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ota.h; sourceTree = ""; }; - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; - A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; - A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; - AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; - AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; - AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; - ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; - AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; - B1650DE9DA6D35D51EE63DA2 /* Lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; - B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; - B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; - B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; - B881FEDBA1A71AE1C0A051D5 /* CacheView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheView.swift; sourceTree = ""; }; - BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; - CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; - CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; - CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; - D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; - D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; - D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; - DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; - DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; - E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; - E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; - E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; - E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; - EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; - EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; - F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; - F4EB254782F7A19F5DB271A4 /* screentime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = screentime.h; sourceTree = ""; }; - F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; - F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; - F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; - F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 77D3CA82B4C410701CD229E2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 47D68AE445E6E3C1B521A735 /* UIKit.framework in Frameworks */, - 9D957E103626718DF86289DF /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0731B4811AB8A4261C149BD3 /* Inputs */ = { - isa = PBXGroup; - children = ( - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, - ); - path = Inputs; - sourceTree = ""; - }; - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { - isa = PBXGroup; - children = ( - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, - E4F25FF1C3F48BDC5E6BB728 /* exc.m */, - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, - 2329A0992D4982D4E144AB75 /* pac.h */, - 7716BA871D7E897964A49CBD /* pac.m */, - E39629D147580074F13782D6 /* privateapi.h */, - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, - D2ED109B18B57340D5F23066 /* RemoteCall.m */, - 47A521EB489F34847F77161C /* thread.h */, - 69CB9CC7CA7C437D5204AD77 /* thread.m */, - 6FD2D7416B6AA7CE5E184223 /* vm.h */, - 2046AE855EEB1C6D361886E0 /* vm.m */, - ); - path = TaskRop; - sourceTree = ""; - }; - 096D912C986A1ECDD4AE9C57 /* broken */ = { - isa = PBXGroup; - children = ( - DF63A96A2904C5BAA9C6E491 /* CCView.swift */, - 97E7B95F214CEA3C04F0AC58 /* darkboard */, - ); - path = broken; - sourceTree = ""; - }; - 09B6EF0B45C55F479407D990 /* Terminal */ = { - isa = PBXGroup; - children = ( - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, - ); - path = Terminal; - sourceTree = ""; - }; - 0D159B4E42377C38FDD14E18 /* tweaks */ = { - isa = PBXGroup; - children = ( - D7767AE9E778CDC4652EE1AA /* AppsView.swift */, - B881FEDBA1A71AE1C0A051D5 /* CacheView.swift */, - 87B5A7075908DD63D2DB887E /* CardView.swift */, - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, - AB6983282C48A1F9D8916495 /* DecryptView.swift */, - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, - F2807342CC8396EA700E7626 /* JitView.swift */, - 804238A057A2DF3D3EDD2D2A /* OTAView.swift */, - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, - 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */, - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, - 096D912C986A1ECDD4AE9C57 /* broken */, - F1B195CE1E819A5C7256ED05 /* dirtyZero */, - 94239040D8A11FC1A668FCE4 /* liquidglass */, - 8855FA399F2E0D870F89E63A /* mobilegestalt */, - 1CF2706A6E532F38D6DD625F /* passcode */, - BCB9166DBD1D0FB1A634265E /* sbcustomizer */, - ); - path = tweaks; - sourceTree = ""; - }; - 0E9B667B7F6DF2F65554368C /* app */ = { - isa = PBXGroup; - children = ( - AAF0DB241A670081991552A3 /* ContentView.swift */, - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, - A89E6CF98559C612AA19E5CE /* settings */, - ); - path = app; - sourceTree = ""; - }; - 1CF2706A6E532F38D6DD625F /* passcode */ = { - isa = PBXGroup; - children = ( - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 201E76134F22499BFD3DF53F /* Buttons */ = { - isa = PBXGroup; - children = ( - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 23942EEA65BBA190D901B7D2 /* choma */ = { - isa = PBXGroup; - children = ( - 6C46703C2B4072AEF8703349 /* arm64.h */, - AAAF3E2619E3D32C626EC2FA /* Base64.h */, - A9376E035DE98BB605BE0C76 /* BufferedStream.h */, - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, - ADC09F6065726F4669F88037 /* CodeDirectory.h */, - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, - E497648156C6CAAA87EEE6CB /* DER.h */, - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, - 3C989876DB6E112F7F3C3698 /* Entitlements.h */, - 09A16D0CCA129CD34402ACAB /* Fat.h */, - 791AEB9809EE46375BD53FF9 /* FileStream.h */, - BB016623AE10E3896FEF50AF /* fixup-chains.h */, - F506183C2CFD8D7D0FA1322D /* Host.h */, - 99CF547D66CF02B4B4DFA30C /* MachO.h */, - 3F975F92D7C580260B59024B /* MachOByteOrder.h */, - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, - F742E837A76B006F367ABC15 /* PatchFinder.h */, - B447AC3664839765F3679082 /* Util.h */, - ); - path = choma; - sourceTree = ""; - }; - 48AB90CB037F435485C6047D /* Settings */ = { - isa = PBXGroup; - children = ( - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 4A3D6651E821914BC1DA4474 /* Indicators */ = { - isa = PBXGroup; - children = ( - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, - ); - path = Indicators; - sourceTree = ""; - }; - 4BE43909AB102BC654C3AA36 /* lara */ = { - isa = PBXGroup; - children = ( - 71B66224C5948251B6008EC4 /* Info.plist */, - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, - 785FE68237A73C050C69066D /* lara.swift */, - E6D45AD3A84FDFFB26A63642 /* assets */, - 761E02C29DBA3FA091780A05 /* classes */, - BD4923F18700F649F4B199C9 /* funcs */, - B8439178F75BD677E46A1DE7 /* headers */, - 9FC4F095CD4B29F2EBA790C6 /* kexploit */, - F0B17F0CA82330A26B5CAE4B /* lib */, - BA72AA8D35B0D97633C2BF5E /* licenses */, - EC0774E5B4020C4D885431BC /* other */, - 9D63227FDF3FDE8908661A7D /* PartyUI */, - D70718477881BA82E605FF53 /* views */, - ); - path = lara; - sourceTree = ""; - }; - 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { - isa = PBXGroup; - children = ( - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 039D284F496260AA52986467 /* Foundation.framework */, - 410B1EDE3D870185074F65BC /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 73E8616A7EF5B51A92B29E54 /* Lists */ = { - isa = PBXGroup; - children = ( - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, - ); - path = Lists; - sourceTree = ""; - }; - 761E02C29DBA3FA091780A05 /* classes */ = { - isa = PBXGroup; - children = ( - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, - 7ADF625620559A728F4B333A /* Logger.swift */, - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, - CBFD358E70EC405DE82C3960 /* zipmgr.swift */, - 860A585202C20E00C82C419C /* tweaks */, - ); - path = classes; - sourceTree = ""; - }; - 7814074F0998A8D980C3CBF8 /* other */ = { - isa = PBXGroup; - children = ( - A9BBF565E304760414833AF4 /* respring.swift */, - ); - path = other; - sourceTree = ""; - }; - 7BD2299CAA022F5E87524835 /* Products */ = { - isa = PBXGroup; - children = ( - B1650DE9DA6D35D51EE63DA2 /* Lara.app */, - ); - name = Products; - sourceTree = ""; - }; - 7F048C9DF00CA2EEB9135FFF /* Effects */ = { - isa = PBXGroup; - children = ( - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, - ); - path = Effects; - sourceTree = ""; - }; - 860A585202C20E00C82C419C /* tweaks */ = { - isa = PBXGroup; - children = ( - 4CFE8C17A9569842AF2EDD4E /* darkboard */, - 9CA94EDD3BE9DDBB6B279DCA /* passcode */, - ); - path = tweaks; - sourceTree = ""; - }; - 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { - isa = PBXGroup; - children = ( - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, - ); - path = mobilegestalt; - sourceTree = ""; - }; - 93732F3C530FBFCDA46E1FCE /* Functions */ = { - isa = PBXGroup; - children = ( - 1D1585E8B42B2495142BE67E /* Alertinator.swift */, - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, - 4759F640E231F564F06DB0F5 /* Shareinator.swift */, - ); - path = Functions; - sourceTree = ""; - }; - 94239040D8A11FC1A668FCE4 /* liquidglass */ = { - isa = PBXGroup; - children = ( - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, - ); - path = liquidglass; - sourceTree = ""; - }; - 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { - isa = PBXGroup; - children = ( - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { - isa = PBXGroup; - children = ( - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 9D63227FDF3FDE8908661A7D /* PartyUI */ = { - isa = PBXGroup; - children = ( - 448609047BB8D112B7E99BFA /* PartyUI.swift */, - CCCE9A5AD37D20741B82ADB9 /* App */, - C6CEB364F2625B0EF49D1447 /* UI */, - ); - path = PartyUI; - sourceTree = ""; - }; - 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { - isa = PBXGroup; - children = ( - 0B1831D0D49F9245F54EBDC6 /* compat.h */, - CB0E8E3EC140E01DA032363F /* darksword.h */, - DD123A4DC76BB7C0734B5AE9 /* darksword.m */, - 4A33766163693DFAA30D772A /* decrypt.h */, - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, - 7DC3E2446E97ECC921D3AE94 /* offsets.h */, - EDC9360B2E647660F1BD443F /* offsets.m */, - A3A220FFB44F9BE6C2DFB8D3 /* ota.h */, - 629153B59D4C44844AE0B04F /* ota.m */, - 617E864CD832D1D3839429F0 /* persistence.h */, - B2BA68871A9D11BCFDC2AE71 /* persistence.m */, - F4EB254782F7A19F5DB271A4 /* screentime.h */, - 3FE05E69C027F81699504C0E /* screentime.m */, - 206327D869325194A5015A1B /* utils.h */, - 5A300D3F6ED3397BE1E6AD87 /* utils.m */, - C6122EC473A3A57510124B02 /* pe */, - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, - ); - path = kexploit; - sourceTree = ""; - }; - A5B06BC43186EA1E4D25299F = { - isa = PBXGroup; - children = ( - 4BE43909AB102BC654C3AA36 /* lara */, - 72729D505A51BDFC8C55A1D9 /* Frameworks */, - 7BD2299CAA022F5E87524835 /* Products */, - ); - sourceTree = ""; - }; - A89E6CF98559C612AA19E5CE /* settings */ = { - isa = PBXGroup; - children = ( - 61F528F680617A48C3CAB181 /* CreditsView.swift */, - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, - 986EBE17846F5764D1456F88 /* SettingsView.swift */, - ); - path = settings; - sourceTree = ""; - }; - B8439178F75BD677E46A1DE7 /* headers */ = { - isa = PBXGroup; - children = ( - B5A1457B7D98C0DDC65ACC3B /* fileport.h */, - EDF19B2325FE621BF70AC862 /* IconServices.h */, - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, - 51BF1E07A44069A4B21B39EE /* xpf.h */, - ); - path = headers; - sourceTree = ""; - }; - B96F95013D086604AB0F746C /* fm */ = { - isa = PBXGroup; - children = ( - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, - 73D525CF14505CE9B85FD317 /* FileView.swift */, - 9C010243976A7D404529C206 /* SantanderView.swift */, - ); - path = fm; - sourceTree = ""; - }; - BA72AA8D35B0D97633C2BF5E /* licenses */ = { - isa = PBXGroup; - children = ( - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, - ); - path = licenses; - sourceTree = ""; - }; - BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { - isa = PBXGroup; - children = ( - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, - ); - path = sbcustomizer; - sourceTree = ""; - }; - BD4923F18700F649F4B199C9 /* funcs */ = { - isa = PBXGroup; - children = ( - CD0D193753BA74B811063956 /* fetchkcache.swift */, - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, - 92C2A1D1BCFA40230A63C752 /* helpers.swift */, - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, - F50A3C705DF2F98AC63AA699 /* keepalive.swift */, - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, - ); - path = funcs; - sourceTree = ""; - }; - C6122EC473A3A57510124B02 /* pe */ = { - isa = PBXGroup; - children = ( - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, - 797DFBA07DCC9320399BC99F /* apfs.m */, - 09BE5060F2C9DFD730796B7E /* rc.h */, - 86610E6990066EDFE2B5D96B /* rc.m */, - 3450D579B9EF6D1B24EA44AB /* sbx.h */, - F7BDDFA67F1109816C300F1E /* sbx.m */, - 33FAD74D2D09DFD7CF1985FA /* vfs.h */, - 7A92CE7743387903DDBFFC8C /* vfs.m */, - D714CE75040A9A3A983B36BE /* vnode.h */, - 09E09CADCF84F1D6D51E5F20 /* vnode.m */, - E6A7B0366B3E502209C65E24 /* xpaci.h */, - ); - path = pe; - sourceTree = ""; - }; - C6CEB364F2625B0EF49D1447 /* UI */ = { - isa = PBXGroup; - children = ( - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, - 201E76134F22499BFD3DF53F /* Buttons */, - 7F048C9DF00CA2EEB9135FFF /* Effects */, - 4A3D6651E821914BC1DA4474 /* Indicators */, - 0731B4811AB8A4261C149BD3 /* Inputs */, - 73E8616A7EF5B51A92B29E54 /* Lists */, - 09B6EF0B45C55F479407D990 /* Terminal */, - ); - path = UI; - sourceTree = ""; - }; - CCCE9A5AD37D20741B82ADB9 /* App */ = { - isa = PBXGroup; - children = ( - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, - CED7197ED6E1E06C45D4927C /* Extensions */, - 93732F3C530FBFCDA46E1FCE /* Functions */, - 48AB90CB037F435485C6047D /* Settings */, - F8BF389C000C82BE834B7E80 /* WelcomeSheet */, - ); - path = App; - sourceTree = ""; - }; - CED7197ED6E1E06C45D4927C /* Extensions */ = { - isa = PBXGroup; - children = ( - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - D70718477881BA82E605FF53 /* views */ = { - isa = PBXGroup; - children = ( - 0E9B667B7F6DF2F65554368C /* app */, - B96F95013D086604AB0F746C /* fm */, - 7814074F0998A8D980C3CBF8 /* other */, - 0D159B4E42377C38FDD14E18 /* tweaks */, - ); - path = views; - sourceTree = ""; - }; - E6D45AD3A84FDFFB26A63642 /* assets */ = { - isa = PBXGroup; - children = ( - AE2331E0F7B3D823CA15DF72 /* lara.png */, - ); - path = assets; - sourceTree = ""; - }; - EC0774E5B4020C4D885431BC /* other */ = { - isa = PBXGroup; - children = ( - 48E6FC849E553C68E397984C /* lara.entitlements */, - 68FA57A36233679708C5E468 /* media.xcassets */, - 60E947B3676E84C6A668511C /* VarCleanRules.json */, - ); - path = other; - sourceTree = ""; - }; - F0B17F0CA82330A26B5CAE4B /* lib */ = { - isa = PBXGroup; - children = ( - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, - 6337EE02AC0706717DFA252A /* libxpf.dylib */, - 23942EEA65BBA190D901B7D2 /* choma */, - ); - path = lib; - sourceTree = ""; - }; - F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { - isa = PBXGroup; - children = ( - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, - ); - path = dirtyZero; - sourceTree = ""; - }; - F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { - isa = PBXGroup; - children = ( - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, - ); - path = WelcomeSheet; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FD1665B8C8F3A79F013224EE /* Lara */ = { - isa = PBXNativeTarget; - buildConfigurationList = E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */; - buildPhases = ( - F9DE0523417E74276238FA56 /* Sources */, - 7CE4B9CDA802D229BDFBAFEF /* Resources */, - 77D3CA82B4C410701CD229E2 /* Frameworks */, - 8D7C94460EE958C050E58351 /* Copy Dylibs */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Lara; - packageProductDependencies = ( - ); - productName = Lara; - productReference = B1650DE9DA6D35D51EE63DA2 /* Lara.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - TargetAttributes = { - }; - }; - buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = A5B06BC43186EA1E4D25299F; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FD1665B8C8F3A79F013224EE /* Lara */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7CE4B9CDA802D229BDFBAFEF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DBC38849EB29D5E244F47CF4 /* LICENSE_ChOma.md in Resources */, - 2D7D9A6E64CEC02EEEF80312 /* LICENSE_RootHideManagerApp.md in Resources */, - 1AC7A833DF8669BB42C00F6F /* LICENSE_XPF.md in Resources */, - BC6CE187F643FD736AA99693 /* LICENSE_libgrabkernel2.md in Resources */, - BA2F9F5E6F4FEBCB5F1F5596 /* VarCleanRules.json in Resources */, - 92E69C99643D08CD1E8AA0B7 /* lara.png in Resources */, - 92C535F65EF10D85C95BB30C /* libgrabkernel2.dylib in Resources */, - 2BEFF5B60B8C14F020806C80 /* libxpf.dylib in Resources */, - 833F7207A881BEB28DD1E4F0 /* media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 8D7C94460EE958C050E58351 /* Copy Dylibs */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Copy Dylibs"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "mkdir -p \"lara.ipa/Payload/lara.app/Frameworks\"\ncp -f \"lara.ipa/Payload/lara.app/libgrabkernel2.dylib\" \"lara.ipa/Payload/lara.app/Frameworks/\"\ncp -f \"lara.ipa/Payload/lara.app/libxpf.dylib\" \"lara.ipa/Payload/lara.app/Frameworks/\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - F9DE0523417E74276238FA56 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0B37F698456187F4C6BEA70A /* Alertinator.swift in Sources */, - 6838DD14ACAE027291B4E513 /* AppInfo.swift in Sources */, - D3929A52B94E75348A88DF65 /* AppInfoCell.swift in Sources */, - 7C95F000A8053214FDAA34F1 /* AppsView.swift in Sources */, - 3E58D5D0691AC93283012BF2 /* ButtonLabel.swift in Sources */, - 225E1A8B9773049D1D701524 /* CCView.swift in Sources */, - 6CED6786094A6039B7B1DEDC /* CacheView.swift in Sources */, - 4368A9119C44068B5D12B9E4 /* CardView.swift in Sources */, - 4994710A947C095CC5E1EEF7 /* CompactAlert.swift in Sources */, - E2ADC7A9043AB6502A4E35F6 /* ContentView.swift in Sources */, - E166433EB821FF6EEFEF1062 /* CreditsView.swift in Sources */, - CCC0948E08193AA6572B31F9 /* CustomView.swift in Sources */, - 5107FC83FA70D6177149C8A9 /* DarkBoardExploreView.swift in Sources */, - CC7E7C7F1147990E8623F251 /* DarkBoardView.swift in Sources */, - CECD141B587A6A03B2965B53 /* DecryptView.swift in Sources */, - B961402B2D55AB712FC53027 /* DesignStyle.swift in Sources */, - 59D03D9A337DC168C41A7B8A /* DirectoryView.swift in Sources */, - AC4ABBAD4B37B747B5FC27F8 /* Exitinator.swift in Sources */, - DD5B66223ABC74965F0A2DF3 /* FadeAnimation.swift in Sources */, - A98B8800F6EF0B73BA92B31F /* FancyButtonStyle.swift in Sources */, - 56D700B0AF25BA9C8F50F0C1 /* FileInfoSheet.swift in Sources */, - 0FB7B18878404436BE122EAB /* FileSystemHelpers.swift in Sources */, - 8EA9B7CB34A03394A376CC68 /* FileView.swift in Sources */, - E0906DF58A3B0697EDB402EC /* FontPicker.swift in Sources */, - 5FF35E1238A57CA142CA2C97 /* GestaltFileView.swift in Sources */, - 41F266B5583ADAA53B36C2C0 /* GestaltView.swift in Sources */, - 27780886EFE6F5CF439E3C17 /* GetLicenseDict.swift in Sources */, - 183F7035A40F3FAEC789717E /* Hapticinator.swift in Sources */, - A48D9189EDE6A082738FCF26 /* HeaderDropdown.swift in Sources */, - 09E18FF4DA078CA08A0BD260 /* HeaderLabel.swift in Sources */, - EB4E459C9A3FE037AE5F75FF /* IconCacheClearer.m in Sources */, - 249698EE68C5B5D3A7DE2A7D /* IconThemeGalleryManager.swift in Sources */, - 73BB4DCD39001D69E351546E /* IconThemeManager.swift in Sources */, - D90946ED645AD402E4BFFF4D /* InfoBadge.swift in Sources */, - CD6AE0F9A1240E5558087998 /* JitView.swift in Sources */, - 8DB9C5084358B2B499F36EBB /* LicenseView.swift in Sources */, - 406616371B7D5B7A84F818EA /* LinkCreditCell.swift in Sources */, - C098493DCD6B3083B150E828 /* LiquidGlassPreview.swift in Sources */, - 9B0FAA914F626F1E18CDEC3E /* LiquidGlassView.swift in Sources */, - 333CD424E2385A8097A3533C /* Logger.swift in Sources */, - AAC093D16E38470615A9725D /* LogsView.swift in Sources */, - B7DFE2C421923B740CC36F5C /* NavigationLabel.swift in Sources */, - 7117AB33747CB29995DF2DF5 /* OTAView.swift in Sources */, - 5F88E2FEBD607B1D88D70C8A /* OffsetManagementView.swift in Sources */, - 032E5C8AB0103B55827B6D4D /* OverlayBackground.swift in Sources */, - 26EE159C81998DF41B98C012 /* PartyUI.swift in Sources */, - 0C5BE79B5A223042AF06CB9F /* PasscodeExploreView.swift in Sources */, - 65347BD00853A4413D0A09E4 /* PasscodeGalleryManager.swift in Sources */, - D3DDBE4B4FB9530B47BB8A37 /* PasscodeRepoView.swift in Sources */, - EACE3BBC19E7D884E62E6E2B /* PasscodeView.swift in Sources */, - EFE0E8B819CC69F8DBC3637C /* PlainAlert.swift in Sources */, - FC56341950E49BC1B371F8CD /* PlainToggle.swift in Sources */, - 0D1EB96F2BAB9FD1279D857C /* PlatterToggle.swift in Sources */, - 1EC32535DB84C3527B4B0A0C /* PrimaryButtonStyle.swift in Sources */, - 42B0B8FE0F764DA8C7FAD73A /* RemoteCall.m in Sources */, - 9B84BA4A9C594BBAB7105033 /* RemoteView.swift in Sources */, - 7D5AB8511BEC776DA861AF7D /* SBCustomizerHandler.swift in Sources */, - 313E6AE848E29D7EB7F19381 /* SantanderView.swift in Sources */, - D38CACF5DF25975A943AB066 /* ScreenTimeView.swift in Sources */, - 8A7650B0F02201B3766D692B /* SectionPlatter.swift in Sources */, - 5B1BA862D916F9D13ABA41BD /* SettingsView.swift in Sources */, - C316305E7DF3C96CF3864D3D /* Shareinator.swift in Sources */, - BDC6CC19998815F1C0398225 /* SpringBoardView.swift in Sources */, - 87A8B3BD2CF7E6EA5EFBC92A /* SystemColor.swift in Sources */, - 8AA68683A08CC5CE392779EF /* TerminalHeader.swift in Sources */, - 3A0742956B3B582834E0833D /* TerminalPlatter.swift in Sources */, - 28100889AD0FB497D00A1F38 /* TextFieldBackground.swift in Sources */, - 10C0FCA977E5D0C84422C086 /* TextFieldButton.swift in Sources */, - 916461803C022C4E152C7018 /* ThemedHeaderLabel.swift in Sources */, - 5D2A857F1E4C68F95E0DF740 /* TinyButtonStyle.swift in Sources */, - 1EE3C53F9459EF1DC4B62B28 /* TinyInfoPlatter.swift in Sources */, - C4466872A4D62B9F707EAFB1 /* ToolsView.swift in Sources */, - FC8D4872BEB2F597360E124D /* TranslucentButtonStyle.swift in Sources */, - 6F1754E66E9F7677E77C2078 /* TweaksView.swift in Sources */, - E54322C1977F16B56F4F3DB8 /* VarCleanBridge.m in Sources */, - 36245F5CC5C7BAEFD012ED41 /* VarCleanView.swift in Sources */, - EF90E28A7AE0CD45FE63245B /* VariableBlur.swift in Sources */, - 4F94453C8CE1AA0E6A69DA91 /* WelcomeSheetRow.swift in Sources */, - 36F19A6149B559F3BC80F179 /* WelcomeSheetView.swift in Sources */, - 21B13EF81BE57B10FE0C37A0 /* WhitelistView.swift in Sources */, - E2269D7B8B60E2A0882025AA /* apfs.m in Sources */, - 431CA65D12D2682ECF48E8B4 /* darksword.m in Sources */, - A8A6EB4387F212AAF8BA8626 /* decrypt.m in Sources */, - 2C57E73D5988F313FFD5A8FA /* dirtyZeroTweakArray.swift in Sources */, - B327D7C285D9BC9ECCDE1A68 /* dirtyZeroView.swift in Sources */, - B2DC9AD7F03153102E6FA9BB /* exc.m in Sources */, - ACFCDB592B88DB1BFEFABDBA /* fetchkcache.swift in Sources */, - A623B89A2C58CB8A78BCF7EA /* findcachedataoff.m in Sources */, - AB286DA058F1FCAE9363C6B1 /* getbmhash.swift in Sources */, - 4669C3B25B7489EBD80057B3 /* helpers.swift in Sources */, - 1E44232A28451D66BC093F57 /* isdebugged.swift in Sources */, - 88C0004992C741FD9CBA65B7 /* islcinstalled.swift in Sources */, - 26A215D73B98911708F1CF0C /* isunsupported.swift in Sources */, - B81FB0C03834B51997A89C34 /* keepalive.swift in Sources */, - 24ED72EC4550CDC318C16998 /* lara.swift in Sources */, - 64B362A6D4F60F329536722F /* laramgr.swift in Sources */, - 7AEF609084ED052D6C996095 /* offsets.m in Sources */, - F4911325FE3CB897E92D1E30 /* ota.m in Sources */, - 1464B9EBCD536BDD19A66D71 /* pac.m in Sources */, - AB18409EBF1C458A973EBC6C /* persistence.m in Sources */, - 97B355DB8E7EF97123EE3DB3 /* rc.m in Sources */, - C1725F509BDB7D2208EE2579 /* resizetoapprox.swift in Sources */, - E99D712EE78CA8073C49821B /* respring.swift in Sources */, - 495E4514D5AE764363BAF696 /* sbx.m in Sources */, - D3D3187930A0075CB526AB01 /* screentime.m in Sources */, - AFD8AD5FD3F60467492282EF /* thread.m in Sources */, - BC49811360FE90E8EAE827E8 /* utils.m in Sources */, - F0A99A708FD88B91E4ED51C2 /* vfs.m in Sources */, - 4997659E14575C5B7AAACC12 /* vm.m in Sources */, - 0DAF3E7474DCC5CA0CA68816 /* vnode.m in Sources */, - 61F952925C145569D97BD96E /* zipmgr.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3E810AC91C376ED3F7F9E2BA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 82AE279FDF9B38FD75536E7A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2 -lmuffinstore"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - B36A0572D1FE8B1BD286BCB7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - EEB3821768474EEF09187DAB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B36A0572D1FE8B1BD286BCB7 /* Debug */, - EEB3821768474EEF09187DAB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - E1E659BC54B59BF7873237DB /* Build configuration list for PBXNativeTarget "Lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3E810AC91C376ED3F7F9E2BA /* Debug */, - 82AE279FDF9B38FD75536E7A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; -} diff --git a/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a62..000000000 --- a/lara.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - From 92dfc40239f558be771bf7426baede4be1824fc8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:17:27 +0530 Subject: [PATCH 138/233] Update build_ipa.sh --- scripts/build_ipa.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index e0a404db8..93644c988 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -25,6 +25,10 @@ if [ ! -d "$APP_PATH" ]; then echo "Missing app at $APP_PATH" exit 1 fi +cd $APP_PATH +mkdir Frameworks +mv libgrabkernel2.dylib Frameworks/ +mv libxpf.dylib Frameworks/ rm -rf "$PWD/build/Payload" mkdir -p "$PWD/build/Payload" cp -R "$APP_PATH" "$PWD/build/Payload/" From 70c2733d98560f2f3458bda6fd9a85275bc34d92 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:18:48 +0530 Subject: [PATCH 139/233] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 216a8827c..38b96eba6 100644 --- a/README.md +++ b/README.md @@ -90,10 +90,10 @@ Important Notes: - JIT Enabler (only for apps with `get-task-allow`) - OTA Update Disabler - Screen Time Disabler - +- App Decrypt ### Coming Soon -- App Decrypt +- Clean Cache ## Known Issues - wont work on M5, A19 and A19 Pro due to MTE From 9517841c407e6f7dd3c0c15811aa092295ed5b25 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:20:24 +0530 Subject: [PATCH 140/233] Update project.yml --- project.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/project.yml b/project.yml index 4acef0ee8..6d32a4a38 100644 --- a/project.yml +++ b/project.yml @@ -26,11 +26,3 @@ targets: dependencies: - sdk: UIKit.framework - sdk: Foundation.framework - - postBuildScripts: - - name: Copy Dylibs - script: | - mkdir -p "lara.ipa/Payload/lara.app/Frameworks" - cp -f "lara.ipa/Payload/lara.app/libgrabkernel2.dylib" "lara.ipa/Payload/lara.app/Frameworks/" - cp -f "lara.ipa/Payload/lara.app/libxpf.dylib" "lara.ipa/Payload/lara.app/Frameworks/" - From b181833d45a094f45e26d8939233aac0e5296b02 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:25:16 +0530 Subject: [PATCH 141/233] Update build_ipa.sh --- scripts/build_ipa.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index 93644c988..a6fca234c 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -39,7 +39,7 @@ if ! command -v ldid >/dev/null 2>&1; then echo "ERROR: ldid not installed. Install with: brew install ldid" >&2 exit 1 fi -ldid -SConfig/lara.entitlements "$PWD/build/Payload/lara.app/lara" +ldid -SConfig/lara.entitlements "$PWD/build/Payload/lara.app/Lara" (cd "$PWD/build" && /usr/bin/zip -qry lara.ipa Payload) echo From e324152f217fd6c2ca2e151cca7514c5484f0256 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:36:35 +0530 Subject: [PATCH 142/233] Update build_ipa.sh --- scripts/build_ipa.sh | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index a6fca234c..62a4df016 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -25,21 +25,43 @@ if [ ! -d "$APP_PATH" ]; then echo "Missing app at $APP_PATH" exit 1 fi + cd $APP_PATH + mkdir Frameworks mv libgrabkernel2.dylib Frameworks/ mv libxpf.dylib Frameworks/ + rm -rf "$PWD/build/Payload" mkdir -p "$PWD/build/Payload" cp -R "$APP_PATH" "$PWD/build/Payload/" plutil -replace UIFileSharingEnabled -bool YES "$PWD/build/Payload/lara.app/Info.plist" +APP_BUNDLE=$(find "$PWD/build/Payload" -name "*.app" -type d | head -n 1) + +if [ -z "$APP_BUNDLE" ]; then + echo "No .app found in Payload" + exit 1 +fi + +EXEC_NAME=$(/usr/libexec/PlistBuddy -c "Print CFBundleExecutable" "$APP_BUNDLE/Info.plist") + +if [ -z "$EXEC_NAME" ]; then + echo "Could not read CFBundleExecutable" + exit 1 +fi + +echo "Detected app: $APP_BUNDLE" +echo "Detected executable: $EXEC_NAME" + if ! command -v ldid >/dev/null 2>&1; then echo "ERROR: ldid not installed. Install with: brew install ldid" >&2 exit 1 fi -ldid -SConfig/lara.entitlements "$PWD/build/Payload/lara.app/Lara" + +ldid -SConfig/lara.entitlements "$APP_BUNDLE/$EXEC_NAME" + (cd "$PWD/build" && /usr/bin/zip -qry lara.ipa Payload) echo From 19f44331ef318025458a530c88dc9faf1f846e83 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:04:46 +0530 Subject: [PATCH 143/233] Update Info.plist --- lara/Info.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/Info.plist b/lara/Info.plist index 6fb54bf22..2db184d53 100644 --- a/lara/Info.plist +++ b/lara/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier com.roooot.lara CFBundleExecutable - Lara + lara CFBundleName Lara CFBundlePackageType From b5b0bea63484b6e524fdf71e7301b3b485848887 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:05:41 +0530 Subject: [PATCH 144/233] Update build_ipa.sh --- scripts/build_ipa.sh | 66 +++++++++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 23 deletions(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index 62a4df016..d7efa85c4 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -18,53 +18,73 @@ xcodebuild \ CODE_SIGN_IDENTITY="" \ CODE_SIGN_ENTITLEMENTS="Config/lara.entitlements" \ archive \ - -archivePath "$PWD/build/lara.xcarchive" + -archivePath "$PWD/build/lara.xcarchive" + +# ----------------------------------- +# FIND APP FROM XCODE OUTPUT +# ----------------------------------- + +APP_PATH=$(find "$PWD/build/lara.xcarchive/Products/Applications" -name "*.app" -type d | head -n 1) -APP_PATH="$PWD/build/lara.xcarchive/Products/Applications/lara.app" if [ ! -d "$APP_PATH" ]; then - echo "Missing app at $APP_PATH" + echo "Missing .app in archive" exit 1 fi -cd $APP_PATH +echo "Found app: $APP_PATH" -mkdir Frameworks -mv libgrabkernel2.dylib Frameworks/ -mv libxpf.dylib Frameworks/ +# ----------------------------------- +# COPY TO PROJECT ROOT (NEW BEHAVIOR) +# ----------------------------------- -rm -rf "$PWD/build/Payload" -mkdir -p "$PWD/build/Payload" -cp -R "$APP_PATH" "$PWD/build/Payload/" +APP_ROOT="$PWD/lara.app" -plutil -replace UIFileSharingEnabled -bool YES "$PWD/build/Payload/lara.app/Info.plist" +rm -rf "$APP_ROOT" +cp -R "$APP_PATH" "$APP_ROOT" -APP_BUNDLE=$(find "$PWD/build/Payload" -name "*.app" -type d | head -n 1) +echo "Copied app to project root: $APP_ROOT" -if [ -z "$APP_BUNDLE" ]; then - echo "No .app found in Payload" - exit 1 -fi +# ----------------------------------- +# MODIFY INFO.PLIST +# ----------------------------------- + +plutil -replace UIFileSharingEnabled -bool YES "$APP_ROOT/Info.plist" -EXEC_NAME=$(/usr/libexec/PlistBuddy -c "Print CFBundleExecutable" "$APP_BUNDLE/Info.plist") +# ----------------------------------- +# DETECT EXECUTABLE NAME +# ----------------------------------- + +EXEC_NAME=$(/usr/libexec/PlistBuddy -c "Print CFBundleExecutable" "$APP_ROOT/Info.plist") if [ -z "$EXEC_NAME" ]; then - echo "Could not read CFBundleExecutable" + echo "Failed to read CFBundleExecutable" exit 1 fi -echo "Detected app: $APP_BUNDLE" -echo "Detected executable: $EXEC_NAME" +echo "Executable: $EXEC_NAME" + +# ----------------------------------- +# SIGN (ldid) +# ----------------------------------- if ! command -v ldid >/dev/null 2>&1; then echo "ERROR: ldid not installed. Install with: brew install ldid" >&2 exit 1 fi -ldid -SConfig/lara.entitlements "$APP_BUNDLE/$EXEC_NAME" +ldid -SConfig/lara.entitlements "$APP_ROOT/$EXEC_NAME" + +# ----------------------------------- +# BUILD IPA +# ----------------------------------- + +rm -rf Payload +mkdir -p Payload +cp -R "$APP_ROOT" Payload/ -(cd "$PWD/build" && /usr/bin/zip -qry lara.ipa Payload) +(cd "$PWD" && /usr/bin/zip -qry lara.ipa Payload) echo echo "build successful!" -echo "ipa at: build/lara.ipa" +echo "ipa at: $PWD/lara.ipa" exit 0 From 084bf588dc8e6e64ac301ca975d29c1f3e34f268 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:11:22 +0530 Subject: [PATCH 145/233] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f3d00474f..f5255fa9b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,7 +47,7 @@ jobs: with: name: lara-ipa path: | - build/lara.ipa + ./lara.ipa build/xcodebuild.log - name: upload release ipa From 084d97bfc9adffea29e3b6e97775e765c2fbc577 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:15:48 +0530 Subject: [PATCH 146/233] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f5255fa9b..f4dfe9c47 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: release-ipa - path: build/lara.ipa + path: /Users/runner/work/lara/lara/lara.ipa release: From 5c1ac89aed4a7b02f226aab41baa625068d877ad Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:26:40 +0530 Subject: [PATCH 147/233] Update build_ipa.sh --- scripts/build_ipa.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index d7efa85c4..d020857dd 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -44,6 +44,11 @@ cp -R "$APP_PATH" "$APP_ROOT" echo "Copied app to project root: $APP_ROOT" +cd lara.app +mkdir Frameworks +mv libgrabkernel2.dylib Frameworks/ +mv libxpf.dylib Frameworks/ + # ----------------------------------- # MODIFY INFO.PLIST # ----------------------------------- From bc32374b0f24d3b434be2aae9eb4b408ac5fa7b3 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:34:22 +0530 Subject: [PATCH 148/233] Update build_ipa.sh --- scripts/build_ipa.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index d020857dd..fcb80e686 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -44,11 +44,6 @@ cp -R "$APP_PATH" "$APP_ROOT" echo "Copied app to project root: $APP_ROOT" -cd lara.app -mkdir Frameworks -mv libgrabkernel2.dylib Frameworks/ -mv libxpf.dylib Frameworks/ - # ----------------------------------- # MODIFY INFO.PLIST # ----------------------------------- @@ -78,6 +73,10 @@ if ! command -v ldid >/dev/null 2>&1; then fi ldid -SConfig/lara.entitlements "$APP_ROOT/$EXEC_NAME" +cd "$APP_ROOT" +mkdir Frameworks +mv libgrabkernel2.dylib Frameworks/ +mv libxpf.dylib Frameworks/ # ----------------------------------- # BUILD IPA From b28c63df45eeffb363d883944a83041d6e980410 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:38:58 +0530 Subject: [PATCH 149/233] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f4dfe9c47..93bb8d380 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: release-ipa - path: /Users/runner/work/lara/lara/lara.ipa + path: /Users/runner/work/lara/lara/lara.app/lara.ipa release: From 0a1e66bf7076040bb7b314323a49b3eca9c44cb8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:47:53 +0530 Subject: [PATCH 150/233] Update CacheView.swift --- lara/views/tweaks/CacheView.swift | 285 +++++++++++++++++++----------- 1 file changed, 184 insertions(+), 101 deletions(-) diff --git a/lara/views/tweaks/CacheView.swift b/lara/views/tweaks/CacheView.swift index 5fb998d34..50ed363dc 100644 --- a/lara/views/tweaks/CacheView.swift +++ b/lara/views/tweaks/CacheView.swift @@ -1,6 +1,7 @@ import SwiftUI import UIKit import Combine +import WebKit // MARK: - Model @@ -9,9 +10,25 @@ struct CacheApp: Identifiable { let name: String let bundleID: String let appPath: String + let icon: UIImage? + let cacheSize: Int64 + let tmpSize: Int64 + let documentsSize: Int64 + let webViewEstimate: Int64 + let cachePath: String + let tmpPath: String + let documentsPath: String +} + +// MARK: - Storage Snapshot (growth tracking) + +struct StorageSnapshot: Identifiable { + let id = UUID() + let date = Date() + let totalBytes: Int64 } // MARK: - Manager @@ -19,6 +36,7 @@ struct CacheApp: Identifiable { final class CleanerManager: ObservableObject { @Published var apps: [CacheApp] = [] + @Published var snapshots: [StorageSnapshot] = [] @Published var isScanning = false @Published var scanProgress: Double = 0 @@ -27,8 +45,9 @@ final class CleanerManager: ObservableObject { @Published var totalCacheBytes: Int64 = 0 private let fm = FileManager.default + private let dataRoot = "/private/var/mobile/Containers/Data/Application" - // MARK: Auto Scan + // MARK: - Scan func startScan(minSizeMB: Int64 = 4) { guard !isScanning else { return } @@ -40,60 +59,68 @@ final class CleanerManager: ObservableObject { DispatchQueue.global(qos: .userInitiated).async { - let base = "/private/var/containers/Bundle/Application" - var results: [CacheApp] = [] - guard let bundles = try? self.fm.contentsOfDirectory(atPath: base) else { + guard let containers = try? self.fm.contentsOfDirectory(atPath: self.dataRoot) else { DispatchQueue.main.async { self.isScanning = false - self.statusText = "No apps found" + self.statusText = "No containers found" } return } - let total = max(bundles.count, 1) + let total = max(containers.count, 1) - for (index, bundle) in bundles.enumerated() { + for (index, uuid) in containers.enumerated() { - let appContainer = base + "/" + bundle + let container = self.dataRoot + "/" + uuid - guard let items = try? self.fm.contentsOfDirectory(atPath: appContainer) else { continue } + let cache = container + "/Library/Caches" + let tmp = container + "/tmp" + let docs = container + "/Documents" - for item in items where item.hasSuffix(".app") { + guard self.fm.fileExists(atPath: cache) else { continue } - let appPath = appContainer + "/" + item - let cachePath = appPath + "/Library/Caches" + let cacheSize = self.folderSize(cache) + let tmpSize = self.folderSize(tmp) + let docsSize = self.folderSize(docs) - guard self.fm.fileExists(atPath: cachePath) else { continue } + let totalSize = cacheSize + tmpSize + docsSize - let size = self.folderSize(cachePath) - guard size > (minSizeMB * 1024 * 1024) else { continue } + guard totalSize > minSizeMB * 1024 * 1024 else { continue } - let info = NSDictionary(contentsOfFile: appPath + "/Info.plist") - let bundleID = info?["CFBundleIdentifier"] as? String ?? UUID().uuidString + let infoPath = self.findAppInfoPlist(in: container) + let info = NSDictionary(contentsOfFile: infoPath ?? "") - let name = - info?["CFBundleDisplayName"] as? String ?? - info?["CFBundleName"] as? String ?? - item + let bundleID = info?["CFBundleIdentifier"] as? String ?? uuid - let icon = self.loadIcon(appPath: appPath, info: info) + let name = + info?["CFBundleDisplayName"] as? String ?? + info?["CFBundleName"] as? String ?? + bundleID - results.append(CacheApp( - id: bundleID, - name: name, - bundleID: bundleID, - appPath: appPath, - icon: icon, - cacheSize: size, - cachePath: cachePath - )) + let appPath = self.findAppBundle(in: container) ?? container - break - } + let icon = self.loadIcon(appPath: appPath, info: info) + + // WebView heuristic estimate + let webViewEstimate = self.estimateWebViewCache(in: container) + + results.append(CacheApp( + id: bundleID, + name: name, + bundleID: bundleID, + appPath: appPath, + icon: icon, + cacheSize: cacheSize, + tmpSize: tmpSize, + documentsSize: docsSize, + webViewEstimate: webViewEstimate, + cachePath: cache, + tmpPath: tmp, + documentsPath: docs + )) - // update progress LIVE let progress = Double(index + 1) / Double(total) DispatchQueue.main.async { @@ -102,44 +129,104 @@ final class CleanerManager: ObservableObject { } } - let totalBytes = results.reduce(0) { $0 + $1.cacheSize } + let totalBytes = results.reduce(0) { + $0 + $1.cacheSize + $1.tmpSize + $1.documentsSize + } DispatchQueue.main.async { self.apps = results.sorted { $0.cacheSize > $1.cacheSize } self.totalCacheBytes = totalBytes + + self.snapshots.append( + StorageSnapshot(totalBytes: totalBytes) + ) + self.isScanning = false self.statusText = "Found \(results.count) apps" } } } - // MARK: TMP Cleaner + // MARK: - Cleaners - func cleanTMP() { - let tmp = "/var/mobile/tmp" - guard let files = try? fm.contentsOfDirectory(atPath: tmp) else { return } + func cleanCache(_ app: CacheApp) { + try? fm.removeItem(atPath: app.cachePath) + try? fm.removeItem(atPath: app.tmpPath) + + startScan() + } - for file in files { - try? fm.removeItem(atPath: tmp + "/" + file) + func cleanAll() { + for app in apps { + cleanCache(app) } } - // MARK: Cache Delete + // MARK: - WKWebView FULL CLEAN (real API) - func deleteCache(_ app: CacheApp) { - try? fm.removeItem(atPath: app.cachePath) - try? fm.createDirectory(atPath: app.cachePath, withIntermediateDirectories: true) - startScan() + func cleanWKWebView() { + + let types: Set = [ + WKWebsiteDataTypeDiskCache, + WKWebsiteDataTypeMemoryCache, + WKWebsiteDataTypeCookies, + WKWebsiteDataTypeLocalStorage, + WKWebsiteDataTypeSessionStorage, + WKWebsiteDataTypeIndexedDBDatabases, + WKWebsiteDataTypeWebSQLDatabases + ] + + WKWebsiteDataStore.default().removeData( + ofTypes: types, + modifiedSince: Date(timeIntervalSince1970: 0) + ) { + DispatchQueue.main.async { + self.statusText = "WKWebView fully cleared" + } + } } - func deleteAll() { - for app in apps { - deleteCache(app) + func cleanURLCache() { + URLCache.shared.removeAllCachedResponses() + } + + // MARK: - Hidden cache heuristics + + private func estimateWebViewCache(in container: String) -> Int64 { + let web = container + "/Library/WebKit" + return folderSize(web) + } + + // MARK: - Duplicate detection (safe only) + + func findDuplicates(in path: String) -> Int { + + guard let e = fm.enumerator(atPath: path) else { return 0 } + + var seen: [String: String] = [:] + var duplicates = 0 + + for case let file as String in e { + + let full = (path as NSString).appendingPathComponent(file) + + if let attrs = try? fm.attributesOfItem(atPath: full), + let size = attrs[.size] as? NSNumber { + + let key = "\(file)-\(size.int64Value)" + + if seen[key] != nil { + duplicates += 1 + } else { + seen[key] = full + } + } } - startScan() + + return duplicates } - // MARK: Helpers + // MARK: - Helpers private func folderSize(_ path: String) -> Int64 { guard let e = fm.enumerator(atPath: path) else { return 0 } @@ -158,6 +245,18 @@ final class CleanerManager: ObservableObject { return size } + private func findAppBundle(in container: String) -> String? { + guard let items = try? fm.contentsOfDirectory(atPath: container) else { return nil } + + return items.first(where: { $0.hasSuffix(".app") }) + .map { container + "/" + $0 } + } + + private func findAppInfoPlist(in container: String) -> String? { + guard let app = findAppBundle(in: container) else { return nil } + return app + "/Info.plist" + } + private func loadIcon(appPath: String, info: NSDictionary?) -> UIImage? { guard let icons = info?["CFBundleIcons"] as? [String: Any], let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], @@ -183,29 +282,18 @@ struct CacheView: View { var body: some View { NavigationStack { - VStack(spacing: 0) { - - VStack(spacing: 10) { + VStack { - Text("Cache Found") - .font(.headline) + Text("Clean Cache") + .font(.title2).bold() - Text("\(mgr.totalCacheBytes / 1024 / 1024) MB") - .font(.system(size: 34, weight: .bold)) + Text("\(mgr.totalCacheBytes / 1024 / 1024) MB Total") + .font(.title) - ProgressView(value: Double(mgr.totalCacheBytes)) - .padding(.horizontal) + ProgressView(value: mgr.scanProgress) - ProgressView(value: mgr.scanProgress) - .padding(.horizontal) - - Text(mgr.statusText) - .font(.caption) - .foregroundStyle(.secondary) - } - .padding() - - Divider() + Text(mgr.statusText) + .font(.caption) List { @@ -213,47 +301,42 @@ struct CacheView: View { ForEach(mgr.apps) { app in - HStack { - if let icon = app.icon { - Image(uiImage: icon) - .resizable() - .frame(width: 40, height: 40) - .cornerRadius(8) - } else { - Image(systemName: "app") - } - - VStack(alignment: .leading) { - Text(app.name) - Text("\(app.cacheSize / 1024 / 1024) MB cache") - .font(.caption) - .foregroundStyle(.secondary) - } - } - .swipeActions { - Button(role: .destructive) { - mgr.deleteCache(app) - } label: { - Text("Delete") - } + VStack(alignment: .leading) { + Text(app.name).bold() + + Text("Cache: \(app.cacheSize / 1024 / 1024) MB") + Text("Tmp: \(app.tmpSize / 1024 / 1024) MB") + Text("Docs: \(app.documentsSize / 1024 / 1024) MB") + Text("WebView est: \(app.webViewEstimate / 1024 / 1024) MB") + .font(.caption) + .foregroundStyle(.secondary) } } } - Section { - Button("Delete All Cache") { - mgr.deleteAll() + Section("Tools") { + + Button("Clear WKWebView") { + mgr.cleanWKWebView() + } + + Button("Clear URLCache") { + mgr.cleanURLCache() } - .foregroundStyle(.red) - Button("Clean TMP") { - mgr.cleanTMP() + Button("Rescan") { + mgr.startScan() + } + } + + Section("History") { + ForEach(mgr.snapshots) { snap in + Text("\(snap.totalBytes / 1024 / 1024) MB at \(snap.date)") + .font(.caption) } } } } - .navigationTitle("Clean Cache") - .onAppear { mgr.startScan() } From 1ac99853c7f846a78bd4ba1ffd455401c6b7eea0 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:56:32 +0530 Subject: [PATCH 151/233] Update CacheView.swift --- lara/views/tweaks/CacheView.swift | 138 ++++++++++++++---------------- 1 file changed, 62 insertions(+), 76 deletions(-) diff --git a/lara/views/tweaks/CacheView.swift b/lara/views/tweaks/CacheView.swift index 50ed363dc..d83a696ed 100644 --- a/lara/views/tweaks/CacheView.swift +++ b/lara/views/tweaks/CacheView.swift @@ -16,14 +16,13 @@ struct CacheApp: Identifiable { let cacheSize: Int64 let tmpSize: Int64 let documentsSize: Int64 - let webViewEstimate: Int64 let cachePath: String let tmpPath: String let documentsPath: String } -// MARK: - Storage Snapshot (growth tracking) +// MARK: - Snapshot struct StorageSnapshot: Identifiable { let id = UUID() @@ -47,7 +46,7 @@ final class CleanerManager: ObservableObject { private let fm = FileManager.default private let dataRoot = "/private/var/mobile/Containers/Data/Application" - // MARK: - Scan + // MARK: Scan func startScan(minSizeMB: Int64 = 4) { guard !isScanning else { return } @@ -70,8 +69,9 @@ final class CleanerManager: ObservableObject { } let total = max(containers.count, 1) + var processed = 0 - for (index, uuid) in containers.enumerated() { + for uuid in containers { let container = self.dataRoot + "/" + uuid @@ -87,7 +87,10 @@ final class CleanerManager: ObservableObject { let totalSize = cacheSize + tmpSize + docsSize - guard totalSize > minSizeMB * 1024 * 1024 else { continue } + if totalSize < minSizeMB * 1024 * 1024 { + processed += 1 + continue + } let infoPath = self.findAppInfoPlist(in: container) let info = NSDictionary(contentsOfFile: infoPath ?? "") @@ -97,15 +100,13 @@ final class CleanerManager: ObservableObject { let name = info?["CFBundleDisplayName"] as? String ?? info?["CFBundleName"] as? String ?? + self.resolveAppName(from: bundleID) ?? bundleID let appPath = self.findAppBundle(in: container) ?? container let icon = self.loadIcon(appPath: appPath, info: info) - // WebView heuristic estimate - let webViewEstimate = self.estimateWebViewCache(in: container) - results.append(CacheApp( id: bundleID, name: name, @@ -115,16 +116,17 @@ final class CleanerManager: ObservableObject { cacheSize: cacheSize, tmpSize: tmpSize, documentsSize: docsSize, - webViewEstimate: webViewEstimate, cachePath: cache, tmpPath: tmp, documentsPath: docs )) - let progress = Double(index + 1) / Double(total) + processed += 1 + + let progress = Double(processed) / Double(total) DispatchQueue.main.async { - self.scanProgress = progress + self.scanProgress = min(progress, 1.0) self.statusText = "Scanning... \(Int(progress * 100))%" } } @@ -137,22 +139,20 @@ final class CleanerManager: ObservableObject { self.apps = results.sorted { $0.cacheSize > $1.cacheSize } self.totalCacheBytes = totalBytes - self.snapshots.append( - StorageSnapshot(totalBytes: totalBytes) - ) + self.snapshots.append(StorageSnapshot(totalBytes: totalBytes)) self.isScanning = false - self.statusText = "Found \(results.count) apps" + self.scanProgress = 1.0 + self.statusText = "Completed (\(results.count) apps)" } } } - // MARK: - Cleaners + // MARK: Cleaners func cleanCache(_ app: CacheApp) { try? fm.removeItem(atPath: app.cachePath) try? fm.removeItem(atPath: app.tmpPath) - startScan() } @@ -162,7 +162,7 @@ final class CleanerManager: ObservableObject { } } - // MARK: - WKWebView FULL CLEAN (real API) + // MARK: WKWebView Cleaner func cleanWKWebView() { @@ -181,7 +181,7 @@ final class CleanerManager: ObservableObject { modifiedSince: Date(timeIntervalSince1970: 0) ) { DispatchQueue.main.async { - self.statusText = "WKWebView fully cleared" + self.statusText = "WKWebView cleared" } } } @@ -190,43 +190,7 @@ final class CleanerManager: ObservableObject { URLCache.shared.removeAllCachedResponses() } - // MARK: - Hidden cache heuristics - - private func estimateWebViewCache(in container: String) -> Int64 { - let web = container + "/Library/WebKit" - return folderSize(web) - } - - // MARK: - Duplicate detection (safe only) - - func findDuplicates(in path: String) -> Int { - - guard let e = fm.enumerator(atPath: path) else { return 0 } - - var seen: [String: String] = [:] - var duplicates = 0 - - for case let file as String in e { - - let full = (path as NSString).appendingPathComponent(file) - - if let attrs = try? fm.attributesOfItem(atPath: full), - let size = attrs[.size] as? NSNumber { - - let key = "\(file)-\(size.int64Value)" - - if seen[key] != nil { - duplicates += 1 - } else { - seen[key] = full - } - } - } - - return duplicates - } - - // MARK: - Helpers + // MARK: Helpers private func folderSize(_ path: String) -> Int64 { guard let e = fm.enumerator(atPath: path) else { return 0 } @@ -257,19 +221,32 @@ final class CleanerManager: ObservableObject { return app + "/Info.plist" } + // MARK: FIXED ICON LOADER + private func loadIcon(appPath: String, info: NSDictionary?) -> UIImage? { - guard let icons = info?["CFBundleIcons"] as? [String: Any], - let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], - let files = primary["CFBundleIconFiles"] as? [String], - let name = files.last else { - return UIImage(systemName: "app") + + let bundle = Bundle(path: appPath) + + if let bundle = bundle, + let icon = bundle.object(forInfoDictionaryKey: "CFBundleIconName") as? String { + return UIImage(named: icon) + } + + if let icons = info?["CFBundleIcons"] as? [String: Any], + let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], + let files = primary["CFBundleIconFiles"] as? [String], + let name = files.last { + + return UIImage(contentsOfFile: appPath + "/" + name) } - let path = appPath + "/" + name + return UIImage(systemName: "app") + } + + // MARK: Name resolver (best-effort) - return UIImage(contentsOfFile: path) - ?? UIImage(contentsOfFile: path + "@2x.png") - ?? UIImage(contentsOfFile: path + ".png") + private func resolveAppName(from bundleID: String) -> String? { + return nil } } @@ -301,21 +278,30 @@ struct CacheView: View { ForEach(mgr.apps) { app in - VStack(alignment: .leading) { - Text(app.name).bold() - - Text("Cache: \(app.cacheSize / 1024 / 1024) MB") - Text("Tmp: \(app.tmpSize / 1024 / 1024) MB") - Text("Docs: \(app.documentsSize / 1024 / 1024) MB") - Text("WebView est: \(app.webViewEstimate / 1024 / 1024) MB") - .font(.caption) - .foregroundStyle(.secondary) + HStack { + if let icon = app.icon { + Image(uiImage: icon) + .resizable() + .frame(width: 40, height: 40) + .cornerRadius(8) + } else { + Image(systemName: "app") + } + + VStack(alignment: .leading) { + Text(app.name).bold() + + Text("Cache \(app.cacheSize / 1024 / 1024) MB") + Text("Tmp \(app.tmpSize / 1024 / 1024) MB") + Text("Docs \(app.documentsSize / 1024 / 1024) MB") + .font(.caption) + .foregroundStyle(.secondary) + } } } } Section("Tools") { - Button("Clear WKWebView") { mgr.cleanWKWebView() } @@ -331,7 +317,7 @@ struct CacheView: View { Section("History") { ForEach(mgr.snapshots) { snap in - Text("\(snap.totalBytes / 1024 / 1024) MB at \(snap.date)") + Text("\(snap.totalBytes / 1024 / 1024) MB") .font(.caption) } } From 45aa1c07d9c7bd292b017328961d1b01ae22b0d8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 20:05:02 +0530 Subject: [PATCH 152/233] Update CacheView.swift --- lara/views/tweaks/CacheView.swift | 212 ++++++++++++++++++++---------- 1 file changed, 141 insertions(+), 71 deletions(-) diff --git a/lara/views/tweaks/CacheView.swift b/lara/views/tweaks/CacheView.swift index d83a696ed..c1a2065e4 100644 --- a/lara/views/tweaks/CacheView.swift +++ b/lara/views/tweaks/CacheView.swift @@ -9,7 +9,9 @@ struct CacheApp: Identifiable { let id: String let name: String let bundleID: String - let appPath: String + + let appBundlePath: String + let dataContainerPath: String let icon: UIImage? @@ -44,7 +46,9 @@ final class CleanerManager: ObservableObject { @Published var totalCacheBytes: Int64 = 0 private let fm = FileManager.default + private let dataRoot = "/private/var/mobile/Containers/Data/Application" + private let bundleRoot = "/private/var/mobile/Containers/Bundle/Application" // MARK: Scan @@ -60,7 +64,9 @@ final class CleanerManager: ObservableObject { var results: [CacheApp] = [] - guard let containers = try? self.fm.contentsOfDirectory(atPath: self.dataRoot) else { + guard let dataContainers = try? self.fm.contentsOfDirectory(atPath: self.dataRoot), + let bundleMap = self.buildBundleMap() + else { DispatchQueue.main.async { self.isScanning = false self.statusText = "No containers found" @@ -68,22 +74,25 @@ final class CleanerManager: ObservableObject { return } - let total = max(containers.count, 1) + let total = max(dataContainers.count, 1) var processed = 0 - for uuid in containers { + for uuid in dataContainers { - let container = self.dataRoot + "/" + uuid + let dataPath = self.dataRoot + "/" + uuid - let cache = container + "/Library/Caches" - let tmp = container + "/tmp" - let docs = container + "/Documents" + let cachePath = dataPath + "/Library/Caches" + let tmpPath = dataPath + "/tmp" + let docsPath = dataPath + "/Documents" - guard self.fm.fileExists(atPath: cache) else { continue } + guard self.fm.fileExists(atPath: cachePath) else { + processed += 1 + continue + } - let cacheSize = self.folderSize(cache) - let tmpSize = self.folderSize(tmp) - let docsSize = self.folderSize(docs) + let cacheSize = self.folderSize(cachePath) + let tmpSize = self.folderSize(tmpPath) + let docsSize = self.folderSize(docsPath) let totalSize = cacheSize + tmpSize + docsSize @@ -92,33 +101,43 @@ final class CleanerManager: ObservableObject { continue } - let infoPath = self.findAppInfoPlist(in: container) + let infoPath = self.findAppInfoPlist(in: dataPath) let info = NSDictionary(contentsOfFile: infoPath ?? "") let bundleID = info?["CFBundleIdentifier"] as? String ?? uuid - let name = - info?["CFBundleDisplayName"] as? String ?? - info?["CFBundleName"] as? String ?? - self.resolveAppName(from: bundleID) ?? - bundleID + let bundlePath = bundleMap[bundleID] - let appPath = self.findAppBundle(in: container) ?? container + let name: String = { + if let bundlePath, + let info = NSDictionary(contentsOfFile: bundlePath + "/Info.plist") { - let icon = self.loadIcon(appPath: appPath, info: info) + return info["CFBundleDisplayName"] as? String ?? + info["CFBundleName"] as? String ?? + bundleID + } + return bundleID + }() + + let icon = self.loadIcon(bundlePath: bundlePath) results.append(CacheApp( id: bundleID, name: name, bundleID: bundleID, - appPath: appPath, + + appBundlePath: bundlePath ?? "", + dataContainerPath: dataPath, + icon: icon, + cacheSize: cacheSize, tmpSize: tmpSize, documentsSize: docsSize, - cachePath: cache, - tmpPath: tmp, - documentsPath: docs + + cachePath: cachePath, + tmpPath: tmpPath, + documentsPath: docsPath )) processed += 1 @@ -148,21 +167,63 @@ final class CleanerManager: ObservableObject { } } - // MARK: Cleaners + // MARK: DELETE (FIXED) + + func deleteAppCache(_ app: CacheApp) { + + try? fm.removeItem(atPath: app.cachePath) + try? fm.removeItem(atPath: app.tmpPath) + + startScan() + } + + func deleteAppAllData(_ app: CacheApp) { - func cleanCache(_ app: CacheApp) { try? fm.removeItem(atPath: app.cachePath) try? fm.removeItem(atPath: app.tmpPath) + try? fm.removeItem(atPath: app.documentsPath) + startScan() } - func cleanAll() { + func deleteAll() { for app in apps { - cleanCache(app) + deleteAppCache(app) + } + } + + // MARK: Bundle map + + private func buildBundleMap() -> [String: String]? { + + var map: [String: String] = [:] + + guard let bundles = try? fm.contentsOfDirectory(atPath: bundleRoot) else { + return nil } + + for uuid in bundles { + + let path = bundleRoot + "/" + uuid + + guard let apps = try? fm.contentsOfDirectory(atPath: path) else { continue } + + for app in apps where app.hasSuffix(".app") { + + let full = path + "/" + app + + if let info = NSDictionary(contentsOfFile: full + "/Info.plist"), + let bundleID = info["CFBundleIdentifier"] as? String { + + map[bundleID] = full + } + } + } + + return map } - // MARK: WKWebView Cleaner + // MARK: WKWebView func cleanWKWebView() { @@ -190,6 +251,32 @@ final class CleanerManager: ObservableObject { URLCache.shared.removeAllCachedResponses() } + // MARK: Icon + + private func loadIcon(bundlePath: String?) -> UIImage? { + + guard let bundlePath else { + return UIImage(systemName: "app") + } + + let bundle = Bundle(path: bundlePath) + + if let iconName = bundle?.object(forInfoDictionaryKey: "CFBundleIconName") as? String { + return UIImage(named: iconName) + } + + if let info = NSDictionary(contentsOfFile: bundlePath + "/Info.plist"), + let icons = info["CFBundleIcons"] as? [String: Any], + let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], + let files = primary["CFBundleIconFiles"] as? [String], + let name = files.last { + + return UIImage(contentsOfFile: bundlePath + "/" + name) + } + + return UIImage(systemName: "app") + } + // MARK: Helpers private func folderSize(_ path: String) -> Int64 { @@ -209,44 +296,13 @@ final class CleanerManager: ObservableObject { return size } - private func findAppBundle(in container: String) -> String? { - guard let items = try? fm.contentsOfDirectory(atPath: container) else { return nil } - - return items.first(where: { $0.hasSuffix(".app") }) - .map { container + "/" + $0 } - } - private func findAppInfoPlist(in container: String) -> String? { - guard let app = findAppBundle(in: container) else { return nil } - return app + "/Info.plist" - } - - // MARK: FIXED ICON LOADER + let app = (try? fm.contentsOfDirectory(atPath: container))? + .first(where: { $0.hasSuffix(".app") }) - private func loadIcon(appPath: String, info: NSDictionary?) -> UIImage? { + guard let app else { return nil } - let bundle = Bundle(path: appPath) - - if let bundle = bundle, - let icon = bundle.object(forInfoDictionaryKey: "CFBundleIconName") as? String { - return UIImage(named: icon) - } - - if let icons = info?["CFBundleIcons"] as? [String: Any], - let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], - let files = primary["CFBundleIconFiles"] as? [String], - let name = files.last { - - return UIImage(contentsOfFile: appPath + "/" + name) - } - - return UIImage(systemName: "app") - } - - // MARK: Name resolver (best-effort) - - private func resolveAppName(from bundleID: String) -> String? { - return nil + return container + "/" + app + "/Info.plist" } } @@ -279,6 +335,7 @@ struct CacheView: View { ForEach(mgr.apps) { app in HStack { + if let icon = app.icon { Image(uiImage: icon) .resizable() @@ -298,10 +355,30 @@ struct CacheView: View { .foregroundStyle(.secondary) } } + .swipeActions(edge: .trailing) { + + Button(role: .destructive) { + mgr.deleteAppCache(app) + } label: { + Text("Cache") + } + + Button(role: .destructive) { + mgr.deleteAppAllData(app) + } label: { + Text("All") + } + } } } Section("Tools") { + + Button("Delete ALL Cache") { + mgr.deleteAll() + } + .foregroundStyle(.red) + Button("Clear WKWebView") { mgr.cleanWKWebView() } @@ -314,13 +391,6 @@ struct CacheView: View { mgr.startScan() } } - - Section("History") { - ForEach(mgr.snapshots) { snap in - Text("\(snap.totalBytes / 1024 / 1024) MB") - .font(.caption) - } - } } } .onAppear { From 33aac4c78afbd73eea9b448dd076c94db607db69 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 20:16:34 +0530 Subject: [PATCH 153/233] Update CacheView.swift --- lara/views/tweaks/CacheView.swift | 118 +++++++++++++----------------- 1 file changed, 51 insertions(+), 67 deletions(-) diff --git a/lara/views/tweaks/CacheView.swift b/lara/views/tweaks/CacheView.swift index c1a2065e4..91f5343e7 100644 --- a/lara/views/tweaks/CacheView.swift +++ b/lara/views/tweaks/CacheView.swift @@ -47,12 +47,15 @@ final class CleanerManager: ObservableObject { private let fm = FileManager.default - private let dataRoot = "/private/var/mobile/Containers/Data/Application" - private let bundleRoot = "/private/var/mobile/Containers/Bundle/Application" + // MARK: - Separate roots (IMPORTANT) + + private let dataRoot = "/var/mobile/Containers/Data/Application" + private let bundleRoot = "/var/containers/Bundle/Application" // MARK: Scan func startScan(minSizeMB: Int64 = 4) { + guard !isScanning else { return } isScanning = true @@ -64,15 +67,8 @@ final class CleanerManager: ObservableObject { var results: [CacheApp] = [] - guard let dataContainers = try? self.fm.contentsOfDirectory(atPath: self.dataRoot), - let bundleMap = self.buildBundleMap() - else { - DispatchQueue.main.async { - self.isScanning = false - self.statusText = "No containers found" - } - return - } + let dataContainers = (try? self.fm.contentsOfDirectory(atPath: self.dataRoot)) ?? [] + let bundleMap = self.buildBundleMap() let total = max(dataContainers.count, 1) var processed = 0 @@ -101,17 +97,14 @@ final class CleanerManager: ObservableObject { continue } - let infoPath = self.findAppInfoPlist(in: dataPath) - let info = NSDictionary(contentsOfFile: infoPath ?? "") - - let bundleID = info?["CFBundleIdentifier"] as? String ?? uuid + // MARK: Bundle lookup (NAME + ICON ONLY) + let bundleID = self.extractBundleID(from: dataPath) ?? uuid let bundlePath = bundleMap[bundleID] let name: String = { if let bundlePath, let info = NSDictionary(contentsOfFile: bundlePath + "/Info.plist") { - return info["CFBundleDisplayName"] as? String ?? info["CFBundleName"] as? String ?? bundleID @@ -167,39 +160,14 @@ final class CleanerManager: ObservableObject { } } - // MARK: DELETE (FIXED) - - func deleteAppCache(_ app: CacheApp) { + // MARK: - BUNDLE MAP (names + icons) - try? fm.removeItem(atPath: app.cachePath) - try? fm.removeItem(atPath: app.tmpPath) - - startScan() - } - - func deleteAppAllData(_ app: CacheApp) { - - try? fm.removeItem(atPath: app.cachePath) - try? fm.removeItem(atPath: app.tmpPath) - try? fm.removeItem(atPath: app.documentsPath) - - startScan() - } - - func deleteAll() { - for app in apps { - deleteAppCache(app) - } - } - - // MARK: Bundle map - - private func buildBundleMap() -> [String: String]? { + private func buildBundleMap() -> [String: String] { var map: [String: String] = [:] guard let bundles = try? fm.contentsOfDirectory(atPath: bundleRoot) else { - return nil + return map } for uuid in bundles { @@ -211,8 +179,9 @@ final class CleanerManager: ObservableObject { for app in apps where app.hasSuffix(".app") { let full = path + "/" + app + let infoPath = full + "/Info.plist" - if let info = NSDictionary(contentsOfFile: full + "/Info.plist"), + if let info = NSDictionary(contentsOfFile: infoPath), let bundleID = info["CFBundleIdentifier"] as? String { map[bundleID] = full @@ -223,7 +192,35 @@ final class CleanerManager: ObservableObject { return map } - // MARK: WKWebView + // MARK: - Extract bundle id from data container (safe heuristic) + + private func extractBundleID(from dataPath: String) -> String? { + + let app = (try? fm.contentsOfDirectory(atPath: dataPath))? + .first(where: { $0.hasSuffix(".app") }) + + guard let app else { return nil } + + let plist = dataPath + "/" + app + "/Info.plist" + + return NSDictionary(contentsOfFile: plist)?["CFBundleIdentifier"] as? String + } + + // MARK: - CLEANERS + + func deleteCache(_ app: CacheApp) { + try? fm.removeItem(atPath: app.cachePath) + try? fm.removeItem(atPath: app.tmpPath) + startScan() + } + + func deleteAll() { + for app in apps { + deleteCache(app) + } + } + + // MARK: - WKWebView func cleanWKWebView() { @@ -251,7 +248,7 @@ final class CleanerManager: ObservableObject { URLCache.shared.removeAllCachedResponses() } - // MARK: Icon + // MARK: - ICON LOADER private func loadIcon(bundlePath: String?) -> UIImage? { @@ -277,14 +274,16 @@ final class CleanerManager: ObservableObject { return UIImage(systemName: "app") } - // MARK: Helpers + // MARK: - SIZE private func folderSize(_ path: String) -> Int64 { + guard let e = fm.enumerator(atPath: path) else { return 0 } var size: Int64 = 0 for case let file as String in e { + let full = (path as NSString).appendingPathComponent(file) if let attrs = try? fm.attributesOfItem(atPath: full), @@ -295,15 +294,6 @@ final class CleanerManager: ObservableObject { return size } - - private func findAppInfoPlist(in container: String) -> String? { - let app = (try? fm.contentsOfDirectory(atPath: container))? - .first(where: { $0.hasSuffix(".app") }) - - guard let app else { return nil } - - return container + "/" + app + "/Info.plist" - } } // MARK: - UI @@ -313,6 +303,7 @@ struct CacheView: View { @StateObject var mgr = CleanerManager() var body: some View { + NavigationStack { VStack { @@ -355,18 +346,11 @@ struct CacheView: View { .foregroundStyle(.secondary) } } - .swipeActions(edge: .trailing) { - - Button(role: .destructive) { - mgr.deleteAppCache(app) - } label: { - Text("Cache") - } - + .swipeActions { Button(role: .destructive) { - mgr.deleteAppAllData(app) + mgr.deleteCache(app) } label: { - Text("All") + Text("Delete") } } } From ddbfde2a4746e30dfa00d75b96b5eedd18bb32e5 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 20:24:08 +0530 Subject: [PATCH 154/233] Update CacheView.swift --- lara/views/tweaks/CacheView.swift | 81 +++++++++++++++---------------- 1 file changed, 40 insertions(+), 41 deletions(-) diff --git a/lara/views/tweaks/CacheView.swift b/lara/views/tweaks/CacheView.swift index 91f5343e7..623cf35c9 100644 --- a/lara/views/tweaks/CacheView.swift +++ b/lara/views/tweaks/CacheView.swift @@ -47,7 +47,7 @@ final class CleanerManager: ObservableObject { private let fm = FileManager.default - // MARK: - Separate roots (IMPORTANT) + // MARK: Roots private let dataRoot = "/var/mobile/Containers/Data/Application" private let bundleRoot = "/var/containers/Bundle/Application" @@ -97,22 +97,25 @@ final class CleanerManager: ObservableObject { continue } - // MARK: Bundle lookup (NAME + ICON ONLY) - + // MARK: Bundle ID from data container let bundleID = self.extractBundleID(from: dataPath) ?? uuid + let bundlePath = bundleMap[bundleID] + // MARK: Name (bundle first, fallback safe) let name: String = { - if let bundlePath, - let info = NSDictionary(contentsOfFile: bundlePath + "/Info.plist") { - return info["CFBundleDisplayName"] as? String ?? - info["CFBundleName"] as? String ?? - bundleID + guard let bundlePath, + let info = NSDictionary(contentsOfFile: bundlePath + "/Info.plist") else { + return bundleID } - return bundleID + + return info["CFBundleDisplayName"] as? String ?? + info["CFBundleName"] as? String ?? + bundleID }() - let icon = self.loadIcon(bundlePath: bundlePath) + // MARK: Icon + let icon = self.loadIcon(from: bundlePath) results.append(CacheApp( id: bundleID, @@ -160,39 +163,40 @@ final class CleanerManager: ObservableObject { } } - // MARK: - BUNDLE MAP (names + icons) + // MARK: Bundle Map (FIXED) private func buildBundleMap() -> [String: String] { var map: [String: String] = [:] - guard let bundles = try? fm.contentsOfDirectory(atPath: bundleRoot) else { + guard let roots = try? fm.contentsOfDirectory(atPath: bundleRoot) else { return map } - for uuid in bundles { + for root in roots { - let path = bundleRoot + "/" + uuid + let rootPath = bundleRoot + "/" + root - guard let apps = try? fm.contentsOfDirectory(atPath: path) else { continue } + guard let apps = try? fm.contentsOfDirectory(atPath: rootPath) else { continue } for app in apps where app.hasSuffix(".app") { - let full = path + "/" + app - let infoPath = full + "/Info.plist" + let appPath = rootPath + "/" + app + let infoPath = appPath + "/Info.plist" - if let info = NSDictionary(contentsOfFile: infoPath), - let bundleID = info["CFBundleIdentifier"] as? String { - - map[bundleID] = full + guard let info = NSDictionary(contentsOfFile: infoPath), + let bundleID = info["CFBundleIdentifier"] as? String else { + continue } + + map[bundleID] = appPath } } return map } - // MARK: - Extract bundle id from data container (safe heuristic) + // MARK: Extract bundle ID (DATA container) private func extractBundleID(from dataPath: String) -> String? { @@ -206,7 +210,7 @@ final class CleanerManager: ObservableObject { return NSDictionary(contentsOfFile: plist)?["CFBundleIdentifier"] as? String } - // MARK: - CLEANERS + // MARK: Delete func deleteCache(_ app: CacheApp) { try? fm.removeItem(atPath: app.cachePath) @@ -220,7 +224,7 @@ final class CleanerManager: ObservableObject { } } - // MARK: - WKWebView + // MARK: WKWebView func cleanWKWebView() { @@ -248,33 +252,29 @@ final class CleanerManager: ObservableObject { URLCache.shared.removeAllCachedResponses() } - // MARK: - ICON LOADER + // MARK: Icon loader (FIXED) - private func loadIcon(bundlePath: String?) -> UIImage? { + private func loadIcon(from bundlePath: String?) -> UIImage? { guard let bundlePath else { return UIImage(systemName: "app") } - let bundle = Bundle(path: bundlePath) + let infoPath = bundlePath + "/Info.plist" - if let iconName = bundle?.object(forInfoDictionaryKey: "CFBundleIconName") as? String { - return UIImage(named: iconName) - } - - if let info = NSDictionary(contentsOfFile: bundlePath + "/Info.plist"), - let icons = info["CFBundleIcons"] as? [String: Any], - let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], - let files = primary["CFBundleIconFiles"] as? [String], - let name = files.last { - - return UIImage(contentsOfFile: bundlePath + "/" + name) + guard let info = NSDictionary(contentsOfFile: infoPath), + let icons = info["CFBundleIcons"] as? [String: Any], + let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], + let files = primary["CFBundleIconFiles"] as? [String], + let iconName = files.last else { + return UIImage(systemName: "app") } - return UIImage(systemName: "app") + let iconPath = bundlePath + "/" + iconName + return UIImage(contentsOfFile: iconPath) } - // MARK: - SIZE + // MARK: Size private func folderSize(_ path: String) -> Int64 { @@ -338,7 +338,6 @@ struct CacheView: View { VStack(alignment: .leading) { Text(app.name).bold() - Text("Cache \(app.cacheSize / 1024 / 1024) MB") Text("Tmp \(app.tmpSize / 1024 / 1024) MB") Text("Docs \(app.documentsSize / 1024 / 1024) MB") From 6cd92d56cb907718d8c6715295fdf4b9b24405b3 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 20:44:52 +0530 Subject: [PATCH 155/233] Update and rename lara/views/tweaks/CacheView.swift to lara/views/tweaks/cacheclean/CacheView.swift --- .../tweaks/{ => cacheclean}/CacheView.swift | 76 +------------------ 1 file changed, 4 insertions(+), 72 deletions(-) rename lara/views/tweaks/{ => cacheclean}/CacheView.swift (78%) diff --git a/lara/views/tweaks/CacheView.swift b/lara/views/tweaks/cacheclean/CacheView.swift similarity index 78% rename from lara/views/tweaks/CacheView.swift rename to lara/views/tweaks/cacheclean/CacheView.swift index 623cf35c9..5e3d878ca 100644 --- a/lara/views/tweaks/CacheView.swift +++ b/lara/views/tweaks/cacheclean/CacheView.swift @@ -50,7 +50,6 @@ final class CleanerManager: ObservableObject { // MARK: Roots private let dataRoot = "/var/mobile/Containers/Data/Application" - private let bundleRoot = "/var/containers/Bundle/Application" // MARK: Scan @@ -68,7 +67,6 @@ final class CleanerManager: ObservableObject { var results: [CacheApp] = [] let dataContainers = (try? self.fm.contentsOfDirectory(atPath: self.dataRoot)) ?? [] - let bundleMap = self.buildBundleMap() let total = max(dataContainers.count, 1) var processed = 0 @@ -100,22 +98,11 @@ final class CleanerManager: ObservableObject { // MARK: Bundle ID from data container let bundleID = self.extractBundleID(from: dataPath) ?? uuid - let bundlePath = bundleMap[bundleID] + let bundleInfo = resolveBundleInfo(bundleID: bundleID) - // MARK: Name (bundle first, fallback safe) - let name: String = { - guard let bundlePath, - let info = NSDictionary(contentsOfFile: bundlePath + "/Info.plist") else { - return bundleID - } - - return info["CFBundleDisplayName"] as? String ?? - info["CFBundleName"] as? String ?? - bundleID - }() - - // MARK: Icon - let icon = self.loadIcon(from: bundlePath) + let name = bundleInfo?.name ?? bundleID + let icon = bundleInfo?.icon + let bundlePath = bundleInfo?.bundlePath results.append(CacheApp( id: bundleID, @@ -163,39 +150,6 @@ final class CleanerManager: ObservableObject { } } - // MARK: Bundle Map (FIXED) - - private func buildBundleMap() -> [String: String] { - - var map: [String: String] = [:] - - guard let roots = try? fm.contentsOfDirectory(atPath: bundleRoot) else { - return map - } - - for root in roots { - - let rootPath = bundleRoot + "/" + root - - guard let apps = try? fm.contentsOfDirectory(atPath: rootPath) else { continue } - - for app in apps where app.hasSuffix(".app") { - - let appPath = rootPath + "/" + app - let infoPath = appPath + "/Info.plist" - - guard let info = NSDictionary(contentsOfFile: infoPath), - let bundleID = info["CFBundleIdentifier"] as? String else { - continue - } - - map[bundleID] = appPath - } - } - - return map - } - // MARK: Extract bundle ID (DATA container) private func extractBundleID(from dataPath: String) -> String? { @@ -252,28 +206,6 @@ final class CleanerManager: ObservableObject { URLCache.shared.removeAllCachedResponses() } - // MARK: Icon loader (FIXED) - - private func loadIcon(from bundlePath: String?) -> UIImage? { - - guard let bundlePath else { - return UIImage(systemName: "app") - } - - let infoPath = bundlePath + "/Info.plist" - - guard let info = NSDictionary(contentsOfFile: infoPath), - let icons = info["CFBundleIcons"] as? [String: Any], - let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], - let files = primary["CFBundleIconFiles"] as? [String], - let iconName = files.last else { - return UIImage(systemName: "app") - } - - let iconPath = bundlePath + "/" + iconName - return UIImage(contentsOfFile: iconPath) - } - // MARK: Size private func folderSize(_ path: String) -> Int64 { From e56d714b5cc9c32b0e1b0c54bb0228ccebeb4d99 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 20:49:20 +0530 Subject: [PATCH 156/233] Create BundleResolver.swift --- .../tweaks/cacheclean/BundleResolver.swift | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 lara/views/tweaks/cacheclean/BundleResolver.swift diff --git a/lara/views/tweaks/cacheclean/BundleResolver.swift b/lara/views/tweaks/cacheclean/BundleResolver.swift new file mode 100644 index 000000000..a2d96639f --- /dev/null +++ b/lara/views/tweaks/cacheclean/BundleResolver.swift @@ -0,0 +1,79 @@ +// +// BundleResolver.swift +// lara +// + +import UIKit + +struct BundleInfo { + let name: String + let bundleID: String + let bundlePath: String + let icon: UIImage? +} + +/// Same logic as DecryptView.loadApps() name/icon extraction +func resolveBundleInfo(bundleID: String) -> BundleInfo? { + + let bundleFolder = "/private/var/containers/Bundle/Application" + let fm = FileManager.default + + guard let bundles = try? fm.contentsOfDirectory(atPath: bundleFolder) else { + return nil + } + + for bundle in bundles { + + let appPath = bundleFolder + "/" + bundle + + guard let contents = try? fm.contentsOfDirectory(atPath: appPath) else { + continue + } + + for item in contents where item.hasSuffix(".app") { + + let fullAppPath = appPath + "/" + item + let infoPath = fullAppPath + "/Info.plist" + + guard let info = NSDictionary(contentsOfFile: infoPath), + let currentBundleID = info["CFBundleIdentifier"] as? String, + currentBundleID == bundleID else { + continue + } + + // MARK: Name (EXACT same logic as your working code) + let name = + (info["CFBundleDisplayName"] as? String) ?? + (info["CFBundleName"] as? String) ?? + (item as NSString).deletingPathExtension + + // MARK: Icon (EXACT same fallback chain) + var icon: UIImage? = nil + + if let icons = info["CFBundleIcons"] as? [String: Any], + let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], + let iconfiles = primary["CFBundleIconFiles"] as? [String], + let iconname = iconfiles.last { + + let iconpath = fullAppPath + "/" + iconname + + if let img = UIImage(contentsOfFile: iconpath) { + icon = img + } else if let img = UIImage(contentsOfFile: iconpath + "@2x.png") { + icon = img + } else if let img = UIImage(contentsOfFile: iconpath + ".png") { + icon = img + } + } + + return BundleInfo( + name: name, + bundleID: currentBundleID, + bundlePath: fullAppPath, + icon: icon + ) + } + } + + return nil +} From 4e95a0ac133be7ba377df2c03dc726a0dda822e2 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 21:06:52 +0530 Subject: [PATCH 157/233] Update BundleResolver.swift --- .../tweaks/cacheclean/BundleResolver.swift | 165 ++++++++++++------ 1 file changed, 115 insertions(+), 50 deletions(-) diff --git a/lara/views/tweaks/cacheclean/BundleResolver.swift b/lara/views/tweaks/cacheclean/BundleResolver.swift index a2d96639f..9d61d84ac 100644 --- a/lara/views/tweaks/cacheclean/BundleResolver.swift +++ b/lara/views/tweaks/cacheclean/BundleResolver.swift @@ -1,79 +1,144 @@ // -// BundleResolver.swift -// lara +// +// BundleResolver.swift +// +// lara // +import Foundation import UIKit -struct BundleInfo { - let name: String +// MARK: - Final Model (KEYED BY DATA UUID) + +struct ResolvedApp { + let dataUUID: String let bundleID: String let bundlePath: String + let name: String let icon: UIImage? } -/// Same logic as DecryptView.loadApps() name/icon extraction -func resolveBundleInfo(bundleID: String) -> BundleInfo? { +// MARK: - Resolver + +final class BundleResolver { + + private let fm = FileManager.default + + private let bundleRoot = "/var/containers/Bundle/Application" + private let dataRoot = "/var/mobile/Containers/Data/Application" + + // MARK: Public + + func resolveAll() -> [ResolvedApp] { - let bundleFolder = "/private/var/containers/Bundle/Application" - let fm = FileManager.default + let bundleMap = buildBundleMap() // identifier → bundlePath + var results: [ResolvedApp] = [] + + guard let dataContainers = try? fm.contentsOfDirectory(atPath: dataRoot) else { + return [] + } + + for dataUUID in dataContainers { + + let dataPath = dataRoot + "/" + dataUUID + let metaPath = dataPath + "/.com.apple.mobile_container_manager.metadata.plist" + + guard + let meta = NSDictionary(contentsOfFile: metaPath), + let bundleID = meta["MCMMetadataIdentifier"] as? String + else { continue } + + guard let bundlePath = bundleMap[bundleID] else { + continue + } + + let name = readName(bundlePath: bundlePath, fallback: bundleID) + let icon = readIcon(bundlePath: bundlePath) + + results.append( + ResolvedApp( + dataUUID: dataUUID, + bundleID: bundleID, + bundlePath: bundlePath, + name: name, + icon: icon + ) + ) + } - guard let bundles = try? fm.contentsOfDirectory(atPath: bundleFolder) else { - return nil + return results } - for bundle in bundles { + // MARK: Bundle map (identifier → bundle path) + + private func buildBundleMap() -> [String: String] { - let appPath = bundleFolder + "/" + bundle + var map: [String: String] = [:] - guard let contents = try? fm.contentsOfDirectory(atPath: appPath) else { - continue + guard let roots = try? fm.contentsOfDirectory(atPath: bundleRoot) else { + return map } - for item in contents where item.hasSuffix(".app") { + for root in roots { - let fullAppPath = appPath + "/" + item - let infoPath = fullAppPath + "/Info.plist" + let rootPath = bundleRoot + "/" + root - guard let info = NSDictionary(contentsOfFile: infoPath), - let currentBundleID = info["CFBundleIdentifier"] as? String, - currentBundleID == bundleID else { + guard let items = try? fm.contentsOfDirectory(atPath: rootPath) else { continue } - // MARK: Name (EXACT same logic as your working code) - let name = - (info["CFBundleDisplayName"] as? String) ?? - (info["CFBundleName"] as? String) ?? - (item as NSString).deletingPathExtension - - // MARK: Icon (EXACT same fallback chain) - var icon: UIImage? = nil - - if let icons = info["CFBundleIcons"] as? [String: Any], - let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], - let iconfiles = primary["CFBundleIconFiles"] as? [String], - let iconname = iconfiles.last { - - let iconpath = fullAppPath + "/" + iconname - - if let img = UIImage(contentsOfFile: iconpath) { - icon = img - } else if let img = UIImage(contentsOfFile: iconpath + "@2x.png") { - icon = img - } else if let img = UIImage(contentsOfFile: iconpath + ".png") { - icon = img - } + for item in items where item.hasSuffix(".app") { + + let appPath = rootPath + "/" + item + let metaPath = appPath + "/.com.apple.mobile_container_manager.metadata.plist" + + guard + let meta = NSDictionary(contentsOfFile: metaPath), + let bundleID = meta["MCMMetadataIdentifier"] as? String + else { continue } + + map[bundleID] = appPath } + } - return BundleInfo( - name: name, - bundleID: currentBundleID, - bundlePath: fullAppPath, - icon: icon - ) + return map + } + + // MARK: Name + + private func readName(bundlePath: String, fallback: String) -> String { + + let infoPath = bundlePath + "/Info.plist" + + guard let info = NSDictionary(contentsOfFile: infoPath) else { + return fallback } + + return info["CFBundleDisplayName"] as? String ?? + info["CFBundleName"] as? String ?? + fallback } - return nil + // MARK: Icon + + private func readIcon(bundlePath: String) -> UIImage? { + + let infoPath = bundlePath + "/Info.plist" + + guard + let info = NSDictionary(contentsOfFile: infoPath), + let icons = info["CFBundleIcons"] as? [String: Any], + let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], + let files = primary["CFBundleIconFiles"] as? [String], + let iconName = files.last + else { + return UIImage(systemName: "app") + } + + let path = bundlePath + "/" + iconName + + return UIImage(contentsOfFile: path) + ?? UIImage(contentsOfFile: path + "@2x.png") + ?? UIImage(contentsOfFile: path + ".png") + } } From dde910b77af5e96b28d5b00423ffe886e3900934 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 21:10:31 +0530 Subject: [PATCH 158/233] Update CacheView.swift --- lara/views/tweaks/cacheclean/CacheView.swift | 50 ++++++++------------ 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/lara/views/tweaks/cacheclean/CacheView.swift b/lara/views/tweaks/cacheclean/CacheView.swift index 5e3d878ca..228ca2fbb 100644 --- a/lara/views/tweaks/cacheclean/CacheView.swift +++ b/lara/views/tweaks/cacheclean/CacheView.swift @@ -1,3 +1,10 @@ +// +// +// CacheView.swift +// +// lara +// + import SwiftUI import UIKit import Combine @@ -47,10 +54,11 @@ final class CleanerManager: ObservableObject { private let fm = FileManager.default - // MARK: Roots - private let dataRoot = "/var/mobile/Containers/Data/Application" + // MARK: Resolver (YOU plug your BundleResolver here) + private let resolver = BundleResolver() + // MARK: Scan func startScan(minSizeMB: Int64 = 4) { @@ -67,6 +75,7 @@ final class CleanerManager: ObservableObject { var results: [CacheApp] = [] let dataContainers = (try? self.fm.contentsOfDirectory(atPath: self.dataRoot)) ?? [] + let resolved = self.resolver.resolveAll() let total = max(dataContainers.count, 1) var processed = 0 @@ -95,24 +104,21 @@ final class CleanerManager: ObservableObject { continue } - // MARK: Bundle ID from data container - let bundleID = self.extractBundleID(from: dataPath) ?? uuid - - let bundleInfo = resolveBundleInfo(bundleID: bundleID) - - let name = bundleInfo?.name ?? bundleID - let icon = bundleInfo?.icon - let bundlePath = bundleInfo?.bundlePath + // MARK: Match by DATA UUID (resolver output) + guard let appInfo = resolved.first(where: { $0.dataUUID == uuid }) else { + processed += 1 + continue + } results.append(CacheApp( - id: bundleID, - name: name, - bundleID: bundleID, + id: uuid, + name: appInfo.name, + bundleID: appInfo.bundleID, - appBundlePath: bundlePath ?? "", + appBundlePath: appInfo.bundlePath, dataContainerPath: dataPath, - icon: icon, + icon: appInfo.icon, cacheSize: cacheSize, tmpSize: tmpSize, @@ -150,20 +156,6 @@ final class CleanerManager: ObservableObject { } } - // MARK: Extract bundle ID (DATA container) - - private func extractBundleID(from dataPath: String) -> String? { - - let app = (try? fm.contentsOfDirectory(atPath: dataPath))? - .first(where: { $0.hasSuffix(".app") }) - - guard let app else { return nil } - - let plist = dataPath + "/" + app + "/Info.plist" - - return NSDictionary(contentsOfFile: plist)?["CFBundleIdentifier"] as? String - } - // MARK: Delete func deleteCache(_ app: CacheApp) { From 1502ec3bee6ac1af830dbc1b013c7b33e92a5bc8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 21:20:46 +0530 Subject: [PATCH 159/233] Update CacheView.swift --- lara/views/tweaks/cacheclean/CacheView.swift | 39 +++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/lara/views/tweaks/cacheclean/CacheView.swift b/lara/views/tweaks/cacheclean/CacheView.swift index 228ca2fbb..0c57cb6ca 100644 --- a/lara/views/tweaks/cacheclean/CacheView.swift +++ b/lara/views/tweaks/cacheclean/CacheView.swift @@ -39,6 +39,16 @@ struct StorageSnapshot: Identifiable { let totalBytes: Int64 } +// MARK: - Resolver Output (FAST LOOKUP DB) + +struct AppRecord { + let dataUUID: String + let bundleID: String + let bundlePath: String + let name: String + let icon: UIImage? +} + // MARK: - Manager final class CleanerManager: ObservableObject { @@ -53,12 +63,26 @@ final class CleanerManager: ObservableObject { @Published var totalCacheBytes: Int64 = 0 private let fm = FileManager.default - private let dataRoot = "/var/mobile/Containers/Data/Application" - // MARK: Resolver (YOU plug your BundleResolver here) + // MARK: Resolver (BUILD ONCE → DICTIONARY) private let resolver = BundleResolver() + private var appDB: [String: AppRecord] = [:] // dataUUID → AppRecord + + private func buildDatabase() { + let resolved = resolver.resolveAll() + appDB = Dictionary(uniqueKeysWithValues: resolved.map { + ($0.dataUUID, AppRecord( + dataUUID: $0.dataUUID, + bundleID: $0.bundleID, + bundlePath: $0.bundlePath, + name: $0.name, + icon: $0.icon + )) + }) + } + // MARK: Scan func startScan(minSizeMB: Int64 = 4) { @@ -72,10 +96,11 @@ final class CleanerManager: ObservableObject { DispatchQueue.global(qos: .userInitiated).async { + self.buildDatabase() + var results: [CacheApp] = [] let dataContainers = (try? self.fm.contentsOfDirectory(atPath: self.dataRoot)) ?? [] - let resolved = self.resolver.resolveAll() let total = max(dataContainers.count, 1) var processed = 0 @@ -88,11 +113,6 @@ final class CleanerManager: ObservableObject { let tmpPath = dataPath + "/tmp" let docsPath = dataPath + "/Documents" - guard self.fm.fileExists(atPath: cachePath) else { - processed += 1 - continue - } - let cacheSize = self.folderSize(cachePath) let tmpSize = self.folderSize(tmpPath) let docsSize = self.folderSize(docsPath) @@ -104,8 +124,7 @@ final class CleanerManager: ObservableObject { continue } - // MARK: Match by DATA UUID (resolver output) - guard let appInfo = resolved.first(where: { $0.dataUUID == uuid }) else { + guard let appInfo = self.appDB[uuid] else { processed += 1 continue } From 4d259b7239af685229078d5572903e8e94a58a02 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 21:22:06 +0530 Subject: [PATCH 160/233] Update BundleResolver.swift --- .../tweaks/cacheclean/BundleResolver.swift | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/lara/views/tweaks/cacheclean/BundleResolver.swift b/lara/views/tweaks/cacheclean/BundleResolver.swift index 9d61d84ac..c0dec6fe8 100644 --- a/lara/views/tweaks/cacheclean/BundleResolver.swift +++ b/lara/views/tweaks/cacheclean/BundleResolver.swift @@ -8,7 +8,7 @@ import Foundation import UIKit -// MARK: - Final Model (KEYED BY DATA UUID) +// MARK: - Final Model (DATABASE ENTRY) struct ResolvedApp { let dataUUID: String @@ -18,7 +18,7 @@ struct ResolvedApp { let icon: UIImage? } -// MARK: - Resolver +// MARK: - Resolver (BUILDS DATA UUID DATABASE) final class BundleResolver { @@ -27,17 +27,21 @@ final class BundleResolver { private let bundleRoot = "/var/containers/Bundle/Application" private let dataRoot = "/var/mobile/Containers/Data/Application" - // MARK: Public + // MARK: Public API func resolveAll() -> [ResolvedApp] { - let bundleMap = buildBundleMap() // identifier → bundlePath - var results: [ResolvedApp] = [] + // 🔥 STEP 1: Build bundleID → bundlePath map + let bundleMap = buildBundleMap() + // 🔥 STEP 2: Read data containers guard let dataContainers = try? fm.contentsOfDirectory(atPath: dataRoot) else { return [] } + var results: [ResolvedApp] = [] + + // 🔥 STEP 3: Match DATA UUID → bundleID → bundle for dataUUID in dataContainers { let dataPath = dataRoot + "/" + dataUUID @@ -45,23 +49,19 @@ final class BundleResolver { guard let meta = NSDictionary(contentsOfFile: metaPath), - let bundleID = meta["MCMMetadataIdentifier"] as? String - else { continue } - - guard let bundlePath = bundleMap[bundleID] else { + let bundleID = meta["MCMMetadataIdentifier"] as? String, + let bundlePath = bundleMap[bundleID] + else { continue } - let name = readName(bundlePath: bundlePath, fallback: bundleID) - let icon = readIcon(bundlePath: bundlePath) - results.append( ResolvedApp( dataUUID: dataUUID, bundleID: bundleID, bundlePath: bundlePath, - name: name, - icon: icon + name: readName(bundlePath), + icon: readIcon(bundlePath) ) ) } @@ -69,7 +69,7 @@ final class BundleResolver { return results } - // MARK: Bundle map (identifier → bundle path) + // MARK: Build DB (bundleID → bundlePath) private func buildBundleMap() -> [String: String] { @@ -95,7 +95,9 @@ final class BundleResolver { guard let meta = NSDictionary(contentsOfFile: metaPath), let bundleID = meta["MCMMetadataIdentifier"] as? String - else { continue } + else { + continue + } map[bundleID] = appPath } @@ -106,22 +108,22 @@ final class BundleResolver { // MARK: Name - private func readName(bundlePath: String, fallback: String) -> String { + private func readName(_ bundlePath: String) -> String { let infoPath = bundlePath + "/Info.plist" guard let info = NSDictionary(contentsOfFile: infoPath) else { - return fallback + return (bundlePath as NSString).lastPathComponent } return info["CFBundleDisplayName"] as? String ?? info["CFBundleName"] as? String ?? - fallback + (bundlePath as NSString).lastPathComponent } // MARK: Icon - private func readIcon(bundlePath: String) -> UIImage? { + private func readIcon(_ bundlePath: String) -> UIImage? { let infoPath = bundlePath + "/Info.plist" @@ -135,10 +137,10 @@ final class BundleResolver { return UIImage(systemName: "app") } - let path = bundlePath + "/" + iconName + let basePath = bundlePath + "/" + iconName - return UIImage(contentsOfFile: path) - ?? UIImage(contentsOfFile: path + "@2x.png") - ?? UIImage(contentsOfFile: path + ".png") + return UIImage(contentsOfFile: basePath) + ?? UIImage(contentsOfFile: basePath + "@2x.png") + ?? UIImage(contentsOfFile: basePath + ".png") } } From 1cfac7943c654f6cd56ffdc1e11e9a4230d72e78 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 21:28:58 +0530 Subject: [PATCH 161/233] Update CacheView.swift --- lara/views/tweaks/cacheclean/CacheView.swift | 87 ++++++++++---------- 1 file changed, 42 insertions(+), 45 deletions(-) diff --git a/lara/views/tweaks/cacheclean/CacheView.swift b/lara/views/tweaks/cacheclean/CacheView.swift index 0c57cb6ca..c435242d4 100644 --- a/lara/views/tweaks/cacheclean/CacheView.swift +++ b/lara/views/tweaks/cacheclean/CacheView.swift @@ -7,17 +7,16 @@ import SwiftUI import UIKit -import Combine import WebKit -// MARK: - Model +// MARK: - Models struct CacheApp: Identifiable { let id: String let name: String - let bundleID: String + let bundleID: String? - let appBundlePath: String + let appBundlePath: String? let dataContainerPath: String let icon: UIImage? @@ -31,16 +30,12 @@ struct CacheApp: Identifiable { let documentsPath: String } -// MARK: - Snapshot - struct StorageSnapshot: Identifiable { let id = UUID() let date = Date() let totalBytes: Int64 } -// MARK: - Resolver Output (FAST LOOKUP DB) - struct AppRecord { let dataUUID: String let bundleID: String @@ -65,47 +60,52 @@ final class CleanerManager: ObservableObject { private let fm = FileManager.default private let dataRoot = "/var/mobile/Containers/Data/Application" - // MARK: Resolver (BUILD ONCE → DICTIONARY) + // Resolver (optional enrichment layer) private let resolver = BundleResolver() + private var appDB: [String: AppRecord] = [:] - private var appDB: [String: AppRecord] = [:] // dataUUID → AppRecord - + // MARK: Build DB (SAFE) private func buildDatabase() { let resolved = resolver.resolveAll() - appDB = Dictionary(uniqueKeysWithValues: resolved.map { - ($0.dataUUID, AppRecord( - dataUUID: $0.dataUUID, - bundleID: $0.bundleID, - bundlePath: $0.bundlePath, - name: $0.name, - icon: $0.icon - )) - }) + + var db: [String: AppRecord] = [:] + for app in resolved { + db[app.dataUUID] = AppRecord( + dataUUID: app.dataUUID, + bundleID: app.bundleID, + bundlePath: app.bundlePath, + name: app.name, + icon: app.icon + ) + } + + self.appDB = db } // MARK: Scan - func startScan(minSizeMB: Int64 = 4) { + func startScan(minSizeMB: Int64 = 1) { guard !isScanning else { return } isScanning = true + apps.removeAll() scanProgress = 0 totalCacheBytes = 0 statusText = "Scanning apps..." DispatchQueue.global(qos: .userInitiated).async { - self.buildDatabase() - - var results: [CacheApp] = [] + self.buildDatabase() - let dataContainers = (try? self.fm.contentsOfDirectory(atPath: self.dataRoot)) ?? [] + let containers = (try? self.fm.contentsOfDirectory(atPath: self.dataRoot)) ?? [] - let total = max(dataContainers.count, 1) + let total = max(containers.count, 1) var processed = 0 - for uuid in dataContainers { + var results: [CacheApp] = [] + + for uuid in containers { let dataPath = self.dataRoot + "/" + uuid @@ -119,30 +119,30 @@ final class CleanerManager: ObservableObject { let totalSize = cacheSize + tmpSize + docsSize + // Only skip extremely small containers if totalSize < minSizeMB * 1024 * 1024 { processed += 1 continue } - guard let appInfo = self.appDB[uuid] else { - processed += 1 - continue - } + // 🔥 SAFE LOOKUP (DO NOT BLOCK UI IF MISSING) + let appInfo = self.appDB[uuid] + + let name = appInfo?.name ?? "App \(uuid.suffix(6))" + let bundleID = appInfo?.bundleID + let bundlePath = appInfo?.bundlePath + let icon = appInfo?.icon results.append(CacheApp( id: uuid, - name: appInfo.name, - bundleID: appInfo.bundleID, - - appBundlePath: appInfo.bundlePath, + name: name, + bundleID: bundleID, + appBundlePath: bundlePath, dataContainerPath: dataPath, - - icon: appInfo.icon, - + icon: icon, cacheSize: cacheSize, tmpSize: tmpSize, documentsSize: docsSize, - cachePath: cachePath, tmpPath: tmpPath, documentsPath: docsPath @@ -150,11 +150,9 @@ final class CleanerManager: ObservableObject { processed += 1 - let progress = Double(processed) / Double(total) - DispatchQueue.main.async { - self.scanProgress = min(progress, 1.0) - self.statusText = "Scanning... \(Int(progress * 100))%" + self.scanProgress = Double(processed) / Double(total) + self.statusText = "Scanning \(processed)/\(total)" } } @@ -189,7 +187,7 @@ final class CleanerManager: ObservableObject { } } - // MARK: WKWebView + // MARK: Web cleanup func cleanWKWebView() { @@ -220,7 +218,6 @@ final class CleanerManager: ObservableObject { // MARK: Size private func folderSize(_ path: String) -> Int64 { - guard let e = fm.enumerator(atPath: path) else { return 0 } var size: Int64 = 0 From 417716cf56bcf3fe03015d829f5eb278cc0f9552 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 21:35:59 +0530 Subject: [PATCH 162/233] Update BundleResolver.swift --- .../tweaks/cacheclean/BundleResolver.swift | 137 +++++++++++++----- 1 file changed, 103 insertions(+), 34 deletions(-) diff --git a/lara/views/tweaks/cacheclean/BundleResolver.swift b/lara/views/tweaks/cacheclean/BundleResolver.swift index c0dec6fe8..b5071d1f0 100644 --- a/lara/views/tweaks/cacheclean/BundleResolver.swift +++ b/lara/views/tweaks/cacheclean/BundleResolver.swift @@ -8,7 +8,7 @@ import Foundation import UIKit -// MARK: - Final Model (DATABASE ENTRY) +// MARK: - Model struct ResolvedApp { let dataUUID: String @@ -18,7 +18,7 @@ struct ResolvedApp { let icon: UIImage? } -// MARK: - Resolver (BUILDS DATA UUID DATABASE) +// MARK: - Resolver final class BundleResolver { @@ -27,41 +27,52 @@ final class BundleResolver { private let bundleRoot = "/var/containers/Bundle/Application" private let dataRoot = "/var/mobile/Containers/Data/Application" - // MARK: Public API + // MARK: Public func resolveAll() -> [ResolvedApp] { - // 🔥 STEP 1: Build bundleID → bundlePath map let bundleMap = buildBundleMap() - // 🔥 STEP 2: Read data containers guard let dataContainers = try? fm.contentsOfDirectory(atPath: dataRoot) else { return [] } var results: [ResolvedApp] = [] - // 🔥 STEP 3: Match DATA UUID → bundleID → bundle for dataUUID in dataContainers { let dataPath = dataRoot + "/" + dataUUID + let metaPath = dataPath + "/.com.apple.mobile_container_manager.metadata.plist" - guard - let meta = NSDictionary(contentsOfFile: metaPath), - let bundleID = meta["MCMMetadataIdentifier"] as? String, - let bundlePath = bundleMap[bundleID] - else { + // 🔥 STEP 1: Try metadata + var bundleID: String? = + NSDictionary(contentsOfFile: metaPath)?["MCMMetadataIdentifier"] as? String + + // 🔥 STEP 2: fallback → scan Info.plist inside data container apps + if bundleID == nil { + bundleID = findBundleIDInDataContainer(dataPath) + } + + guard let finalBundleID = bundleID else { + continue + } + + // 🔥 STEP 3: resolve bundle path + let bundlePath = + bundleMap[finalBundleID] ?? findBundlePathFallback(bundleID: finalBundleID) + + guard let finalBundlePath = bundlePath else { continue } results.append( ResolvedApp( dataUUID: dataUUID, - bundleID: bundleID, - bundlePath: bundlePath, - name: readName(bundlePath), - icon: readIcon(bundlePath) + bundleID: finalBundleID, + bundlePath: finalBundlePath, + name: readName(finalBundlePath), + icon: readIcon(finalBundlePath) ) ) } @@ -69,7 +80,7 @@ final class BundleResolver { return results } - // MARK: Build DB (bundleID → bundlePath) + // MARK: Bundle Map private func buildBundleMap() -> [String: String] { @@ -90,22 +101,77 @@ final class BundleResolver { for item in items where item.hasSuffix(".app") { let appPath = rootPath + "/" + item - let metaPath = appPath + "/.com.apple.mobile_container_manager.metadata.plist" - guard - let meta = NSDictionary(contentsOfFile: metaPath), - let bundleID = meta["MCMMetadataIdentifier"] as? String - else { + // 🔥 PRIMARY source + if let meta = NSDictionary(contentsOfFile: appPath + "/.com.apple.mobile_container_manager.metadata.plist"), + let bundleID = meta["MCMMetadataIdentifier"] as? String { + map[bundleID] = appPath continue } - map[bundleID] = appPath + // 🔥 FALLBACK source (Info.plist) + if let info = NSDictionary(contentsOfFile: appPath + "/Info.plist"), + let bundleID = info["CFBundleIdentifier"] as? String { + map[bundleID] = appPath + } } } return map } + // MARK: Data container fallback scan + + private func findBundleIDInDataContainer(_ dataPath: String) -> String? { + + guard let items = try? fm.contentsOfDirectory(atPath: dataPath) else { + return nil + } + + for item in items where item.hasSuffix(".app") { + + let infoPath = dataPath + "/" + item + "/Info.plist" + + if let info = NSDictionary(contentsOfFile: infoPath), + let bundleID = info["CFBundleIdentifier"] as? String { + return bundleID + } + } + + return nil + } + + // MARK: Bundle fallback (last resort) + + private func findBundlePathFallback(bundleID: String) -> String? { + + guard let roots = try? fm.contentsOfDirectory(atPath: bundleRoot) else { + return nil + } + + for root in roots { + + let rootPath = bundleRoot + "/" + root + + guard let items = try? fm.contentsOfDirectory(atPath: rootPath) else { + continue + } + + for item in items where item.hasSuffix(".app") { + + let appPath = rootPath + "/" + item + + if let info = NSDictionary(contentsOfFile: appPath + "/Info.plist"), + let id = info["CFBundleIdentifier"] as? String, + id == bundleID { + return appPath + } + } + } + + return nil + } + // MARK: Name private func readName(_ bundlePath: String) -> String { @@ -121,26 +187,29 @@ final class BundleResolver { (bundlePath as NSString).lastPathComponent } - // MARK: Icon + // MARK: Icon (improved fallback) private func readIcon(_ bundlePath: String) -> UIImage? { let infoPath = bundlePath + "/Info.plist" - guard - let info = NSDictionary(contentsOfFile: infoPath), - let icons = info["CFBundleIcons"] as? [String: Any], - let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], - let files = primary["CFBundleIconFiles"] as? [String], - let iconName = files.last - else { + guard let info = NSDictionary(contentsOfFile: infoPath) else { return UIImage(systemName: "app") } - let basePath = bundlePath + "/" + iconName + if let icons = info["CFBundleIcons"] as? [String: Any], + let primary = icons["CFBundlePrimaryIcon"] as? [String: Any], + let files = primary["CFBundleIconFiles"] as? [String], + let iconName = files.last { + + let path = bundlePath + "/" + iconName + + return UIImage(contentsOfFile: path) + ?? UIImage(contentsOfFile: path + "@2x.png") + ?? UIImage(contentsOfFile: path + ".png") + } - return UIImage(contentsOfFile: basePath) - ?? UIImage(contentsOfFile: basePath + "@2x.png") - ?? UIImage(contentsOfFile: basePath + ".png") + // 🔥 fallback icon + return UIImage(systemName: "app") } } From fbbb552fdb08890d00a688ead09d647954718ec9 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 21:55:18 +0530 Subject: [PATCH 163/233] Update BundleResolver.swift --- .../tweaks/cacheclean/BundleResolver.swift | 65 ++++++++++--------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/lara/views/tweaks/cacheclean/BundleResolver.swift b/lara/views/tweaks/cacheclean/BundleResolver.swift index b5071d1f0..931e3a6dd 100644 --- a/lara/views/tweaks/cacheclean/BundleResolver.swift +++ b/lara/views/tweaks/cacheclean/BundleResolver.swift @@ -1,8 +1,6 @@ // -// -// BundleResolver.swift -// -// lara +// BundleResolver.swift +// lara // import Foundation @@ -42,37 +40,47 @@ final class BundleResolver { for dataUUID in dataContainers { let dataPath = dataRoot + "/" + dataUUID - let metaPath = dataPath + "/.com.apple.mobile_container_manager.metadata.plist" - // 🔥 STEP 1: Try metadata - var bundleID: String? = + // MARK: STEP 1 - metadata + var bundleID = NSDictionary(contentsOfFile: metaPath)?["MCMMetadataIdentifier"] as? String - // 🔥 STEP 2: fallback → scan Info.plist inside data container apps + // MARK: STEP 2 - fallback scan inside container if bundleID == nil { bundleID = findBundleIDInDataContainer(dataPath) } - guard let finalBundleID = bundleID else { - continue - } + // ❗ DO NOT DROP APP + let finalBundleID = bundleID ?? "unknown.\(dataUUID)" - // 🔥 STEP 3: resolve bundle path - let bundlePath = - bundleMap[finalBundleID] ?? findBundlePathFallback(bundleID: finalBundleID) + // MARK: STEP 3 - resolve bundle path + let resolvedBundlePath = + bundleID != nil + ? (bundleMap[finalBundleID] ?? findBundlePathFallback(bundleID: finalBundleID)) + : nil - guard let finalBundlePath = bundlePath else { - continue - } + let finalBundlePath = resolvedBundlePath ?? "" + + // MARK: STEP 4 - name resolution (NEVER FAIL) + let finalName = readSafeName( + bundlePath: finalBundlePath.isEmpty ? dataPath : finalBundlePath, + fallback: dataUUID + ) + + // MARK: STEP 5 - icon resolution (NEVER FAIL) + let finalIcon = + finalBundlePath.isEmpty + ? UIImage(systemName: "app") + : readIcon(finalBundlePath) results.append( ResolvedApp( dataUUID: dataUUID, bundleID: finalBundleID, bundlePath: finalBundlePath, - name: readName(finalBundlePath), - icon: readIcon(finalBundlePath) + name: finalName, + icon: finalIcon ) ) } @@ -102,14 +110,14 @@ final class BundleResolver { let appPath = rootPath + "/" + item - // 🔥 PRIMARY source + // PRIMARY if let meta = NSDictionary(contentsOfFile: appPath + "/.com.apple.mobile_container_manager.metadata.plist"), let bundleID = meta["MCMMetadataIdentifier"] as? String { map[bundleID] = appPath continue } - // 🔥 FALLBACK source (Info.plist) + // FALLBACK if let info = NSDictionary(contentsOfFile: appPath + "/Info.plist"), let bundleID = info["CFBundleIdentifier"] as? String { map[bundleID] = appPath @@ -120,7 +128,7 @@ final class BundleResolver { return map } - // MARK: Data container fallback scan + // MARK: Data container scan private func findBundleIDInDataContainer(_ dataPath: String) -> String? { @@ -141,7 +149,7 @@ final class BundleResolver { return nil } - // MARK: Bundle fallback (last resort) + // MARK: Bundle fallback private func findBundlePathFallback(bundleID: String) -> String? { @@ -172,22 +180,22 @@ final class BundleResolver { return nil } - // MARK: Name + // MARK: SAFE NAME (never empty) - private func readName(_ bundlePath: String) -> String { + private func readSafeName(bundlePath: String, fallback: String) -> String { let infoPath = bundlePath + "/Info.plist" guard let info = NSDictionary(contentsOfFile: infoPath) else { - return (bundlePath as NSString).lastPathComponent + return fallback } return info["CFBundleDisplayName"] as? String ?? info["CFBundleName"] as? String ?? - (bundlePath as NSString).lastPathComponent + fallback } - // MARK: Icon (improved fallback) + // MARK: Icon private func readIcon(_ bundlePath: String) -> UIImage? { @@ -209,7 +217,6 @@ final class BundleResolver { ?? UIImage(contentsOfFile: path + ".png") } - // 🔥 fallback icon return UIImage(systemName: "app") } } From 91b2d2edca69ad31d22093289106009a19e91fb3 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 22:09:26 +0530 Subject: [PATCH 164/233] Update CacheView.swift --- lara/views/tweaks/cacheclean/CacheView.swift | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lara/views/tweaks/cacheclean/CacheView.swift b/lara/views/tweaks/cacheclean/CacheView.swift index c435242d4..82b69e34c 100644 --- a/lara/views/tweaks/cacheclean/CacheView.swift +++ b/lara/views/tweaks/cacheclean/CacheView.swift @@ -292,6 +292,22 @@ struct CacheView: View { Text("Delete") } } + .swipeActions(edge: .trailing) { + Button(role: .destructive) { + mgr.deleteCache(app) + } label: { + Text("Cache") + } + } + .swipeActions(edge: .leading) { + Button(role: .destructive) { + try? FileManager.default.removeItem(atPath: app.documentsPath) + mgr.startScan() + } label: { + Text("Docs") + } + .tint(.orange) + } } } From 16aaa3ef63649f79d05f30a6ff1924e6f5fe40f1 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Fri, 5 Jun 2026 22:23:14 +0530 Subject: [PATCH 165/233] Update CacheView.swift --- lara/views/tweaks/cacheclean/CacheView.swift | 21 +++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lara/views/tweaks/cacheclean/CacheView.swift b/lara/views/tweaks/cacheclean/CacheView.swift index 82b69e34c..fbaca00c4 100644 --- a/lara/views/tweaks/cacheclean/CacheView.swift +++ b/lara/views/tweaks/cacheclean/CacheView.swift @@ -125,7 +125,6 @@ final class CleanerManager: ObservableObject { continue } - // 🔥 SAFE LOOKUP (DO NOT BLOCK UI IF MISSING) let appInfo = self.appDB[uuid] let name = appInfo?.name ?? "App \(uuid.suffix(6))" @@ -178,7 +177,6 @@ final class CleanerManager: ObservableObject { func deleteCache(_ app: CacheApp) { try? fm.removeItem(atPath: app.cachePath) try? fm.removeItem(atPath: app.tmpPath) - startScan() } func deleteAll() { @@ -302,7 +300,24 @@ struct CacheView: View { .swipeActions(edge: .leading) { Button(role: .destructive) { try? FileManager.default.removeItem(atPath: app.documentsPath) - mgr.startScan() + if let index = mgr.apps.firstIndex(where: { $0.id == app.id }) { + mgr.apps[index] = CacheApp( + id: app.id, + name: app.name, + bundleID: app.bundleID, + appBundlePath: app.appBundlePath, + dataContainerPath: app.dataContainerPath, + icon: app.icon, + cacheSize: app.cacheSize, + tmpSize: app.tmpSize, + documentsSize: 0, + cachePath: app.cachePath, + tmpPath: app.tmpPath, + documentsPath: app.documentsPath + + ) + } + } label: { Text("Docs") } From c4fd156b595b0c2917a72825e5ac4f7d5540c8bd Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 21:00:51 +0530 Subject: [PATCH 166/233] Update lara.swift --- lara/lara.swift | 67 ++++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/lara/lara.swift b/lara/lara.swift index 801c783a7..aa1acd48a 100644 --- a/lara/lara.swift +++ b/lara/lara.swift @@ -31,7 +31,6 @@ struct lara: App { weonadebugbuild_pjbweouttahereexclamationmark = true #endif - // fix file picker let fixMethod = class_getInstanceMethod(UIDocumentPickerViewController.self, #selector(UIDocumentPickerViewController.fix_init(forOpeningContentTypes:asCopy:)))! let origMethod = class_getInstanceMethod(UIDocumentPickerViewController.self, #selector(UIDocumentPickerViewController.init(forOpeningContentTypes:asCopy:)))! method_exchangeImplementations(origMethod, fixMethod) @@ -45,39 +44,40 @@ struct lara: App { var body: some Scene { WindowGroup { - TabView(selection: $selectedtab) { - ContentView() - .tabItem { - Image(systemName: "wrench.and.screwdriver.fill") - } - .tag(taboptions.applying) - - // this has gotta fucking go - TweaksView(mgr: mgr) - .tabItem { - Image(systemName: "ant.fill") - } - .tag(taboptions.tweaks) - - - // i'm gonna strangle you root (the weight of your actions will crush you) - if showfmintabs { - SantanderView(startPath: "/") + ZStack { + TabView(selection: $selectedtab) { + + ContentView() .tabItem { - Image(systemName: "folder.fill") + Image(systemName: "wrench.and.screwdriver.fill") } - .tag(taboptions.files) - } - - // this too - if logsdisplaymode == .tabs { - LogsView(logger: globallogger) + .tag(taboptions.applying) + + TweaksView(mgr: mgr) .tabItem { - Image(systemName: "terminal") + Image(systemName: "ant.fill") } - .tag(taboptions.logs) + .tag(taboptions.tweaks) + + if showfmintabs { + SantanderView(startPath: "/") + .tabItem { + Image(systemName: "folder.fill") + } + .tag(taboptions.files) + } + + if logsdisplaymode == .tabs { + LogsView(logger: globallogger) + .tabItem { + Image(systemName: "terminal") + } + .tag(taboptions.logs) + } } } + .frame(maxWidth: .infinity, maxHeight: .infinity) + .ignoresSafeArea() .environmentObject(mgr) .overlay { if mgr.showrespring { @@ -100,11 +100,14 @@ struct lara: App { init_offsets() offsets_init() iconthememgr.startPendingFixupIfPossible() - // beautiful name root - // thanks mgr.hasOffsets = emergencyfixfunctiontobereplacedlateronquestionmark() } else { - Alertinator.shared.alert(title: "This device is not supported!", body: "We apologize, but this device is currently not supported by Lara. Possible reasons: \n- You are on an unsupported iOS version (Supported: iOS 16.0 - iOS 18.7.1, iOS 26.0 - iOS 26.0.1) \n- Your device has MIE (A19+ or M5+) \n- A debugger is attached.", actionLabel: "Exit App", action: { exitinator() }) + Alertinator.shared.alert( + title: "This device is not supported!", + body: "We apologize, but this device is currently not supported by Lara.", + actionLabel: "Exit App", + action: { exitinator() } + ) } } .onChange(of: scenephase, perform: handleScenePhase) @@ -163,5 +166,5 @@ extension UIDocumentPickerViewController { } } -// make strings compatiable with errors +// make strings compatible with errors extension String: @retroactive Error {} From 8a4e48d22bad34131ecc7e59419be2866e416314 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 21:06:50 +0530 Subject: [PATCH 167/233] Update ContentView.swift --- lara/views/app/ContentView.swift | 34 +------------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/lara/views/app/ContentView.swift b/lara/views/app/ContentView.swift index 0d87f8794..f833edc11 100644 --- a/lara/views/app/ContentView.swift +++ b/lara/views/app/ContentView.swift @@ -51,6 +51,7 @@ struct ContentView: View { SettingsView() } } + .ignoresSafeArea() } private var AlertsSection: some View { @@ -138,7 +139,6 @@ struct ContentView: View { } } - // initalize vfs if selectedmethod == .vfs { LabeledContent(content: { if mgr.vfsready { @@ -159,7 +159,6 @@ struct ContentView: View { } } - // escape sandbox if selectedmethod == .sbx { LabeledContent(content: { if mgr.sbxready { @@ -193,7 +192,6 @@ struct ContentView: View { Group { #if !DISABLE_REMOTECALL Section { - // init remotecall LabeledContent(content: { if mgr.rcready { Image(systemName: "checkmark.circle") @@ -220,38 +218,8 @@ struct ContentView: View { }) .disabled(!mgr.dsready || isdebugged() || mgr.rcrunning || mgr.rcready) } - - // destroy remotecall - if mgr.rcready { - Button("Destroy Remotecall", action: { - mgr.rcdestroy() - }) - } } header: { HeaderLabel(text: "RemoteCall", icon: "syringe") - } footer: { - VStack(alignment: .leading, spacing: 4) { - if let error = mgr.rcLastError ?? mgr.sbProc?.lastError { - Text("Error: \(error)") - .foregroundColor(.red) - } - if RemoteCall.isLiveContainerRuntime() && !RemoteCall.isLiveProcessRuntime() { - Text("RemoteCall needs a PAC-enabled LiveContainer launch context. The main exploit may still work when RemoteCall is unavailable.") - } - if isdebugged() { - Text("Not available when a debugger is attached.") - } - Text("RemoteCall is relatively unstable and may not work properly.") - if isIOS16() { - Text("iOS 16 tip: Open Control Center after tapping Initialize RemoteCall. This significantly improves the success rate and speed.") - .fontWeight(.semibold) - .foregroundColor(.orange) - Text("If initialization fails after about 2 minutes, respring, relaunch Lara, and try again.") - .fontWeight(.semibold) - .foregroundColor(.red) - } - } - .font(.footnote) } #endif } From bb83d5caa9b1816e644a0714ac98a9a820fd8f96 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 21:20:15 +0530 Subject: [PATCH 168/233] Update CacheView.swift --- lara/views/tweaks/cacheclean/CacheView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/views/tweaks/cacheclean/CacheView.swift b/lara/views/tweaks/cacheclean/CacheView.swift index fbaca00c4..aaf14c761 100644 --- a/lara/views/tweaks/cacheclean/CacheView.swift +++ b/lara/views/tweaks/cacheclean/CacheView.swift @@ -350,6 +350,7 @@ struct CacheView: View { .onAppear { mgr.startScan() } + .ignoresSafeArea() } } } From bbe8308c51a3116bea6dfd38a95a413767b22da1 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 21:29:31 +0530 Subject: [PATCH 169/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index 3fd689d3f..fa5f67c4b 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -61,8 +61,6 @@ struct TweaksView: View { .disabled(!mgr.vfsready || !mgr.sbxready) NavigationLink("Screen Time", destination: ScreenTimeView(mgr: mgr)) .disabled(!mgr.vfsready || !mgr.sbxready) - NavigationLink("Clean Cache", destination: CacheView()) - .disabled(!mgr.vfsready || !mgr.sbxready) } Section(header: HeaderLabel(text: "Broken", icon: "exclamationmark.triangle.fill")) { From a26376197bddf043f7ca70c71b6d118b49fa0651 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 21:57:21 +0530 Subject: [PATCH 170/233] Update lara.swift --- lara/lara.swift | 67 +++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/lara/lara.swift b/lara/lara.swift index aa1acd48a..801c783a7 100644 --- a/lara/lara.swift +++ b/lara/lara.swift @@ -31,6 +31,7 @@ struct lara: App { weonadebugbuild_pjbweouttahereexclamationmark = true #endif + // fix file picker let fixMethod = class_getInstanceMethod(UIDocumentPickerViewController.self, #selector(UIDocumentPickerViewController.fix_init(forOpeningContentTypes:asCopy:)))! let origMethod = class_getInstanceMethod(UIDocumentPickerViewController.self, #selector(UIDocumentPickerViewController.init(forOpeningContentTypes:asCopy:)))! method_exchangeImplementations(origMethod, fixMethod) @@ -44,40 +45,39 @@ struct lara: App { var body: some Scene { WindowGroup { - ZStack { - TabView(selection: $selectedtab) { - - ContentView() + TabView(selection: $selectedtab) { + ContentView() + .tabItem { + Image(systemName: "wrench.and.screwdriver.fill") + } + .tag(taboptions.applying) + + // this has gotta fucking go + TweaksView(mgr: mgr) + .tabItem { + Image(systemName: "ant.fill") + } + .tag(taboptions.tweaks) + + + // i'm gonna strangle you root (the weight of your actions will crush you) + if showfmintabs { + SantanderView(startPath: "/") .tabItem { - Image(systemName: "wrench.and.screwdriver.fill") + Image(systemName: "folder.fill") } - .tag(taboptions.applying) - - TweaksView(mgr: mgr) + .tag(taboptions.files) + } + + // this too + if logsdisplaymode == .tabs { + LogsView(logger: globallogger) .tabItem { - Image(systemName: "ant.fill") + Image(systemName: "terminal") } - .tag(taboptions.tweaks) - - if showfmintabs { - SantanderView(startPath: "/") - .tabItem { - Image(systemName: "folder.fill") - } - .tag(taboptions.files) - } - - if logsdisplaymode == .tabs { - LogsView(logger: globallogger) - .tabItem { - Image(systemName: "terminal") - } - .tag(taboptions.logs) - } + .tag(taboptions.logs) } } - .frame(maxWidth: .infinity, maxHeight: .infinity) - .ignoresSafeArea() .environmentObject(mgr) .overlay { if mgr.showrespring { @@ -100,14 +100,11 @@ struct lara: App { init_offsets() offsets_init() iconthememgr.startPendingFixupIfPossible() + // beautiful name root + // thanks mgr.hasOffsets = emergencyfixfunctiontobereplacedlateronquestionmark() } else { - Alertinator.shared.alert( - title: "This device is not supported!", - body: "We apologize, but this device is currently not supported by Lara.", - actionLabel: "Exit App", - action: { exitinator() } - ) + Alertinator.shared.alert(title: "This device is not supported!", body: "We apologize, but this device is currently not supported by Lara. Possible reasons: \n- You are on an unsupported iOS version (Supported: iOS 16.0 - iOS 18.7.1, iOS 26.0 - iOS 26.0.1) \n- Your device has MIE (A19+ or M5+) \n- A debugger is attached.", actionLabel: "Exit App", action: { exitinator() }) } } .onChange(of: scenephase, perform: handleScenePhase) @@ -166,5 +163,5 @@ extension UIDocumentPickerViewController { } } -// make strings compatible with errors +// make strings compatiable with errors extension String: @retroactive Error {} From f1fa916978f9f642ffe3797ee8cbdd4a2fde1669 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 21:59:23 +0530 Subject: [PATCH 171/233] Update SettingsView.swift From 5e2420cd8dac499da507970dc515434d31d64603 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:00:29 +0530 Subject: [PATCH 172/233] Update ContentView.swift --- lara/views/app/ContentView.swift | 34 +++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/lara/views/app/ContentView.swift b/lara/views/app/ContentView.swift index f833edc11..0d87f8794 100644 --- a/lara/views/app/ContentView.swift +++ b/lara/views/app/ContentView.swift @@ -51,7 +51,6 @@ struct ContentView: View { SettingsView() } } - .ignoresSafeArea() } private var AlertsSection: some View { @@ -139,6 +138,7 @@ struct ContentView: View { } } + // initalize vfs if selectedmethod == .vfs { LabeledContent(content: { if mgr.vfsready { @@ -159,6 +159,7 @@ struct ContentView: View { } } + // escape sandbox if selectedmethod == .sbx { LabeledContent(content: { if mgr.sbxready { @@ -192,6 +193,7 @@ struct ContentView: View { Group { #if !DISABLE_REMOTECALL Section { + // init remotecall LabeledContent(content: { if mgr.rcready { Image(systemName: "checkmark.circle") @@ -218,8 +220,38 @@ struct ContentView: View { }) .disabled(!mgr.dsready || isdebugged() || mgr.rcrunning || mgr.rcready) } + + // destroy remotecall + if mgr.rcready { + Button("Destroy Remotecall", action: { + mgr.rcdestroy() + }) + } } header: { HeaderLabel(text: "RemoteCall", icon: "syringe") + } footer: { + VStack(alignment: .leading, spacing: 4) { + if let error = mgr.rcLastError ?? mgr.sbProc?.lastError { + Text("Error: \(error)") + .foregroundColor(.red) + } + if RemoteCall.isLiveContainerRuntime() && !RemoteCall.isLiveProcessRuntime() { + Text("RemoteCall needs a PAC-enabled LiveContainer launch context. The main exploit may still work when RemoteCall is unavailable.") + } + if isdebugged() { + Text("Not available when a debugger is attached.") + } + Text("RemoteCall is relatively unstable and may not work properly.") + if isIOS16() { + Text("iOS 16 tip: Open Control Center after tapping Initialize RemoteCall. This significantly improves the success rate and speed.") + .fontWeight(.semibold) + .foregroundColor(.orange) + Text("If initialization fails after about 2 minutes, respring, relaunch Lara, and try again.") + .fontWeight(.semibold) + .foregroundColor(.red) + } + } + .font(.footnote) } #endif } From 0449af3dc86a2d5d74d38115f63bdcfce6cbb8af Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:05:46 +0530 Subject: [PATCH 173/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index a6ce61286..3ec30fb50 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -411,5 +411,6 @@ struct ToolsView: View { isaslr = aslrstate } } + .ignoresSafeArea } } From 6f1b90eb90c5cc473254519364be9a09fe5291be Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:06:09 +0530 Subject: [PATCH 174/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 3ec30fb50..32ffa67fc 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -411,6 +411,6 @@ struct ToolsView: View { isaslr = aslrstate } } - .ignoresSafeArea + .ignoresSafeArea() } } From c220fc304fb8dfc87237a8a1f1959fcf07a0cb6d Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:13:51 +0530 Subject: [PATCH 175/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 459 +++++++++--------------------- 1 file changed, 130 insertions(+), 329 deletions(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 32ffa67fc..b419b6cc5 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -1,10 +1,3 @@ -// -// ToolsView.swift -// lara -// -// Created by ruter on 04.04.26. -// - import SwiftUI struct procentry: Identifiable, Hashable { @@ -37,380 +30,188 @@ struct ToolsView: View { var label: String { switch self { - case .read: - return "read" - - case .write: - return "write" - - case .rw: - return "read-write" + case .read: return "read" + case .write: return "write" + case .rw: return "read-write" } } } var body: some View { - List { - - if !mgr.dsready { - Section { - Text("Kernel R/W is not ready. Run the exploit first.") - .foregroundColor(.secondary) - - } header: { - Text("Status") - } - } - - Section { - - HStack { - Text("ASLR:") - - Spacer() - - Text(isaslr ? "enabled" : "disabled") - .foregroundColor( - isaslr ? Color.red : Color.green - ) - .monospaced() - - Button { - isaslr = aslrstate - - } label: { - Image(systemName: "arrow.clockwise") + NavigationStack { + List { + + if !mgr.dsready { + Section { + Text("Kernel R/W is not ready. Run the exploit first.") + .foregroundColor(.secondary) + } header: { + Text("Status") } } - Button { - toggleaslr() - isaslr = aslrstate - - } label: { - Text("Toggle ASLR") - } - - } header: { - Text("ASLR") - - } footer: { - Text("Address Space Layout Randomization. Probably not useful for you.") - } - - Section { - - Button("Respring") { - mgr.respring() - } - - HStack { - Text("ourproc:") - - Spacer() - - Text( - mgr.dsready - ? String(format: "0x%llx", ds_get_our_proc()) - : "N/A" - ) - .foregroundColor(.secondary) - .monospaced() - } - - HStack { - Text("ourtask:") - - Spacer() - - Text( - mgr.dsready - ? String(format: "0x%llx", ds_get_our_task()) - : "N/A" - ) - .foregroundColor(.secondary) - .monospaced() - } - - HStack { - Text("UID:") - - Spacer() - - Text("\(uid)") - .font(.system(.body, design: .monospaced)) - .foregroundColor(.secondary) - - Button { - uid = getuid() - print(uid) - - } label: { - Image(systemName: "arrow.clockwise") - } - } - - HStack { - Text("PID:") - - Spacer() - - Text("\(pid)") - .font(.system(.body, design: .monospaced)) - .foregroundColor(.secondary) - - Button { - pid = getpid() - print(pid) - - } label: { - Image(systemName: "arrow.clockwise") - } - } - - } header: { - Text("Process") - } - - // MARK: - Task Manager - - Section { - - HStack { - Text("Process:") + Section { + HStack { + Text("ASLR:") - Spacer() + Spacer() - TextField( - "e.g. SpringBoard", - text: $crashname - ) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .foregroundColor(.secondary) - .monospaced() - .fixedSize( - horizontal: true, - vertical: false - ) - } + Text(isaslr ? "enabled" : "disabled") + .foregroundColor(isaslr ? .red : .green) + .monospaced() - Button("Crash") { - crashname.withCString { cstr in - _ = crashproc(cstr) + Button { + isaslr = aslrstate + } label: { + Image(systemName: "arrow.clockwise") + } } - } - .disabled(crashname.isEmpty) - Button("Pause") { - crashname.withCString { cstr in - _ = proc_pause_resume(cstr, false) + Button("Toggle ASLR") { + toggleaslr() + isaslr = aslrstate } - - pausedProcesses.insert(crashname) + } header: { + Text("ASLR") } - .disabled( - crashname.isEmpty || - pausedProcesses.contains(crashname) - ) - Button("Resume") { - crashname.withCString { cstr in - _ = proc_pause_resume(cstr, true) - } - - pausedProcesses.remove(crashname) - } - .disabled( - crashname.isEmpty || - !pausedProcesses.contains(crashname) - ) - Button("SBX Escape Helper") { - crashname.withCString { cstr in - proc_sbx = procbyname(cstr) - } - if (proc_sbx == 0) { - status = "Failed to get proc" - } - let errorcheck = sbx_escape(proc_sbx) - if (errorcheck == 0) { - return - } else { - status = "Failure! - Steven He" + Section { + Button("Respring") { + mgr.respring() } - } - .disabled(crashname.isEmpty) - - } header: { - Text("Task Manager") - - } footer: { - Text("Pause, Resume or Crash the selected process") - } - Section { - - Button { - - if mgr.PPHelper() { - status = """ - Succeeded. Open the Pocket Poster app, \ - open settings and tap Detect. - """ - - } else { - status = "Failed. Check logs." + HStack { + Text("ourproc:") + Spacer() + Text( + mgr.dsready + ? String(format: "0x%llx", ds_get_our_proc()) + : "N/A" + ) + .monospaced() + .foregroundColor(.secondary) } - } label: { - Text("Pocket Poster Helper") - } - .disabled(!mgr.sbxready) - - } header: { - Text("Pocket Poster") - - } footer: { - Text( - """ - Get the needed hashes for Pocket Poster \ - without the need of a PC. - """ - ) - } - - Section { - - HStack { - - if showtoken { - + HStack { + Text("ourtask:") + Spacer() Text( - mgr.sbxready - ? "tkn" - : "No Saved Token." + mgr.dsready + ? String(format: "0x%llx", ds_get_our_task()) + : "N/A" ) - .foregroundColor(.secondary) .monospaced() - - } else { - - if !token.isEmpty { - - Text(token) - .foregroundColor(.secondary) - .monospaced() - .lineLimit(1) - .truncationMode(.middle) - - } else { - - Text("No Saved Token.") - .foregroundColor(.secondary) - } + .foregroundColor(.secondary) } - Spacer() - - Button { - UIPasteboard.general.string = - token.isEmpty ? nil : token + HStack { + Text("UID:") + Spacer() + Text("\(uid)") + .monospaced() + .foregroundColor(.secondary) - } label: { - Image(systemName: "doc.on.doc") + Button { + uid = getuid() + } label: { + Image(systemName: "arrow.clockwise") + } } - .disabled(token.isEmpty) - } - .contextMenu { - if !token.isEmpty { + HStack { + Text("PID:") + Spacer() + Text("\(pid)") + .monospaced() + .foregroundColor(.secondary) Button { - UIPasteboard.general.string = token - + pid = getpid() } label: { - Label( - "Copy", - systemImage: "doc.on.doc" - ) + Image(systemName: "arrow.clockwise") } } + } header: { + Text("Process") } - HStack { + Section { + HStack { + Text("Process:") + Spacer() + TextField("e.g. SpringBoard", text: $crashname) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .monospaced() + .fixedSize(horizontal: true, vertical: false) + } - Text("Class:") + Button("Crash") { + crashname.withCString { _ = crashproc($0) } + } + .disabled(crashname.isEmpty) - Spacer() + Button("Pause") { + crashname.withCString { _ = proc_pause_resume($0, false) } + pausedProcesses.insert(crashname) + } + .disabled(crashname.isEmpty || pausedProcesses.contains(crashname)) - Picker(" ", selection: $issueclass) { + Button("Resume") { + crashname.withCString { _ = proc_pause_resume($0, true) } + pausedProcesses.remove(crashname) + } + .disabled(crashname.isEmpty || !pausedProcesses.contains(crashname)) - ForEach(tokenclass.allCases) { - tokenClass in + Button("SBX Escape Helper") { + crashname.withCString { cstr in + proc_sbx = procbyname(cstr) + } - Text(tokenClass.label) - .tag(tokenClass) + if proc_sbx == 0 { + status = "Failed to get proc" } + + let errorcheck = sbx_escape(proc_sbx) + status = errorcheck == 0 ? nil : "Failure!" } - .pickerStyle(.menu) + .disabled(crashname.isEmpty) + } header: { + Text("Task Manager") } - HStack { - - Text("Path:") - - Spacer() - - TextField("/", text: $issuepath) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .foregroundColor(.secondary) - .monospaced() - .lineLimit(1) - .truncationMode(.middle) - .fixedSize( - horizontal: true, - vertical: false - ) + Section { + Button("Pocket Poster Helper") { + status = mgr.PPHelper() + ? "Succeeded. Open Pocket Poster settings." + : "Failed. Check logs." + } + .disabled(!mgr.sbxready) } - Button { - token = - mgr.sbxissuetoken( - extClass: issueclass.rawValue, - path: issuepath - ) ?? "" - - } label: { - Text("Issue Token") + Section { + Text(status ?? "No status") + .foregroundColor(.secondary) } - .disabled(!mgr.sbxready) - - } header: { - Text("Sandbox") - } - } - .navigationTitle("Tools") - - .alert( - "Status", - isPresented: .constant(status != nil) - ) { - Button("OK") { - status = nil } + .navigationTitle("Tools") - } message: { - Text(status ?? "") - } + .scrollContentBackground(.hidden) + .background(Color(.systemBackground)) + .ignoresSafeArea(edges: .bottom) - .onAppear { + .alert("Status", isPresented: .constant(status != nil)) { + Button("OK") { status = nil } + } message: { + Text(status ?? "") + } - if mgr.dsready { - getaslrstate() - isaslr = aslrstate + .onAppear { + if mgr.dsready { + getaslrstate() + isaslr = aslrstate + } } } - .ignoresSafeArea() } } From 7e75fcdc48f64395907e8f12a5d40cfa1663b665 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:18:07 +0530 Subject: [PATCH 176/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 334 +++++++++++++++++------------- 1 file changed, 193 insertions(+), 141 deletions(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index b419b6cc5..d69d8eb77 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -1,3 +1,10 @@ +// +// ToolsView.swift +// lara +// +// Created by ruter on 04.04.26. +// + import SwiftUI struct procentry: Identifiable, Hashable { @@ -10,17 +17,14 @@ struct ToolsView: View { @ObservedObject private var mgr = laramgr.shared @State private var isaslr: Bool = aslrstate @State var showtoken: Bool = false - @AppStorage("lara.sbx.issuedToken") - private var token: String = "" + @AppStorage("lara.sbx.issuedToken") private var token: String = "" @State private var issueclass: tokenclass = .rw @State private var issuepath: String = "/" @State private var uid: uid_t = getuid() @State private var pid: pid_t = getpid() @State private var status: String? @State private var crashname: String = "SpringBoard" - @State private var pausedProcesses: Set = [] - @State private var proc_sbx: UInt64 = 0 - + private enum tokenclass: String, CaseIterable, Identifiable { case read = "com.apple.app-sandbox.read" case write = "com.apple.app-sandbox.write" @@ -36,181 +40,229 @@ struct ToolsView: View { } } } - + var body: some View { - NavigationStack { - List { + List { + if !mgr.dsready { + Section { + Text("Kernel R/W is not ready. Run the exploit first.") + .foregroundColor(.secondary) + } header: { + Text("Status") + } + } - if !mgr.dsready { - Section { - Text("Kernel R/W is not ready. Run the exploit first.") - .foregroundColor(.secondary) - } header: { - Text("Status") + Section { + HStack { + Text("ASLR:") + + Spacer() + + Text(isaslr ? "enabled" : "disabled") + .foregroundColor(isaslr ? Color.red : Color.green) + .monospaced() + + Button { + isaslr = aslrstate + } label: { + Image(systemName: "arrow.clockwise") } } + + Button { + toggleaslr() + isaslr = aslrstate + } label: { + Text("Toggle ASLR") + } + } header: { + Text("ASLR") + } footer: { + Text("Address Space Layout Randomization. Probably not useful for you.") + } + + Section { + Button("Respring") { + mgr.respring() + } + + HStack { + Text("ourproc: ") + Spacer() + Text(mgr.dsready ? String(format: "0x%llx", ds_get_our_proc()) : "N/A") + .foregroundColor(.secondary) + .monospaced() + } + + HStack { + Text("ourtask: ") + Spacer() + Text(mgr.dsready ? String(format: "0x%llx", ds_get_our_task()) : "N/A") + .foregroundColor(.secondary) + .monospaced() + } + + HStack { + Text("UID:") - Section { - HStack { - Text("ASLR:") - - Spacer() - - Text(isaslr ? "enabled" : "disabled") - .foregroundColor(isaslr ? .red : .green) - .monospaced() + Spacer() - Button { - isaslr = aslrstate - } label: { - Image(systemName: "arrow.clockwise") - } - } + Text("\(uid)") + .font(.system(.body, design: .monospaced)) + .foregroundColor(.secondary) - Button("Toggle ASLR") { - toggleaslr() - isaslr = aslrstate + Button { + uid = getuid() + print(uid) + } label: { + Image(systemName: "arrow.clockwise") } - } header: { - Text("ASLR") } - Section { - Button("Respring") { - mgr.respring() - } + HStack { + Text("PID:") + Spacer() - HStack { - Text("ourproc:") - Spacer() - Text( - mgr.dsready - ? String(format: "0x%llx", ds_get_our_proc()) - : "N/A" - ) - .monospaced() + Text("\(pid)") + .font(.system(.body, design: .monospaced)) .foregroundColor(.secondary) + + Button { + pid = getpid() + print(pid) + } label: { + Image(systemName: "arrow.clockwise") } + } + } header: { + Text("Process") + } - HStack { - Text("ourtask:") - Spacer() - Text( - mgr.dsready - ? String(format: "0x%llx", ds_get_our_task()) - : "N/A" - ) - .monospaced() + Section { + HStack { + Text("Process: ") + Spacer() + TextField("e.g. SpringBoard", text: $crashname) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() .foregroundColor(.secondary) + .monospaced() + .fixedSize(horizontal: true, vertical: false) + } + + Button("Crash") { + crashname.withCString { cstr in + _ = crashproc(cstr) } + } + .disabled(crashname.isEmpty) + } header: { + Text("Crasher") + } footer: { + Text("Crashes the selected process") + } - HStack { - Text("UID:") - Spacer() - Text("\(uid)") - .monospaced() + Section { + Button { + if mgr.PPHelper() { + status = "Succeeded. Open the Pocket Poster app, open settings and tap Detect." + } else { + status = "Failed. Check logs." + } + } label: { + Text("Pocket Poster Helper") + } + .disabled(!mgr.sbxready) + } header: { + Text("Pocket Poster") + } footer: { + Text("Get the needed hashes for Pocket Poster without the need of a PC.") + } + + Section { + HStack { + if showtoken { + Text(mgr.sbxready ? "tkn" : "No Saved Token.") .foregroundColor(.secondary) - - Button { - uid = getuid() - } label: { - Image(systemName: "arrow.clockwise") + .monospaced() + } else { + if !token.isEmpty { + Text(token) + .foregroundColor(.secondary) + .monospaced() + .lineLimit(1) + .truncationMode(.middle) + } else { + Text("No Saved Token.") + .foregroundColor(.secondary) } } - - HStack { - Text("PID:") - Spacer() - Text("\(pid)") - .monospaced() - .foregroundColor(.secondary) - + + Spacer() + + Button { + UIPasteboard.general.string = token.isEmpty ? nil : token + } label: { + Image(systemName: "doc.on.doc") + } + .disabled(token.isEmpty) + } + .contextMenu { + if !token.isEmpty { Button { - pid = getpid() + UIPasteboard.general.string = token } label: { - Image(systemName: "arrow.clockwise") + Label("Copy", systemImage: "doc.on.doc") } } - } header: { - Text("Process") } - Section { - HStack { - Text("Process:") - Spacer() - TextField("e.g. SpringBoard", text: $crashname) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .monospaced() - .fixedSize(horizontal: true, vertical: false) - } - - Button("Crash") { - crashname.withCString { _ = crashproc($0) } - } - .disabled(crashname.isEmpty) - - Button("Pause") { - crashname.withCString { _ = proc_pause_resume($0, false) } - pausedProcesses.insert(crashname) - } - .disabled(crashname.isEmpty || pausedProcesses.contains(crashname)) + HStack { + Text("Class:") + Spacer() - Button("Resume") { - crashname.withCString { _ = proc_pause_resume($0, true) } - pausedProcesses.remove(crashname) - } - .disabled(crashname.isEmpty || !pausedProcesses.contains(crashname)) - - Button("SBX Escape Helper") { - crashname.withCString { cstr in - proc_sbx = procbyname(cstr) + Picker(" ", selection: $issueclass) { + ForEach(tokenclass.allCases) { tokenClass in + Text(tokenClass.label).tag(tokenClass) } - - if proc_sbx == 0 { - status = "Failed to get proc" - } - - let errorcheck = sbx_escape(proc_sbx) - status = errorcheck == 0 ? nil : "Failure!" } - .disabled(crashname.isEmpty) - } header: { - Text("Task Manager") + .pickerStyle(.menu) } - Section { - Button("Pocket Poster Helper") { - status = mgr.PPHelper() - ? "Succeeded. Open Pocket Poster settings." - : "Failed. Check logs." - } - .disabled(!mgr.sbxready) + HStack { + Text("Path:") + Spacer() + + TextField("/", text: $issuepath) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .foregroundColor(.secondary) + .monospaced() + .lineLimit(1) + .truncationMode(.middle) + .fixedSize(horizontal: true, vertical: false) } - Section { - Text(status ?? "No status") - .foregroundColor(.secondary) + Button { + token = mgr.sbxissuetoken(extClass: issueclass.rawValue, path: issuepath) ?? "" + } label: { + Text("Issue Token") } + .disabled(!mgr.sbxready) + } header: { + Text("Sandbox") } - .navigationTitle("Tools") - - .scrollContentBackground(.hidden) - .background(Color(.systemBackground)) - .ignoresSafeArea(edges: .bottom) - - .alert("Status", isPresented: .constant(status != nil)) { + } + .navigationTitle("Tools") + .alert("Status", isPresented: .constant(status != nil)) { Button("OK") { status = nil } } message: { Text(status ?? "") } - - .onAppear { - if mgr.dsready { - getaslrstate() - isaslr = aslrstate - } + .onAppear { + if mgr.dsready { + getaslrstate() + isaslr = aslrstate } } } From e917e88e427bec2f9d30fb4d24fcf54b0fe0db41 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:22:20 +0530 Subject: [PATCH 177/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index fa5f67c4b..443948457 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -58,14 +58,12 @@ struct TweaksView: View { NavigationLink("Custom Overwrite", destination: CustomView(mgr: mgr)) .disabled(!mgr.vfsready) NavigationLink("OTA Updates", destination: OTAView(mgr: mgr)) - .disabled(!mgr.vfsready || !mgr.sbxready) NavigationLink("Screen Time", destination: ScreenTimeView(mgr: mgr)) - .disabled(!mgr.vfsready || !mgr.sbxready) } Section(header: HeaderLabel(text: "Broken", icon: "exclamationmark.triangle.fill")) { NavigationLink("DarkBoard", destination: DarkBoardView()) - .disabled(false) + .disabled(true) } NavigationLink("Extra Tools", destination: ToolsView()) From deb1291ef4c6c0924f1ce699a233eff40110219a Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:25:22 +0530 Subject: [PATCH 178/233] Update build_ipa.sh --- scripts/build_ipa.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index fcb80e686..b02d44886 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -8,7 +8,7 @@ echo "Build Started!" echo xcodebuild \ - -project lara.xcodeproj \ + -project lara1.xcodeproj \ -scheme lara \ -configuration Debug \ -sdk iphoneos \ From c113a953cc4d8bb792be024bebed035a130a5747 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:28:35 +0530 Subject: [PATCH 179/233] Update CacheView.swift --- lara/views/tweaks/cacheclean/CacheView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/views/tweaks/cacheclean/CacheView.swift b/lara/views/tweaks/cacheclean/CacheView.swift index aaf14c761..17b8398b4 100644 --- a/lara/views/tweaks/cacheclean/CacheView.swift +++ b/lara/views/tweaks/cacheclean/CacheView.swift @@ -8,6 +8,7 @@ import SwiftUI import UIKit import WebKit +import Combine // MARK: - Models From ae6cf7b0496fbb9b9f87df71061c4f858e2db8b4 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:30:58 +0530 Subject: [PATCH 180/233] Update build_ipa.sh --- scripts/build_ipa.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/build_ipa.sh b/scripts/build_ipa.sh index b02d44886..0ab17f1cf 100755 --- a/scripts/build_ipa.sh +++ b/scripts/build_ipa.sh @@ -73,10 +73,10 @@ if ! command -v ldid >/dev/null 2>&1; then fi ldid -SConfig/lara.entitlements "$APP_ROOT/$EXEC_NAME" -cd "$APP_ROOT" -mkdir Frameworks -mv libgrabkernel2.dylib Frameworks/ -mv libxpf.dylib Frameworks/ +#cd "$APP_ROOT" +#mkdir Frameworks +#mv libgrabkernel2.dylib Frameworks/ +#mv libxpf.dylib Frameworks/ # ----------------------------------- # BUILD IPA From 32ce5adc43bb19bb87c67e9bb5c1c9a1dec07f38 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 22:38:02 +0530 Subject: [PATCH 181/233] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 93bb8d380..f5255fa9b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: release-ipa - path: /Users/runner/work/lara/lara/lara.app/lara.ipa + path: build/lara.ipa release: From 0339c82f65bc80648af2b0de6fe8b578a3124f15 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:02:38 +0530 Subject: [PATCH 182/233] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f5255fa9b..db21709b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: release-ipa - path: build/lara.ipa + path: ./lara.ipa release: From a776c82c2735f18d3b189133e47e925cd12b3268 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:07:29 +0530 Subject: [PATCH 183/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index 443948457..80e01a160 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -59,6 +59,7 @@ struct TweaksView: View { .disabled(!mgr.vfsready) NavigationLink("OTA Updates", destination: OTAView(mgr: mgr)) NavigationLink("Screen Time", destination: ScreenTimeView(mgr: mgr)) + NavigationLink("Clean Cache", destination: CacheView()) } Section(header: HeaderLabel(text: "Broken", icon: "exclamationmark.triangle.fill")) { From 4ba6025ade09edcb47d4935a2b0e9cab3db29e85 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:17:50 +0530 Subject: [PATCH 184/233] Add files via upload --- project.pbxproj | 1232 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1232 insertions(+) create mode 100644 project.pbxproj diff --git a/project.pbxproj b/project.pbxproj new file mode 100644 index 000000000..a01b88aca --- /dev/null +++ b/project.pbxproj @@ -0,0 +1,1232 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 00202D6ACE267233F3039A5B /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; + 05122284F8EA7A7FD17CB414 /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; + 058FCBD9DA179A2D934E1861 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; + 05C179E4E9D7715899A91E64 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; + 066933B35D22C62FE6FC9F6A /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; + 08B9D3D2BA039407C8A13919 /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; + 09EABA93BB9102BD4F9D1FFC /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; + 0AFFD027EF12822CAF73F782 /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; + 0B7DE9C4509ECB136CC9B638 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; + 11A4639A5AA18324DE6F8273 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; + 13129643BE3233EFC0EF6031 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; + 13F0035F8E6987F64CD2D687 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; + 182C270EFDABCE79D154FAF7 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; + 196DC3DB0EAC0E7E265E6B01 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; + 1B94BBD77A4A2810BF5D1290 /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; + 1C1446147E04DCEE203EBC04 /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; + 1E55B26EADA5C23F309A7B0C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; + 2297FFBFFDD91202E8919BDC /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; + 230AA7324F04E510E79AE503 /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; + 236529F75FB8F6748C15FC90 /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; + 27E943E0996A32EA9B49236D /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; + 2C3A57EFD938F70B1678C648 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; + 2C895842D5AF8B63A9213ACB /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; + 2EB4DBFF3C9E9A772B965E36 /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; + 30583B6890DEABEFDC08AF12 /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; + 34195E6370562AAA6B17AD6F /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; + 34FE8D7A19990AEA7A5E4156 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; + 39599D8458A706916C841578 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; + 39E784159308C78E9FD8E9FD /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; + 3DA8A9AD80838F3C532AF752 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; + 403B42B0892F17F79B44252F /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; + 42806A1E5FDBBC158C4A6811 /* BundleResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C01D0EB86F1B88E473FBD6 /* BundleResolver.swift */; }; + 43A908C0EFBB371510C4F8A0 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; + 496F8339ED0EA575FC49B6AB /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; + 49DB0B440857E7DE5A2B0BE2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; + 4B6E8402EE79EBB8F80FA9D7 /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; + 4BABA3A5C72B1C3E3FEEAE27 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; + 4D43CBA89C370995C3DC15A0 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; + 4F96693F5A441361CB77741E /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; + 4FE1F87BC6BBA0D61C1EEE61 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; + 507A89D7CE70F34E2CF13B90 /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; + 510DFF895883A78195E38946 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; + 51FAAEDC24E662A924A722A5 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; + 537218DC30DE8D530D1BD721 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; + 5440353CDE315B9316AA7445 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; + 54E4B6C8B10496B4B926C6FA /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; + 602E65AAD1DAB37B2F83515C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; + 6302DAE0DC6008A78FEA75D2 /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; + 645CDC6475859E617180EEAF /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; + 6582BD9ADC3581308C4A5176 /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; + 65870485C62AC1B36636C4D8 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; + 677658A1FE00F5F6053161EF /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; + 688F4C39AF880CE320E1941C /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; + 69AC26CBBCC7EBB2843DDED1 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; + 6C9C2DA6D8CA8E1E7BC53395 /* ota.m in Sources */ = {isa = PBXBuildFile; fileRef = 629153B59D4C44844AE0B04F /* ota.m */; }; + 6E92B04499A623019373B0A2 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; + 70B155F658E85996D9D047D8 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; + 70CE8021C85452A4741A89F9 /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; + 70E9C02380E1D423B9CF7903 /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; + 7803CCA219A265C3AA594502 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; + 7A61CEA33968AD9DA34ADFA4 /* ScreenTimeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */; }; + 7ADCF239CFA73E31C04EB6B8 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; + 7B3F13562B7C25359296835C /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; + 7D90FABB530CED8DC9486DA8 /* OTAView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804238A057A2DF3D3EDD2D2A /* OTAView.swift */; }; + 7F1AFB173CB7104A16F670C7 /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; + 7F2F1534A472DE34BDE357F4 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; + 7FE3DDE3E0F26C4DBED76107 /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; + 80B444A2B60934943D11B6B9 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; + 820EB2ED4221DA83342F2024 /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; + 836F219F9D750E2D10CFF90A /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; + 863B00B4A39A45D832C397C6 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; + 8754465D55F18472D423F2ED /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; + 88F3821D6C159B9D6444C269 /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; + 8A5ECC3E2AB3B5DA4FFB4817 /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; + 8C42BE9EF29CE41DBFD196B3 /* CacheView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9FC8477A5475C7F11C1E8C2 /* CacheView.swift */; }; + 8F9A25EA7568AAA2730DD2B8 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; + 930A9F36360B4B3D57259B9D /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; + 937AA3D075834BA4A4E096AC /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; + 9DAC5982A30F0C03F49FFA61 /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; + 9F92D924C09344269A8AF11D /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; + A078DD2B7C8A8DF1B4D84F52 /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; + A1BBCE64F06D8B34D745AD6C /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; + A3D53400C1802DD7EDD3A18F /* screentime.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FE05E69C027F81699504C0E /* screentime.m */; }; + A6D7EEDB65FEFE06181131B4 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; + A999A1BBFB874C96968CA82E /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; + B494B779C996B17E3D9CFACB /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; + B4A900BFCF3DFFE71F7C66E4 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; + B638D7CADA8DBC8244AB2F55 /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; + BA3AACAE9F2E6C279E992A95 /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; + BB429E7BE7E200DF6AA18E76 /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; + BC74665F87D33C51DC6F516C /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; + BCE7136785F9DBE87C65D58C /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; + BDBFA0195D26B6850BC5DC5E /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; + BE23188A75B1E8C1CAF64359 /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; + BE4A482E5A1DD70606B1C211 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; + C3131609D02F304F291B4CB9 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; + CBB7E70304875E1C3E48B622 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; + CBE8D15F680BB6325D10D228 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; + D16210B6098D7F0D63D20C4C /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; + D184257FDD7AE36F18725D30 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; + D1F0BD55C7EFF7BAD76C041D /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; + D58CD0FF97C499475D52432F /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; + D6BDB394E381CB4F10D15051 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; + D85FA9C14ADF248F12BB0BCE /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; + D9513AB0989670D18E2C4B7C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; + DBD58B6C966B944E3C556346 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; + DE00903ACCA0FA0A8F3A2DA5 /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; + E00CFE2CBC61E2E5233364E0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; + E2E6E955F2EB03E174AB68C2 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; + E5A3C41959D8E63088FBF3B7 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; + E5E44346BAE9ECFB8BA141EE /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; + E6E8BEA53C0EBE9728036710 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; + E7E8AD844335D650EC96A029 /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; + EB6AD5F927DDFFF9805ECED0 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; + EBA31C6E804BDF054E85BF5D /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; + EC8EF9CB8B22F2E7317C47EC /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; + ED67001D1F5DC6D2CECEC34A /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; + EE8E8D088FEAD6AB0E9F14B2 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; + F31B0ABB5F2F7F16BAAFA6A3 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; + F3A6E82C953937E99AA0550E /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; + F67A23CB1296B254798B161A /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; + F916C0DE09CD8E2AAC3B7038 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; + FB2F000461380ED91E36B683 /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; + 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; + 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; + 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; + 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; + 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; + 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; + 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; + 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; + 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; + 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; + 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; + 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; + 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; + 3FE05E69C027F81699504C0E /* screentime.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = screentime.m; sourceTree = ""; }; + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; + 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; + 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; + 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; + 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; + 47C01D0EB86F1B88E473FBD6 /* BundleResolver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleResolver.swift; sourceTree = ""; }; + 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; + 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; + 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; + 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenTimeView.swift; sourceTree = ""; }; + 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; + 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; + 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; + 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; + 629153B59D4C44844AE0B04F /* ota.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ota.m; sourceTree = ""; }; + 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; + 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; + 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; + 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; + 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; + 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; + 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; + 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; + 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; + 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; + 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; + 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; + 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; + 804238A057A2DF3D3EDD2D2A /* OTAView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTAView.swift; sourceTree = ""; }; + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; + 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; + 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; + 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; + 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; + 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; + 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; + A3A220FFB44F9BE6C2DFB8D3 /* ota.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ota.h; sourceTree = ""; }; + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; + A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; + A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; + AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; + AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; + AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; + ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; + AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; + B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; + B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; + B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; + BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; + CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; + CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; + CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; + D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; + D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; + D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; + D9FC8477A5475C7F11C1E8C2 /* CacheView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheView.swift; sourceTree = ""; }; + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; + DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; + DDA74C1F019C21218E6CF967 /* lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; + DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; + E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; + E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; + E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; + E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; + EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; + EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; + F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; + F4EB254782F7A19F5DB271A4 /* screentime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = screentime.h; sourceTree = ""; }; + F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; + F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; + F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; + F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 92D7CDDCADFED6C34D64592B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E00CFE2CBC61E2E5233364E0 /* UIKit.framework in Frameworks */, + 49DB0B440857E7DE5A2B0BE2 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0731B4811AB8A4261C149BD3 /* Inputs */ = { + isa = PBXGroup; + children = ( + 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, + 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, + D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, + FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, + ); + path = Inputs; + sourceTree = ""; + }; + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { + isa = PBXGroup; + children = ( + 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, + E4F25FF1C3F48BDC5E6BB728 /* exc.m */, + 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, + 2329A0992D4982D4E144AB75 /* pac.h */, + 7716BA871D7E897964A49CBD /* pac.m */, + E39629D147580074F13782D6 /* privateapi.h */, + 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, + D2ED109B18B57340D5F23066 /* RemoteCall.m */, + 47A521EB489F34847F77161C /* thread.h */, + 69CB9CC7CA7C437D5204AD77 /* thread.m */, + 6FD2D7416B6AA7CE5E184223 /* vm.h */, + 2046AE855EEB1C6D361886E0 /* vm.m */, + ); + path = TaskRop; + sourceTree = ""; + }; + 096D912C986A1ECDD4AE9C57 /* broken */ = { + isa = PBXGroup; + children = ( + DF63A96A2904C5BAA9C6E491 /* CCView.swift */, + 97E7B95F214CEA3C04F0AC58 /* darkboard */, + ); + path = broken; + sourceTree = ""; + }; + 09B6EF0B45C55F479407D990 /* Terminal */ = { + isa = PBXGroup; + children = ( + FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, + 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, + ); + path = Terminal; + sourceTree = ""; + }; + 0D159B4E42377C38FDD14E18 /* tweaks */ = { + isa = PBXGroup; + children = ( + D7767AE9E778CDC4652EE1AA /* AppsView.swift */, + 87B5A7075908DD63D2DB887E /* CardView.swift */, + 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, + AB6983282C48A1F9D8916495 /* DecryptView.swift */, + CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, + F2807342CC8396EA700E7626 /* JitView.swift */, + 804238A057A2DF3D3EDD2D2A /* OTAView.swift */, + 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, + 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */, + 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, + 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, + A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, + 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, + 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, + 096D912C986A1ECDD4AE9C57 /* broken */, + CC3F4FD5D2CE6BFA7AF5CA75 /* cacheclean */, + F1B195CE1E819A5C7256ED05 /* dirtyZero */, + 94239040D8A11FC1A668FCE4 /* liquidglass */, + 8855FA399F2E0D870F89E63A /* mobilegestalt */, + 1CF2706A6E532F38D6DD625F /* passcode */, + BCB9166DBD1D0FB1A634265E /* sbcustomizer */, + ); + path = tweaks; + sourceTree = ""; + }; + 0E9B667B7F6DF2F65554368C /* app */ = { + isa = PBXGroup; + children = ( + AAF0DB241A670081991552A3 /* ContentView.swift */, + E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, + A89E6CF98559C612AA19E5CE /* settings */, + ); + path = app; + sourceTree = ""; + }; + 1CF2706A6E532F38D6DD625F /* passcode */ = { + isa = PBXGroup; + children = ( + 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, + EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, + A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 201E76134F22499BFD3DF53F /* Buttons */ = { + isa = PBXGroup; + children = ( + 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, + E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, + 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, + 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, + BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, + 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, + ); + path = Buttons; + sourceTree = ""; + }; + 23942EEA65BBA190D901B7D2 /* choma */ = { + isa = PBXGroup; + children = ( + 6C46703C2B4072AEF8703349 /* arm64.h */, + AAAF3E2619E3D32C626EC2FA /* Base64.h */, + A9376E035DE98BB605BE0C76 /* BufferedStream.h */, + 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, + ADC09F6065726F4669F88037 /* CodeDirectory.h */, + F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, + E497648156C6CAAA87EEE6CB /* DER.h */, + 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, + 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, + 3C989876DB6E112F7F3C3698 /* Entitlements.h */, + 09A16D0CCA129CD34402ACAB /* Fat.h */, + 791AEB9809EE46375BD53FF9 /* FileStream.h */, + BB016623AE10E3896FEF50AF /* fixup-chains.h */, + F506183C2CFD8D7D0FA1322D /* Host.h */, + 99CF547D66CF02B4B4DFA30C /* MachO.h */, + 3F975F92D7C580260B59024B /* MachOByteOrder.h */, + 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, + BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, + AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, + F742E837A76B006F367ABC15 /* PatchFinder.h */, + B447AC3664839765F3679082 /* Util.h */, + ); + path = choma; + sourceTree = ""; + }; + 48AB90CB037F435485C6047D /* Settings */ = { + isa = PBXGroup; + children = ( + E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, + CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, + CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, + DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, + ); + path = Settings; + sourceTree = ""; + }; + 4A3D6651E821914BC1DA4474 /* Indicators */ = { + isa = PBXGroup; + children = ( + 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, + C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, + EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, + B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, + ); + path = Indicators; + sourceTree = ""; + }; + 4BE43909AB102BC654C3AA36 /* lara */ = { + isa = PBXGroup; + children = ( + 71B66224C5948251B6008EC4 /* Info.plist */, + 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, + 785FE68237A73C050C69066D /* lara.swift */, + E6D45AD3A84FDFFB26A63642 /* assets */, + 761E02C29DBA3FA091780A05 /* classes */, + BD4923F18700F649F4B199C9 /* funcs */, + B8439178F75BD677E46A1DE7 /* headers */, + 9FC4F095CD4B29F2EBA790C6 /* kexploit */, + F0B17F0CA82330A26B5CAE4B /* lib */, + BA72AA8D35B0D97633C2BF5E /* licenses */, + EC0774E5B4020C4D885431BC /* other */, + 9D63227FDF3FDE8908661A7D /* PartyUI */, + D70718477881BA82E605FF53 /* views */, + ); + path = lara; + sourceTree = ""; + }; + 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { + isa = PBXGroup; + children = ( + 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, + 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, + 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 039D284F496260AA52986467 /* Foundation.framework */, + 410B1EDE3D870185074F65BC /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 73E8616A7EF5B51A92B29E54 /* Lists */ = { + isa = PBXGroup; + children = ( + 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, + 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, + 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, + B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, + ); + path = Lists; + sourceTree = ""; + }; + 761E02C29DBA3FA091780A05 /* classes */ = { + isa = PBXGroup; + children = ( + 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, + 7ADF625620559A728F4B333A /* Logger.swift */, + 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, + CBFD358E70EC405DE82C3960 /* zipmgr.swift */, + 860A585202C20E00C82C419C /* tweaks */, + ); + path = classes; + sourceTree = ""; + }; + 7814074F0998A8D980C3CBF8 /* other */ = { + isa = PBXGroup; + children = ( + A9BBF565E304760414833AF4 /* respring.swift */, + ); + path = other; + sourceTree = ""; + }; + 7BD2299CAA022F5E87524835 /* Products */ = { + isa = PBXGroup; + children = ( + DDA74C1F019C21218E6CF967 /* lara.app */, + ); + name = Products; + sourceTree = ""; + }; + 7F048C9DF00CA2EEB9135FFF /* Effects */ = { + isa = PBXGroup; + children = ( + FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, + AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, + ); + path = Effects; + sourceTree = ""; + }; + 860A585202C20E00C82C419C /* tweaks */ = { + isa = PBXGroup; + children = ( + 4CFE8C17A9569842AF2EDD4E /* darkboard */, + 9CA94EDD3BE9DDBB6B279DCA /* passcode */, + ); + path = tweaks; + sourceTree = ""; + }; + 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { + isa = PBXGroup; + children = ( + 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, + ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, + ); + path = mobilegestalt; + sourceTree = ""; + }; + 93732F3C530FBFCDA46E1FCE /* Functions */ = { + isa = PBXGroup; + children = ( + 1D1585E8B42B2495142BE67E /* Alertinator.swift */, + 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, + 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, + 4759F640E231F564F06DB0F5 /* Shareinator.swift */, + ); + path = Functions; + sourceTree = ""; + }; + 94239040D8A11FC1A668FCE4 /* liquidglass */ = { + isa = PBXGroup; + children = ( + B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, + 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, + ); + path = liquidglass; + sourceTree = ""; + }; + 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { + isa = PBXGroup; + children = ( + 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, + B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, + ); + path = darkboard; + sourceTree = ""; + }; + 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { + isa = PBXGroup; + children = ( + 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, + ); + path = passcode; + sourceTree = ""; + }; + 9D63227FDF3FDE8908661A7D /* PartyUI */ = { + isa = PBXGroup; + children = ( + 448609047BB8D112B7E99BFA /* PartyUI.swift */, + CCCE9A5AD37D20741B82ADB9 /* App */, + C6CEB364F2625B0EF49D1447 /* UI */, + ); + path = PartyUI; + sourceTree = ""; + }; + 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { + isa = PBXGroup; + children = ( + 0B1831D0D49F9245F54EBDC6 /* compat.h */, + CB0E8E3EC140E01DA032363F /* darksword.h */, + DD123A4DC76BB7C0734B5AE9 /* darksword.m */, + 4A33766163693DFAA30D772A /* decrypt.h */, + 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, + 7DC3E2446E97ECC921D3AE94 /* offsets.h */, + EDC9360B2E647660F1BD443F /* offsets.m */, + A3A220FFB44F9BE6C2DFB8D3 /* ota.h */, + 629153B59D4C44844AE0B04F /* ota.m */, + 617E864CD832D1D3839429F0 /* persistence.h */, + B2BA68871A9D11BCFDC2AE71 /* persistence.m */, + F4EB254782F7A19F5DB271A4 /* screentime.h */, + 3FE05E69C027F81699504C0E /* screentime.m */, + 206327D869325194A5015A1B /* utils.h */, + 5A300D3F6ED3397BE1E6AD87 /* utils.m */, + C6122EC473A3A57510124B02 /* pe */, + 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, + ); + path = kexploit; + sourceTree = ""; + }; + A5B06BC43186EA1E4D25299F = { + isa = PBXGroup; + children = ( + 4BE43909AB102BC654C3AA36 /* lara */, + 72729D505A51BDFC8C55A1D9 /* Frameworks */, + 7BD2299CAA022F5E87524835 /* Products */, + ); + sourceTree = ""; + }; + A89E6CF98559C612AA19E5CE /* settings */ = { + isa = PBXGroup; + children = ( + 61F528F680617A48C3CAB181 /* CreditsView.swift */, + 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, + 986EBE17846F5764D1456F88 /* SettingsView.swift */, + ); + path = settings; + sourceTree = ""; + }; + B8439178F75BD677E46A1DE7 /* headers */ = { + isa = PBXGroup; + children = ( + B5A1457B7D98C0DDC65ACC3B /* fileport.h */, + EDF19B2325FE621BF70AC862 /* IconServices.h */, + 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, + 51BF1E07A44069A4B21B39EE /* xpf.h */, + ); + path = headers; + sourceTree = ""; + }; + B96F95013D086604AB0F746C /* fm */ = { + isa = PBXGroup; + children = ( + AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, + AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, + 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, + 73D525CF14505CE9B85FD317 /* FileView.swift */, + 9C010243976A7D404529C206 /* SantanderView.swift */, + ); + path = fm; + sourceTree = ""; + }; + BA72AA8D35B0D97633C2BF5E /* licenses */ = { + isa = PBXGroup; + children = ( + 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, + 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, + FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, + 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, + ); + path = licenses; + sourceTree = ""; + }; + BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { + isa = PBXGroup; + children = ( + CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, + DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, + ); + path = sbcustomizer; + sourceTree = ""; + }; + BD4923F18700F649F4B199C9 /* funcs */ = { + isa = PBXGroup; + children = ( + CD0D193753BA74B811063956 /* fetchkcache.swift */, + 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, + 92C2A1D1BCFA40230A63C752 /* helpers.swift */, + 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, + F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, + 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, + F50A3C705DF2F98AC63AA699 /* keepalive.swift */, + 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, + ); + path = funcs; + sourceTree = ""; + }; + C6122EC473A3A57510124B02 /* pe */ = { + isa = PBXGroup; + children = ( + 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, + 797DFBA07DCC9320399BC99F /* apfs.m */, + 09BE5060F2C9DFD730796B7E /* rc.h */, + 86610E6990066EDFE2B5D96B /* rc.m */, + 3450D579B9EF6D1B24EA44AB /* sbx.h */, + F7BDDFA67F1109816C300F1E /* sbx.m */, + 33FAD74D2D09DFD7CF1985FA /* vfs.h */, + 7A92CE7743387903DDBFFC8C /* vfs.m */, + D714CE75040A9A3A983B36BE /* vnode.h */, + 09E09CADCF84F1D6D51E5F20 /* vnode.m */, + E6A7B0366B3E502209C65E24 /* xpaci.h */, + ); + path = pe; + sourceTree = ""; + }; + C6CEB364F2625B0EF49D1447 /* UI */ = { + isa = PBXGroup; + children = ( + 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, + 201E76134F22499BFD3DF53F /* Buttons */, + 7F048C9DF00CA2EEB9135FFF /* Effects */, + 4A3D6651E821914BC1DA4474 /* Indicators */, + 0731B4811AB8A4261C149BD3 /* Inputs */, + 73E8616A7EF5B51A92B29E54 /* Lists */, + 09B6EF0B45C55F479407D990 /* Terminal */, + ); + path = UI; + sourceTree = ""; + }; + CC3F4FD5D2CE6BFA7AF5CA75 /* cacheclean */ = { + isa = PBXGroup; + children = ( + 47C01D0EB86F1B88E473FBD6 /* BundleResolver.swift */, + D9FC8477A5475C7F11C1E8C2 /* CacheView.swift */, + ); + path = cacheclean; + sourceTree = ""; + }; + CCCE9A5AD37D20741B82ADB9 /* App */ = { + isa = PBXGroup; + children = ( + 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, + CED7197ED6E1E06C45D4927C /* Extensions */, + 93732F3C530FBFCDA46E1FCE /* Functions */, + 48AB90CB037F435485C6047D /* Settings */, + F8BF389C000C82BE834B7E80 /* WelcomeSheet */, + ); + path = App; + sourceTree = ""; + }; + CED7197ED6E1E06C45D4927C /* Extensions */ = { + isa = PBXGroup; + children = ( + 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + D70718477881BA82E605FF53 /* views */ = { + isa = PBXGroup; + children = ( + 0E9B667B7F6DF2F65554368C /* app */, + B96F95013D086604AB0F746C /* fm */, + 7814074F0998A8D980C3CBF8 /* other */, + 0D159B4E42377C38FDD14E18 /* tweaks */, + ); + path = views; + sourceTree = ""; + }; + E6D45AD3A84FDFFB26A63642 /* assets */ = { + isa = PBXGroup; + children = ( + AE2331E0F7B3D823CA15DF72 /* lara.png */, + ); + path = assets; + sourceTree = ""; + }; + EC0774E5B4020C4D885431BC /* other */ = { + isa = PBXGroup; + children = ( + 48E6FC849E553C68E397984C /* lara.entitlements */, + 68FA57A36233679708C5E468 /* media.xcassets */, + 60E947B3676E84C6A668511C /* VarCleanRules.json */, + ); + path = other; + sourceTree = ""; + }; + F0B17F0CA82330A26B5CAE4B /* lib */ = { + isa = PBXGroup; + children = ( + 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, + 6337EE02AC0706717DFA252A /* libxpf.dylib */, + 23942EEA65BBA190D901B7D2 /* choma */, + ); + path = lib; + sourceTree = ""; + }; + F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { + isa = PBXGroup; + children = ( + DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, + C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, + ); + path = dirtyZero; + sourceTree = ""; + }; + F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { + isa = PBXGroup; + children = ( + 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, + 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, + ); + path = WelcomeSheet; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 43B2FBC647F5572D66195ACC /* lara */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97B7DC73658626C9634EAD09 /* Build configuration list for PBXNativeTarget "lara" */; + buildPhases = ( + 54B87CC8872FB71C6B762155 /* Sources */, + D1776FCFD86F3CDA993F46E9 /* Resources */, + 92D7CDDCADFED6C34D64592B /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = lara; + packageProductDependencies = ( + ); + productName = lara; + productReference = DDA74C1F019C21218E6CF967 /* lara.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + }; + }; + buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = A5B06BC43186EA1E4D25299F; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 43B2FBC647F5572D66195ACC /* lara */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D1776FCFD86F3CDA993F46E9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4FE1F87BC6BBA0D61C1EEE61 /* LICENSE_ChOma.md in Resources */, + 677658A1FE00F5F6053161EF /* LICENSE_RootHideManagerApp.md in Resources */, + 8754465D55F18472D423F2ED /* LICENSE_XPF.md in Resources */, + 537218DC30DE8D530D1BD721 /* LICENSE_libgrabkernel2.md in Resources */, + 54E4B6C8B10496B4B926C6FA /* VarCleanRules.json in Resources */, + 39599D8458A706916C841578 /* lara.png in Resources */, + 4B6E8402EE79EBB8F80FA9D7 /* libgrabkernel2.dylib in Resources */, + DBD58B6C966B944E3C556346 /* libxpf.dylib in Resources */, + 3DA8A9AD80838F3C532AF752 /* media.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 54B87CC8872FB71C6B762155 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 230AA7324F04E510E79AE503 /* Alertinator.swift in Sources */, + 937AA3D075834BA4A4E096AC /* AppInfo.swift in Sources */, + B4A900BFCF3DFFE71F7C66E4 /* AppInfoCell.swift in Sources */, + 70B155F658E85996D9D047D8 /* AppsView.swift in Sources */, + 42806A1E5FDBBC158C4A6811 /* BundleResolver.swift in Sources */, + 34FE8D7A19990AEA7A5E4156 /* ButtonLabel.swift in Sources */, + EE8E8D088FEAD6AB0E9F14B2 /* CCView.swift in Sources */, + 8C42BE9EF29CE41DBFD196B3 /* CacheView.swift in Sources */, + 69AC26CBBCC7EBB2843DDED1 /* CardView.swift in Sources */, + 7F2F1534A472DE34BDE357F4 /* CompactAlert.swift in Sources */, + 066933B35D22C62FE6FC9F6A /* ContentView.swift in Sources */, + 43A908C0EFBB371510C4F8A0 /* CreditsView.swift in Sources */, + 645CDC6475859E617180EEAF /* CustomView.swift in Sources */, + 5440353CDE315B9316AA7445 /* DarkBoardExploreView.swift in Sources */, + D6BDB394E381CB4F10D15051 /* DarkBoardView.swift in Sources */, + 51FAAEDC24E662A924A722A5 /* DecryptView.swift in Sources */, + C3131609D02F304F291B4CB9 /* DesignStyle.swift in Sources */, + 6302DAE0DC6008A78FEA75D2 /* DirectoryView.swift in Sources */, + 2C3A57EFD938F70B1678C648 /* Exitinator.swift in Sources */, + E6E8BEA53C0EBE9728036710 /* FadeAnimation.swift in Sources */, + 8A5ECC3E2AB3B5DA4FFB4817 /* FancyButtonStyle.swift in Sources */, + BCE7136785F9DBE87C65D58C /* FileInfoSheet.swift in Sources */, + 09EABA93BB9102BD4F9D1FFC /* FileSystemHelpers.swift in Sources */, + BE4A482E5A1DD70606B1C211 /* FileView.swift in Sources */, + A1BBCE64F06D8B34D745AD6C /* FontPicker.swift in Sources */, + D58CD0FF97C499475D52432F /* GestaltFileView.swift in Sources */, + ED67001D1F5DC6D2CECEC34A /* GestaltView.swift in Sources */, + 2297FFBFFDD91202E8919BDC /* GetLicenseDict.swift in Sources */, + 08B9D3D2BA039407C8A13919 /* Hapticinator.swift in Sources */, + CBB7E70304875E1C3E48B622 /* HeaderDropdown.swift in Sources */, + 863B00B4A39A45D832C397C6 /* HeaderLabel.swift in Sources */, + 820EB2ED4221DA83342F2024 /* IconCacheClearer.m in Sources */, + 236529F75FB8F6748C15FC90 /* IconThemeGalleryManager.swift in Sources */, + 1C1446147E04DCEE203EBC04 /* IconThemeManager.swift in Sources */, + 2EB4DBFF3C9E9A772B965E36 /* InfoBadge.swift in Sources */, + A6D7EEDB65FEFE06181131B4 /* JitView.swift in Sources */, + 70CE8021C85452A4741A89F9 /* LicenseView.swift in Sources */, + 6582BD9ADC3581308C4A5176 /* LinkCreditCell.swift in Sources */, + 11A4639A5AA18324DE6F8273 /* LiquidGlassPreview.swift in Sources */, + 7F1AFB173CB7104A16F670C7 /* LiquidGlassView.swift in Sources */, + 05C179E4E9D7715899A91E64 /* Logger.swift in Sources */, + 496F8339ED0EA575FC49B6AB /* LogsView.swift in Sources */, + D9513AB0989670D18E2C4B7C /* NavigationLabel.swift in Sources */, + 7D90FABB530CED8DC9486DA8 /* OTAView.swift in Sources */, + BA3AACAE9F2E6C279E992A95 /* OffsetManagementView.swift in Sources */, + FB2F000461380ED91E36B683 /* OverlayBackground.swift in Sources */, + E5A3C41959D8E63088FBF3B7 /* PartyUI.swift in Sources */, + 7FE3DDE3E0F26C4DBED76107 /* PasscodeExploreView.swift in Sources */, + F916C0DE09CD8E2AAC3B7038 /* PasscodeGalleryManager.swift in Sources */, + 8F9A25EA7568AAA2730DD2B8 /* PasscodeRepoView.swift in Sources */, + 836F219F9D750E2D10CFF90A /* PasscodeView.swift in Sources */, + 507A89D7CE70F34E2CF13B90 /* PlainAlert.swift in Sources */, + 05122284F8EA7A7FD17CB414 /* PlainToggle.swift in Sources */, + 70E9C02380E1D423B9CF7903 /* PlatterToggle.swift in Sources */, + 30583B6890DEABEFDC08AF12 /* PrimaryButtonStyle.swift in Sources */, + EBA31C6E804BDF054E85BF5D /* RemoteCall.m in Sources */, + 930A9F36360B4B3D57259B9D /* RemoteView.swift in Sources */, + F67A23CB1296B254798B161A /* SBCustomizerHandler.swift in Sources */, + 7803CCA219A265C3AA594502 /* SantanderView.swift in Sources */, + 7A61CEA33968AD9DA34ADFA4 /* ScreenTimeView.swift in Sources */, + BE23188A75B1E8C1CAF64359 /* SectionPlatter.swift in Sources */, + BC74665F87D33C51DC6F516C /* SettingsView.swift in Sources */, + 0AFFD027EF12822CAF73F782 /* Shareinator.swift in Sources */, + 058FCBD9DA179A2D934E1861 /* SpringBoardView.swift in Sources */, + B494B779C996B17E3D9CFACB /* SystemColor.swift in Sources */, + 688F4C39AF880CE320E1941C /* TerminalHeader.swift in Sources */, + 34195E6370562AAA6B17AD6F /* TerminalPlatter.swift in Sources */, + 13129643BE3233EFC0EF6031 /* TextFieldBackground.swift in Sources */, + 13F0035F8E6987F64CD2D687 /* TextFieldButton.swift in Sources */, + 39E784159308C78E9FD8E9FD /* ThemedHeaderLabel.swift in Sources */, + 27E943E0996A32EA9B49236D /* TinyButtonStyle.swift in Sources */, + 7B3F13562B7C25359296835C /* TinyInfoPlatter.swift in Sources */, + 196DC3DB0EAC0E7E265E6B01 /* ToolsView.swift in Sources */, + 403B42B0892F17F79B44252F /* TranslucentButtonStyle.swift in Sources */, + CBE8D15F680BB6325D10D228 /* TweaksView.swift in Sources */, + D16210B6098D7F0D63D20C4C /* VarCleanBridge.m in Sources */, + D1F0BD55C7EFF7BAD76C041D /* VarCleanView.swift in Sources */, + DE00903ACCA0FA0A8F3A2DA5 /* VariableBlur.swift in Sources */, + BDBFA0195D26B6850BC5DC5E /* WelcomeSheetRow.swift in Sources */, + 65870485C62AC1B36636C4D8 /* WelcomeSheetView.swift in Sources */, + 4F96693F5A441361CB77741E /* WhitelistView.swift in Sources */, + F3A6E82C953937E99AA0550E /* apfs.m in Sources */, + 9F92D924C09344269A8AF11D /* darksword.m in Sources */, + 182C270EFDABCE79D154FAF7 /* decrypt.m in Sources */, + 88F3821D6C159B9D6444C269 /* dirtyZeroTweakArray.swift in Sources */, + D85FA9C14ADF248F12BB0BCE /* dirtyZeroView.swift in Sources */, + BB429E7BE7E200DF6AA18E76 /* exc.m in Sources */, + A078DD2B7C8A8DF1B4D84F52 /* fetchkcache.swift in Sources */, + A999A1BBFB874C96968CA82E /* findcachedataoff.m in Sources */, + 4D43CBA89C370995C3DC15A0 /* getbmhash.swift in Sources */, + E5E44346BAE9ECFB8BA141EE /* helpers.swift in Sources */, + EB6AD5F927DDFFF9805ECED0 /* isdebugged.swift in Sources */, + D184257FDD7AE36F18725D30 /* islcinstalled.swift in Sources */, + 602E65AAD1DAB37B2F83515C /* isunsupported.swift in Sources */, + F31B0ABB5F2F7F16BAAFA6A3 /* keepalive.swift in Sources */, + 00202D6ACE267233F3039A5B /* lara.swift in Sources */, + 9DAC5982A30F0C03F49FFA61 /* laramgr.swift in Sources */, + 0B7DE9C4509ECB136CC9B638 /* offsets.m in Sources */, + 6C9C2DA6D8CA8E1E7BC53395 /* ota.m in Sources */, + 80B444A2B60934943D11B6B9 /* pac.m in Sources */, + 1E55B26EADA5C23F309A7B0C /* persistence.m in Sources */, + 6E92B04499A623019373B0A2 /* rc.m in Sources */, + E2E6E955F2EB03E174AB68C2 /* resizetoapprox.swift in Sources */, + E7E8AD844335D650EC96A029 /* respring.swift in Sources */, + 510DFF895883A78195E38946 /* sbx.m in Sources */, + A3D53400C1802DD7EDD3A18F /* screentime.m in Sources */, + 1B94BBD77A4A2810BF5D1290 /* thread.m in Sources */, + EC8EF9CB8B22F2E7317C47EC /* utils.m in Sources */, + 7ADCF239CFA73E31C04EB6B8 /* vfs.m in Sources */, + 4BABA3A5C72B1C3E3FEEAE27 /* vm.m in Sources */, + 2C895842D5AF8B63A9213ACB /* vnode.m in Sources */, + B638D7CADA8DBC8244AB2F55 /* zipmgr.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 644B49A5A6EA84C3DB2B3DC3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + B36A0572D1FE8B1BD286BCB7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + EEB3821768474EEF09187DAB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + F8C0F368A3784602DCE5A454 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + INFOPLIST_FILE = lara/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; + OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2"; + PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; + SWIFT_STRICT_CONCURRENCY = minimal; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B36A0572D1FE8B1BD286BCB7 /* Debug */, + EEB3821768474EEF09187DAB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 97B7DC73658626C9634EAD09 /* Build configuration list for PBXNativeTarget "lara" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 644B49A5A6EA84C3DB2B3DC3 /* Debug */, + F8C0F368A3784602DCE5A454 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; +} From 78ec0987cf425845472cd6ba8b625eb8421d8e72 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:23:35 +0530 Subject: [PATCH 185/233] Update CacheView.swift --- lara/views/tweaks/cacheclean/CacheView.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/lara/views/tweaks/cacheclean/CacheView.swift b/lara/views/tweaks/cacheclean/CacheView.swift index 17b8398b4..f7294dad6 100644 --- a/lara/views/tweaks/cacheclean/CacheView.swift +++ b/lara/views/tweaks/cacheclean/CacheView.swift @@ -351,7 +351,6 @@ struct CacheView: View { .onAppear { mgr.startScan() } - .ignoresSafeArea() } } } From db3d69a1a9507c48edc90179c0cc892cc67ace64 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:27:33 +0530 Subject: [PATCH 186/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index d69d8eb77..86927aa9b 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -156,10 +156,37 @@ struct ToolsView: View { } } .disabled(crashname.isEmpty) + Button("Pause") { + crashname.withCString { _ = proc_pause_resume($0, false) } + pausedProcesses.insert(crashname) + } + .disabled(crashname.isEmpty || pausedProcesses.contains(crashname)) + + Button("Resume") { + crashname.withCString { _ = proc_pause_resume($0, true) } + pausedProcesses.remove(crashname) + } + .disabled(crashname.isEmpty || !pausedProcesses.contains(crashname)) + + Button("SBX Escape Helper") { + crashname.withCString { cstr in + proc_sbx = procbyname(cstr) + } + + if proc_sbx == 0 { + status = "Failed to get proc" + return + } + + let errorcheck = sbx_escape(proc_sbx) + status = errorcheck == 0 ? nil : "Failure" + } + .disabled(crashname.isEmpty) + } header: { - Text("Crasher") + Text("Task Manager") } footer: { - Text("Crashes the selected process") + Text("Manages The Selected Process") } Section { From d3b3e91bb26c3c9c932d907587d8d72f1ee7a8c2 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:31:00 +0530 Subject: [PATCH 187/233] Update ToolsView.swift --- lara/views/tweaks/ToolsView.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lara/views/tweaks/ToolsView.swift b/lara/views/tweaks/ToolsView.swift index 86927aa9b..1141bb075 100644 --- a/lara/views/tweaks/ToolsView.swift +++ b/lara/views/tweaks/ToolsView.swift @@ -24,6 +24,8 @@ struct ToolsView: View { @State private var pid: pid_t = getpid() @State private var status: String? @State private var crashname: String = "SpringBoard" + @State private var pausedProcesses: Set = [] + @State private var proc_sbx: UInt64 = 0 private enum tokenclass: String, CaseIterable, Identifiable { case read = "com.apple.app-sandbox.read" From 8f9f88bf507bd3cac7a1d74c7763fc439b3929ca Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:32:01 +0530 Subject: [PATCH 188/233] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 38b96eba6..d377ef96e 100644 --- a/README.md +++ b/README.md @@ -90,10 +90,9 @@ Important Notes: - JIT Enabler (only for apps with `get-task-allow`) - OTA Update Disabler - Screen Time Disabler -- App Decrypt ### Coming Soon -- Clean Cache +- App Decrypt ## Known Issues - wont work on M5, A19 and A19 Pro due to MTE From b6dba307602064710d9984d60f63df0a717f0df6 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:34:11 +0530 Subject: [PATCH 189/233] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d377ef96e..bfebaf349 100644 --- a/README.md +++ b/README.md @@ -90,9 +90,11 @@ Important Notes: - JIT Enabler (only for apps with `get-task-allow`) - OTA Update Disabler - Screen Time Disabler +- App Decrypt + ### Coming Soon -- App Decrypt +- FTP Server ## Known Issues - wont work on M5, A19 and A19 Pro due to MTE From c468d169a810b4d4469940000ff098c21a2f38bf Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:35:42 +0530 Subject: [PATCH 190/233] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bfebaf349..17430e423 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,7 @@ Important Notes: - OTA Update Disabler - Screen Time Disabler - App Decrypt +- Clean Cache ### Coming Soon From 1cb454225c97774e3caf7fe3ce257899a364d1a7 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:45:26 +0530 Subject: [PATCH 191/233] Update laramgr.swift --- lara/classes/laramgr.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/classes/laramgr.swift b/lara/classes/laramgr.swift index d9004c037..8a3163af6 100644 --- a/lara/classes/laramgr.swift +++ b/lara/classes/laramgr.swift @@ -88,6 +88,7 @@ final class laramgr: ObservableObject { @Published var rcready: Bool = false @Published var rcfailed: Bool = false @Published var showrespring: Bool = false + @Published var developer: Bool = false @Published var showLogs: Bool = false From 77857e8a7966128873dbbdf8ea9200611b1c3b73 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:55:21 +0530 Subject: [PATCH 192/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index 2a9b54de2..34deaf6c2 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -254,6 +254,10 @@ struct SettingsView: View { Toggle("Allow >10 dock icons", isOn: $rcDockUnlimited) } #endif + + Section(header: HeaderLabel(text: "Developer", icon: "gear")) { + Toggle("Enable Developer Mode", isOn: $developer) + } } .navigationTitle("Settings") .fileImporter(isPresented: $showkcacheimport, allowedContentTypes: [.data], allowsMultipleSelection: false) { result in From 95165cb7b1c67deb80a9c7734d500c4729c6bf7c Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sat, 6 Jun 2026 23:56:16 +0530 Subject: [PATCH 193/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index 80e01a160..7a16461d0 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -64,7 +64,7 @@ struct TweaksView: View { Section(header: HeaderLabel(text: "Broken", icon: "exclamationmark.triangle.fill")) { NavigationLink("DarkBoard", destination: DarkBoardView()) - .disabled(true) + .disabled(!mgr.developer) } NavigationLink("Extra Tools", destination: ToolsView()) From abbcb751fea9b532b8600209bba67823e723a3f1 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 7 Jun 2026 00:12:11 +0530 Subject: [PATCH 194/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index 34deaf6c2..4be267764 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -8,6 +8,7 @@ import SwiftUI import UIKit import UniformTypeIdentifiers +import Combine enum method: String, CaseIterable { case vfs = "VFS" @@ -256,7 +257,7 @@ struct SettingsView: View { #endif Section(header: HeaderLabel(text: "Developer", icon: "gear")) { - Toggle("Enable Developer Mode", isOn: $developer) + Toggle("Developer Mode", isOn: $laramgr.shared.developer) } } .navigationTitle("Settings") From 48f1cbd4a8a1a46e88abc09f686639f2eb7d7cdc Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 7 Jun 2026 00:16:18 +0530 Subject: [PATCH 195/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index 4be267764..8a9088ea0 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -41,6 +41,7 @@ struct SettingsView: View { @State private var importingkcache: Bool = false @State private var showkcachetips: Bool = false @State private var stashingKRWNow: Bool = false + @ObservedObject private var mgr = laramgr.shared @AppStorage("logsdisplaymode") private var selectedlogdisplaymode: logsdisplaymode = .toolbar @AppStorage("loggerNoBS") private var loggerNoBS: Bool = true @@ -257,7 +258,7 @@ struct SettingsView: View { #endif Section(header: HeaderLabel(text: "Developer", icon: "gear")) { - Toggle("Developer Mode", isOn: $laramgr.shared.developer) + Toggle("Developer Mode", isOn: $mgr.developer) } } .navigationTitle("Settings") From 6a0a93613600f8436dbf0cdca7400cd0b51a2c70 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 7 Jun 2026 00:22:10 +0530 Subject: [PATCH 196/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index 8a9088ea0..52e29571a 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -41,7 +41,6 @@ struct SettingsView: View { @State private var importingkcache: Bool = false @State private var showkcachetips: Bool = false @State private var stashingKRWNow: Bool = false - @ObservedObject private var mgr = laramgr.shared @AppStorage("logsdisplaymode") private var selectedlogdisplaymode: logsdisplaymode = .toolbar @AppStorage("loggerNoBS") private var loggerNoBS: Bool = true @@ -258,7 +257,7 @@ struct SettingsView: View { #endif Section(header: HeaderLabel(text: "Developer", icon: "gear")) { - Toggle("Developer Mode", isOn: $mgr.developer) + Toggle("Developer Mode", isOn: $mgr.shared.developer) } } .navigationTitle("Settings") From e74ca6a6e3be3e96c6e1b02043d872e8f7ccd0e7 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 7 Jun 2026 00:24:36 +0530 Subject: [PATCH 197/233] Update SettingsView.swift --- lara/views/app/settings/SettingsView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/app/settings/SettingsView.swift b/lara/views/app/settings/SettingsView.swift index 52e29571a..a08d4af32 100644 --- a/lara/views/app/settings/SettingsView.swift +++ b/lara/views/app/settings/SettingsView.swift @@ -257,7 +257,7 @@ struct SettingsView: View { #endif Section(header: HeaderLabel(text: "Developer", icon: "gear")) { - Toggle("Developer Mode", isOn: $mgr.shared.developer) + Toggle("Developer Mode", isOn: $mgr.developer) } } .navigationTitle("Settings") From 6603b29caafeee9282f3099a9b0ff84182f0cc63 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Sun, 7 Jun 2026 00:30:37 +0530 Subject: [PATCH 198/233] Delete project.pbxproj --- project.pbxproj | 1232 ----------------------------------------------- 1 file changed, 1232 deletions(-) delete mode 100644 project.pbxproj diff --git a/project.pbxproj b/project.pbxproj deleted file mode 100644 index a01b88aca..000000000 --- a/project.pbxproj +++ /dev/null @@ -1,1232 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - 00202D6ACE267233F3039A5B /* lara.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785FE68237A73C050C69066D /* lara.swift */; }; - 05122284F8EA7A7FD17CB414 /* PlainToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */; }; - 058FCBD9DA179A2D934E1861 /* SpringBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */; }; - 05C179E4E9D7715899A91E64 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ADF625620559A728F4B333A /* Logger.swift */; }; - 066933B35D22C62FE6FC9F6A /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAF0DB241A670081991552A3 /* ContentView.swift */; }; - 08B9D3D2BA039407C8A13919 /* Hapticinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */; }; - 09EABA93BB9102BD4F9D1FFC /* FileSystemHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */; }; - 0AFFD027EF12822CAF73F782 /* Shareinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759F640E231F564F06DB0F5 /* Shareinator.swift */; }; - 0B7DE9C4509ECB136CC9B638 /* offsets.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC9360B2E647660F1BD443F /* offsets.m */; }; - 11A4639A5AA18324DE6F8273 /* LiquidGlassPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */; }; - 13129643BE3233EFC0EF6031 /* TextFieldBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */; }; - 13F0035F8E6987F64CD2D687 /* TextFieldButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */; }; - 182C270EFDABCE79D154FAF7 /* decrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 339B1CF19AFA09E650FAB6E6 /* decrypt.m */; }; - 196DC3DB0EAC0E7E265E6B01 /* ToolsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */; }; - 1B94BBD77A4A2810BF5D1290 /* thread.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB9CC7CA7C437D5204AD77 /* thread.m */; }; - 1C1446147E04DCEE203EBC04 /* IconThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313B84568EEAB9B642F60011 /* IconThemeManager.swift */; }; - 1E55B26EADA5C23F309A7B0C /* persistence.m in Sources */ = {isa = PBXBuildFile; fileRef = B2BA68871A9D11BCFDC2AE71 /* persistence.m */; }; - 2297FFBFFDD91202E8919BDC /* GetLicenseDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */; }; - 230AA7324F04E510E79AE503 /* Alertinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D1585E8B42B2495142BE67E /* Alertinator.swift */; }; - 236529F75FB8F6748C15FC90 /* IconThemeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */; }; - 27E943E0996A32EA9B49236D /* TinyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */; }; - 2C3A57EFD938F70B1678C648 /* Exitinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06481EFAF5F2217FAAF5763B /* Exitinator.swift */; }; - 2C895842D5AF8B63A9213ACB /* vnode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E09CADCF84F1D6D51E5F20 /* vnode.m */; }; - 2EB4DBFF3C9E9A772B965E36 /* InfoBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */; }; - 30583B6890DEABEFDC08AF12 /* PrimaryButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */; }; - 34195E6370562AAA6B17AD6F /* TerminalPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */; }; - 34FE8D7A19990AEA7A5E4156 /* ButtonLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */; }; - 39599D8458A706916C841578 /* lara.png in Resources */ = {isa = PBXBuildFile; fileRef = AE2331E0F7B3D823CA15DF72 /* lara.png */; }; - 39E784159308C78E9FD8E9FD /* ThemedHeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */; }; - 3DA8A9AD80838F3C532AF752 /* media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68FA57A36233679708C5E468 /* media.xcassets */; }; - 403B42B0892F17F79B44252F /* TranslucentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */; }; - 42806A1E5FDBBC158C4A6811 /* BundleResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C01D0EB86F1B88E473FBD6 /* BundleResolver.swift */; }; - 43A908C0EFBB371510C4F8A0 /* CreditsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F528F680617A48C3CAB181 /* CreditsView.swift */; }; - 496F8339ED0EA575FC49B6AB /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */; }; - 49DB0B440857E7DE5A2B0BE2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 039D284F496260AA52986467 /* Foundation.framework */; }; - 4B6E8402EE79EBB8F80FA9D7 /* libgrabkernel2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */; }; - 4BABA3A5C72B1C3E3FEEAE27 /* vm.m in Sources */ = {isa = PBXBuildFile; fileRef = 2046AE855EEB1C6D361886E0 /* vm.m */; }; - 4D43CBA89C370995C3DC15A0 /* getbmhash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */; }; - 4F96693F5A441361CB77741E /* WhitelistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */; }; - 4FE1F87BC6BBA0D61C1EEE61 /* LICENSE_ChOma.md in Resources */ = {isa = PBXBuildFile; fileRef = 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */; }; - 507A89D7CE70F34E2CF13B90 /* PlainAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */; }; - 510DFF895883A78195E38946 /* sbx.m in Sources */ = {isa = PBXBuildFile; fileRef = F7BDDFA67F1109816C300F1E /* sbx.m */; }; - 51FAAEDC24E662A924A722A5 /* DecryptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6983282C48A1F9D8916495 /* DecryptView.swift */; }; - 537218DC30DE8D530D1BD721 /* LICENSE_libgrabkernel2.md in Resources */ = {isa = PBXBuildFile; fileRef = 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */; }; - 5440353CDE315B9316AA7445 /* DarkBoardExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */; }; - 54E4B6C8B10496B4B926C6FA /* VarCleanRules.json in Resources */ = {isa = PBXBuildFile; fileRef = 60E947B3676E84C6A668511C /* VarCleanRules.json */; }; - 602E65AAD1DAB37B2F83515C /* isunsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */; }; - 6302DAE0DC6008A78FEA75D2 /* DirectoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */; }; - 645CDC6475859E617180EEAF /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E62F26B0EFC75ABBC536306 /* CustomView.swift */; }; - 6582BD9ADC3581308C4A5176 /* LinkCreditCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */; }; - 65870485C62AC1B36636C4D8 /* WelcomeSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */; }; - 677658A1FE00F5F6053161EF /* LICENSE_RootHideManagerApp.md in Resources */ = {isa = PBXBuildFile; fileRef = FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */; }; - 688F4C39AF880CE320E1941C /* TerminalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */; }; - 69AC26CBBCC7EBB2843DDED1 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87B5A7075908DD63D2DB887E /* CardView.swift */; }; - 6C9C2DA6D8CA8E1E7BC53395 /* ota.m in Sources */ = {isa = PBXBuildFile; fileRef = 629153B59D4C44844AE0B04F /* ota.m */; }; - 6E92B04499A623019373B0A2 /* rc.m in Sources */ = {isa = PBXBuildFile; fileRef = 86610E6990066EDFE2B5D96B /* rc.m */; }; - 70B155F658E85996D9D047D8 /* AppsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7767AE9E778CDC4652EE1AA /* AppsView.swift */; }; - 70CE8021C85452A4741A89F9 /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */; }; - 70E9C02380E1D423B9CF7903 /* PlatterToggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129BE13FBF985411B747C2A /* PlatterToggle.swift */; }; - 7803CCA219A265C3AA594502 /* SantanderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C010243976A7D404529C206 /* SantanderView.swift */; }; - 7A61CEA33968AD9DA34ADFA4 /* ScreenTimeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */; }; - 7ADCF239CFA73E31C04EB6B8 /* vfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A92CE7743387903DDBFFC8C /* vfs.m */; }; - 7B3F13562B7C25359296835C /* TinyInfoPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */; }; - 7D90FABB530CED8DC9486DA8 /* OTAView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804238A057A2DF3D3EDD2D2A /* OTAView.swift */; }; - 7F1AFB173CB7104A16F670C7 /* LiquidGlassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */; }; - 7F2F1534A472DE34BDE357F4 /* CompactAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */; }; - 7FE3DDE3E0F26C4DBED76107 /* PasscodeExploreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */; }; - 80B444A2B60934943D11B6B9 /* pac.m in Sources */ = {isa = PBXBuildFile; fileRef = 7716BA871D7E897964A49CBD /* pac.m */; }; - 820EB2ED4221DA83342F2024 /* IconCacheClearer.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */; }; - 836F219F9D750E2D10CFF90A /* PasscodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26C03F7E7A7E75077A96423 /* PasscodeView.swift */; }; - 863B00B4A39A45D832C397C6 /* HeaderLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */; }; - 8754465D55F18472D423F2ED /* LICENSE_XPF.md in Resources */ = {isa = PBXBuildFile; fileRef = 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */; }; - 88F3821D6C159B9D6444C269 /* dirtyZeroTweakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */; }; - 8A5ECC3E2AB3B5DA4FFB4817 /* FancyButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */; }; - 8C42BE9EF29CE41DBFD196B3 /* CacheView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9FC8477A5475C7F11C1E8C2 /* CacheView.swift */; }; - 8F9A25EA7568AAA2730DD2B8 /* PasscodeRepoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */; }; - 930A9F36360B4B3D57259B9D /* RemoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */; }; - 937AA3D075834BA4A4E096AC /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB9E3ACD25477A782F14650 /* AppInfo.swift */; }; - 9DAC5982A30F0C03F49FFA61 /* laramgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */; }; - 9F92D924C09344269A8AF11D /* darksword.m in Sources */ = {isa = PBXBuildFile; fileRef = DD123A4DC76BB7C0734B5AE9 /* darksword.m */; }; - A078DD2B7C8A8DF1B4D84F52 /* fetchkcache.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0D193753BA74B811063956 /* fetchkcache.swift */; }; - A1BBCE64F06D8B34D745AD6C /* FontPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */; }; - A3D53400C1802DD7EDD3A18F /* screentime.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FE05E69C027F81699504C0E /* screentime.m */; }; - A6D7EEDB65FEFE06181131B4 /* JitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2807342CC8396EA700E7626 /* JitView.swift */; }; - A999A1BBFB874C96968CA82E /* findcachedataoff.m in Sources */ = {isa = PBXBuildFile; fileRef = 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */; }; - B494B779C996B17E3D9CFACB /* SystemColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */; }; - B4A900BFCF3DFFE71F7C66E4 /* AppInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */; }; - B638D7CADA8DBC8244AB2F55 /* zipmgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBFD358E70EC405DE82C3960 /* zipmgr.swift */; }; - BA3AACAE9F2E6C279E992A95 /* OffsetManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */; }; - BB429E7BE7E200DF6AA18E76 /* exc.m in Sources */ = {isa = PBXBuildFile; fileRef = E4F25FF1C3F48BDC5E6BB728 /* exc.m */; }; - BC74665F87D33C51DC6F516C /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986EBE17846F5764D1456F88 /* SettingsView.swift */; }; - BCE7136785F9DBE87C65D58C /* FileInfoSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */; }; - BDBFA0195D26B6850BC5DC5E /* WelcomeSheetRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */; }; - BE23188A75B1E8C1CAF64359 /* SectionPlatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */; }; - BE4A482E5A1DD70606B1C211 /* FileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D525CF14505CE9B85FD317 /* FileView.swift */; }; - C3131609D02F304F291B4CB9 /* DesignStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */; }; - CBB7E70304875E1C3E48B622 /* HeaderDropdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */; }; - CBE8D15F680BB6325D10D228 /* TweaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A715CAB6E1EC98EB726ED515 /* TweaksView.swift */; }; - D16210B6098D7F0D63D20C4C /* VarCleanBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */; }; - D184257FDD7AE36F18725D30 /* islcinstalled.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */; }; - D1F0BD55C7EFF7BAD76C041D /* VarCleanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */; }; - D58CD0FF97C499475D52432F /* GestaltFileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */; }; - D6BDB394E381CB4F10D15051 /* DarkBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */; }; - D85FA9C14ADF248F12BB0BCE /* dirtyZeroView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */; }; - D9513AB0989670D18E2C4B7C /* NavigationLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */; }; - DBD58B6C966B944E3C556346 /* libxpf.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 6337EE02AC0706717DFA252A /* libxpf.dylib */; }; - DE00903ACCA0FA0A8F3A2DA5 /* VariableBlur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050CB7412FCEE07695ABA92A /* VariableBlur.swift */; }; - E00CFE2CBC61E2E5233364E0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 410B1EDE3D870185074F65BC /* UIKit.framework */; }; - E2E6E955F2EB03E174AB68C2 /* resizetoapprox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */; }; - E5A3C41959D8E63088FBF3B7 /* PartyUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448609047BB8D112B7E99BFA /* PartyUI.swift */; }; - E5E44346BAE9ECFB8BA141EE /* helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C2A1D1BCFA40230A63C752 /* helpers.swift */; }; - E6E8BEA53C0EBE9728036710 /* FadeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1E023273418CB9CB879FFF /* FadeAnimation.swift */; }; - E7E8AD844335D650EC96A029 /* respring.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBF565E304760414833AF4 /* respring.swift */; }; - EB6AD5F927DDFFF9805ECED0 /* isdebugged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */; }; - EBA31C6E804BDF054E85BF5D /* RemoteCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D2ED109B18B57340D5F23066 /* RemoteCall.m */; }; - EC8EF9CB8B22F2E7317C47EC /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A300D3F6ED3397BE1E6AD87 /* utils.m */; }; - ED67001D1F5DC6D2CECEC34A /* GestaltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */; }; - EE8E8D088FEAD6AB0E9F14B2 /* CCView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF63A96A2904C5BAA9C6E491 /* CCView.swift */; }; - F31B0ABB5F2F7F16BAAFA6A3 /* keepalive.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50A3C705DF2F98AC63AA699 /* keepalive.swift */; }; - F3A6E82C953937E99AA0550E /* apfs.m in Sources */ = {isa = PBXBuildFile; fileRef = 797DFBA07DCC9320399BC99F /* apfs.m */; }; - F67A23CB1296B254798B161A /* SBCustomizerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */; }; - F916C0DE09CD8E2AAC3B7038 /* PasscodeGalleryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */; }; - FB2F000461380ED91E36B683 /* OverlayBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatterToggle.swift; sourceTree = ""; }; - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderDropdown.swift; sourceTree = ""; }; - 039D284F496260AA52986467 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariableBlur.swift; sourceTree = ""; }; - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltFileView.swift; sourceTree = ""; }; - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exitinator.swift; sourceTree = ""; }; - 09A16D0CCA129CD34402ACAB /* Fat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fat.h; sourceTree = ""; }; - 09BE5060F2C9DFD730796B7E /* rc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = ""; }; - 09E09CADCF84F1D6D51E5F20 /* vnode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vnode.m; sourceTree = ""; }; - 0B1831D0D49F9245F54EBDC6 /* compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = compat.h; sourceTree = ""; }; - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalPlatter.swift; sourceTree = ""; }; - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeExploreView.swift; sourceTree = ""; }; - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteCall.h; sourceTree = ""; }; - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DyldSharedCache.h; sourceTree = ""; }; - 1D1585E8B42B2495142BE67E /* Alertinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alertinator.swift; sourceTree = ""; }; - 2046AE855EEB1C6D361886E0 /* vm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vm.m; sourceTree = ""; }; - 206327D869325194A5015A1B /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; - 2329A0992D4982D4E144AB75 /* pac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pac.h; sourceTree = ""; }; - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_libgrabkernel2.md; sourceTree = ""; }; - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSystemHelpers.swift; sourceTree = ""; }; - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactAlert.swift; sourceTree = ""; }; - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libgrabkernel2.dylib; sourceTree = ""; }; - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = laramgr.swift; sourceTree = ""; }; - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderLabel.swift; sourceTree = ""; }; - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exc.h; sourceTree = ""; }; - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonLabel.swift; sourceTree = ""; }; - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeManager.swift; sourceTree = ""; }; - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libgrabkernel2.h; sourceTree = ""; }; - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = decrypt.m; sourceTree = ""; }; - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "lara-Bridging-Header.h"; sourceTree = ""; }; - 33FAD74D2D09DFD7CF1985FA /* vfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vfs.h; sourceTree = ""; }; - 3450D579B9EF6D1B24EA44AB /* sbx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sbx.h; sourceTree = ""; }; - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslucentButtonStyle.swift; sourceTree = ""; }; - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hapticinator.swift; sourceTree = ""; }; - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = resizetoapprox.swift; sourceTree = ""; }; - 3C989876DB6E112F7F3C3698 /* Entitlements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entitlements.h; sourceTree = ""; }; - 3F975F92D7C580260B59024B /* MachOByteOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOByteOrder.h; sourceTree = ""; }; - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteView.swift; sourceTree = ""; }; - 3FE05E69C027F81699504C0E /* screentime.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = screentime.m; sourceTree = ""; }; - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = getbmhash.swift; sourceTree = ""; }; - 410B1EDE3D870185074F65BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainToggle.swift; sourceTree = ""; }; - 448609047BB8D112B7E99BFA /* PartyUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartyUI.swift; sourceTree = ""; }; - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButtonStyle.swift; sourceTree = ""; }; - 4759F640E231F564F06DB0F5 /* Shareinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shareinator.swift; sourceTree = ""; }; - 47A521EB489F34847F77161C /* thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = ""; }; - 47C01D0EB86F1B88E473FBD6 /* BundleResolver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleResolver.swift; sourceTree = ""; }; - 48E6FC849E553C68E397984C /* lara.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = lara.entitlements; sourceTree = ""; }; - 4A33766163693DFAA30D772A /* decrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VarCleanView.swift; sourceTree = ""; }; - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconThemeGalleryManager.swift; sourceTree = ""; }; - 51BF1E07A44069A4B21B39EE /* xpf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpf.h; sourceTree = ""; }; - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IconCacheClearer.m; sourceTree = ""; }; - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemColor.swift; sourceTree = ""; }; - 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenTimeView.swift; sourceTree = ""; }; - 5A300D3F6ED3397BE1E6AD87 /* utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = ""; }; - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs.h; sourceTree = ""; }; - 60E947B3676E84C6A668511C /* VarCleanRules.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = VarCleanRules.json; sourceTree = ""; }; - 617E864CD832D1D3839429F0 /* persistence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = persistence.h; sourceTree = ""; }; - 61F528F680617A48C3CAB181 /* CreditsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsView.swift; sourceTree = ""; }; - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VarCleanBridge.m; sourceTree = ""; }; - 629153B59D4C44844AE0B04F /* ota.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ota.m; sourceTree = ""; }; - 6337EE02AC0706717DFA252A /* libxpf.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libxpf.dylib; sourceTree = ""; }; - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = findcachedataoff.m; sourceTree = ""; }; - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeGalleryManager.swift; sourceTree = ""; }; - 68FA57A36233679708C5E468 /* media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = media.xcassets; sourceTree = ""; }; - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachOLoadCommand.h; sourceTree = ""; }; - 69CB9CC7CA7C437D5204AD77 /* thread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = thread.m; sourceTree = ""; }; - 6C46703C2B4072AEF8703349 /* arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64.h; sourceTree = ""; }; - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DesignStyle.swift; sourceTree = ""; }; - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; - 6FD2D7416B6AA7CE5E184223 /* vm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vm.h; sourceTree = ""; }; - 71B66224C5948251B6008EC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 73D525CF14505CE9B85FD317 /* FileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileView.swift; sourceTree = ""; }; - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardExploreView.swift; sourceTree = ""; }; - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_ChOma.md; sourceTree = ""; }; - 7716BA871D7E897964A49CBD /* pac.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pac.m; sourceTree = ""; }; - 785FE68237A73C050C69066D /* lara.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = lara.swift; sourceTree = ""; }; - 791AEB9809EE46375BD53FF9 /* FileStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileStream.h; sourceTree = ""; }; - 797DFBA07DCC9320399BC99F /* apfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = apfs.m; sourceTree = ""; }; - 7A92CE7743387903DDBFFC8C /* vfs.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = vfs.m; sourceTree = ""; }; - 7ADF625620559A728F4B333A /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WhitelistView.swift; sourceTree = ""; }; - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isdebugged.swift; sourceTree = ""; }; - 7DC3E2446E97ECC921D3AE94 /* offsets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsets.h; sourceTree = ""; }; - 804238A057A2DF3D3EDD2D2A /* OTAView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTAView.swift; sourceTree = ""; }; - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolsView.swift; sourceTree = ""; }; - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetView.swift; sourceTree = ""; }; - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationLabel.swift; sourceTree = ""; }; - 86610E6990066EDFE2B5D96B /* rc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rc.m; sourceTree = ""; }; - 87B5A7075908DD63D2DB887E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachePatching.h; sourceTree = ""; }; - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = isunsupported.swift; sourceTree = ""; }; - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionPlatter.swift; sourceTree = ""; }; - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassView.swift; sourceTree = ""; }; - 92C2A1D1BCFA40230A63C752 /* helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = helpers.swift; sourceTree = ""; }; - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeSheetRow.swift; sourceTree = ""; }; - 986EBE17846F5764D1456F88 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OffsetManagementView.swift; sourceTree = ""; }; - 99CF547D66CF02B4B4DFA30C /* MachO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachO.h; sourceTree = ""; }; - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dyld_cache_format.h; sourceTree = ""; }; - 9C010243976A7D404529C206 /* SantanderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SantanderView.swift; sourceTree = ""; }; - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_XPF.md; sourceTree = ""; }; - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeView.swift; sourceTree = ""; }; - A3A220FFB44F9BE6C2DFB8D3 /* ota.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ota.h; sourceTree = ""; }; - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TweaksView.swift; sourceTree = ""; }; - A9376E035DE98BB605BE0C76 /* BufferedStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BufferedStream.h; sourceTree = ""; }; - A9BBF565E304760414833AF4 /* respring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = respring.swift; sourceTree = ""; }; - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileInfoSheet.swift; sourceTree = ""; }; - AAAF3E2619E3D32C626EC2FA /* Base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; - AAF0DB241A670081991552A3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder_arm64.h; sourceTree = ""; }; - AB6983282C48A1F9D8916495 /* DecryptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptView.swift; sourceTree = ""; }; - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GestaltView.swift; sourceTree = ""; }; - ADC09F6065726F4669F88037 /* CodeDirectory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CodeDirectory.h; sourceTree = ""; }; - AE2331E0F7B3D823CA15DF72 /* lara.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lara.png; sourceTree = ""; }; - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryView.swift; sourceTree = ""; }; - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayBackground.swift; sourceTree = ""; }; - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyInfoPlatter.swift; sourceTree = ""; }; - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarkBoardView.swift; sourceTree = ""; }; - B2BA68871A9D11BCFDC2AE71 /* persistence.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = persistence.m; sourceTree = ""; }; - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemedHeaderLabel.swift; sourceTree = ""; }; - B447AC3664839765F3679082 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiquidGlassPreview.swift; sourceTree = ""; }; - B5A1457B7D98C0DDC65ACC3B /* fileport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fileport.h; sourceTree = ""; }; - BB016623AE10E3896FEF50AF /* fixup-chains.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "fixup-chains.h"; sourceTree = ""; }; - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = ""; }; - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TinyButtonStyle.swift; sourceTree = ""; }; - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoBadge.swift; sourceTree = ""; }; - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroView.swift; sourceTree = ""; }; - CB0E8E3EC140E01DA032363F /* darksword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = darksword.h; sourceTree = ""; }; - CBFD358E70EC405DE82C3960 /* zipmgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = zipmgr.swift; sourceTree = ""; }; - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontPicker.swift; sourceTree = ""; }; - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SBCustomizerHandler.swift; sourceTree = ""; }; - CD0D193753BA74B811063956 /* fetchkcache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = fetchkcache.swift; sourceTree = ""; }; - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = ""; }; - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLicenseDict.swift; sourceTree = ""; }; - D2ED109B18B57340D5F23066 /* RemoteCall.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteCall.m; sourceTree = ""; }; - D714CE75040A9A3A983B36BE /* vnode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vnode.h; sourceTree = ""; }; - D7767AE9E778CDC4652EE1AA /* AppsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsView.swift; sourceTree = ""; }; - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldBackground.swift; sourceTree = ""; }; - D9FC8477A5475C7F11C1E8C2 /* CacheView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheView.swift; sourceTree = ""; }; - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringBoardView.swift; sourceTree = ""; }; - DD123A4DC76BB7C0734B5AE9 /* darksword.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darksword.m; sourceTree = ""; }; - DDA74C1F019C21218E6CF967 /* lara.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = lara.app; sourceTree = BUILT_PRODUCTS_DIR; }; - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkCreditCell.swift; sourceTree = ""; }; - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dirtyZeroTweakArray.swift; sourceTree = ""; }; - DF63A96A2904C5BAA9C6E491 /* CCView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCView.swift; sourceTree = ""; }; - E39629D147580074F13782D6 /* privateapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = privateapi.h; sourceTree = ""; }; - E497648156C6CAAA87EEE6CB /* DER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER.h; sourceTree = ""; }; - E4F25FF1C3F48BDC5E6BB728 /* exc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exc.m; sourceTree = ""; }; - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FancyButtonStyle.swift; sourceTree = ""; }; - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; - E6A7B0366B3E502209C65E24 /* xpaci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpaci.h; sourceTree = ""; }; - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoCell.swift; sourceTree = ""; }; - EDC9360B2E647660F1BD443F /* offsets.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = offsets.m; sourceTree = ""; }; - EDF19B2325FE621BF70AC862 /* IconServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IconServices.h; sourceTree = ""; }; - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainAlert.swift; sourceTree = ""; }; - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeRepoView.swift; sourceTree = ""; }; - F2807342CC8396EA700E7626 /* JitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitView.swift; sourceTree = ""; }; - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSBlob.h; sourceTree = ""; }; - F4EB254782F7A19F5DB271A4 /* screentime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = screentime.h; sourceTree = ""; }; - F506183C2CFD8D7D0FA1322D /* Host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Host.h; sourceTree = ""; }; - F50A3C705DF2F98AC63AA699 /* keepalive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = keepalive.swift; sourceTree = ""; }; - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = islcinstalled.swift; sourceTree = ""; }; - F742E837A76B006F367ABC15 /* PatchFinder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchFinder.h; sourceTree = ""; }; - F7BDDFA67F1109816C300F1E /* sbx.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sbx.m; sourceTree = ""; }; - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalHeader.swift; sourceTree = ""; }; - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FadeAnimation.swift; sourceTree = ""; }; - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE_RootHideManagerApp.md; sourceTree = ""; }; - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldButton.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 92D7CDDCADFED6C34D64592B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E00CFE2CBC61E2E5233364E0 /* UIKit.framework in Frameworks */, - 49DB0B440857E7DE5A2B0BE2 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0731B4811AB8A4261C149BD3 /* Inputs */ = { - isa = PBXGroup; - children = ( - 43CAECD4EC49FE81132CCC5C /* PlainToggle.swift */, - 0129BE13FBF985411B747C2A /* PlatterToggle.swift */, - D7EDCF42DD25E81E04542CF0 /* TextFieldBackground.swift */, - FEA8884199D9A76305CFBFB7 /* TextFieldButton.swift */, - ); - path = Inputs; - sourceTree = ""; - }; - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */ = { - isa = PBXGroup; - children = ( - 2F2ABD3A4DC9796E9FFDD962 /* exc.h */, - E4F25FF1C3F48BDC5E6BB728 /* exc.m */, - 63638FA82C9DE5B6CFE2B370 /* findcachedataoff.m */, - 2329A0992D4982D4E144AB75 /* pac.h */, - 7716BA871D7E897964A49CBD /* pac.m */, - E39629D147580074F13782D6 /* privateapi.h */, - 18E32A7D29C4903FCC4F9BF3 /* RemoteCall.h */, - D2ED109B18B57340D5F23066 /* RemoteCall.m */, - 47A521EB489F34847F77161C /* thread.h */, - 69CB9CC7CA7C437D5204AD77 /* thread.m */, - 6FD2D7416B6AA7CE5E184223 /* vm.h */, - 2046AE855EEB1C6D361886E0 /* vm.m */, - ); - path = TaskRop; - sourceTree = ""; - }; - 096D912C986A1ECDD4AE9C57 /* broken */ = { - isa = PBXGroup; - children = ( - DF63A96A2904C5BAA9C6E491 /* CCView.swift */, - 97E7B95F214CEA3C04F0AC58 /* darkboard */, - ); - path = broken; - sourceTree = ""; - }; - 09B6EF0B45C55F479407D990 /* Terminal */ = { - isa = PBXGroup; - children = ( - FA7E2153C056C5EA2C6A6787 /* TerminalHeader.swift */, - 109F3589876ADE5C6E415581 /* TerminalPlatter.swift */, - ); - path = Terminal; - sourceTree = ""; - }; - 0D159B4E42377C38FDD14E18 /* tweaks */ = { - isa = PBXGroup; - children = ( - D7767AE9E778CDC4652EE1AA /* AppsView.swift */, - 87B5A7075908DD63D2DB887E /* CardView.swift */, - 6E62F26B0EFC75ABBC536306 /* CustomView.swift */, - AB6983282C48A1F9D8916495 /* DecryptView.swift */, - CCBDBA2B5E35715A5E9EF977 /* FontPicker.swift */, - F2807342CC8396EA700E7626 /* JitView.swift */, - 804238A057A2DF3D3EDD2D2A /* OTAView.swift */, - 3FDA4A99A12D2CB225EB22B5 /* RemoteView.swift */, - 53B421ED314818DD280CCB40 /* ScreenTimeView.swift */, - 52820EE5F1FB5FE56093F4E7 /* SystemColor.swift */, - 82024AEA6B518B3DBE4DB4C3 /* ToolsView.swift */, - A715CAB6E1EC98EB726ED515 /* TweaksView.swift */, - 504D22E7D14EDDCBB8ED9F44 /* VarCleanView.swift */, - 7BA3C630C1E593EDD9E2D17D /* WhitelistView.swift */, - 096D912C986A1ECDD4AE9C57 /* broken */, - CC3F4FD5D2CE6BFA7AF5CA75 /* cacheclean */, - F1B195CE1E819A5C7256ED05 /* dirtyZero */, - 94239040D8A11FC1A668FCE4 /* liquidglass */, - 8855FA399F2E0D870F89E63A /* mobilegestalt */, - 1CF2706A6E532F38D6DD625F /* passcode */, - BCB9166DBD1D0FB1A634265E /* sbcustomizer */, - ); - path = tweaks; - sourceTree = ""; - }; - 0E9B667B7F6DF2F65554368C /* app */ = { - isa = PBXGroup; - children = ( - AAF0DB241A670081991552A3 /* ContentView.swift */, - E5D20EE9A5D02B2AE40EBBF1 /* LogsView.swift */, - A89E6CF98559C612AA19E5CE /* settings */, - ); - path = app; - sourceTree = ""; - }; - 1CF2706A6E532F38D6DD625F /* passcode */ = { - isa = PBXGroup; - children = ( - 1192B4ADC758F2FBE26A883A /* PasscodeExploreView.swift */, - EF3BD740DFB941A63B1FE9D3 /* PasscodeRepoView.swift */, - A26C03F7E7A7E75077A96423 /* PasscodeView.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 201E76134F22499BFD3DF53F /* Buttons */ = { - isa = PBXGroup; - children = ( - 2F7F05561895AF15477C59D9 /* ButtonLabel.swift */, - E56A2ABB4902D8C97C35DF1C /* FancyButtonStyle.swift */, - 856E29C9498293E1D9BB09CA /* NavigationLabel.swift */, - 4520C39A67B4B53F2535B2FC /* PrimaryButtonStyle.swift */, - BF1C05825EDB2BD4FDD78E0F /* TinyButtonStyle.swift */, - 35F4A280C5EAA61F467BEB2F /* TranslucentButtonStyle.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 23942EEA65BBA190D901B7D2 /* choma */ = { - isa = PBXGroup; - children = ( - 6C46703C2B4072AEF8703349 /* arm64.h */, - AAAF3E2619E3D32C626EC2FA /* Base64.h */, - A9376E035DE98BB605BE0C76 /* BufferedStream.h */, - 89A63DFE1599F38E1462D5C4 /* CachePatching.h */, - ADC09F6065726F4669F88037 /* CodeDirectory.h */, - F38D7E7F1709C9604A68BEC9 /* CSBlob.h */, - E497648156C6CAAA87EEE6CB /* DER.h */, - 9A0DFFF78EC16693AD2A1DD1 /* dyld_cache_format.h */, - 1C129CE3C337B3F24408FAE2 /* DyldSharedCache.h */, - 3C989876DB6E112F7F3C3698 /* Entitlements.h */, - 09A16D0CCA129CD34402ACAB /* Fat.h */, - 791AEB9809EE46375BD53FF9 /* FileStream.h */, - BB016623AE10E3896FEF50AF /* fixup-chains.h */, - F506183C2CFD8D7D0FA1322D /* Host.h */, - 99CF547D66CF02B4B4DFA30C /* MachO.h */, - 3F975F92D7C580260B59024B /* MachOByteOrder.h */, - 69469C9463D12D344AD3B00F /* MachOLoadCommand.h */, - BE9A352A1DB7185C1B3E0CA8 /* MemoryStream.h */, - AB1D7F2548CF401DFC9DC9B5 /* PatchFinder_arm64.h */, - F742E837A76B006F367ABC15 /* PatchFinder.h */, - B447AC3664839765F3679082 /* Util.h */, - ); - path = choma; - sourceTree = ""; - }; - 48AB90CB037F435485C6047D /* Settings */ = { - isa = PBXGroup; - children = ( - E94088E0CD65B0F97BC353BA /* AppInfoCell.swift */, - CDDF9E94BDE594CDE4DC0D0C /* GetLicenseDict.swift */, - CDBEF40DFD6AA5F5A0B9433C /* LicenseView.swift */, - DDB02794349F88F9FD65ADEE /* LinkCreditCell.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 4A3D6651E821914BC1DA4474 /* Indicators */ = { - isa = PBXGroup; - children = ( - 28A34DEE4E3F623EFF26BA57 /* CompactAlert.swift */, - C1486DA5CC57449B23F1C1A8 /* InfoBadge.swift */, - EE48EF953CD0864CA464BAE3 /* PlainAlert.swift */, - B11064A0B5EBD6B7A2D05021 /* TinyInfoPlatter.swift */, - ); - path = Indicators; - sourceTree = ""; - }; - 4BE43909AB102BC654C3AA36 /* lara */ = { - isa = PBXGroup; - children = ( - 71B66224C5948251B6008EC4 /* Info.plist */, - 33D532921D34FC69522B5905 /* lara-Bridging-Header.h */, - 785FE68237A73C050C69066D /* lara.swift */, - E6D45AD3A84FDFFB26A63642 /* assets */, - 761E02C29DBA3FA091780A05 /* classes */, - BD4923F18700F649F4B199C9 /* funcs */, - B8439178F75BD677E46A1DE7 /* headers */, - 9FC4F095CD4B29F2EBA790C6 /* kexploit */, - F0B17F0CA82330A26B5CAE4B /* lib */, - BA72AA8D35B0D97633C2BF5E /* licenses */, - EC0774E5B4020C4D885431BC /* other */, - 9D63227FDF3FDE8908661A7D /* PartyUI */, - D70718477881BA82E605FF53 /* views */, - ); - path = lara; - sourceTree = ""; - }; - 4CFE8C17A9569842AF2EDD4E /* darkboard */ = { - isa = PBXGroup; - children = ( - 51C4D580D4A8686D1CAF25E4 /* IconCacheClearer.m */, - 50BE8150155CA9C3A965F3D4 /* IconThemeGalleryManager.swift */, - 313B84568EEAB9B642F60011 /* IconThemeManager.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 72729D505A51BDFC8C55A1D9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 039D284F496260AA52986467 /* Foundation.framework */, - 410B1EDE3D870185074F65BC /* UIKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 73E8616A7EF5B51A92B29E54 /* Lists */ = { - isa = PBXGroup; - children = ( - 02E20075BF872BFD95EB0A6E /* HeaderDropdown.swift */, - 2DD56EBEFF013417C64A6488 /* HeaderLabel.swift */, - 8D042B272B261DE4B19A7351 /* SectionPlatter.swift */, - B313F5BE4CA5427B76F38EAD /* ThemedHeaderLabel.swift */, - ); - path = Lists; - sourceTree = ""; - }; - 761E02C29DBA3FA091780A05 /* classes */ = { - isa = PBXGroup; - children = ( - 2CCACDCDA8A98A3AB0DD4B34 /* laramgr.swift */, - 7ADF625620559A728F4B333A /* Logger.swift */, - 6230613E1604EF6D325BEB2A /* VarCleanBridge.m */, - CBFD358E70EC405DE82C3960 /* zipmgr.swift */, - 860A585202C20E00C82C419C /* tweaks */, - ); - path = classes; - sourceTree = ""; - }; - 7814074F0998A8D980C3CBF8 /* other */ = { - isa = PBXGroup; - children = ( - A9BBF565E304760414833AF4 /* respring.swift */, - ); - path = other; - sourceTree = ""; - }; - 7BD2299CAA022F5E87524835 /* Products */ = { - isa = PBXGroup; - children = ( - DDA74C1F019C21218E6CF967 /* lara.app */, - ); - name = Products; - sourceTree = ""; - }; - 7F048C9DF00CA2EEB9135FFF /* Effects */ = { - isa = PBXGroup; - children = ( - FC1E023273418CB9CB879FFF /* FadeAnimation.swift */, - AFB9087BA044BC50F21C5AE0 /* OverlayBackground.swift */, - ); - path = Effects; - sourceTree = ""; - }; - 860A585202C20E00C82C419C /* tweaks */ = { - isa = PBXGroup; - children = ( - 4CFE8C17A9569842AF2EDD4E /* darkboard */, - 9CA94EDD3BE9DDBB6B279DCA /* passcode */, - ); - path = tweaks; - sourceTree = ""; - }; - 8855FA399F2E0D870F89E63A /* mobilegestalt */ = { - isa = PBXGroup; - children = ( - 05AF074004C8A6B2B588FC91 /* GestaltFileView.swift */, - ACDE5186BD4FAC6C884D6EC3 /* GestaltView.swift */, - ); - path = mobilegestalt; - sourceTree = ""; - }; - 93732F3C530FBFCDA46E1FCE /* Functions */ = { - isa = PBXGroup; - children = ( - 1D1585E8B42B2495142BE67E /* Alertinator.swift */, - 06481EFAF5F2217FAAF5763B /* Exitinator.swift */, - 37FB4792E60B4F968016E9C6 /* Hapticinator.swift */, - 4759F640E231F564F06DB0F5 /* Shareinator.swift */, - ); - path = Functions; - sourceTree = ""; - }; - 94239040D8A11FC1A668FCE4 /* liquidglass */ = { - isa = PBXGroup; - children = ( - B4D9E99A44EA3E29445991F5 /* LiquidGlassPreview.swift */, - 8E180A1D7D4F04BBA1C018F5 /* LiquidGlassView.swift */, - ); - path = liquidglass; - sourceTree = ""; - }; - 97E7B95F214CEA3C04F0AC58 /* darkboard */ = { - isa = PBXGroup; - children = ( - 76499B80F81B730D6740F4B4 /* DarkBoardExploreView.swift */, - B1DA3FB34E314A468E26E1D9 /* DarkBoardView.swift */, - ); - path = darkboard; - sourceTree = ""; - }; - 9CA94EDD3BE9DDBB6B279DCA /* passcode */ = { - isa = PBXGroup; - children = ( - 67D100779B0FB585D07A7A01 /* PasscodeGalleryManager.swift */, - ); - path = passcode; - sourceTree = ""; - }; - 9D63227FDF3FDE8908661A7D /* PartyUI */ = { - isa = PBXGroup; - children = ( - 448609047BB8D112B7E99BFA /* PartyUI.swift */, - CCCE9A5AD37D20741B82ADB9 /* App */, - C6CEB364F2625B0EF49D1447 /* UI */, - ); - path = PartyUI; - sourceTree = ""; - }; - 9FC4F095CD4B29F2EBA790C6 /* kexploit */ = { - isa = PBXGroup; - children = ( - 0B1831D0D49F9245F54EBDC6 /* compat.h */, - CB0E8E3EC140E01DA032363F /* darksword.h */, - DD123A4DC76BB7C0734B5AE9 /* darksword.m */, - 4A33766163693DFAA30D772A /* decrypt.h */, - 339B1CF19AFA09E650FAB6E6 /* decrypt.m */, - 7DC3E2446E97ECC921D3AE94 /* offsets.h */, - EDC9360B2E647660F1BD443F /* offsets.m */, - A3A220FFB44F9BE6C2DFB8D3 /* ota.h */, - 629153B59D4C44844AE0B04F /* ota.m */, - 617E864CD832D1D3839429F0 /* persistence.h */, - B2BA68871A9D11BCFDC2AE71 /* persistence.m */, - F4EB254782F7A19F5DB271A4 /* screentime.h */, - 3FE05E69C027F81699504C0E /* screentime.m */, - 206327D869325194A5015A1B /* utils.h */, - 5A300D3F6ED3397BE1E6AD87 /* utils.m */, - C6122EC473A3A57510124B02 /* pe */, - 07BAC61DA1B8AB72CF48FFA8 /* TaskRop */, - ); - path = kexploit; - sourceTree = ""; - }; - A5B06BC43186EA1E4D25299F = { - isa = PBXGroup; - children = ( - 4BE43909AB102BC654C3AA36 /* lara */, - 72729D505A51BDFC8C55A1D9 /* Frameworks */, - 7BD2299CAA022F5E87524835 /* Products */, - ); - sourceTree = ""; - }; - A89E6CF98559C612AA19E5CE /* settings */ = { - isa = PBXGroup; - children = ( - 61F528F680617A48C3CAB181 /* CreditsView.swift */, - 9912C39D41DA5EB8985DBB12 /* OffsetManagementView.swift */, - 986EBE17846F5764D1456F88 /* SettingsView.swift */, - ); - path = settings; - sourceTree = ""; - }; - B8439178F75BD677E46A1DE7 /* headers */ = { - isa = PBXGroup; - children = ( - B5A1457B7D98C0DDC65ACC3B /* fileport.h */, - EDF19B2325FE621BF70AC862 /* IconServices.h */, - 324F7561FC82CAA514198CEB /* libgrabkernel2.h */, - 51BF1E07A44069A4B21B39EE /* xpf.h */, - ); - path = headers; - sourceTree = ""; - }; - B96F95013D086604AB0F746C /* fm */ = { - isa = PBXGroup; - children = ( - AECB19A4F9FC77C7B0D6365A /* DirectoryView.swift */, - AA25AF8322F8AF8EA8DCFFF3 /* FileInfoSheet.swift */, - 2802001733517E9C6F44ADDE /* FileSystemHelpers.swift */, - 73D525CF14505CE9B85FD317 /* FileView.swift */, - 9C010243976A7D404529C206 /* SantanderView.swift */, - ); - path = fm; - sourceTree = ""; - }; - BA72AA8D35B0D97633C2BF5E /* licenses */ = { - isa = PBXGroup; - children = ( - 768497842E4AA9851BF6D449 /* LICENSE_ChOma.md */, - 271735A3F681764690EA9704 /* LICENSE_libgrabkernel2.md */, - FC6F541C56EDB4F0D04D7442 /* LICENSE_RootHideManagerApp.md */, - 9ECAEE9B34FB3DCF3A9756AA /* LICENSE_XPF.md */, - ); - path = licenses; - sourceTree = ""; - }; - BCB9166DBD1D0FB1A634265E /* sbcustomizer */ = { - isa = PBXGroup; - children = ( - CCE96D7B86A8F7D41967A7BC /* SBCustomizerHandler.swift */, - DA8DA1F400219CB3E2BB0ED3 /* SpringBoardView.swift */, - ); - path = sbcustomizer; - sourceTree = ""; - }; - BD4923F18700F649F4B199C9 /* funcs */ = { - isa = PBXGroup; - children = ( - CD0D193753BA74B811063956 /* fetchkcache.swift */, - 4091B993EEB2CE55D9340FD1 /* getbmhash.swift */, - 92C2A1D1BCFA40230A63C752 /* helpers.swift */, - 7DBB848FB87528D0CF3FD7AD /* isdebugged.swift */, - F6D6CB952FC4C65F5FB543A5 /* islcinstalled.swift */, - 8B4C39921AD4AFB152FAEF11 /* isunsupported.swift */, - F50A3C705DF2F98AC63AA699 /* keepalive.swift */, - 3B986733D3F9E2A85C6B4DB7 /* resizetoapprox.swift */, - ); - path = funcs; - sourceTree = ""; - }; - C6122EC473A3A57510124B02 /* pe */ = { - isa = PBXGroup; - children = ( - 5C21F0DFD8E929D2ADD2FFE8 /* apfs.h */, - 797DFBA07DCC9320399BC99F /* apfs.m */, - 09BE5060F2C9DFD730796B7E /* rc.h */, - 86610E6990066EDFE2B5D96B /* rc.m */, - 3450D579B9EF6D1B24EA44AB /* sbx.h */, - F7BDDFA67F1109816C300F1E /* sbx.m */, - 33FAD74D2D09DFD7CF1985FA /* vfs.h */, - 7A92CE7743387903DDBFFC8C /* vfs.m */, - D714CE75040A9A3A983B36BE /* vnode.h */, - 09E09CADCF84F1D6D51E5F20 /* vnode.m */, - E6A7B0366B3E502209C65E24 /* xpaci.h */, - ); - path = pe; - sourceTree = ""; - }; - C6CEB364F2625B0EF49D1447 /* UI */ = { - isa = PBXGroup; - children = ( - 6DDC13CBAF6359B957D0E46D /* DesignStyle.swift */, - 201E76134F22499BFD3DF53F /* Buttons */, - 7F048C9DF00CA2EEB9135FFF /* Effects */, - 4A3D6651E821914BC1DA4474 /* Indicators */, - 0731B4811AB8A4261C149BD3 /* Inputs */, - 73E8616A7EF5B51A92B29E54 /* Lists */, - 09B6EF0B45C55F479407D990 /* Terminal */, - ); - path = UI; - sourceTree = ""; - }; - CC3F4FD5D2CE6BFA7AF5CA75 /* cacheclean */ = { - isa = PBXGroup; - children = ( - 47C01D0EB86F1B88E473FBD6 /* BundleResolver.swift */, - D9FC8477A5475C7F11C1E8C2 /* CacheView.swift */, - ); - path = cacheclean; - sourceTree = ""; - }; - CCCE9A5AD37D20741B82ADB9 /* App */ = { - isa = PBXGroup; - children = ( - 6EB9E3ACD25477A782F14650 /* AppInfo.swift */, - CED7197ED6E1E06C45D4927C /* Extensions */, - 93732F3C530FBFCDA46E1FCE /* Functions */, - 48AB90CB037F435485C6047D /* Settings */, - F8BF389C000C82BE834B7E80 /* WelcomeSheet */, - ); - path = App; - sourceTree = ""; - }; - CED7197ED6E1E06C45D4927C /* Extensions */ = { - isa = PBXGroup; - children = ( - 050CB7412FCEE07695ABA92A /* VariableBlur.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - D70718477881BA82E605FF53 /* views */ = { - isa = PBXGroup; - children = ( - 0E9B667B7F6DF2F65554368C /* app */, - B96F95013D086604AB0F746C /* fm */, - 7814074F0998A8D980C3CBF8 /* other */, - 0D159B4E42377C38FDD14E18 /* tweaks */, - ); - path = views; - sourceTree = ""; - }; - E6D45AD3A84FDFFB26A63642 /* assets */ = { - isa = PBXGroup; - children = ( - AE2331E0F7B3D823CA15DF72 /* lara.png */, - ); - path = assets; - sourceTree = ""; - }; - EC0774E5B4020C4D885431BC /* other */ = { - isa = PBXGroup; - children = ( - 48E6FC849E553C68E397984C /* lara.entitlements */, - 68FA57A36233679708C5E468 /* media.xcassets */, - 60E947B3676E84C6A668511C /* VarCleanRules.json */, - ); - path = other; - sourceTree = ""; - }; - F0B17F0CA82330A26B5CAE4B /* lib */ = { - isa = PBXGroup; - children = ( - 2A8B286F9EE44EE34D17CFC5 /* libgrabkernel2.dylib */, - 6337EE02AC0706717DFA252A /* libxpf.dylib */, - 23942EEA65BBA190D901B7D2 /* choma */, - ); - path = lib; - sourceTree = ""; - }; - F1B195CE1E819A5C7256ED05 /* dirtyZero */ = { - isa = PBXGroup; - children = ( - DDB2DDE4EBFD521AEA126223 /* dirtyZeroTweakArray.swift */, - C92D97E7B28FC21CDB6394CC /* dirtyZeroView.swift */, - ); - path = dirtyZero; - sourceTree = ""; - }; - F8BF389C000C82BE834B7E80 /* WelcomeSheet */ = { - isa = PBXGroup; - children = ( - 9333BB39BB98C3DB063648A1 /* WelcomeSheetRow.swift */, - 85027CF0242D31D84A9044B5 /* WelcomeSheetView.swift */, - ); - path = WelcomeSheet; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 43B2FBC647F5572D66195ACC /* lara */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97B7DC73658626C9634EAD09 /* Build configuration list for PBXNativeTarget "lara" */; - buildPhases = ( - 54B87CC8872FB71C6B762155 /* Sources */, - D1776FCFD86F3CDA993F46E9 /* Resources */, - 92D7CDDCADFED6C34D64592B /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = lara; - packageProductDependencies = ( - ); - productName = lara; - productReference = DDA74C1F019C21218E6CF967 /* lara.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C2C95BFA5DD3CFA4D4DD34CD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - TargetAttributes = { - }; - }; - buildConfigurationList = 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = A5B06BC43186EA1E4D25299F; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = 7BD2299CAA022F5E87524835 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 43B2FBC647F5572D66195ACC /* lara */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D1776FCFD86F3CDA993F46E9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4FE1F87BC6BBA0D61C1EEE61 /* LICENSE_ChOma.md in Resources */, - 677658A1FE00F5F6053161EF /* LICENSE_RootHideManagerApp.md in Resources */, - 8754465D55F18472D423F2ED /* LICENSE_XPF.md in Resources */, - 537218DC30DE8D530D1BD721 /* LICENSE_libgrabkernel2.md in Resources */, - 54E4B6C8B10496B4B926C6FA /* VarCleanRules.json in Resources */, - 39599D8458A706916C841578 /* lara.png in Resources */, - 4B6E8402EE79EBB8F80FA9D7 /* libgrabkernel2.dylib in Resources */, - DBD58B6C966B944E3C556346 /* libxpf.dylib in Resources */, - 3DA8A9AD80838F3C532AF752 /* media.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 54B87CC8872FB71C6B762155 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 230AA7324F04E510E79AE503 /* Alertinator.swift in Sources */, - 937AA3D075834BA4A4E096AC /* AppInfo.swift in Sources */, - B4A900BFCF3DFFE71F7C66E4 /* AppInfoCell.swift in Sources */, - 70B155F658E85996D9D047D8 /* AppsView.swift in Sources */, - 42806A1E5FDBBC158C4A6811 /* BundleResolver.swift in Sources */, - 34FE8D7A19990AEA7A5E4156 /* ButtonLabel.swift in Sources */, - EE8E8D088FEAD6AB0E9F14B2 /* CCView.swift in Sources */, - 8C42BE9EF29CE41DBFD196B3 /* CacheView.swift in Sources */, - 69AC26CBBCC7EBB2843DDED1 /* CardView.swift in Sources */, - 7F2F1534A472DE34BDE357F4 /* CompactAlert.swift in Sources */, - 066933B35D22C62FE6FC9F6A /* ContentView.swift in Sources */, - 43A908C0EFBB371510C4F8A0 /* CreditsView.swift in Sources */, - 645CDC6475859E617180EEAF /* CustomView.swift in Sources */, - 5440353CDE315B9316AA7445 /* DarkBoardExploreView.swift in Sources */, - D6BDB394E381CB4F10D15051 /* DarkBoardView.swift in Sources */, - 51FAAEDC24E662A924A722A5 /* DecryptView.swift in Sources */, - C3131609D02F304F291B4CB9 /* DesignStyle.swift in Sources */, - 6302DAE0DC6008A78FEA75D2 /* DirectoryView.swift in Sources */, - 2C3A57EFD938F70B1678C648 /* Exitinator.swift in Sources */, - E6E8BEA53C0EBE9728036710 /* FadeAnimation.swift in Sources */, - 8A5ECC3E2AB3B5DA4FFB4817 /* FancyButtonStyle.swift in Sources */, - BCE7136785F9DBE87C65D58C /* FileInfoSheet.swift in Sources */, - 09EABA93BB9102BD4F9D1FFC /* FileSystemHelpers.swift in Sources */, - BE4A482E5A1DD70606B1C211 /* FileView.swift in Sources */, - A1BBCE64F06D8B34D745AD6C /* FontPicker.swift in Sources */, - D58CD0FF97C499475D52432F /* GestaltFileView.swift in Sources */, - ED67001D1F5DC6D2CECEC34A /* GestaltView.swift in Sources */, - 2297FFBFFDD91202E8919BDC /* GetLicenseDict.swift in Sources */, - 08B9D3D2BA039407C8A13919 /* Hapticinator.swift in Sources */, - CBB7E70304875E1C3E48B622 /* HeaderDropdown.swift in Sources */, - 863B00B4A39A45D832C397C6 /* HeaderLabel.swift in Sources */, - 820EB2ED4221DA83342F2024 /* IconCacheClearer.m in Sources */, - 236529F75FB8F6748C15FC90 /* IconThemeGalleryManager.swift in Sources */, - 1C1446147E04DCEE203EBC04 /* IconThemeManager.swift in Sources */, - 2EB4DBFF3C9E9A772B965E36 /* InfoBadge.swift in Sources */, - A6D7EEDB65FEFE06181131B4 /* JitView.swift in Sources */, - 70CE8021C85452A4741A89F9 /* LicenseView.swift in Sources */, - 6582BD9ADC3581308C4A5176 /* LinkCreditCell.swift in Sources */, - 11A4639A5AA18324DE6F8273 /* LiquidGlassPreview.swift in Sources */, - 7F1AFB173CB7104A16F670C7 /* LiquidGlassView.swift in Sources */, - 05C179E4E9D7715899A91E64 /* Logger.swift in Sources */, - 496F8339ED0EA575FC49B6AB /* LogsView.swift in Sources */, - D9513AB0989670D18E2C4B7C /* NavigationLabel.swift in Sources */, - 7D90FABB530CED8DC9486DA8 /* OTAView.swift in Sources */, - BA3AACAE9F2E6C279E992A95 /* OffsetManagementView.swift in Sources */, - FB2F000461380ED91E36B683 /* OverlayBackground.swift in Sources */, - E5A3C41959D8E63088FBF3B7 /* PartyUI.swift in Sources */, - 7FE3DDE3E0F26C4DBED76107 /* PasscodeExploreView.swift in Sources */, - F916C0DE09CD8E2AAC3B7038 /* PasscodeGalleryManager.swift in Sources */, - 8F9A25EA7568AAA2730DD2B8 /* PasscodeRepoView.swift in Sources */, - 836F219F9D750E2D10CFF90A /* PasscodeView.swift in Sources */, - 507A89D7CE70F34E2CF13B90 /* PlainAlert.swift in Sources */, - 05122284F8EA7A7FD17CB414 /* PlainToggle.swift in Sources */, - 70E9C02380E1D423B9CF7903 /* PlatterToggle.swift in Sources */, - 30583B6890DEABEFDC08AF12 /* PrimaryButtonStyle.swift in Sources */, - EBA31C6E804BDF054E85BF5D /* RemoteCall.m in Sources */, - 930A9F36360B4B3D57259B9D /* RemoteView.swift in Sources */, - F67A23CB1296B254798B161A /* SBCustomizerHandler.swift in Sources */, - 7803CCA219A265C3AA594502 /* SantanderView.swift in Sources */, - 7A61CEA33968AD9DA34ADFA4 /* ScreenTimeView.swift in Sources */, - BE23188A75B1E8C1CAF64359 /* SectionPlatter.swift in Sources */, - BC74665F87D33C51DC6F516C /* SettingsView.swift in Sources */, - 0AFFD027EF12822CAF73F782 /* Shareinator.swift in Sources */, - 058FCBD9DA179A2D934E1861 /* SpringBoardView.swift in Sources */, - B494B779C996B17E3D9CFACB /* SystemColor.swift in Sources */, - 688F4C39AF880CE320E1941C /* TerminalHeader.swift in Sources */, - 34195E6370562AAA6B17AD6F /* TerminalPlatter.swift in Sources */, - 13129643BE3233EFC0EF6031 /* TextFieldBackground.swift in Sources */, - 13F0035F8E6987F64CD2D687 /* TextFieldButton.swift in Sources */, - 39E784159308C78E9FD8E9FD /* ThemedHeaderLabel.swift in Sources */, - 27E943E0996A32EA9B49236D /* TinyButtonStyle.swift in Sources */, - 7B3F13562B7C25359296835C /* TinyInfoPlatter.swift in Sources */, - 196DC3DB0EAC0E7E265E6B01 /* ToolsView.swift in Sources */, - 403B42B0892F17F79B44252F /* TranslucentButtonStyle.swift in Sources */, - CBE8D15F680BB6325D10D228 /* TweaksView.swift in Sources */, - D16210B6098D7F0D63D20C4C /* VarCleanBridge.m in Sources */, - D1F0BD55C7EFF7BAD76C041D /* VarCleanView.swift in Sources */, - DE00903ACCA0FA0A8F3A2DA5 /* VariableBlur.swift in Sources */, - BDBFA0195D26B6850BC5DC5E /* WelcomeSheetRow.swift in Sources */, - 65870485C62AC1B36636C4D8 /* WelcomeSheetView.swift in Sources */, - 4F96693F5A441361CB77741E /* WhitelistView.swift in Sources */, - F3A6E82C953937E99AA0550E /* apfs.m in Sources */, - 9F92D924C09344269A8AF11D /* darksword.m in Sources */, - 182C270EFDABCE79D154FAF7 /* decrypt.m in Sources */, - 88F3821D6C159B9D6444C269 /* dirtyZeroTweakArray.swift in Sources */, - D85FA9C14ADF248F12BB0BCE /* dirtyZeroView.swift in Sources */, - BB429E7BE7E200DF6AA18E76 /* exc.m in Sources */, - A078DD2B7C8A8DF1B4D84F52 /* fetchkcache.swift in Sources */, - A999A1BBFB874C96968CA82E /* findcachedataoff.m in Sources */, - 4D43CBA89C370995C3DC15A0 /* getbmhash.swift in Sources */, - E5E44346BAE9ECFB8BA141EE /* helpers.swift in Sources */, - EB6AD5F927DDFFF9805ECED0 /* isdebugged.swift in Sources */, - D184257FDD7AE36F18725D30 /* islcinstalled.swift in Sources */, - 602E65AAD1DAB37B2F83515C /* isunsupported.swift in Sources */, - F31B0ABB5F2F7F16BAAFA6A3 /* keepalive.swift in Sources */, - 00202D6ACE267233F3039A5B /* lara.swift in Sources */, - 9DAC5982A30F0C03F49FFA61 /* laramgr.swift in Sources */, - 0B7DE9C4509ECB136CC9B638 /* offsets.m in Sources */, - 6C9C2DA6D8CA8E1E7BC53395 /* ota.m in Sources */, - 80B444A2B60934943D11B6B9 /* pac.m in Sources */, - 1E55B26EADA5C23F309A7B0C /* persistence.m in Sources */, - 6E92B04499A623019373B0A2 /* rc.m in Sources */, - E2E6E955F2EB03E174AB68C2 /* resizetoapprox.swift in Sources */, - E7E8AD844335D650EC96A029 /* respring.swift in Sources */, - 510DFF895883A78195E38946 /* sbx.m in Sources */, - A3D53400C1802DD7EDD3A18F /* screentime.m in Sources */, - 1B94BBD77A4A2810BF5D1290 /* thread.m in Sources */, - EC8EF9CB8B22F2E7317C47EC /* utils.m in Sources */, - 7ADCF239CFA73E31C04EB6B8 /* vfs.m in Sources */, - 4BABA3A5C72B1C3E3FEEAE27 /* vm.m in Sources */, - 2C895842D5AF8B63A9213ACB /* vnode.m in Sources */, - B638D7CADA8DBC8244AB2F55 /* zipmgr.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 644B49A5A6EA84C3DB2B3DC3 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - B36A0572D1FE8B1BD286BCB7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - EEB3821768474EEF09187DAB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 17.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - F8C0F368A3784602DCE5A454 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - INFOPLIST_FILE = lara/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = "$(inherited) lara/lib/"; - OTHER_LDFLAGS = "$(inherited) -lxpf -lgrabkernel2"; - PRODUCT_BUNDLE_IDENTIFIER = com.roooot.lara; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "lara/lara-Bridging-Header.h"; - SWIFT_STRICT_CONCURRENCY = minimal; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0834245AF38D531999A6377B /* Build configuration list for PBXProject "lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B36A0572D1FE8B1BD286BCB7 /* Debug */, - EEB3821768474EEF09187DAB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - 97B7DC73658626C9634EAD09 /* Build configuration list for PBXNativeTarget "lara" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 644B49A5A6EA84C3DB2B3DC3 /* Debug */, - F8C0F368A3784602DCE5A454 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = C2C95BFA5DD3CFA4D4DD34CD /* Project object */; -} From ba849036fe80c1ffcfaa86365fcb6c6559a5e559 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 8 Jun 2026 20:38:26 +0530 Subject: [PATCH 199/233] Create main.htm --- website/main.htm | 355 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 355 insertions(+) create mode 100644 website/main.htm diff --git a/website/main.htm b/website/main.htm new file mode 100644 index 000000000..12c86c977 --- /dev/null +++ b/website/main.htm @@ -0,0 +1,355 @@ + + + + + +Lara + + + + + + + + +
+
+ +
+ + +
+ +

Lara

+

DarkSword-based iOS tweaker • System toolkit • Experimental framework

+ + +
+ + +
Features
+ +
+
+
+ Font Overwrite
+ Custom Overwrite
+ Card Overwrite
+ File Manager (Full Disk r/w)
+ MobileGestalt Editor
+ 3 App Bypass
+ DirtyZero 2
+ 5 App Dock
+ Status Bar Tweaks
+ Hide labels
+ Upside Down
+ Floating Dock (Broken)
+ Grid App Switcher
+ Performance HUD
+ JIT Enabler (only for apps with get-task-allow)
+ OTA Update Disabler
+ Screen Time Disabler
+ App Decrypt +
+
+
+ + +
Coming Soon
+ +
+
+
+ Clean Cache + FTP Server +
+
+
+ + +
iOS Compatibility
+ +
+ +
+
+ iOS 17 – iOS 26.0.1
+ Fully Supported +
+
+ +
+
+ iOS 16.x (experimental support)
+ Possible (No offsets found therefore, doesn't support) +
+
+ +
+
+ iOS 16.7.2
+ Tested — needs more validation +
+
+ +
+
+ iOS 17.0 – iOS 18.7.1
+ Fully Supported +
+
+ +
+
+ iOS 18.7.2+
+ Not Supported +
+
+ +
+
+ iOS 26.0 – iOS 26.0.1
+ Supported (latest confirmed builds) +
+
+ +
+
+ iOS 26.1+
+ Not Supported +
+
+ +
+ + +
Credits
+ +
+ +
+ +

rooootdev

+
Main Developer
+ GitHub +
+ +
+ +

jurre111

+ GitHub +
+ +
+ +

notthemystery

+ GitHub +
+ +
+ +

neonmodder123

+ GitHub +
+ +
+ +

Pro42good

+ GitHub +
+ +
+ +

lunginspector

+ GitHub +
+ +
+ +

A11pwnX

+ GitHub +
+ +
+ +

khanhduytran0

+ GitHub +
+ +
+ +

opa334

+ GitHub +
+ +
+ +

AppInstalleriOSGH

+ GitHub +
+ +
+ +

alfiecg24

+ GitHub +
+ +
+ + + + +
+ + + From 930c3ea016c9318ce596198af0da7fd2af8b7520 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Mon, 8 Jun 2026 20:41:36 +0530 Subject: [PATCH 200/233] Update main.htm --- website/main.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/main.htm b/website/main.htm index 12c86c977..a1713ec55 100644 --- a/website/main.htm +++ b/website/main.htm @@ -5,7 +5,7 @@ Lara - + - - - - -
-
- -
- - -
- -

Lara

-

DarkSword-based iOS tweaker • System toolkit • Experimental framework

- - -
- - -
Features
- -
-
-
- Font Overwrite
- Custom Overwrite
- Card Overwrite
- File Manager (Full Disk r/w)
- MobileGestalt Editor
- 3 App Bypass
- DirtyZero 2
- 5 App Dock
- Status Bar Tweaks
- Hide labels
- Upside Down
- Floating Dock (Broken)
- Grid App Switcher
- Performance HUD
- JIT Enabler (only for apps with get-task-allow)
- OTA Update Disabler
- Screen Time Disabler
- App Decrypt -
-
-
- - -
Coming Soon
- -
-
-
- Clean Cache - FTP Server -
-
-
- - -
iOS Compatibility
- -
- -
-
- iOS 17 – iOS 26.0.1
- Fully Supported -
-
- -
-
- iOS 16.x (experimental support)
- Possible (No offsets found therefore, doesn't support) -
-
- -
-
- iOS 16.7.2
- Tested — needs more validation -
-
- -
-
- iOS 17.0 – iOS 18.7.1
- Fully Supported -
-
- -
-
- iOS 18.7.2+
- Not Supported -
-
- -
-
- iOS 26.0 – iOS 26.0.1
- Supported (latest confirmed builds) -
-
- -
-
- iOS 26.1+
- Not Supported -
-
- -
- - -
Credits
- -
- -
- -

rooootdev

-
Main Developer
- GitHub -
- -
- -

jurre111

- GitHub -
- -
- -

notthemystery

- GitHub -
- -
- -

neonmodder123

- GitHub -
- -
- -

Pro42good

- GitHub -
- -
- -

lunginspector

- GitHub -
- -
- -

A11pwnX

- GitHub -
- -
- -

khanhduytran0

- GitHub -
- -
- -

opa334

- GitHub -
- -
- -

AppInstalleriOSGH

- GitHub -
- -
- -

alfiecg24

- GitHub -
- -
- - - - -
- - - From dfc780c3d3e298316a077f334c0f7d63b974480a Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 16:59:16 +0530 Subject: [PATCH 202/233] Create themer.m --- lara/views/tweaks/broken/darkboardv2/themer.m | 2471 +++++++++++++++++ 1 file changed, 2471 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/themer.m diff --git a/lara/views/tweaks/broken/darkboardv2/themer.m b/lara/views/tweaks/broken/darkboardv2/themer.m new file mode 100644 index 000000000..d60163771 --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/themer.m @@ -0,0 +1,2471 @@ +// +// themer.m +// skidded from cyanide credit goes to zeroxjf +// + +#import "themer.h" +#import "remote_objc.h" +#import "sb_walk.h" +#import "../map_app.h" +#import "../TaskRop/RemoteCall.h" +#import "../LogTextView.h" + +#import +#import +#import +#import +#import + +typedef struct { + char bundle[128]; + uint64_t image; // retained SB UIImage* + uint64_t dataSource; // retained SB helper from earlier model experiments + bool iconServicesSeeded; +} ThemerEntry; + +typedef struct { + uint64_t icon; + char bundle[128]; +} ThemerIconBundleEntry; + +static const int kThemerMaxCache = 512; +static const int kThemerMaxIconBundleCache = 512; +static const size_t kThemerMaxPngBytes = 1 << 18; // 256 KB hard cap per icon +static const uint32_t kThemerApplySettleUS = 0; +static const bool kThemerDetailedIconLogs = false; + +// Debug focus: when non-empty, only apply to this single bundle. Keeps the +// log readable while we figure out which iOS 26 render path actually sticks. +// Set to "" or NULL to re-enable the full theme. +static const char *kThemerFocusBundle = ""; + +static ThemerEntry gThemerCache[kThemerMaxCache]; +static int gThemerCacheCount = 0; +static ThemerIconBundleEntry gThemerIconBundleCache[kThemerMaxIconBundleCache]; +static int gThemerIconBundleCacheCount = 0; +static int gThemerLogBudget = 48; +static bool gThemerModelProbeLogged = false; +static bool gThemerIconServicesProbeLogged = false; +static int gThemerHostIOSMajor = -1; +static bool gThemerVisiblePolicyLogged = false; + +// -1 unprobed, 0 nothing works, 1/2/3/4 chosen rung. +static int gThemerRung = -1; +static bool gThemerHasUpdateAfter = false; +static bool gThemerHasUpdateImageView = false; + +static uint64_t themer_now_us(void) +{ + struct timespec ts = {0}; + clock_gettime(CLOCK_MONOTONIC, &ts); + return ((uint64_t)ts.tv_sec * 1000000ULL) + ((uint64_t)ts.tv_nsec / 1000ULL); +} + +static int themer_host_ios_major(void) +{ + if (gThemerHostIOSMajor >= 0) return gThemerHostIOSMajor; + NSOperatingSystemVersion v = [[NSProcessInfo processInfo] operatingSystemVersion]; + gThemerHostIOSMajor = (int)v.majorVersion; + return gThemerHostIOSMajor; +} + +static NSArray *themer_priority_theme_bundles(void) +{ + static NSArray *bundles = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + bundles = @[ + @"com.apple.AppStore", + @"com.apple.DocumentsApp", + @"com.apple.Health", + @"com.apple.Home", + @"com.apple.Maps", + @"com.apple.MobileAddressBook", + @"com.apple.MobileSMS", + @"com.apple.Music", + @"com.apple.Passbook", + @"com.apple.Preferences", + @"com.apple.Translate", + @"com.apple.VoiceMemos", + @"com.apple.calculator", + @"com.apple.camera", + @"com.apple.findmy", + @"com.apple.freeform", + @"com.apple.iBooks", + @"com.apple.mobilecal", + @"com.apple.mobilemail", + @"com.apple.mobilenotes", + @"com.apple.mobilephone", + @"com.apple.mobilesafari", + @"com.apple.mobileslideshow", + @"com.apple.mobiletimer", + @"com.apple.podcasts", + @"com.apple.reminders", + @"com.apple.shortcuts", + @"com.apple.stocks", + @"com.apple.weather", + @"com.alipay.iphoneclient", + @"com.taobao.taobao4iphone", + @"com.autonavi.minimap", + @"com.360buy.jdmobile", + @"com.jd.jrapp", + @"com.taobao.fleamarket", + @"com.tmall.wireless", + @"com.alibaba.wireless", + @"com.cainiao.Cainiao4iPhone", + @"com.hpbr.bosszhipin", + @"com.xingin.discover", + @"com.sina.weibo", + @"com.zhihu.ios", + @"com.baidu.searchbox", + @"com.baidu.map", + @"com.baidu.netdisk", + @"com.baidu.tieba", + @"com.xiaojukeji.didi", + @"ctrip.com", + @"com.qunar.iphoneclient", + @"com.meituan.imeituan", + @"com.meituan.waimai", + @"com.dianping.dpscope", + @"me.ele.ios.eleme", + @"com.netease.cloudmusic", + @"com.qiyi.iphone", + @"com.youku.YouKu", + @"com.tencent.live4iphone", + @"com.tencent.map", + @"com.tencent.mttlite", + @"com.tencent.QQMusic", + @"com.tencent.qqmail", + @"com.tencent.karaoke", + @"com.laiwang.DingTalk", + @"com.tencent.ww", + @"com.larksuite.Lark", + @"com.kingsoft.wpsoffice", + @"com.xunlei.download", + @"cmb.pb", + @"com.icbc.iphoneclient", + @"com.ccb.ccbMobileBank", + @"com.abchina.iphone.abchina", + @"com.bocmbci.bocmbci", + @"cn.com.spdb.mobilebank.per", + @"com.ecitic.bank.mobile", + @"com.pingan.paces.ccms", + @"com.pingan.pabank", + @"com.google.ios.youtube", + @"com.ss.iphone.ugc.Aweme", + @"com.kuaishou.gifmaker", + @"tv.danmaku.biliblue", + @"tv.danmaku.bilianime", + @"com.tencent.xin", + @"com.tencent.mqq", + @"com.xunmeng.pinduoduo", + @"com.github.stormbreaker.prod", + @"com.liguangming.Shadowrocket", + @"com.atebits.Tweetie2", + @"com.autonavi.amap", + ]; + }); + return bundles; +} + +static NSString *themer_join_strings_for_log(id strings, NSUInteger limit) +{ + if (![strings respondsToSelector:@selector(allObjects)] && + ![strings respondsToSelector:@selector(countByEnumeratingWithState:objects:count:)]) { + return @""; + } + + NSArray *raw = [strings respondsToSelector:@selector(allObjects)] + ? [strings allObjects] + : (NSArray *)strings; + NSMutableArray *items = [NSMutableArray array]; + for (id obj in raw) { + if (![obj isKindOfClass:NSString.class] || [obj length] == 0) continue; + [items addObject:obj]; + } + [items sortUsingSelector:@selector(compare:)]; + + NSUInteger total = items.count; + if (limit > 0 && items.count > limit) { + items = [[items subarrayWithRange:NSMakeRange(0, limit)] mutableCopy]; + [items addObject:[NSString stringWithFormat:@"...(+%lu)", (unsigned long)(total - limit)]]; + } + return [items componentsJoinedByString:@","]; +} + +static NSString *themer_theme_path_for_bundle(NSDictionary *pathByBundle, + NSString *bundle) +{ + if (![bundle isKindOfClass:NSString.class] || bundle.length == 0) return nil; + NSString *path = pathByBundle[bundle]; + if (!path) path = pathByBundle[bundle.lowercaseString]; + return path; +} + +static uint64_t themer_lookup_cached(const char *bundle) +{ + if (!bundle || !bundle[0]) return 0; + for (int i = 0; i < gThemerCacheCount; i++) { + if (strcmp(gThemerCache[i].bundle, bundle) == 0) { + return gThemerCache[i].image; + } + } + return 0; +} + +static ThemerEntry *themer_lookup_entry(const char *bundle) +{ + if (!bundle || !bundle[0]) return NULL; + for (int i = 0; i < gThemerCacheCount; i++) { + if (strcmp(gThemerCache[i].bundle, bundle) == 0) { + return &gThemerCache[i]; + } + } + return NULL; +} + +static void themer_cache_image(const char *bundle, uint64_t image) +{ + if (!bundle || !bundle[0] || !r_is_objc_ptr(image)) return; + if (gThemerCacheCount >= kThemerMaxCache) return; + ThemerEntry *e = &gThemerCache[gThemerCacheCount++]; + snprintf(e->bundle, sizeof(e->bundle), "%s", bundle); + e->image = image; + e->dataSource = 0; + e->iconServicesSeeded = false; +} + +static void themer_cache_icon_bundle(uint64_t icon, const char *bundle) +{ + if (!r_is_objc_ptr(icon) || !bundle || !bundle[0]) return; + for (int i = 0; i < gThemerIconBundleCacheCount; i++) { + if (gThemerIconBundleCache[i].icon == icon) { + snprintf(gThemerIconBundleCache[i].bundle, + sizeof(gThemerIconBundleCache[i].bundle), + "%s", bundle); + return; + } + } + if (gThemerIconBundleCacheCount >= kThemerMaxIconBundleCache) return; + ThemerIconBundleEntry *e = &gThemerIconBundleCache[gThemerIconBundleCacheCount++]; + e->icon = icon; + snprintf(e->bundle, sizeof(e->bundle), "%s", bundle); +} + +static bool themer_lookup_icon_bundle(uint64_t icon, char *out, size_t outLen) +{ + if (!r_is_objc_ptr(icon) || !out || outLen == 0) return false; + for (int i = 0; i < gThemerIconBundleCacheCount; i++) { + if (gThemerIconBundleCache[i].icon == icon && + gThemerIconBundleCache[i].bundle[0]) { + snprintf(out, outLen, "%s", gThemerIconBundleCache[i].bundle); + return out[0] != '\0'; + } + } + return false; +} + +static void themer_reset_icon_bundle_cache(void) +{ + for (int i = 0; i < kThemerMaxIconBundleCache; i++) { + gThemerIconBundleCache[i].icon = 0; + gThemerIconBundleCache[i].bundle[0] = '\0'; + } + gThemerIconBundleCacheCount = 0; +} + +// Read a remote ObjC object's class name into a local C buffer. +static void themer_read_class_name(uint64_t obj, char *out, size_t outLen) +{ + if (!out || outLen == 0) return; + out[0] = '\0'; + if (!r_is_objc_ptr(obj)) return; + uint64_t cls = r_dlsym_call(R_TIMEOUT, "object_getClass", obj, 0, 0, 0, 0, 0, 0, 0); + if (!r_is_objc_ptr(cls)) return; + uint64_t name = r_dlsym_call(R_TIMEOUT, "class_getName", cls, 0, 0, 0, 0, 0, 0, 0); + if (!name) return; + uint64_t heap = r_dlsym_call(R_TIMEOUT, "strdup", name, 0, 0, 0, 0, 0, 0, 0); + if (!heap) return; + if (remote_read(heap, out, outLen - 1)) out[outLen - 1] = '\0'; + r_free(heap); +} + +static void themer_read_class_object_name(uint64_t cls, char *out, size_t outLen) +{ + if (!out || outLen == 0) return; + out[0] = '\0'; + if (!r_is_objc_ptr(cls)) return; + uint64_t name = r_dlsym_call(R_TIMEOUT, "class_getName", + cls, 0, 0, 0, 0, 0, 0, 0); + if (!name) return; + uint64_t heap = r_dlsym_call(R_TIMEOUT, "strdup", + name, 0, 0, 0, 0, 0, 0, 0); + if (!heap) return; + if (remote_read(heap, out, outLen - 1)) out[outLen - 1] = '\0'; + r_free(heap); +} + +static uint64_t themer_lookup_class(const char *name) +{ + if (!name || !name[0]) return 0; + uint64_t s = r_alloc_str(name); + if (!s) return 0; + uint64_t cls = r_dlsym_call(R_TIMEOUT, "objc_lookUpClass", + s, 0, 0, 0, 0, 0, 0, 0); + r_free(s); + return cls; +} + +static uint64_t themer_method_imp(uint64_t cls, const char *selName) +{ + if (!r_is_objc_ptr(cls) || !selName) return 0; + uint64_t sel = r_sel(selName); + if (!sel) return 0; + uint64_t method = r_dlsym_call(R_TIMEOUT, "class_getInstanceMethod", + cls, sel, 0, 0, 0, 0, 0, 0); + if (!method) return 0; + return r_dlsym_call(R_TIMEOUT, "method_getImplementation", + method, 0, 0, 0, 0, 0, 0, 0); +} + +static bool themer_add_method(uint64_t cls, const char *selName, + uint64_t imp, const char *types) +{ + if (!r_is_objc_ptr(cls) || !selName || !imp || !types) return false; + uint64_t sel = r_sel(selName); + uint64_t typeStr = r_alloc_str(types); + if (!sel || !typeStr) { + if (typeStr) r_free(typeStr); + return false; + } + uint64_t ok = r_dlsym_call(R_TIMEOUT, "class_addMethod", + cls, sel, imp, typeStr, 0, 0, 0, 0); + r_free(typeStr); + return (ok & 0xff) != 0; +} + +static bool themer_add_methods(uint64_t cls, const char **sels, int count, + uint64_t imp, const char *types) +{ + if (!r_is_objc_ptr(cls) || !sels || count <= 0 || !imp || !types) return false; + bool ok = true; + for (int i = 0; i < count; i++) { + ok = themer_add_method(cls, sels[i], imp, types) && ok; + } + return ok; +} + +static uint64_t themer_remote_symbol_addr(const char *name) +{ + if (!name || !name[0]) return 0; + uint64_t remoteName = r_alloc_str(name); + if (!remoteName) return 0; + uint64_t sym = r_dlsym_call(R_TIMEOUT, "dlsym", + (uint64_t)-2, remoteName, 0, 0, 0, 0, 0, 0); + r_free(remoteName); + return sym; +} + +static bool themer_ensure_iconservices_loaded(void) +{ + if (r_is_objc_ptr(themer_lookup_class("ISBundleIdentifierIcon")) && + r_is_objc_ptr(themer_lookup_class("ISImageDescriptor")) && + r_is_objc_ptr(themer_lookup_class("ISIconManager")) && + r_is_objc_ptr(themer_lookup_class("IFImage"))) { + return true; + } + + uint64_t foundationPath = r_alloc_str("/System/Library/PrivateFrameworks/IconFoundation.framework/IconFoundation"); + if (foundationPath) { + r_dlsym_call(R_TIMEOUT, "dlopen", foundationPath, 1, 0, 0, 0, 0, 0, 0); + r_free(foundationPath); + } + + uint64_t path = r_alloc_str("/System/Library/PrivateFrameworks/IconServices.framework/IconServices"); + if (!path) return false; + uint64_t handle = r_dlsym_call(R_TIMEOUT, "dlopen", path, 1, 0, 0, 0, 0, 0, 0); + r_free(path); + (void)handle; + + return r_is_objc_ptr(themer_lookup_class("ISBundleIdentifierIcon")) && + r_is_objc_ptr(themer_lookup_class("ISImageDescriptor")) && + r_is_objc_ptr(themer_lookup_class("ISIconManager")) && + r_is_objc_ptr(themer_lookup_class("IFImage")); +} + +static NSData *themer_rounded_png_data(NSData *bytes, const char *label) +{ + if (!bytes || bytes.length == 0 || bytes.length > kThemerMaxPngBytes) return bytes; + + @autoreleasepool { + UIImage *src = [UIImage imageWithData:bytes]; + CGImageRef cg = src.CGImage; + if (!src || !cg) return bytes; + + size_t width = CGImageGetWidth(cg); + size_t height = CGImageGetHeight(cg); + if (width < 2 || height < 2) return bytes; + + CGSize size = CGSizeMake((CGFloat)width, (CGFloat)height); + UIGraphicsImageRendererFormat *format = [UIGraphicsImageRendererFormat defaultFormat]; + format.scale = 1.0; + format.opaque = NO; + + CGFloat radius = (CGFloat)MIN(width, height) * 0.225; + UIGraphicsImageRenderer *renderer = + [[UIGraphicsImageRenderer alloc] initWithSize:size format:format]; + UIImage *rounded = [renderer imageWithActions:^(UIGraphicsImageRendererContext *ctx) { + (void)ctx; + CGRect rect = CGRectMake(0, 0, size.width, size.height); + [[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:radius] addClip]; + [src drawInRect:rect]; + }]; + + NSData *out = UIImagePNGRepresentation(rounded); + if (out.length > 0 && out.length <= kThemerMaxPngBytes) return out; + + if (out.length > kThemerMaxPngBytes) { + printf("[THEMER] rounded PNG too large bundle=%s rounded=%lu original=%lu cap=%zu\n", + label ?: "?", + (unsigned long)out.length, + (unsigned long)bytes.length, + kThemerMaxPngBytes); + } + return bytes; + } +} + +static double themer_screen_scale(void) +{ + double scale = 3.0; + uint64_t UIScreen = r_class("UIScreen"); + uint64_t screen = r_is_objc_ptr(UIScreen) + ? r_msg2(UIScreen, "mainScreen", 0, 0, 0, 0) : 0; + if (r_is_objc_ptr(screen) && r_responds_main(screen, "scale")) { + uint64_t bits = r_msg2_main(screen, "scale", 0, 0, 0, 0); + memcpy(&scale, &bits, sizeof(scale)); + } + if (scale < 1.0 || scale > 4.0) scale = 3.0; + return scale; +} + +static uint64_t themer_make_is_descriptor(double pointSize, + double scale, + int64_t appearance, + uint64_t variant, + bool useVariantFactory) +{ + uint64_t descCls = themer_lookup_class("ISImageDescriptor"); + if (!r_is_objc_ptr(descCls)) return 0; + + uint64_t desc = 0; + if (useVariantFactory && + r_responds_main(descCls, "imageDescriptorWithIconVariant:options:")) { + desc = r_msg2_main(descCls, "imageDescriptorWithIconVariant:options:", + variant, 0, 0, 0); + if (r_is_objc_ptr(desc)) { + desc = r_msg2(desc, "retain", 0, 0, 0, 0); + } + } + + if (!r_is_objc_ptr(desc)) { + uint64_t alloc = r_msg2(descCls, "alloc", 0, 0, 0, 0); + struct { double width; double height; } size = { pointSize, pointSize }; + desc = r_is_objc_ptr(alloc) + ? r_msg2_main_raw(alloc, "initWithSize:scale:", + &size, sizeof(size), + &scale, sizeof(scale), + NULL, 0, NULL, 0) + : 0; + } + if (!r_is_objc_ptr(desc)) return 0; + + struct { double width; double height; } size = { pointSize, pointSize }; + if (r_responds_main(desc, "setSize:")) { + r_msg2_main_raw(desc, "setSize:", + &size, sizeof(size), + NULL, 0, NULL, 0, NULL, 0); + } + if (r_responds_main(desc, "setScale:")) { + r_msg2_main_raw(desc, "setScale:", + &scale, sizeof(scale), + NULL, 0, NULL, 0, NULL, 0); + } + if (r_responds_main(desc, "setAppearance:")) { + r_msg2_main(desc, "setAppearance:", (uint64_t)appearance, 0, 0, 0); + } + if (r_responds_main(desc, "setAppearanceVariant:")) { + r_msg2_main(desc, "setAppearanceVariant:", (uint64_t)appearance, 0, 0, 0); + } + if (r_responds_main(desc, "setIgnoreCache:")) { + r_msg2_main(desc, "setIgnoreCache:", 0, 0, 0, 0); + } + return desc; +} + +static uint64_t themer_make_if_image(uint64_t uiImage) +{ + if (!r_is_objc_ptr(uiImage)) return 0; + + uint64_t IFImage = themer_lookup_class("IFImage"); + if (!r_is_objc_ptr(IFImage)) return 0; + + uint64_t cgImage = r_responds_main(uiImage, "CGImage") + ? r_msg2_main(uiImage, "CGImage", 0, 0, 0, 0) : 0; + if (!cgImage) return 0; + + double scale = themer_screen_scale(); + if (r_responds_main(uiImage, "scale")) { + uint64_t bits = r_msg2_main(uiImage, "scale", 0, 0, 0, 0); + memcpy(&scale, &bits, sizeof(scale)); + if (scale < 1.0 || scale > 4.0) scale = themer_screen_scale(); + } + + uint64_t alloc = r_msg2(IFImage, "alloc", 0, 0, 0, 0); + if (!r_is_objc_ptr(alloc)) return 0; + return r_msg2_main_raw(alloc, "initWithCGImage:scale:", + &cgImage, sizeof(cgImage), + &scale, sizeof(scale), + NULL, 0, NULL, 0); +} + +static int themer_seed_iconservices_cache(const char *bundle, + uint64_t image, + double pointSize) +{ + if (!bundle || !bundle[0] || !r_is_objc_ptr(image)) return 0; + if (!themer_ensure_iconservices_loaded()) return 0; + + uint64_t bid = r_nsstr_retained(bundle); + uint64_t iconCls = themer_lookup_class("ISBundleIdentifierIcon"); + uint64_t mgrCls = themer_lookup_class("ISIconManager"); + if (!r_is_objc_ptr(bid) || !r_is_objc_ptr(iconCls) || !r_is_objc_ptr(mgrCls)) { + if (r_is_objc_ptr(bid)) r_msg2(bid, "release", 0, 0, 0, 0); + return 0; + } + + uint64_t iconAlloc = r_msg2(iconCls, "alloc", 0, 0, 0, 0); + uint64_t icon = r_is_objc_ptr(iconAlloc) + ? r_msg2_main(iconAlloc, "initWithBundleIdentifier:", bid, 0, 0, 0) + : 0; + r_msg2(bid, "release", 0, 0, 0, 0); + if (!r_is_objc_ptr(icon)) return 0; + + uint64_t mgr = r_msg2(mgrCls, "sharedInstance", 0, 0, 0, 0); + uint64_t createdIcon = icon; + uint64_t registered = (r_is_objc_ptr(mgr) && + r_responds_main(mgr, "findOrRegisterIcon:")) + ? r_msg2_main(mgr, "findOrRegisterIcon:", icon, 0, 0, 0) : 0; + if (r_is_objc_ptr(registered) && registered != icon) { + r_msg2(icon, "release", 0, 0, 0, 0); + icon = registered; + } + + uint64_t imageCache = r_responds_main(icon, "imageCache") + ? r_msg2_main(icon, "imageCache", 0, 0, 0, 0) : 0; + if (!r_is_objc_ptr(imageCache) || + !r_responds_main(imageCache, "setImage:forDescriptor:")) { + if (icon == createdIcon) r_msg2(icon, "release", 0, 0, 0, 0); + return 0; + } + + uint64_t cacheImage = themer_make_if_image(image); + if (!r_is_objc_ptr(cacheImage)) { + if (icon == createdIcon) r_msg2(icon, "release", 0, 0, 0, 0); + return 0; + } + + double scale = themer_screen_scale(); + if (pointSize < 20.0 || pointSize > 120.0) pointSize = 60.0; + + double sizes[2] = { pointSize, 60.0 }; + int seeded = 0; + int readbackHits = 0; + bool checkedReadback = false; + for (int s = 0; s < 2; s++) { + if (s == 1 && sizes[1] == sizes[0]) continue; + for (int appearance = 0; appearance <= 1; appearance++) { + for (int variant = 0; variant < 2; variant++) { + uint64_t desc = themer_make_is_descriptor(sizes[s], scale, + appearance, + (uint64_t)variant, + variant != 0); + if (!r_is_objc_ptr(desc)) continue; + r_msg2_main(imageCache, "setImage:forDescriptor:", + cacheImage, desc, 0, 0); + seeded++; + + uint64_t readback = (!checkedReadback && + r_responds_main(icon, "imageForDescriptor:")) + ? r_msg2_main(icon, "imageForDescriptor:", desc, 0, 0, 0) : 0; + checkedReadback = true; + if (readback == cacheImage) readbackHits++; + r_msg2(desc, "release", 0, 0, 0, 0); + } + } + } + + if (!gThemerIconServicesProbeLogged) { + gThemerIconServicesProbeLogged = true; + uint64_t cachePath = 0; + uint64_t iconCache = (r_is_objc_ptr(mgr) && r_responds_main(mgr, "iconCache")) + ? r_msg2_main(mgr, "iconCache", 0, 0, 0, 0) : 0; + if (r_is_objc_ptr(iconCache) && r_responds_main(iconCache, "cachePath")) { + cachePath = r_msg2_main(iconCache, "cachePath", 0, 0, 0, 0); + } + char cachePathStr[240] = {0}; + if (r_is_objc_ptr(cachePath)) { + r_read_nsstring(cachePath, cachePathStr, sizeof(cachePathStr)); + } + printf("[THEMER] IconServices seed probe bundle=%s icon=0x%llx imageCache=0x%llx " + "ifImage=0x%llx seeded=%d readback=%d pointSize=%.1f scale=%.1f cachePath=\"%s\"\n", + bundle, + (unsigned long long)icon, + (unsigned long long)imageCache, + (unsigned long long)cacheImage, + seeded, readbackHits, + pointSize, scale, + cachePathStr); + } + + r_msg2(cacheImage, "release", 0, 0, 0, 0); + if (icon == createdIcon) r_msg2(icon, "release", 0, 0, 0, 0); + return seeded; +} + +// Ships PNG bytes into SB and returns a retained SB UIImage* (+1 owned by +// caller). `label` is just for log output (e.g. "com.apple.mobilesafari"). +static uint64_t themer_build_remote_uiimage_from_data(NSData *bytes, const char *label) +{ + if (!bytes || bytes.length == 0 || bytes.length > kThemerMaxPngBytes) { + printf("[THEMER] PNG size out of range label=%s size=%lu cap=%zu\n", + label ?: "?", + (unsigned long)bytes.length, + kThemerMaxPngBytes); + return 0; + } + + uint64_t remoteBuf = r_dlsym_call(R_TIMEOUT, "malloc", + bytes.length, 0, 0, 0, 0, 0, 0, 0); + if (!remoteBuf) { + printf("[THEMER] remote malloc(%lu) failed label=%s\n", + (unsigned long)bytes.length, label ?: "?"); + return 0; + } + if (!remote_write(remoteBuf, bytes.bytes, bytes.length)) { + printf("[THEMER] remote_write failed buf=0x%llx size=%lu label=%s\n", + (unsigned long long)remoteBuf, (unsigned long)bytes.length, label ?: "?"); + r_free(remoteBuf); + return 0; + } + + uint64_t NSDataCls = r_class("NSData"); + uint64_t UIImageCls = r_class("UIImage"); + if (!r_is_objc_ptr(NSDataCls) || !r_is_objc_ptr(UIImageCls)) { + printf("[THEMER] missing class NSData=0x%llx UIImage=0x%llx\n", + (unsigned long long)NSDataCls, + (unsigned long long)UIImageCls); + r_free(remoteBuf); + return 0; + } + + uint64_t dataAlloc = r_msg2(NSDataCls, "alloc", 0, 0, 0, 0); + uint64_t nsdata = r_is_objc_ptr(dataAlloc) + ? r_msg2(dataAlloc, "initWithBytes:length:", remoteBuf, bytes.length, 0, 0) + : 0; + r_free(remoteBuf); // NSData copied the bytes + + if (!r_is_objc_ptr(nsdata)) { + printf("[THEMER] NSData init failed label=%s\n", label ?: "?"); + return 0; + } + + uint64_t image = r_msg2(UIImageCls, "imageWithData:", nsdata, 0, 0, 0); + if (r_is_objc_ptr(image)) { + r_msg2(image, "retain", 0, 0, 0, 0); + } + r_msg2(nsdata, "release", 0, 0, 0, 0); + + if (!r_is_objc_ptr(image)) { + printf("[THEMER] UIImage decode failed for %s (PNG malformed?)\n", + label ?: "?"); + return 0; + } + return image; +} + +static uint64_t themer_ensure_datasource_class(void) +{ + static uint64_t cls = 0; + if (r_is_objc_ptr(cls)) return cls; + + cls = themer_lookup_class("CNDIconLayerDataSource"); + if (r_is_objc_ptr(cls)) return cls; + + uint64_t NSObject = r_class("NSObject"); + if (!r_is_objc_ptr(NSObject)) return 0; + + uint64_t name = r_alloc_str("CNDIconLayerDataSource"); + if (!name) return 0; + cls = r_dlsym_call(R_TIMEOUT, "objc_allocateClassPair", + NSObject, name, 0, 0, 0, 0, 0, 0); + r_free(name); + if (!r_is_objc_ptr(cls)) return 0; + + uint64_t getAssocImp = themer_remote_symbol_addr("objc_getAssociatedObject"); + bool ok = getAssocImp && + themer_add_method(cls, "icon:imageWithInfo:traitCollection:options:", + getAssocImp, "@@:@@@Q") && + themer_add_method(cls, "icon:layerWithInfo:traitCollection:options:", + getAssocImp, "@@:@@@Q") && + themer_add_method(cls, "icon:displayNameForLocation:", + getAssocImp, "@@:@q") && + themer_add_method(cls, "icon:accessibilityLabelForLocation:", + getAssocImp, "@@:@q"); + + r_dlsym_call(R_TIMEOUT, "objc_registerClassPair", + cls, 0, 0, 0, 0, 0, 0, 0); + + if (!ok) { + printf("[THEMER] model graft: datasource class incomplete getAssoc=0x%llx\n", + (unsigned long long)getAssocImp); + return 0; + } + return cls; +} + +static double themer_icon_width_for_view(uint64_t iconView) +{ + uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); + if (!r_is_objc_ptr(iiv) && r_responds_main(iconView, "_iconImageView")) { + iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); + } + uint64_t layer = r_is_objc_ptr(iiv) && r_responds_main(iiv, "layer") + ? r_msg2_main(iiv, "layer", 0, 0, 0, 0) : 0; + struct { double x, y, w, h; } b = {0}; + if (r_is_objc_ptr(layer) && + r_responds_main(layer, "bounds") && + r_msg2_main_struct_ret(layer, "bounds", &b, sizeof(b), + NULL, 0, NULL, 0, NULL, 0, NULL, 0) && + b.w > 1.0) { + return b.w; + } + return 60.0; +} + +static uint64_t themer_icon_image_view_for_iconview(uint64_t iconView) +{ + if (!r_is_objc_ptr(iconView)) return 0; + uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); + if (!r_is_objc_ptr(iiv) && r_responds_main(iconView, "_iconImageView")) { + iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); + } + return r_is_objc_ptr(iiv) ? iiv : 0; +} + +static bool themer_icon_is_application_icon(uint64_t icon) +{ + if (!r_is_objc_ptr(icon)) return false; + char cls[96] = {0}; + themer_read_class_name(icon, cls, sizeof(cls)); + return strstr(cls, "ApplicationIcon") != NULL && + strstr(cls, "WidgetIcon") == NULL && + strstr(cls, "FolderIcon") == NULL; +} + +static uint64_t themer_application_icon_for_iconview(uint64_t iconView) +{ + if (!r_is_objc_ptr(iconView) || !r_responds_main(iconView, "icon")) return 0; + uint64_t icon = r_msg2_main(iconView, "icon", 0, 0, 0, 0); + return themer_icon_is_application_icon(icon) ? icon : 0; +} + +static bool themer_should_pin_dynamic_overlay(const char *bundle, uint64_t iconView) +{ + int major = themer_host_ios_major(); + if (major > 0 && major < 26) return false; + + if (!r_is_objc_ptr(themer_application_icon_for_iconview(iconView))) return false; + + if (!bundle || + (strcmp(bundle, "com.apple.mobiletimer") != 0 && + strcmp(bundle, "com.apple.mobilecal") != 0)) { + return false; + } + + // Clock/Calendar use live renderers; only pin over their real app icon. + // Widget icons can share nearby image-view classes and must never receive + // these overlays. + uint64_t iiv = themer_icon_image_view_for_iconview(iconView); + char cls[128] = {0}; + themer_read_class_name(iiv, cls, sizeof(cls)); + return strstr(cls, "Clock") != NULL || + strstr(cls, "Calendar") != NULL; +} + +static bool themer_prefers_view_level_overlay(const char *bundle) +{ + if (bundle && + (strcmp(bundle, "com.apple.mobiletimer") == 0 || + strcmp(bundle, "com.apple.mobilecal") == 0)) { + return true; + } + return false; +} + +static bool themer_needs_visible_push(const char *bundle) +{ + (void)bundle; + // Keep SnowBoard Lite on the model/cache path. The visible setter path can + // draw an extra image layer above SpringBoard's own rounded icon mask. + return false; +} + +static NSDictionary *themer_normalized_theme_data(NSDictionary *input) +{ + if (input.count == 0) return @{}; + + NSMutableDictionary *out = [NSMutableDictionary dictionaryWithCapacity:input.count]; + NSUInteger aliases = 0; + for (NSString *key in input) { + NSData *data = input[key]; + if (![key isKindOfClass:NSString.class] || + ![data isKindOfClass:NSData.class] || + data.length == 0) { + continue; + } + + BOOL usedAlias = NO; + NSArray *mappedTargets = CNDMappedIOSBundleIDsForIconName(key, &usedAlias); + if (mappedTargets.count == 0) mappedTargets = @[key]; + for (NSString *target in mappedTargets) { + if (target.length == 0 || out[target]) continue; + out[target] = data; + if (usedAlias) aliases++; + } + } + + if (aliases > 0 || out.count != input.count) { + printf("[THEMER] normalized theme data entries=%lu -> %lu aliases=%lu\n", + (unsigned long)input.count, + (unsigned long)out.count, + (unsigned long)aliases); + } + return out; +} + +static bool themer_clear_overlay_on_object(uint64_t obj, uint64_t key) +{ + if (!r_is_objc_ptr(obj) || !key) return false; + + uint64_t overlay = r_dlsym_call(R_TIMEOUT, "objc_getAssociatedObject", + obj, key, 0, 0, 0, 0, 0, 0); + if (!r_is_objc_ptr(overlay)) return false; + + if (r_responds_main(overlay, "setHidden:")) { + r_msg2_main(overlay, "setHidden:", 1, 0, 0, 0); + } + if (r_responds_main(overlay, "removeFromSuperview")) { + r_msg2_main(overlay, "removeFromSuperview", 0, 0, 0, 0); + } + r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", + obj, key, 0, 1, 0, 0, 0, 0); + return true; +} + +static bool themer_clear_dynamic_overlay(uint64_t iconView) +{ + if (!r_is_objc_ptr(iconView)) return false; + uint64_t key = r_sel("cnd_themer_pinned_overlay"); + if (!key) return false; + + bool cleared = themer_clear_overlay_on_object(iconView, key); + uint64_t iiv = themer_icon_image_view_for_iconview(iconView); + cleared = themer_clear_overlay_on_object(iiv, key) || cleared; + return cleared; +} + +static bool themer_clear_visible_override(uint64_t iconView) +{ + if (!r_is_objc_ptr(iconView) || + !r_responds_main(iconView, "setOverrideImage:")) { + return false; + } + + uint64_t cur = r_responds_main(iconView, "overrideImage") + ? r_msg2_main(iconView, "overrideImage", 0, 0, 0, 0) : 0; + if (!r_is_objc_ptr(cur)) return false; + + r_msg2_main(iconView, "setOverrideImage:", 0, 0, 0, 0); + if (r_responds_main(iconView, "setOverrideIconImageAppearance:")) { + r_msg2_main(iconView, "setOverrideIconImageAppearance:", 0, 0, 0, 0); + } + if (r_responds_main(iconView, "_updateIconImageViewAnimated:")) { + r_msg2_main(iconView, "_updateIconImageViewAnimated:", 0, 0, 0, 0); + } else if (r_responds_main(iconView, + "_updateAfterManualIconImageInfoChangeInvalidatingLayout:")) { + r_msg2_main(iconView, + "_updateAfterManualIconImageInfoChangeInvalidatingLayout:", + 0, 0, 0, 0); + } + return true; +} + +static bool themer_pin_dynamic_overlay(uint64_t iconView, uint64_t image, + const char *bundle) +{ + if (!r_is_objc_ptr(iconView) || !r_is_objc_ptr(image)) return false; + + uint64_t iiv = themer_icon_image_view_for_iconview(iconView); + if (!r_is_objc_ptr(iiv)) return false; + bool viewLevel = themer_prefers_view_level_overlay(bundle); + uint64_t overlayParent = viewLevel ? iconView : iiv; + + uint64_t key = r_sel("cnd_themer_pinned_overlay"); + if (!key) return false; + + uint64_t overlay = r_dlsym_call(R_TIMEOUT, "objc_getAssociatedObject", + iconView, key, 0, 0, 0, 0, 0, 0); + uint64_t imageViewOverlay = r_dlsym_call(R_TIMEOUT, "objc_getAssociatedObject", + iiv, key, 0, 0, 0, 0, 0, 0); + if (!r_is_objc_ptr(overlay) && r_is_objc_ptr(imageViewOverlay)) { + overlay = imageViewOverlay; + r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", + iconView, key, overlay, 1, 0, 0, 0, 0); + } else if (r_is_objc_ptr(overlay) && r_is_objc_ptr(imageViewOverlay) && + overlay != imageViewOverlay) { + themer_clear_overlay_on_object(iiv, key); + } + + bool created = false; + if (!r_is_objc_ptr(overlay)) { + uint64_t overlayCls = r_class("UIImageView"); + uint64_t alloc = r_is_objc_ptr(overlayCls) + ? r_msg2(overlayCls, "alloc", 0, 0, 0, 0) : 0; + overlay = r_is_objc_ptr(alloc) + ? r_msg2_main(alloc, "initWithImage:", image, 0, 0, 0) : 0; + if (!r_is_objc_ptr(overlay)) return false; + + r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", + iconView, key, overlay, 1, 0, 0, 0, 0); + r_msg2(overlay, "release", 0, 0, 0, 0); + created = true; + } else if (r_responds_main(overlay, "setImage:")) { + r_msg2_main(overlay, "setImage:", image, 0, 0, 0); + } + + r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", + iiv, key, overlay, 1, 0, 0, 0, 0); + if (r_responds_main(overlay, "removeFromSuperview")) { + r_msg2_main(overlay, "removeFromSuperview", 0, 0, 0, 0); + } + if (r_responds_main(overlayParent, "addSubview:")) { + r_msg2_main(overlayParent, "addSubview:", overlay, 0, 0, 0); + } + + struct { double x, y, w, h; } bounds = {0.0, 0.0, 0.0, 0.0}; + if (!r_responds_main(iiv, "bounds") || + !r_msg2_main_struct_ret(iiv, "bounds", + &bounds, sizeof(bounds), + NULL, 0, NULL, 0, NULL, 0, NULL, 0) || + bounds.w <= 1.0 || bounds.h <= 1.0) { + double width = themer_icon_width_for_view(iconView); + bounds.w = width; + bounds.h = width; + } + if (viewLevel && + r_responds_main(iiv, "frame")) { + struct { double x, y, w, h; } frame = {0.0, 0.0, 0.0, 0.0}; + if (r_msg2_main_struct_ret(iiv, "frame", + &frame, sizeof(frame), + NULL, 0, NULL, 0, NULL, 0, NULL, 0) && + frame.w > 1.0 && frame.h > 1.0) { + bounds.x = frame.x; + bounds.y = frame.y; + bounds.w = frame.w; + bounds.h = frame.h; + } + } + + if (r_responds_main(overlay, "setFrame:")) { + r_msg2_main_raw(overlay, "setFrame:", + &bounds, sizeof(bounds), + NULL, 0, NULL, 0, NULL, 0); + } + if (r_responds_main(overlay, "setBounds:")) { + struct { double x, y, w, h; } localBounds = {0.0, 0.0, bounds.w, bounds.h}; + r_msg2_main_raw(overlay, "setBounds:", + &localBounds, sizeof(localBounds), + NULL, 0, NULL, 0, NULL, 0); + } + if (r_responds_main(overlay, "setAutoresizingMask:")) { + r_msg2_main(overlay, "setAutoresizingMask:", 18, 0, 0, 0); + } + if (r_responds_main(overlay, "setUserInteractionEnabled:")) { + r_msg2_main(overlay, "setUserInteractionEnabled:", 0, 0, 0, 0); + } + if (r_responds_main(overlay, "setContentMode:")) { + r_msg2_main(overlay, "setContentMode:", 0, 0, 0, 0); + } + if (r_responds_main(overlay, "setHidden:")) { + r_msg2_main(overlay, "setHidden:", 0, 0, 0, 0); + } + if (r_responds_main(overlayParent, "bringSubviewToFront:")) { + r_msg2_main(overlayParent, "bringSubviewToFront:", overlay, 0, 0, 0); + } + + uint64_t layer = r_responds_main(overlay, "layer") + ? r_msg2_main(overlay, "layer", 0, 0, 0, 0) : 0; + if (r_is_objc_ptr(layer)) { + double radius = bounds.w > 1.0 ? bounds.w * 0.225 : 15.0; + if (r_responds_main(layer, "setCornerRadius:")) { + r_msg2_main_raw(layer, "setCornerRadius:", + &radius, sizeof(radius), + NULL, 0, NULL, 0, NULL, 0); + } + if (r_responds_main(layer, "setMasksToBounds:")) { + r_msg2_main(layer, "setMasksToBounds:", 1, 0, 0, 0); + } + } + + static bool logged = false; + if (!logged) { + logged = true; + char iivCls[128] = {0}; + themer_read_class_name(iiv, iivCls, sizeof(iivCls)); + printf("[THEMER] dynamic overlay pinned bundle=%s iconView=0x%llx " + "iiv=0x%llx (%s) overlay=0x%llx viewLevel=%d created=%d\n", + bundle ?: "?", + (unsigned long long)iconView, + (unsigned long long)iiv, + iivCls, + (unsigned long long)overlay, + viewLevel, + created); + } + + return true; +} + +static uint64_t themer_make_datasource(uint64_t image, double width) +{ + if (!r_is_objc_ptr(image)) return 0; + uint64_t dsCls = themer_ensure_datasource_class(); + if (!r_is_objc_ptr(dsCls)) return 0; + + uint64_t alloc = r_msg2(dsCls, "alloc", 0, 0, 0, 0); + uint64_t ds = r_is_objc_ptr(alloc) + ? r_msg2_main(alloc, "init", 0, 0, 0, 0) : 0; + if (!r_is_objc_ptr(ds)) return 0; + + uint64_t layerCls = r_class("CALayer"); + uint64_t layerAlloc = r_is_objc_ptr(layerCls) + ? r_msg2(layerCls, "alloc", 0, 0, 0, 0) : 0; + uint64_t layer = r_is_objc_ptr(layerAlloc) + ? r_msg2_main(layerAlloc, "init", 0, 0, 0, 0) : 0; + if (!r_is_objc_ptr(layer)) { + r_msg2(ds, "release", 0, 0, 0, 0); + return 0; + } + + uint64_t cgImage = r_responds_main(image, "CGImage") + ? r_msg2_main(image, "CGImage", 0, 0, 0, 0) : 0; + if (cgImage && r_responds_main(layer, "setContents:")) { + r_msg2_main(layer, "setContents:", cgImage, 0, 0, 0); + } + + struct { double x, y, w, h; } bounds = {0.0, 0.0, width, width}; + if (r_responds_main(layer, "setBounds:")) { + r_msg2_main_raw(layer, "setBounds:", + &bounds, sizeof(bounds), + NULL, 0, NULL, 0, NULL, 0); + } + + double radius = width * 0.225; + if (r_responds_main(layer, "setCornerRadius:")) { + r_msg2_main_raw(layer, "setCornerRadius:", + &radius, sizeof(radius), + NULL, 0, NULL, 0, NULL, 0); + } + if (r_responds_main(layer, "setMasksToBounds:")) { + r_msg2_main(layer, "setMasksToBounds:", 1, 0, 0, 0); + } + + double scale = 3.0; + uint64_t UIScreen = r_class("UIScreen"); + uint64_t screen = r_is_objc_ptr(UIScreen) + ? r_msg2(UIScreen, "mainScreen", 0, 0, 0, 0) : 0; + if (r_is_objc_ptr(screen) && r_responds_main(screen, "scale")) { + uint64_t bits = r_msg2_main(screen, "scale", 0, 0, 0, 0); + memcpy(&scale, &bits, sizeof(scale)); + } + if (r_responds_main(layer, "setContentsScale:")) { + r_msg2_main_raw(layer, "setContentsScale:", + &scale, sizeof(scale), + NULL, 0, NULL, 0, NULL, 0); + } + + uint64_t imageSel = r_sel("icon:imageWithInfo:traitCollection:options:"); + if (imageSel) { + r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", + ds, imageSel, image, 1, 0, 0, 0, 0); + } + uint64_t layerSel = r_sel("icon:layerWithInfo:traitCollection:options:"); + if (layerSel) { + r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", + ds, layerSel, layer, 1, 0, 0, 0, 0); + } + r_msg2(layer, "release", 0, 0, 0, 0); + return ds; +} + +static uint64_t themer_make_icon_layer(uint64_t image, double width) +{ + if (!r_is_objc_ptr(image)) return 0; + + uint64_t layerCls = r_class("CALayer"); + uint64_t layerAlloc = r_is_objc_ptr(layerCls) + ? r_msg2(layerCls, "alloc", 0, 0, 0, 0) : 0; + uint64_t layer = r_is_objc_ptr(layerAlloc) + ? r_msg2_main(layerAlloc, "init", 0, 0, 0, 0) : 0; + if (!r_is_objc_ptr(layer)) return 0; + + uint64_t cgImage = r_responds_main(image, "CGImage") + ? r_msg2_main(image, "CGImage", 0, 0, 0, 0) : 0; + if (cgImage && r_responds_main(layer, "setContents:")) { + r_msg2_main(layer, "setContents:", cgImage, 0, 0, 0); + } + + struct { double x, y, w, h; } bounds = {0.0, 0.0, width, width}; + if (r_responds_main(layer, "setBounds:")) { + r_msg2_main_raw(layer, "setBounds:", + &bounds, sizeof(bounds), + NULL, 0, NULL, 0, NULL, 0); + } + + double radius = width * 0.225; + if (r_responds_main(layer, "setCornerRadius:")) { + r_msg2_main_raw(layer, "setCornerRadius:", + &radius, sizeof(radius), + NULL, 0, NULL, 0, NULL, 0); + } + if (r_responds_main(layer, "setMasksToBounds:")) { + r_msg2_main(layer, "setMasksToBounds:", 1, 0, 0, 0); + } + + double scale = 3.0; + uint64_t UIScreen = r_class("UIScreen"); + uint64_t screen = r_is_objc_ptr(UIScreen) + ? r_msg2(UIScreen, "mainScreen", 0, 0, 0, 0) : 0; + if (r_is_objc_ptr(screen) && r_responds_main(screen, "scale")) { + uint64_t bits = r_msg2_main(screen, "scale", 0, 0, 0, 0); + memcpy(&scale, &bits, sizeof(scale)); + } + if (r_responds_main(layer, "setContentsScale:")) { + r_msg2_main_raw(layer, "setContentsScale:", + &scale, sizeof(scale), + NULL, 0, NULL, 0, NULL, 0); + } + + return layer; +} + +static uint64_t themer_copy_icon_label(uint64_t icon) +{ + if (!r_is_objc_ptr(icon)) return 0; + + uint64_t label = 0; + if (r_responds_main(icon, "displayNameForLocation:")) { + label = r_msg2_main(icon, "displayNameForLocation:", 0, 0, 0, 0); + } + if (!r_is_objc_ptr(label) && r_responds_main(icon, "displayName")) { + label = r_msg2_main(icon, "displayName", 0, 0, 0, 0); + } + if (!r_is_objc_ptr(label) && r_responds_main(icon, "application")) { + uint64_t app = r_msg2_main(icon, "application", 0, 0, 0, 0); + if (r_is_objc_ptr(app) && r_responds_main(app, "displayName")) { + label = r_msg2_main(app, "displayName", 0, 0, 0, 0); + } + } + if (!r_is_objc_ptr(label)) return 0; + return r_msg2(label, "copy", 0, 0, 0, 0); +} + +static void themer_seed_datasource_metadata(uint64_t ds, uint64_t icon) +{ + if (!r_is_objc_ptr(ds) || !r_is_objc_ptr(icon)) return; + + uint64_t label = themer_copy_icon_label(icon); + if (!r_is_objc_ptr(label)) return; + + uint64_t displaySel = r_sel("icon:displayNameForLocation:"); + if (displaySel) { + r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", + ds, displaySel, label, 1, 0, 0, 0, 0); + } + uint64_t axSel = r_sel("icon:accessibilityLabelForLocation:"); + if (axSel) { + r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", + ds, axSel, label, 1, 0, 0, 0, 0); + } + r_msg2(label, "release", 0, 0, 0, 0); +} + +static uint64_t themer_ensure_model_class(uint64_t currentClass) +{ + if (!r_is_objc_ptr(currentClass)) return 0; + + uint64_t baseClass = currentClass; + char clsName[160] = {0}; + themer_read_class_object_name(baseClass, clsName, sizeof(clsName)); + while (strncmp(clsName, "CNDThemed", 9) == 0) { + uint64_t superCls = r_dlsym_call(R_TIMEOUT, "class_getSuperclass", + baseClass, 0, 0, 0, 0, 0, 0, 0); + if (!r_is_objc_ptr(superCls) || superCls == baseClass) break; + baseClass = superCls; + themer_read_class_object_name(baseClass, clsName, sizeof(clsName)); + } + if (!clsName[0]) return 0; + + char subName[192] = {0}; + snprintf(subName, sizeof(subName), "CNDThemedV7_%s", clsName); + + uint64_t sub = themer_lookup_class(subName); + if (r_is_objc_ptr(sub)) return sub; + + uint64_t name = r_alloc_str(subName); + if (!name) return 0; + sub = r_dlsym_call(R_TIMEOUT, "objc_allocateClassPair", + baseClass, name, 0, 0, 0, 0, 0, 0); + r_free(name); + if (!r_is_objc_ptr(sub)) return 0; + + uint64_t getAssocImp = themer_remote_symbol_addr("objc_getAssociatedObject"); + + static const char *imageSels[] = { + "makeIconImageWithInfo:traitCollection:context:options:", + "iconImageWithInfo:traitCollection:context:options:", + }; + static const char *imageSels3[] = { + "iconImageWithInfo:traitCollection:options:", + }; + + bool ok = getAssocImp && + themer_add_methods(sub, imageSels, 2, getAssocImp, "@@:@@@Q") && + themer_add_methods(sub, imageSels3, 1, getAssocImp, "@@:@@Q"); + + r_dlsym_call(R_TIMEOUT, "objc_registerClassPair", + sub, 0, 0, 0, 0, 0, 0, 0); + + if (!ok) { + printf("[THEMER] model graft: subclass incomplete %s getAssoc=0x%llx\n", + subName, + (unsigned long long)getAssocImp); + return 0; + } + return sub; +} + +static bool themer_graft_icon_model(uint64_t icon, uint64_t image, + ThemerEntry *entry, uint64_t iconView, + bool *changedOut) +{ + if (changedOut) *changedOut = false; + if (!r_is_objc_ptr(icon) || !r_is_objc_ptr(image) || !entry) return false; + + uint64_t currentClass = r_dlsym_call(R_TIMEOUT, "object_getClass", + icon, 0, 0, 0, 0, 0, 0, 0); + uint64_t themedClass = themer_ensure_model_class(currentClass); + if (!r_is_objc_ptr(themedClass)) return false; + + static const char *imageSels[] = { + "makeIconImageWithInfo:traitCollection:context:options:", + "iconImageWithInfo:traitCollection:context:options:", + "iconImageWithInfo:traitCollection:options:", + }; + for (int i = 0; i < 3; i++) { + uint64_t sel = r_sel(imageSels[i]); + if (!sel) return false; + r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", + icon, sel, image, 1, 0, 0, 0, 0); + } + (void)iconView; + + if (themedClass != currentClass) { + r_dlsym_call(R_TIMEOUT, "object_setClass", + icon, themedClass, 0, 0, 0, 0, 0, 0); + if (changedOut) *changedOut = true; + } + + if (!gThemerModelProbeLogged) { + gThemerModelProbeLogged = true; + printf("[THEMER] model graft: icon=0x%llx class=0x%llx changed=%d imageOnly=1\n", + (unsigned long long)icon, + (unsigned long long)themedClass, + changedOut ? *changedOut : false); + } + + return true; +} + +static int themer_notify_icon_image_changed(uint64_t icon) +{ + if (!r_is_objc_ptr(icon)) return 0; + + int called = 0; + static const char *selectors[] = { + "purgeCachedImages", + "clearCachedImages", + "invalidateIconImageCache", + "_invalidateIconImageCache", + "reloadIconImage", + "_reloadIconImage", + "noteIconImageDidChange", + "_noteIconImageDidChange", + }; + + for (size_t i = 0; i < sizeof(selectors) / sizeof(selectors[0]); i++) { + const char *sel = selectors[i]; + if (!r_responds_main(icon, sel)) continue; + r_msg2_main(icon, sel, 0, 0, 0, 0); + called++; + } + return called; +} + +// Resolve the bundle identifier for an app SBIconView/SBIcon. +static bool themer_read_bundle_for_icon(uint64_t icon, + uint64_t probeIconView, + char *out, size_t outLen) +{ + if (!r_is_objc_ptr(icon) || !out || outLen == 0) return false; + + // Try the SBHApplication path first. On iOS 26 the older leaf identifier + // selectors can report support but return non-NSString/private values. + uint64_t appObj = r_responds(icon, "application") + ? r_msg2(icon, "application", 0, 0, 0, 0) : 0; + if (r_is_objc_ptr(appObj) && r_responds(appObj, "bundleIdentifier")) { + uint64_t bid = r_msg2(appObj, "bundleIdentifier", 0, 0, 0, 0); + if (r_is_objc_ptr(bid) && r_read_nsstring(bid, out, outLen) && out[0]) { + themer_cache_icon_bundle(icon, out); + return true; + } + } + + if (themer_lookup_icon_bundle(icon, out, outLen)) { + static int fallbackLogs = 0; + if (fallbackLogs < 8) { + printf("[THEMER] model bundle fallback icon=0x%llx bundle=%s\n", + (unsigned long long)icon, out); + fallbackLogs++; + } + return true; + } + + // First-iconView verbose probe: keep this to the known-stable application + // path. Calling object_getClass on legacy selector returns can PAC-crash + // SpringBoard when a selector returns a private non-object payload. + static bool probedShape = false; + if (!probedShape) { + probedShape = true; + char ivCls[96] = {0}, iconCls[96] = {0}; + if (r_is_objc_ptr(probeIconView)) themer_read_class_name(probeIconView, ivCls, sizeof(ivCls)); + themer_read_class_name(icon, iconCls, sizeof(iconCls)); + printf("[THEMER] probe iconView class=%s icon=0x%llx class=%s\n", + ivCls, (unsigned long long)icon, iconCls); + if (r_is_objc_ptr(appObj)) { + char appCls[96] = {0}; + themer_read_class_name(appObj, appCls, sizeof(appCls)); + bool appHasBID = r_responds(appObj, "bundleIdentifier"); + uint64_t appBID = appHasBID + ? r_msg2(appObj, "bundleIdentifier", 0, 0, 0, 0) : 0; + char appBIDStr[160] = {0}; + if (r_is_objc_ptr(appBID)) r_read_nsstring(appBID, appBIDStr, sizeof(appBIDStr)); + printf("[THEMER] application=0x%llx class=%s bundleIdentifier=\"%s\"\n", + (unsigned long long)appObj, appCls, appBIDStr); + } + } + + return false; +} + +static bool themer_read_bundle_for_iconview(uint64_t iconView, + char *out, size_t outLen) +{ + if (!r_is_objc_ptr(iconView) || !out || outLen == 0) return false; + + uint64_t icon = themer_application_icon_for_iconview(iconView); + return themer_read_bundle_for_icon(icon, iconView, out, outLen); +} + +// Rung 1: iOS 26 path — +// setOverrideImage: (track the override slot) +// + _iconImageView.updateImageContentsWithImage:imageAppearance:animated: +// (or fallback: setDisplayedImage:) (force the rendered pixels) +// Rung 2: setIconImage: (iOS 18 and earlier) +// Rung 3: _setIconImage: (private variant) +// Rung 4: _iconImageView.setImage: (last-resort UIImageView-style setter) +static bool gThemerInnerCanUpdateContents = false; +static bool gThemerInnerCanSetDisplayed = false; + +static int themer_probe_rung(uint64_t iconView) +{ + if (gThemerRung >= 0) return gThemerRung; + if (!r_is_objc_ptr(iconView)) return -1; + + bool r1 = r_responds_main(iconView, "setOverrideImage:"); + bool r2 = r_responds_main(iconView, "setIconImage:"); + bool r3 = r_responds_main(iconView, "_setIconImage:"); + + uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); + if (!r_is_objc_ptr(iiv) && r_responds_main(iconView, "_iconImageView")) { + iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); + } + bool r4 = r_is_objc_ptr(iiv) && r_responds_main(iiv, "setImage:"); + if (r_is_objc_ptr(iiv)) { + gThemerInnerCanUpdateContents = r_responds_main(iiv, + "updateImageContentsWithImage:imageAppearance:animated:"); + gThemerInnerCanSetDisplayed = r_responds_main(iiv, "setDisplayedImage:"); + } + + gThemerHasUpdateAfter = r_responds_main(iconView, + "_updateAfterManualIconImageInfoChangeInvalidatingLayout:"); + gThemerHasUpdateImageView = r_responds_main(iconView, + "_updateIconImageViewAnimated:"); + + char iivCls[96] = {0}; + if (r_is_objc_ptr(iiv)) themer_read_class_name(iiv, iivCls, sizeof(iivCls)); + bool legacyVisible = themer_needs_visible_push(NULL); + printf("[THEMER] probe iconView=0x%llx setOverrideImage:=%d setIconImage:=%d " + "_setIconImage:=%d _iconImageView=0x%llx (%s) " + "setImage:=%d updateContents:=%d setDisplayedImage:=%d " + "update:=%d updateIV:=%d legacy=%d\n", + (unsigned long long)iconView, r1, r2, r3, + (unsigned long long)iiv, iivCls, + r4, gThemerInnerCanUpdateContents, gThemerInnerCanSetDisplayed, + gThemerHasUpdateAfter, gThemerHasUpdateImageView, + legacyVisible); + + if (legacyVisible) { + if (r2) gThemerRung = 2; + else if (r3) gThemerRung = 3; + else if (r4) gThemerRung = 4; + else if (r1) gThemerRung = 1; + else gThemerRung = 0; + } else { + if (r1) gThemerRung = 1; + else if (r2) gThemerRung = 2; + else if (r3) gThemerRung = 3; + else if (r4) gThemerRung = 4; + else gThemerRung = 0; + } + + return gThemerRung; +} + +// Returns the rung that succeeded (1/2/3/4) or 0 if nothing stuck. +static int themer_push_image(uint64_t iconView, uint64_t image) +{ + if (!r_is_objc_ptr(iconView) || !r_is_objc_ptr(image)) return 0; + int rung = themer_probe_rung(iconView); + + switch (rung) { + case 1: { + // iOS 26 contents-path strategy (from RE of SpringBoardHome): + // shouldDisplayImageLayer is YES by default → sublayer path that + // ignores overrideImage. To force the flat contents path that + // DOES read overrideImage: + // 1. Set overrideIconImageAppearance = +[SBHIconImageAppearance lightAppearance] + // (light = appearanceType 0/1 → hasGlass returns NO) + // 2. Set iconImageView.showsSquareCorners = YES + // 3. Now shouldDisplayImageLayer returns NO, and + // updateImageAnimated: takes updateImageContentsAnimated:, + // which calls updateImageContentsWithImage:imageAppearance:animated: + // using [iconView overrideImage]. + // 4. Set overrideImage = our UIImage (also triggers updateImageAnimated:NO). + uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); + if (!r_is_objc_ptr(iiv)) { + iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); + } + if (!r_is_objc_ptr(iiv)) break; + + // PERSISTENCE: populate SBHIconImageCache for this icon. The + // home-screen render pipeline goes via SBIcon → + // iconLayerViewWithInfo: → SBHIconImageVariantCache.cachedImage + // → SBHIconImageAppearanceStore. Cache-populated images stick + // across layout passes (page swipe, rotation) so home icons + // don't revert. -[SBHIconImageCache cacheImage:forIcon:imageAppearance:] + // calls through to setImage:forIcon:appearance: on the underlying + // store plus bookkeeping. + uint64_t icon = r_responds_main(iconView, "icon") + ? r_msg2_main(iconView, "icon", 0, 0, 0, 0) : 0; + uint64_t cache = r_responds_main(iiv, "iconImageCache") + ? r_msg2_main(iiv, "iconImageCache", 0, 0, 0, 0) : 0; + uint64_t appearance = r_responds_main(iiv, "effectiveIconImageAppearance") + ? r_msg2_main(iiv, "effectiveIconImageAppearance", 0, 0, 0, 0) : 0; + if (r_is_objc_ptr(cache) && r_is_objc_ptr(icon) && + r_is_objc_ptr(appearance) && + r_responds_main(cache, "cacheImage:forIcon:imageAppearance:")) { + r_msg2_main(cache, "cacheImage:forIcon:imageAppearance:", + image, icon, appearance, 0); + } + + uint64_t appearanceCls = r_class("SBHIconImageAppearance"); + uint64_t lightAppearance = r_is_objc_ptr(appearanceCls) + ? r_msg2(appearanceCls, "lightAppearance", 0, 0, 0, 0) : 0; + if (r_is_objc_ptr(lightAppearance) && + r_responds_main(iconView, "setOverrideIconImageAppearance:")) { + r_msg2_main(iconView, "setOverrideIconImageAppearance:", + lightAppearance, 0, 0, 0); + } + if (r_responds_main(iiv, "setShowsSquareCorners:")) { + r_msg2_main(iiv, "setShowsSquareCorners:", 1, 0, 0, 0); + } + r_msg2_main(iconView, "setOverrideImage:", image, 0, 0, 0); + + // App launch/resume can leave the SBIconView carrying our + // overrideImage while its inner contents/layer was discarded. + // Force the iOS 26 flat-contents path too, so a cached repaint + // repairs that state even when setOverrideImage: sees the same + // pointer it already had. + uint64_t updateAppearance = r_is_objc_ptr(lightAppearance) + ? lightAppearance : appearance; + if (gThemerInnerCanUpdateContents && r_is_objc_ptr(updateAppearance) && + r_responds_main(iiv, "updateImageContentsWithImage:imageAppearance:animated:")) { + r_msg2_main(iiv, "updateImageContentsWithImage:imageAppearance:animated:", + image, updateAppearance, 0, 0); + } else if (gThemerInnerCanSetDisplayed && + r_responds_main(iiv, "setDisplayedImage:")) { + r_msg2_main(iiv, "setDisplayedImage:", image, 0, 0, 0); + } + + // Also cache for the light appearance specifically, in case + // future layout fetches request that variant (we've flipped the + // override appearance to light, so the cache lookup key likely + // ends up there). + if (r_is_objc_ptr(cache) && r_is_objc_ptr(icon) && + r_is_objc_ptr(lightAppearance) && + r_responds_main(cache, "cacheImage:forIcon:imageAppearance:")) { + r_msg2_main(cache, "cacheImage:forIcon:imageAppearance:", + image, icon, lightAppearance, 0); + } + + // showsSquareCorners=YES exposed the full iconImageView bounds. + // Reapply rounded mask on iiv.layer (~22.5% of width). + uint64_t iivLayer = r_responds_main(iiv, "layer") + ? r_msg2_main(iiv, "layer", 0, 0, 0, 0) : 0; + if (r_is_objc_ptr(iivLayer)) { + struct { double x, y, w, h; } b = {0}; + double radius = 15.0; + if (r_responds_main(iivLayer, "bounds") && + r_msg2_main_struct_ret(iivLayer, "bounds", + &b, sizeof(b), + NULL, 0, NULL, 0, NULL, 0, NULL, 0) && + b.w > 0.0) { + radius = b.w * 0.225; + } + r_msg2_main_raw(iivLayer, "setCornerRadius:", + &radius, sizeof(radius), + NULL, 0, NULL, 0, NULL, 0); + if (r_responds_main(iivLayer, "setMasksToBounds:")) { + r_msg2_main(iivLayer, "setMasksToBounds:", 1, 0, 0, 0); + } + } + + static bool postProbed = false; + if (!postProbed) { + postProbed = true; + bool shouldDisplay = r_responds_main(iiv, "shouldDisplayImageLayer") + ? (r_msg2_main(iiv, "shouldDisplayImageLayer", 0, 0, 0, 0) & 0xff) != 0 + : true; + bool sqCorners = r_responds_main(iiv, "showsSquareCorners") + ? (r_msg2_main(iiv, "showsSquareCorners", 0, 0, 0, 0) & 0xff) != 0 + : false; + uint64_t effApp = r_responds_main(iiv, "effectiveIconImageAppearance") + ? r_msg2_main(iiv, "effectiveIconImageAppearance", 0, 0, 0, 0) : 0; + bool hasGlass = (r_is_objc_ptr(effApp) && r_responds_main(effApp, "hasGlass")) + ? (r_msg2_main(effApp, "hasGlass", 0, 0, 0, 0) & 0xff) != 0 + : true; + uint64_t displayedRead = r_responds_main(iiv, "displayedImage") + ? r_msg2_main(iiv, "displayedImage", 0, 0, 0, 0) : 0; + uint64_t overrideRead = r_responds_main(iconView, "overrideImage") + ? r_msg2_main(iconView, "overrideImage", 0, 0, 0, 0) : 0; + char appCls[96] = {0}; + themer_read_class_name(effApp, appCls, sizeof(appCls)); + printf("[THEMER] post: shouldDisplayImageLayer=%d showsSquareCorners=%d " + "hasGlass=%d effApp=0x%llx (%s) displayed=0x%llx override=0x%llx " + "(want image=0x%llx) lightAppearance=0x%llx\n", + shouldDisplay, sqCorners, hasGlass, + (unsigned long long)effApp, appCls, + (unsigned long long)displayedRead, + (unsigned long long)overrideRead, + (unsigned long long)image, + (unsigned long long)lightAppearance); + } + break; + } + case 2: + r_msg2_main(iconView, "setIconImage:", image, 0, 0, 0); + break; + case 3: + r_msg2_main(iconView, "_setIconImage:", image, 0, 0, 0); + break; + case 4: { + uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); + if (!r_is_objc_ptr(iiv)) { + iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); + } + if (!r_is_objc_ptr(iiv)) return 0; + r_msg2_main(iiv, "setImage:", image, 0, 0, 0); + break; + } + default: + return 0; + } + + return rung; +} + +static int themer_iter_iconviews(uint64_t listView, + NSDictionary *dataByBundle, + uint64_t iconViewCls, + int *rungHits, + int *misses) +{ + if (!r_is_objc_ptr(listView) || !r_is_objc_ptr(iconViewCls)) return 0; + + // BFS the list view so we pick up SBIconViews regardless of how iOS 26 + // wraps them (AMUIInfographIconListLayout adds intermediate containers). + enum { IV_CAP = 64 }; + uint64_t ivs[IV_CAP]; + int n = sb_collect_views(listView, iconViewCls, ivs, IV_CAP); + + if (n == 0) { + if (gThemerLogBudget > 0) { + uint64_t subs = r_msg2(listView, "subviews", 0, 0, 0, 0); + uint64_t sc = r_is_objc_ptr(subs) ? r_msg2(subs, "count", 0, 0, 0, 0) : 0; + char lvCls[96]; + themer_read_class_name(listView, lvCls, sizeof(lvCls)); + printf("[THEMER] listView=0x%llx class=%s no iconViews; direct subviews=%llu\n", + (unsigned long long)listView, lvCls, (unsigned long long)sc); + uint64_t cap = sc > 6 ? 6 : sc; + for (uint64_t i = 0; i < cap; i++) { + uint64_t child = r_msg2(subs, "objectAtIndex:", i, 0, 0, 0); + char cls[96] = {0}; + themer_read_class_name(child, cls, sizeof(cls)); + printf("[THEMER] subview[%llu]=0x%llx class=%s\n", + (unsigned long long)i, (unsigned long long)child, cls); + } + gThemerLogBudget--; + } + return 0; + } + + if (gThemerLogBudget > 0) { + printf("[THEMER] listView=0x%llx iconViews=%d (BFS)\n", + (unsigned long long)listView, n); + gThemerLogBudget--; + } + + int applied = 0; + for (int i = 0; i < n; i++) { + uint64_t v = ivs[i]; + if (!r_is_objc_ptr(v)) continue; + + char bundle[128] = {0}; + if (!themer_read_bundle_for_iconview(v, bundle, sizeof(bundle))) { + themer_clear_dynamic_overlay(v); + themer_clear_visible_override(v); + if (gThemerLogBudget > 0) { + char ivCls[96] = {0}; + themer_read_class_name(v, ivCls, sizeof(ivCls)); + printf("[THEMER] bundle read failed iconView=0x%llx class=%s\n", + (unsigned long long)v, ivCls); + gThemerLogBudget--; + } + continue; + } + + // Debug: skip everything except the focus bundle so the log is + // small enough to reason about. + if (kThemerFocusBundle && kThemerFocusBundle[0] && + strcmp(bundle, kThemerFocusBundle) != 0) { + continue; + } + + bool dynamicOverlay = themer_should_pin_dynamic_overlay(bundle, v); + if (!dynamicOverlay) themer_clear_visible_override(v); + + uint64_t image = themer_lookup_cached(bundle); + if (!image) { + NSString *key = [NSString stringWithUTF8String:bundle]; + NSData *pngBytes = key ? dataByBundle[key] : nil; + if (!pngBytes) { + themer_clear_dynamic_overlay(v); + themer_clear_visible_override(v); + if (misses) (*misses)++; + if (gThemerLogBudget > 0) { + printf("[THEMER] miss bundle=%s (no override in theme)\n", bundle); + gThemerLogBudget--; + } + continue; + } + NSData *uploadBytes = themer_rounded_png_data(pngBytes, bundle); + image = themer_build_remote_uiimage_from_data(uploadBytes ?: pngBytes, bundle); + if (!image) { + themer_clear_dynamic_overlay(v); + themer_clear_visible_override(v); + if (misses) (*misses)++; + continue; + } + themer_cache_image(bundle, image); + if (gThemerLogBudget > 0) { + printf("[THEMER] built bundle=%s image=0x%llx\n", + bundle, (unsigned long long)image); + gThemerLogBudget--; + } + } + if (!dynamicOverlay) { + themer_clear_dynamic_overlay(v); + if (!themer_needs_visible_push(bundle)) { + applied++; + continue; + } + } + + // Most icons persist through the model/cache pass. Dynamic/special + // icons keep a pinned overlay because their mounted image views can + // redraw from private live renderers. + bool viewLevelOverlay = themer_prefers_view_level_overlay(bundle); + (void)viewLevelOverlay; + int rung = 0; + if (dynamicOverlay && themer_pin_dynamic_overlay(v, image, bundle)) { + rung = 1; + } else if (!dynamicOverlay && themer_needs_visible_push(bundle)) { + rung = themer_push_image(v, image); + } + + ThemerEntry *entry = themer_lookup_entry(bundle); + if (entry && !entry->iconServicesSeeded) { + double iconWidth = themer_icon_width_for_view(v); + entry->iconServicesSeeded = + themer_seed_iconservices_cache(bundle, image, iconWidth) > 0; + } + if (rung > 0) { + applied++; + if (rungHits && rung >= 1 && rung <= 4) rungHits[rung - 1]++; + if (kThemerDetailedIconLogs) { + uint64_t superv = r_responds_main(v, "superview") + ? r_msg2_main(v, "superview", 0, 0, 0, 0) : 0; + char supCls[96] = {0}; + themer_read_class_name(superv, supCls, sizeof(supCls)); + double alpha = 1.0; + if (r_responds_main(v, "alpha")) { + r_msg2_main_struct_ret(v, "alpha", &alpha, sizeof(alpha), + NULL, 0, NULL, 0, NULL, 0, NULL, 0); + } + bool hidden = r_responds_main(v, "isHidden") + ? (r_msg2_main(v, "isHidden", 0, 0, 0, 0) & 0xff) != 0 + : false; + bool wasBorrowed = r_responds_main(v, "isIconImageViewBorrowed") + ? (r_msg2_main(v, "isIconImageViewBorrowed", 0, 0, 0, 0) & 0xff) != 0 + : false; + printf("[THEMER] %s superview=%s borrowed=%d alpha=%.2f hidden=%d\n", + bundle, supCls, wasBorrowed, alpha, hidden); + } + } else { + if (misses) (*misses)++; + if (gThemerLogBudget > 0) { + printf("[THEMER] no rung stuck bundle=%s iconView=0x%llx\n", + bundle, (unsigned long long)v); + gThemerLogBudget--; + } + } + } + return applied; +} + +static int themer_repaint_cached_iconviews(uint64_t listView, + uint64_t iconViewCls, + int *rungHits, + int *misses, + int *skips, + bool force) +{ + if (!r_is_objc_ptr(listView) || !r_is_objc_ptr(iconViewCls)) return 0; + + enum { IV_CAP = 64 }; + uint64_t ivs[IV_CAP]; + int n = sb_collect_views(listView, iconViewCls, ivs, IV_CAP); + int applied = 0; + + for (int i = 0; i < n; i++) { + uint64_t v = ivs[i]; + if (!r_is_objc_ptr(v)) continue; + + char bundle[128] = {0}; + if (!themer_read_bundle_for_iconview(v, bundle, sizeof(bundle))) { + themer_clear_dynamic_overlay(v); + themer_clear_visible_override(v); + if (misses) (*misses)++; + continue; + } + + uint64_t image = themer_lookup_cached(bundle); + if (!r_is_objc_ptr(image)) { + themer_clear_dynamic_overlay(v); + themer_clear_visible_override(v); + if (misses) (*misses)++; + continue; + } + + uint64_t overrideRead = r_responds_main(v, "overrideImage") + ? r_msg2_main(v, "overrideImage", 0, 0, 0, 0) : 0; + uint64_t iiv = r_ivar_value(v, "_iconImageView"); + if (!r_is_objc_ptr(iiv) && r_responds_main(v, "_iconImageView")) { + iiv = r_msg2_main(v, "_iconImageView", 0, 0, 0, 0); + } + uint64_t displayedRead = (r_is_objc_ptr(iiv) && + r_responds_main(iiv, "displayedImage")) + ? r_msg2_main(iiv, "displayedImage", 0, 0, 0, 0) : 0; + bool dynamicOverlay = themer_should_pin_dynamic_overlay(bundle, v); + if (!dynamicOverlay) themer_clear_visible_override(v); + if (!force && !dynamicOverlay && + overrideRead == image && displayedRead == image) { + themer_clear_dynamic_overlay(v); + if (skips) (*skips)++; + continue; + } + if (!dynamicOverlay) { + themer_clear_dynamic_overlay(v); + if (!themer_needs_visible_push(bundle)) { + if (skips) (*skips)++; + continue; + } + } + + int rung = 0; + if (dynamicOverlay && themer_pin_dynamic_overlay(v, image, bundle)) { + rung = 1; + } else if (!dynamicOverlay && themer_needs_visible_push(bundle)) { + rung = themer_push_image(v, image); + } + if (rung > 0) { + applied++; + if (rungHits && rung >= 1 && rung <= 4) rungHits[rung - 1]++; + } else if (misses) { + (*misses)++; + } + } + + return applied; +} + +static int themer_repaint_dynamic_iconviews(uint64_t listView, + uint64_t iconViewCls, + int *rungHits, + int *misses) +{ + if (!r_is_objc_ptr(listView) || !r_is_objc_ptr(iconViewCls)) return 0; + + enum { IV_CAP = 64 }; + uint64_t ivs[IV_CAP]; + int n = sb_collect_views(listView, iconViewCls, ivs, IV_CAP); + int applied = 0; + + for (int i = 0; i < n; i++) { + uint64_t v = ivs[i]; + if (!r_is_objc_ptr(v)) continue; + + char bundle[128] = {0}; + if (!themer_read_bundle_for_iconview(v, bundle, sizeof(bundle))) { + if (misses) (*misses)++; + continue; + } + if (!themer_should_pin_dynamic_overlay(bundle, v)) continue; + + uint64_t image = themer_lookup_cached(bundle); + if (!r_is_objc_ptr(image)) { + if (misses) (*misses)++; + continue; + } + + int rung = themer_pin_dynamic_overlay(v, image, bundle) ? 1 : 0; + if (rung > 0) { + applied++; + if (rungHits) rungHits[0]++; + } else if (misses) { + (*misses)++; + } + } + + return applied; +} + +static void themer_add_unique(uint64_t *items, int *count, int cap, uint64_t item) +{ + if (!r_is_objc_ptr(item) || !items || !count || *count >= cap) return; + for (int i = 0; i < *count; i++) { + if (items[i] == item) return; + } + items[(*count)++] = item; +} + +static int themer_collect_model_lookup_roots(uint64_t *roots, int cap) +{ + if (!roots || cap <= 0) return 0; + int count = 0; + + uint64_t controllerCls = r_class("SBIconController"); + uint64_t controller = (r_is_objc_ptr(controllerCls) && + r_responds(controllerCls, "sharedInstance")) + ? r_msg2(controllerCls, "sharedInstance", 0, 0, 0, 0) : 0; + themer_add_unique(roots, &count, cap, controller); + + uint64_t managerCls = r_class("SBHIconManager"); + uint64_t manager = (r_is_objc_ptr(managerCls) && + r_responds(managerCls, "sharedInstance")) + ? r_msg2(managerCls, "sharedInstance", 0, 0, 0, 0) : 0; + themer_add_unique(roots, &count, cap, manager); + + const char *childSels[] = { + "model", + "iconModel", + "_iconModel", + "rootFolder", + "rootFolderController", + "rootFolderViewController", + }; + int initial = count; + for (int i = 0; i < initial && count < cap; i++) { + uint64_t root = roots[i]; + for (size_t s = 0; s < sizeof(childSels) / sizeof(childSels[0]) && count < cap; s++) { + if (!r_responds_main(root, childSels[s])) continue; + uint64_t child = r_msg2_main(root, childSels[s], 0, 0, 0, 0); + themer_add_unique(roots, &count, cap, child); + } + } + + return count; +} + +static uint64_t themer_lookup_model_icon_for_bundle(const char *bundle) +{ + if (!bundle || !bundle[0]) return 0; + + uint64_t bid = r_nsstr_retained(bundle); + if (!r_is_objc_ptr(bid)) return 0; + + enum { ROOT_CAP = 24 }; + uint64_t roots[ROOT_CAP] = {0}; + int rootCount = themer_collect_model_lookup_roots(roots, ROOT_CAP); + + const char *lookupSels[] = { + "applicationIconForBundleIdentifier:", + "applicationIconForDisplayIdentifier:", + "expectedIconForDisplayIdentifier:", + "iconForApplicationIdentifier:", + "iconForIdentifier:", + "leafIconForIdentifier:", + "_leafIconForIdentifier:", + "iconWithIdentifier:", + }; + + static bool loggedShape = false; + uint64_t found = 0; + const char *foundSel = NULL; + uint64_t foundRoot = 0; + static int mismatchLogs = 0; + for (int r = 0; r < rootCount && !found; r++) { + uint64_t root = roots[r]; + for (size_t s = 0; s < sizeof(lookupSels) / sizeof(lookupSels[0]); s++) { + const char *sel = lookupSels[s]; + if (!r_responds_main(root, sel)) continue; + uint64_t icon = r_msg2_main(root, sel, bid, 0, 0, 0); + if (!r_is_objc_ptr(icon)) continue; + + char actual[128] = {0}; + if (!themer_read_bundle_for_icon(icon, 0, actual, sizeof(actual)) || + strcmp(actual, bundle) != 0) { + if (mismatchLogs < 8) { + printf("[THEMER] model lookup rejected requested=%s actual=%s " + "root=0x%llx selector=%s icon=0x%llx\n", + bundle, + actual[0] ? actual : "?", + (unsigned long long)root, + sel, + (unsigned long long)icon); + mismatchLogs++; + } + continue; + } + + found = icon; + foundSel = sel; + foundRoot = root; + break; + } + } + r_msg2(bid, "release", 0, 0, 0, 0); + + if (!loggedShape) { + loggedShape = true; + printf("[THEMER] model lookup probe roots=%d firstBundle=%s root=0x%llx " + "selector=%s icon=0x%llx\n", + rootCount, + bundle, + (unsigned long long)foundRoot, + foundSel ?: "(none)", + (unsigned long long)found); + } + + if (r_is_objc_ptr(found)) { + themer_cache_icon_bundle(found, bundle); + } + + return found; +} + +static int themer_graft_icon_models_for_theme(NSDictionary *dataByBundle, + int *misses) +{ + int grafted = 0; + int modelMisses = 0; + for (NSString *key in dataByBundle) { + if (![key isKindOfClass:NSString.class] || key.length == 0) continue; + const char *bundle = key.UTF8String; + if (!bundle || !bundle[0]) continue; + + if (kThemerFocusBundle && kThemerFocusBundle[0] && + strcmp(bundle, kThemerFocusBundle) != 0) { + continue; + } + + NSData *pngBytes = dataByBundle[key]; + if (![pngBytes isKindOfClass:NSData.class] || pngBytes.length == 0) continue; + + uint64_t image = themer_lookup_cached(bundle); + if (!image) { + NSData *uploadBytes = themer_rounded_png_data(pngBytes, bundle); + image = themer_build_remote_uiimage_from_data(uploadBytes ?: pngBytes, bundle); + if (!image) { + modelMisses++; + continue; + } + themer_cache_image(bundle, image); + } + + uint64_t icon = themer_lookup_model_icon_for_bundle(bundle); + if (!r_is_objc_ptr(icon)) { + modelMisses++; + continue; + } + + ThemerEntry *entry = themer_lookup_entry(bundle); + if (entry && !entry->iconServicesSeeded) { + entry->iconServicesSeeded = + themer_seed_iconservices_cache(bundle, image, 60.0) > 0; + } + + bool changed = false; + if (entry && themer_graft_icon_model(icon, image, entry, 0, &changed)) { + (void)themer_notify_icon_image_changed(icon); + grafted++; + } else { + modelMisses++; + } + } + + if (misses) *misses += modelMisses; + printf("[THEMER] model pass grafted=%d misses=%d cache=%d\n", + grafted, modelMisses, gThemerCacheCount); + return grafted; +} + +static bool themer_repaint_cached_views_internal(bool force) +{ + if (gThemerCacheCount <= 0) { + printf("[THEMER] cached repaint skipped; cache empty\n"); + return false; + } + + uint64_t startUS = themer_now_us(); + uint32_t prevSettle = r_settle_us(kThemerApplySettleUS); + + uint64_t listViewCls = r_class("SBIconListView"); + uint64_t iconViewCls = r_class("SBIconView"); + if (!r_is_objc_ptr(listViewCls) || !r_is_objc_ptr(iconViewCls)) { + r_settle_us(prevSettle); + return false; + } + + enum { LV_CAP = 64 }; + uint64_t lvs[LV_CAP]; + int nlv = sb_collect_views_in_windows(listViewCls, lvs, LV_CAP); + if (nlv == 0) { + r_settle_us(prevSettle); + printf("[THEMER] cached repaint: no visible SBIconListView\n"); + return false; + } + + int rungHits[4] = {0}; + int misses = 0; + int skips = 0; + int applied = 0; + for (int i = 0; i < nlv; i++) { + applied += themer_repaint_cached_iconviews(lvs[i], iconViewCls, + rungHits, &misses, &skips, + force); + } + + r_settle_us(prevSettle); + uint64_t elapsedUS = themer_now_us() - startUS; + printf("[THEMER] cached repaint%s lists=%d applied=%d skipped=%d misses=%d rungs={1:%d,2:%d,3:%d,4:%d} cache=%d elapsed=%llums\n", + force ? " force" : "", + nlv, applied, skips, misses, + rungHits[0], rungHits[1], rungHits[2], rungHits[3], + gThemerCacheCount, + (unsigned long long)(elapsedUS / 1000ULL)); + return applied > 0 || skips > 0 || nlv > 0; +} + +bool themer_repaint_cached_views_in_session(void) +{ + return themer_repaint_cached_views_internal(false); +} + +bool themer_force_repaint_cached_views_in_session(void) +{ + return themer_repaint_cached_views_internal(true); +} + +bool themer_repaint_dynamic_cached_views_in_session(void) +{ + if (gThemerCacheCount <= 0) { + printf("[THEMER] dynamic repaint skipped; cache empty\n"); + return false; + } + + uint64_t startUS = themer_now_us(); + uint32_t prevSettle = r_settle_us(kThemerApplySettleUS); + + uint64_t listViewCls = r_class("SBIconListView"); + uint64_t iconViewCls = r_class("SBIconView"); + if (!r_is_objc_ptr(listViewCls) || !r_is_objc_ptr(iconViewCls)) { + r_settle_us(prevSettle); + return false; + } + + enum { LV_CAP = 64 }; + uint64_t lvs[LV_CAP]; + int nlv = sb_collect_views_in_windows(listViewCls, lvs, LV_CAP); + if (nlv == 0) { + r_settle_us(prevSettle); + printf("[THEMER] dynamic repaint: no visible SBIconListView\n"); + return false; + } + + int rungHits[4] = {0}; + int misses = 0; + int applied = 0; + for (int i = 0; i < nlv; i++) { + applied += themer_repaint_dynamic_iconviews(lvs[i], iconViewCls, + rungHits, &misses); + } + + uint64_t elapsed = (themer_now_us() - startUS) / 1000ULL; + r_settle_us(prevSettle); + printf("[THEMER] dynamic repaint lists=%d applied=%d misses=%d " + "rungs={1:%d,2:%d,3:%d,4:%d} cache=%d elapsed=%llums\n", + nlv, applied, misses, + rungHits[0], rungHits[1], rungHits[2], rungHits[3], + gThemerCacheCount, + (unsigned long long)elapsed); + return applied > 0; +} + +static NSSet *themer_collect_visible_bundles(void) +{ + uint64_t listViewCls = r_class("SBIconListView"); + uint64_t iconViewCls = r_class("SBIconView"); + if (!r_is_objc_ptr(listViewCls) || !r_is_objc_ptr(iconViewCls)) return [NSSet set]; + + enum { LV_CAP = 64 }; + uint64_t lvs[LV_CAP]; + int nlv = sb_collect_views_in_windows(listViewCls, lvs, LV_CAP); + if (nlv == 0) return [NSSet set]; + + NSMutableSet *bundles = [NSMutableSet set]; + for (int i = 0; i < nlv; i++) { + enum { IV_CAP = 64 }; + uint64_t ivs[IV_CAP]; + int n = sb_collect_views(lvs[i], iconViewCls, ivs, IV_CAP); + for (int j = 0; j < n; j++) { + char bundle[128] = {0}; + if (themer_read_bundle_for_iconview(ivs[j], bundle, sizeof(bundle)) && bundle[0]) { + [bundles addObject:@(bundle)]; + } + } + } + return bundles; +} + +bool themer_apply_data_in_session(NSDictionary *imageDataByBundle) +{ + if (imageDataByBundle.count == 0) { + printf("[THEMER] apply data: empty dictionary\n"); + return false; + } + imageDataByBundle = themer_normalized_theme_data(imageDataByBundle); + printf("[THEMER] apply data entries=%lu cacheCarried=%d\n", + (unsigned long)imageDataByBundle.count, gThemerCacheCount); + if (!gThemerVisiblePolicyLogged) { + gThemerVisiblePolicyLogged = true; + printf("[THEMER] visible push policy iosMajor=%d legacyVisible=%d\n", + themer_host_ios_major(), + themer_needs_visible_push(NULL)); + } + + // Drop the per-msgSend settle for the duration of the apply. The stable + // RemoteCall trampoline already serializes the calls; sleeping before every + // ObjC send just makes the initial icon flip visibly lag. + uint64_t startUS = themer_now_us(); + uint32_t prevSettle = r_settle_us(kThemerApplySettleUS); + themer_reset_icon_bundle_cache(); + + uint64_t listViewCls = r_class("SBIconListView"); + uint64_t iconViewCls = r_class("SBIconView"); + if (!r_is_objc_ptr(listViewCls) || !r_is_objc_ptr(iconViewCls)) { + printf("[THEMER] missing class SBIconListView=0x%llx SBIconView=0x%llx\n", + (unsigned long long)listViewCls, + (unsigned long long)iconViewCls); + r_settle_us(prevSettle); + return false; + } + + enum { LV_CAP = 64 }; + uint64_t lvs[LV_CAP]; + int nlv = sb_collect_views_in_windows(listViewCls, lvs, LV_CAP); + if (nlv == 0) { + printf("[THEMER] no SBIconListView visible (home screen not active?)\n"); + r_settle_us(prevSettle); + return false; + } + + int rungHits[4] = {0}; + int misses = 0; + int modelGrafted = themer_graft_icon_models_for_theme(imageDataByBundle, + &misses); + int applied = 0; + for (int i = 0; i < nlv; i++) { + applied += themer_iter_iconviews(lvs[i], imageDataByBundle, iconViewCls, + rungHits, &misses); + } + + r_settle_us(prevSettle); + uint64_t elapsedUS = themer_now_us() - startUS; + printf("[THEMER] done lists=%d model=%d applied=%d misses=%d rungs={1:%d,2:%d,3:%d,4:%d} cache=%d elapsed=%llums settle=%uus\n", + nlv, modelGrafted, applied, misses, + rungHits[0], rungHits[1], rungHits[2], rungHits[3], + gThemerCacheCount, + (unsigned long long)(elapsedUS / 1000ULL), + kThemerApplySettleUS); + return applied > 0; +} + +bool themer_apply_in_session(const char *themePath) +{ + if (!themePath || !themePath[0]) { + printf("[THEMER] apply: nil path\n"); + return false; + } + + NSString *themeDir = @(themePath); + NSFileManager *fm = [NSFileManager defaultManager]; + BOOL isDir = NO; + if (![fm fileExistsAtPath:themeDir isDirectory:&isDir] || !isDir) { + printf("[THEMER] apply: missing dir %s\n", themePath); + return false; + } + + NSArray *files = [fm contentsOfDirectoryAtPath:themeDir error:NULL]; + NSMutableDictionary *pathByBundle = [NSMutableDictionary dictionary]; + NSMutableSet *explicitFileBundles = [NSMutableSet set]; + NSMutableSet *appleSystemBundles = [NSMutableSet set]; + NSMutableSet *aliasTargetBundles = [NSMutableSet set]; + NSUInteger availableCount = 0; + NSUInteger aliasKeyCount = 0; + for (NSString *f in files) { + if (![f.pathExtension.lowercaseString isEqualToString:@"png"]) continue; + availableCount++; + NSString *bundle = f.stringByDeletingPathExtension; + NSString *path = [themeDir stringByAppendingPathComponent:f]; + pathByBundle[bundle] = path; + if (bundle.length > 0) [explicitFileBundles addObject:bundle]; + if ([bundle.lowercaseString hasPrefix:@"com.apple."]) { + [appleSystemBundles addObject:bundle]; + } + NSString *lower = bundle.lowercaseString; + if (lower.length > 0 && !pathByBundle[lower]) { + pathByBundle[lower] = path; + } + if ([lower isEqualToString:@"com.autonavi.minimap"] && !pathByBundle[@"com.autonavi.amap"]) { + pathByBundle[@"com.autonavi.amap"] = path; + [aliasTargetBundles addObject:@"com.autonavi.amap"]; + } + BOOL usedAlias = NO; + NSArray *mappedTargets = CNDMappedIOSBundleIDsForIconName(f, &usedAlias); + for (NSString *mapped in mappedTargets) { + if (mapped.length == 0) continue; + if ([mapped.lowercaseString hasPrefix:@"com.apple."]) { + [appleSystemBundles addObject:mapped]; + } + if (!pathByBundle[mapped]) { + pathByBundle[mapped] = path; + if (usedAlias) aliasKeyCount++; + } + if (usedAlias) { + [aliasTargetBundles addObject:mapped]; + } + NSString *mappedLower = mapped.lowercaseString; + if (mappedLower.length > 0 && !pathByBundle[mappedLower]) { + pathByBundle[mappedLower] = path; + } + } + } + printf("[THEMER] apply path=%s available=%lu aliasKeys=%lu\n", + themePath, (unsigned long)availableCount, (unsigned long)aliasKeyCount); + if (availableCount == 0) return false; + + NSSet *visible = themer_collect_visible_bundles(); + printf("[THEMER] visible bundles count=%lu list=%s\n", + (unsigned long)visible.count, + themer_join_strings_for_log(visible, 160).UTF8String); + printf("[THEMER] explicit file bundles count=%lu list=%s\n", + (unsigned long)explicitFileBundles.count, + themer_join_strings_for_log(explicitFileBundles, 200).UTF8String); + printf("[THEMER] apple-system bundles count=%lu list=%s\n", + (unsigned long)appleSystemBundles.count, + themer_join_strings_for_log(appleSystemBundles, 200).UTF8String); + printf("[THEMER] alias-target bundles count=%lu list=%s\n", + (unsigned long)aliasTargetBundles.count, + themer_join_strings_for_log(aliasTargetBundles, 240).UTF8String); + NSMutableSet *targetBundles = [visible mutableCopy]; + NSUInteger explicitAdded = 0; + NSUInteger priorityAdded = 0; + NSUInteger appleAdded = 0; + NSUInteger aliasAdded = 0; + for (NSString *bid in explicitFileBundles) { + if (![bid isKindOfClass:NSString.class] || bid.length == 0) continue; + if ([targetBundles containsObject:bid]) continue; + if (themer_theme_path_for_bundle(pathByBundle, bid)) { + [targetBundles addObject:bid]; + explicitAdded++; + } + } + for (NSString *bid in appleSystemBundles) { + if (![bid isKindOfClass:NSString.class] || bid.length == 0) continue; + if ([targetBundles containsObject:bid]) continue; + if (themer_theme_path_for_bundle(pathByBundle, bid)) { + [targetBundles addObject:bid]; + appleAdded++; + } + } + for (NSString *bid in aliasTargetBundles) { + if (![bid isKindOfClass:NSString.class] || bid.length == 0) continue; + if ([targetBundles containsObject:bid]) continue; + if (themer_theme_path_for_bundle(pathByBundle, bid)) { + [targetBundles addObject:bid]; + aliasAdded++; + } + } + for (NSString *bid in themer_priority_theme_bundles()) { + if (![bid isKindOfClass:NSString.class] || bid.length == 0) continue; + if ([targetBundles containsObject:bid]) continue; + if (themer_theme_path_for_bundle(pathByBundle, bid)) { + [targetBundles addObject:bid]; + priorityAdded++; + } + } + printf("[THEMER] target bundles count=%lu list=%s\n", + (unsigned long)targetBundles.count, + themer_join_strings_for_log(targetBundles, 240).UTF8String); + NSMutableDictionary *dict = [NSMutableDictionary dictionary]; + NSMutableArray *matchedBundles = [NSMutableArray array]; + NSUInteger caseFallbacks = 0; + for (NSString *bid in targetBundles) { + NSString *path = themer_theme_path_for_bundle(pathByBundle, bid); + if (path && !pathByBundle[bid]) { + caseFallbacks++; + } + if (!path) continue; + NSData *bytes = [NSData dataWithContentsOfFile:path]; + if (bytes.length) { + dict[bid] = bytes; + [matchedBundles addObject:bid]; + } + } + printf("[THEMER] matched bundles count=%lu list=%s\n", + (unsigned long)matchedBundles.count, + themer_join_strings_for_log(matchedBundles, 240).UTF8String); + printf("[THEMER] apply loaded=%lu matched of %lu target (%lu visible + %lu explicit + %lu apple + %lu alias + %lu priority), %lu available caseFallbacks=%lu\n", + (unsigned long)dict.count, + (unsigned long)targetBundles.count, + (unsigned long)visible.count, + (unsigned long)explicitAdded, + (unsigned long)appleAdded, + (unsigned long)aliasAdded, + (unsigned long)priorityAdded, + (unsigned long)availableCount, + (unsigned long)caseFallbacks); + return themer_apply_data_in_session(dict); +} + +bool themer_stop_in_session(void) +{ + int released = 0; + for (int i = 0; i < gThemerCacheCount; i++) { + if (r_is_objc_ptr(gThemerCache[i].image)) { + r_msg2(gThemerCache[i].image, "release", 0, 0, 0, 0); + released++; + } + if (r_is_objc_ptr(gThemerCache[i].dataSource)) { + r_msg2(gThemerCache[i].dataSource, "release", 0, 0, 0, 0); + released++; + } + gThemerCache[i].image = 0; + gThemerCache[i].dataSource = 0; + gThemerCache[i].iconServicesSeeded = false; + gThemerCache[i].bundle[0] = '\0'; + } + gThemerCacheCount = 0; + themer_reset_icon_bundle_cache(); + gThemerRung = -1; + gThemerHasUpdateAfter = false; + gThemerHasUpdateImageView = false; + gThemerLogBudget = 48; + gThemerModelProbeLogged = false; + gThemerIconServicesProbeLogged = false; + gThemerVisiblePolicyLogged = false; + printf("[THEMER] stop released=%d\n", released); + return true; +} + +void themer_forget_remote_state(void) +{ + for (int i = 0; i < kThemerMaxCache; i++) { + gThemerCache[i].image = 0; + gThemerCache[i].dataSource = 0; + gThemerCache[i].iconServicesSeeded = false; + gThemerCache[i].bundle[0] = '\0'; + } + gThemerCacheCount = 0; + themer_reset_icon_bundle_cache(); + gThemerRung = -1; + gThemerHasUpdateAfter = false; + gThemerHasUpdateImageView = false; + gThemerLogBudget = 48; + gThemerModelProbeLogged = false; + gThemerIconServicesProbeLogged = false; + gThemerVisiblePolicyLogged = false; +} From 9748aebd2fee049f57d6792fd1139578f06c7b5e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 16:59:57 +0530 Subject: [PATCH 203/233] Create themer.h --- lara/views/tweaks/broken/darkboardv2/themer.h | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/themer.h diff --git a/lara/views/tweaks/broken/darkboardv2/themer.h b/lara/views/tweaks/broken/darkboardv2/themer.h new file mode 100644 index 000000000..8a6f4d9f9 --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/themer.h @@ -0,0 +1,51 @@ +// +// themer.h +// Per-bundle icon swap. Walks every SBIconView in SpringBoard and replaces +// its image with a PNG from `themePath/.png`. +// + +#ifndef themer_h +#define themer_h + +#import +#ifdef __OBJC__ +#import +#endif + +// Apply the theme rooted at `themePath` — a local-process directory of +// `.png` files. Builds an in-memory dictionary and forwards to +// themer_apply_data_in_session. +bool themer_apply_in_session(const char *themePath); + +#ifdef __OBJC__ +// Apply a theme provided in-memory. Keys are bundle identifiers +// (NSString *), values are raw PNG bytes (NSData *). Caller can free the +// dictionary as soon as the call returns. Idempotent within a session — +// per-bundle SB UIImages are cached and reused. Must run under +// settings_rc_lock with the SpringBoard RemoteCall session open. +bool themer_apply_data_in_session(NSDictionary *imageDataByBundle); + +// Repaint currently visible icon views from the in-session UIImage cache only. +// This is for SpringBoard re-entry paths where views keep our overrideImage +// pointer but their inner image contents/layer were reset. +bool themer_repaint_cached_views_in_session(void); + +// Same cache-only repaint, but does not trust SBIconImageView.displayedImage +// as proof that the visible layer is still intact. +bool themer_force_repaint_cached_views_in_session(void); + +// Re-pin only dynamic icons (Clock/Calendar). This is intentionally narrower +// than a cached repaint so wake/unlock repairs don't touch normal app icons. +bool themer_repaint_dynamic_cached_views_in_session(void); +#endif + +// Release the in-SB UIImage cache. SB will re-render native icons on its +// next layout pass. +bool themer_stop_in_session(void); + +// Drop local pointer cache without touching SpringBoard. Call from the +// SpringBoard-restart handler so we don't release dangling pointers under +// the next SB incarnation. +void themer_forget_remote_state(void); + +#endif /* themer_h */ From c28737dd3b7cdaca13ac17d840a402fe69fd071d Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:02:27 +0530 Subject: [PATCH 204/233] Update themer.m --- lara/views/tweaks/broken/darkboardv2/themer.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lara/views/tweaks/broken/darkboardv2/themer.m b/lara/views/tweaks/broken/darkboardv2/themer.m index d60163771..3d4a0467f 100644 --- a/lara/views/tweaks/broken/darkboardv2/themer.m +++ b/lara/views/tweaks/broken/darkboardv2/themer.m @@ -6,9 +6,9 @@ #import "themer.h" #import "remote_objc.h" #import "sb_walk.h" -#import "../map_app.h" -#import "../TaskRop/RemoteCall.h" -#import "../LogTextView.h" +#import "map_app.h" +#import "../../../../kexploit/TaskRop/RemoteCall.h" +#import "LogTextView.h" #import #import From f66b764e6a50ac2067b8d9c53c5b3f99419a3d5f Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:03:12 +0530 Subject: [PATCH 205/233] Create map_app.m --- .../views/tweaks/broken/darkboardv2/map_app.m | 670 ++++++++++++++++++ 1 file changed, 670 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/map_app.m diff --git a/lara/views/tweaks/broken/darkboardv2/map_app.m b/lara/views/tweaks/broken/darkboardv2/map_app.m new file mode 100644 index 000000000..c597059fd --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/map_app.m @@ -0,0 +1,670 @@ +// +// map_app.m +// Cyanide +// Adapted from https://github.com/d1y/cyanide-ios (AGPL-3.0). +// + +#import "map_app.h" + +static NSString *CNDIconBaseName(NSString *name) +{ + NSString *ext = name.pathExtension.lowercaseString; + NSString *base = ([ext isEqualToString:@"png"] || + [ext isEqualToString:@"jpg"] || + [ext isEqualToString:@"jpeg"] || + [ext isEqualToString:@"heic"] || + [ext isEqualToString:@"webp"]) + ? name.stringByDeletingPathExtension + : name; + BOOL changed = YES; + while (changed && base.length > 0) { + changed = NO; + for (NSString *suffix in @[ + @"@3x", + @"@2x", + @"~iphone", + @"~ipad", + @"-large", + @"-small", + @"-dark", + @"-light", + @".past", + @"past", + @".icon.720p", + @"icon.720p", + @"ic.launcher", + @"ic_launcher", + @"icon", + ]) { + if ([base hasSuffix:suffix]) { + base = [base substringToIndex:base.length - suffix.length]; + changed = YES; + } + } + } + return base; +} + +static NSString *CNDCompactAliasKey(NSString *name) +{ + NSString *lower = name.lowercaseString; + NSMutableString *out = [NSMutableString stringWithCapacity:lower.length]; + NSCharacterSet *skip = [NSCharacterSet characterSetWithCharactersInString:@" _-."]; + for (NSUInteger i = 0; i < lower.length; i++) { + unichar c = [lower characterAtIndex:i]; + if ([skip characterIsMember:c]) continue; + [out appendFormat:@"%C", c]; + } + return out; +} + +static NSDictionary *CNDAppIconAliases(void) +{ + static NSDictionary *aliases = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + aliases = @{ + @"appstore": @"com.apple.AppStore", + @"com.apple.appstore": @"com.apple.AppStore", + @"settings": @"com.apple.Preferences", + @"preferences": @"com.apple.Preferences", + @"com.apple.preferences": @"com.apple.Preferences", + @"messages": @"com.apple.MobileSMS", + @"sms": @"com.apple.MobileSMS", + @"com.apple.mobilesms": @"com.apple.MobileSMS", + @"phone": @"com.apple.mobilephone", + @"safari": @"com.apple.mobilesafari", + @"mail": @"com.apple.mobilemail", + @"calendar": @"com.apple.mobilecal", + @"clock": @"com.apple.mobiletimer", + @"maps": @"com.apple.Maps", + @"com.apple.maps": @"com.apple.Maps", + @"photos": @"com.apple.mobileslideshow", + @"camera": @"com.apple.camera", + @"notes": @"com.apple.mobilenotes", + @"reminders": @"com.apple.reminders", + @"weather": @"com.apple.weather", + @"music": @"com.apple.Music", + @"com.apple.music": @"com.apple.Music", + @"contacts": @"com.apple.MobileAddressBook", + @"com.apple.mobileaddressbook": @"com.apple.MobileAddressBook", + @"com.apple.contacts": @"com.apple.MobileAddressBook", + @"facetime": @"com.apple.facetime", + @"findmy": @"com.apple.findmy", + @"findiphone": @"com.apple.findmy", + @"findmyiphone": @"com.apple.findmy", + @"com.apple.mobileme.fmip1": @"com.apple.findmy", + @"calculator": @"com.apple.calculator", + @"compass": @"com.apple.compass", + @"wallet": @"com.apple.Passbook", + @"passbook": @"com.apple.Passbook", + @"com.apple.passbook": @"com.apple.Passbook", + @"books": @"com.apple.iBooks", + @"ibooks": @"com.apple.iBooks", + @"com.apple.ibooks": @"com.apple.iBooks", + @"itunesstore": @"com.apple.iTunesStore", + @"com.apple.itunesstore": @"com.apple.iTunesStore", + @"voicememos": @"com.apple.VoiceMemos", + @"com.apple.voicememos": @"com.apple.VoiceMemos", + @"health": @"com.apple.Health", + @"home": @"com.apple.Home", + @"shortcuts": @"com.apple.shortcuts", + @"translate": @"com.apple.Translate", + @"freeform": @"com.apple.freeform", + @"journal": @"com.apple.Journal", + + @"alipay": @"com.alipay.iphoneclient", + @"支付宝": @"com.alipay.iphoneclient", + @"com.eg.android.alipaygphone": @"com.alipay.iphoneclient", + @"taobao": @"com.taobao.taobao4iphone", + @"淘宝": @"com.taobao.taobao4iphone", + @"淘宝iphone": @"com.taobao.taobao4iphone", + @"com.taobao.taobao": @"com.taobao.taobao4iphone", + @"amap": @"com.autonavi.minimap", + @"gaode": @"com.autonavi.minimap", + @"gaodemap": @"com.autonavi.minimap", + @"autonavi": @"com.autonavi.minimap", + @"高德": @"com.autonavi.minimap", + @"高德地图": @"com.autonavi.minimap", + @"com.autonavi.minimap": @"com.autonavi.minimap", + @"pinduoduo": @"com.xunmeng.pinduoduo", + @"pdd": @"com.xunmeng.pinduoduo", + @"拼多多": @"com.xunmeng.pinduoduo", + @"shadowrocket": @"com.liguangming.Shadowrocket", + @"com.liguangming.shadowrocket": @"com.liguangming.Shadowrocket", + @"twitter": @"com.atebits.Tweetie2", + @"tweetie": @"com.atebits.Tweetie2", + @"tweetie2": @"com.atebits.Tweetie2", + @"com.atebits.tweetie2": @"com.atebits.Tweetie2", + @"biliblue": @"tv.danmaku.biliblue", + @"bilibili": @"tv.danmaku.bilianime", + @"bilibili蓝版": @"tv.danmaku.biliblue", + @"com.bilibili.app.blue": @"tv.danmaku.biliblue", + @"tv.danmaku.bili": @"tv.danmaku.bilianime", + + @"wechat": @"com.tencent.xin", + @"weixin": @"com.tencent.xin", + @"微信": @"com.tencent.xin", + @"com.tencent.mm": @"com.tencent.xin", + @"qq": @"com.tencent.mqq", + @"com.tencent.mobileqq": @"com.tencent.mqq", + @"qqmusic": @"com.tencent.QQMusic", + @"com.tencent.qqmusic": @"com.tencent.QQMusic", + @"jingdong": @"com.360buy.jdmobile", + @"jd": @"com.360buy.jdmobile", + @"京东": @"com.360buy.jdmobile", + @"com.jingdong.app.mall": @"com.360buy.jdmobile", + @"douyin": @"com.ss.iphone.ugc.Aweme", + @"抖音": @"com.ss.iphone.ugc.Aweme", + @"com.ss.android.ugc.aweme": @"com.ss.iphone.ugc.Aweme", + @"kuaishou": @"com.kuaishou.gifmaker", + @"快手": @"com.kuaishou.gifmaker", + @"com.smile.gifmaker": @"com.kuaishou.gifmaker", + @"meituan": @"com.meituan.imeituan", + @"美团": @"com.meituan.imeituan", + @"com.sankuai.meituan": @"com.meituan.imeituan", + @"eleme": @"me.ele.ios.eleme", + @"饿了么": @"me.ele.ios.eleme", + @"me.ele": @"me.ele.ios.eleme", + @"xiaohongshu": @"com.xingin.discover", + @"xhs": @"com.xingin.discover", + @"小红书": @"com.xingin.discover", + @"com.xingin.xhs": @"com.xingin.discover", + @"baidumap": @"com.baidu.map", + @"百度地图": @"com.baidu.map", + @"com.baidu.baidumap": @"com.baidu.map", + @"baidu": @"com.baidu.searchbox", + @"百度": @"com.baidu.searchbox", + @"com.baidu.searchbox": @"com.baidu.searchbox", + @"didichuxing": @"com.xiaojukeji.didi", + @"didi": @"com.xiaojukeji.didi", + @"滴滴": @"com.xiaojukeji.didi", + @"com.sdu.didi.psnger": @"com.xiaojukeji.didi", + @"neteasemusic": @"com.netease.cloudmusic", + @"网易云音乐": @"com.netease.cloudmusic", + @"com.netease.cloudmusic": @"com.netease.cloudmusic", + @"zhihu": @"com.zhihu.ios", + @"知乎": @"com.zhihu.ios", + @"com.zhihu.android": @"com.zhihu.ios", + @"zhihudaily": @"com.zhihu.daily", + @"知乎日报": @"com.zhihu.daily", + @"com.zhihu.daily.android": @"com.zhihu.daily", + @"boss": @"com.hpbr.bosszhipin", + @"bosszhipin": @"com.hpbr.bosszhipin", + @"boss直聘": @"com.hpbr.bosszhipin", + @"直聘": @"com.hpbr.bosszhipin", + @"com.hpbr.bosszhipin": @"com.hpbr.bosszhipin", + @"zhaopin": @"com.zhaopin.social", + @"智联招聘": @"com.zhaopin.social", + @"com.zhaopin.social": @"com.zhaopin.social", + @"maimai": @"com.taou.maimai", + @"脉脉": @"com.taou.maimai", + @"com.taou.maimai": @"com.taou.maimai", + @"jdjr": @"com.jd.jrapp", + @"jdfinance": @"com.jd.jrapp", + @"京东金融": @"com.jd.jrapp", + @"com.jd.jrapp": @"com.jd.jrapp", + @"jingdongdaojia": @"com.jd.pdj", + @"jddaojia": @"com.jd.pdj", + @"京东到家": @"com.jd.pdj", + @"com.jingdong.pdj": @"com.jd.pdj", + @"cainiao": @"com.cainiao.Cainiao4iPhone", + @"菜鸟": @"com.cainiao.Cainiao4iPhone", + @"菜鸟裹裹": @"com.cainiao.Cainiao4iPhone", + @"com.cainiao.wireless": @"com.cainiao.Cainiao4iPhone", + @"qianniu": @"com.taobao.QN", + @"千牛": @"com.taobao.QN", + @"com.taobao.qianniu": @"com.taobao.QN", + @"etao": @"com.taobao.etao", + @"一淘": @"com.taobao.etao", + @"com.taobao.etao": @"com.taobao.etao", + @"youku": @"com.youku.YouKu", + @"优酷": @"com.youku.YouKu", + @"com.youku.phone": @"com.youku.YouKu", + @"iqiyi": @"com.qiyi.iphone", + @"爱奇艺": @"com.qiyi.iphone", + @"com.qiyi.video": @"com.qiyi.iphone", + @"mgtv": @"com.hunantv.imgo.activity", + @"芒果tv": @"com.hunantv.imgo.activity", + @"com.hunantv.imgo.activity": @"com.hunantv.imgo.activity", + @"xunlei": @"com.xunlei.download", + @"迅雷": @"com.xunlei.download", + @"com.xunlei.downloadprovider": @"com.xunlei.download", + @"ctrip": @"ctrip.com", + @"xiecheng": @"ctrip.com", + @"携程": @"ctrip.com", + @"ctrip.android.view": @"ctrip.com", + @"com.android.ctrip.gs": @"ctrip.com", + @"com.android.ctrip.gsic.launcher": @"ctrip.com", + @"qunar": @"com.qunar.iphoneclient", + @"去哪儿": @"com.qunar.iphoneclient", + @"com.qunar": @"com.qunar.iphoneclient", + @"tongcheng": @"com.ly.iphone", + @"同程旅行": @"com.ly.iphone", + @"com.tongcheng.android": @"com.ly.iphone", + @"baidunetdisk": @"com.baidu.netdisk", + @"百度网盘": @"com.baidu.netdisk", + @"com.baidu.netdisk": @"com.baidu.netdisk", + @"tieba": @"com.baidu.tieba", + @"baidutieba": @"com.baidu.tieba", + @"百度贴吧": @"com.baidu.tieba", + @"com.baidu.tieba": @"com.baidu.tieba", + @"baiduwenku": @"com.baidu.Wenku", + @"百度文库": @"com.baidu.Wenku", + @"com.baidu.wenku": @"com.baidu.Wenku", + @"baidutranslate": @"com.baidu.Translate", + @"百度翻译": @"com.baidu.Translate", + @"com.baidu.baidutranslate": @"com.baidu.Translate", + @"qqmail": @"com.tencent.qqmail", + @"qq邮箱": @"com.tencent.qqmail", + @"com.tencent.androidqqmail": @"com.tencent.qqmail", + @"quanminkge": @"com.tencent.karaoke", + @"quanminge": @"com.tencent.karaoke", + @"全民k歌": @"com.tencent.karaoke", + @"com.tencent.karaoke": @"com.tencent.karaoke", + @"qqlite": @"com.tencent.qqlite", + @"qq轻聊版": @"com.tencent.qqlite", + @"com.tencent.qqlite": @"com.tencent.qqlite", + @"yingyongbao": @"com.tencent.androidqqdownloader", + @"应用宝": @"com.tencent.androidqqdownloader", + @"com.tencent.android.qqdownloader": @"com.tencent.androidqqdownloader", + @"tencentnews": @"com.tencent.news", + @"腾讯新闻": @"com.tencent.news", + @"com.tencent.news": @"com.tencent.news", + @"weishi": @"com.tencent.weishi", + @"微视": @"com.tencent.weishi", + @"com.tencent.weishi": @"com.tencent.weishi", + @"douban": @"com.douban.frodo", + @"豆瓣": @"com.douban.frodo", + @"com.douban.frodo": @"com.douban.frodo", + @"lofter": @"com.netease.lofter", + @"com.netease.loftercam.activity": @"com.netease.lofter", + @"wangyiyanxuan": @"com.netease.yanxuan", + @"网易严选": @"com.netease.yanxuan", + @"com.netease.yanxuan": @"com.netease.yanxuan", + @"neteasenews": @"com.netease.news", + @"网易新闻": @"com.netease.news", + @"com.netease.newsreader.activity": @"com.netease.news", + @"youdaodict": @"com.youdao.dict", + @"网易有道词典": @"com.youdao.dict", + @"com.youdao.dict": @"com.youdao.dict", + @"ximalaya": @"com.gemd.iting", + @"喜马拉雅": @"com.gemd.iting", + @"com.ximalaya.ting.android": @"com.gemd.iting", + @"douyu": @"air.tv.douyu.douyutv", + @"斗鱼": @"air.tv.douyu.douyutv", + @"air.tv.douyu.android": @"air.tv.douyu.douyutv", + @"huya": @"com.duowan.HUYA", + @"虎牙": @"com.duowan.HUYA", + @"com.duowan.kiwi": @"com.duowan.HUYA", + @"xiaomi": @"com.xiaomi.mishop", + @"小米商城": @"com.xiaomi.mishop", + @"com.xiaomi.shop": @"com.xiaomi.mishop", + @"mijia": @"com.xiaomi.mihome", + @"米家": @"com.xiaomi.mihome", + @"com.xiaomi.smarthome": @"com.xiaomi.mihome", + @"cmb": @"cmb.pb", + @"招商银行": @"cmb.pb", + @"cmbchina": @"cmb.pb", + @"掌上生活": @"com.cmbchina.ccd.pluto.cmbactivity", + @"com.cmbchina.ccd.pluto.cmbactivity": @"com.cmbchina.ccd.pluto.cmbactivity", + @"icbc": @"com.icbc.iphoneclient", + @"工商银行": @"com.icbc.iphoneclient", + @"com.icbc": @"com.icbc.iphoneclient", + @"ccb": @"com.ccb.ccbMobileBank", + @"建设银行": @"com.ccb.ccbMobileBank", + @"com.chinamworld.main": @"com.ccb.ccbMobileBank", + @"abc": @"com.abchina.iphone.abchina", + @"农业银行": @"com.abchina.iphone.abchina", + @"com.android.bankabc": @"com.abchina.iphone.abchina", + @"boc": @"com.bocmbci.bocmbci", + @"中国银行": @"com.bocmbci.bocmbci", + @"com.chinamworld.bocmbci": @"com.bocmbci.bocmbci", + @"spdb": @"cn.com.spdb.mobilebank.per", + @"浦发银行": @"cn.com.spdb.mobilebank.per", + @"cn.com.spdb.mobilebank.per": @"cn.com.spdb.mobilebank.per", + @"citic": @"com.ecitic.bank.mobile", + @"中信银行": @"com.ecitic.bank.mobile", + @"pinganbank": @"com.pingan.pabank", + @"平安银行": @"com.pingan.pabank", + @"com.pingan.pabank.activity": @"com.pingan.pabank", + @"pingan": @"com.pingan.paces.ccms", + @"平安金管家": @"com.pingan.paces.ccms", + @"com.pingan.papd": @"com.pingan.paces.ccms", + + @"google": @"com.google.GoogleMobile", + @"com.google.android.googlequicksearchbox": @"com.google.GoogleMobile", + @"gmail": @"com.google.Gmail", + @"com.google.android.gm": @"com.google.Gmail", + @"googlemaps": @"com.google.Maps", + @"com.google.android.apps.maps": @"com.google.Maps", + @"youtube": @"com.google.ios.youtube", + @"com.google.android.youtube": @"com.google.ios.youtube", + @"chrome": @"com.google.chrome.ios", + @"com.android.chrome": @"com.google.chrome.ios", + @"com.google.android.apps.chrome": @"com.google.chrome.ios", + @"googlephotos": @"com.google.photos", + @"com.google.android.apps.photos": @"com.google.photos", + @"googledrive": @"com.google.Drive", + @"com.google.android.apps.docs": @"com.google.Drive", + @"googledocs": @"com.google.Docs", + @"com.google.android.apps.docs.editors.docs": @"com.google.Docs", + @"googlesheets": @"com.google.Sheets", + @"com.google.android.apps.docs.editors.sheets": @"com.google.Sheets", + @"googleslides": @"com.google.Slides", + @"com.google.android.apps.docs.editors.slides": @"com.google.Slides", + @"googletranslate": @"com.google.Translate", + @"com.google.android.apps.translate": @"com.google.Translate", + @"googlecalendar": @"com.google.Calendar", + @"com.google.android.calendar": @"com.google.Calendar", + @"googlekeep": @"com.google.Keep", + @"com.google.android.keep": @"com.google.Keep", + @"googlemeet": @"com.google.meetings", + @"com.google.android.apps.meetings": @"com.google.meetings", + + @"facebook": @"com.facebook.Facebook", + @"com.facebook.katana": @"com.facebook.Facebook", + @"messenger": @"com.facebook.Messenger", + @"com.facebook.orca": @"com.facebook.Messenger", + @"instagram": @"com.burbn.instagram", + @"com.instagram.android": @"com.burbn.instagram", + @"whatsapp": @"net.whatsapp.WhatsApp", + @"com.whatsapp": @"net.whatsapp.WhatsApp", + @"telegram": @"ph.telegra.Telegraph", + @"org.telegram.messenger": @"ph.telegra.Telegraph", + @"signal": @"org.whispersystems.signal", + @"org.thoughtcrime.securesms": @"org.whispersystems.signal", + @"discord": @"com.hammerandchisel.discord", + @"com.discord": @"com.hammerandchisel.discord", + @"reddit": @"com.reddit.Reddit", + @"com.reddit.frontpage": @"com.reddit.Reddit", + @"snapchat": @"com.toyopagroup.picaboo", + @"com.snapchat.android": @"com.toyopagroup.picaboo", + @"tiktok": @"com.zhiliaoapp.musically", + @"com.zhiliaoapp.musically": @"com.zhiliaoapp.musically", + @"com.twitter.android": @"com.atebits.Tweetie2", + @"linkedin": @"com.linkedin.LinkedIn", + @"com.linkedin.android": @"com.linkedin.LinkedIn", + @"pinterest": @"pinterest", + @"com.pinterest": @"pinterest", + @"tumblr": @"com.tumblr.tumblr", + @"com.tumblr": @"com.tumblr.tumblr", + + @"spotify": @"com.spotify.client", + @"com.spotify.music": @"com.spotify.client", + @"netflix": @"com.netflix.Netflix", + @"com.netflix.mediaclient": @"com.netflix.Netflix", + @"primevideo": @"com.amazon.aiv.AIVApp", + @"com.amazon.avod.thirdpartyclient": @"com.amazon.aiv.AIVApp", + @"amazon": @"com.amazon.Amazon", + @"com.amazon.mshop.android.shopping": @"com.amazon.Amazon", + @"twitch": @"tv.twitch", + @"tv.twitch.android.app": @"tv.twitch", + @"disneyplus": @"com.disney.disneyplus", + @"com.disney.disneyplus": @"com.disney.disneyplus", + @"hulu": @"com.hulu.plus", + @"com.hulu.plus": @"com.hulu.plus", + @"soundcloud": @"com.soundcloud.TouchApp", + @"com.soundcloud.android": @"com.soundcloud.TouchApp", + @"deezer": @"com.deezer.Deezer", + @"deezer.android.app": @"com.deezer.Deezer", + + @"outlook": @"com.microsoft.Office.Outlook", + @"com.microsoft.office.outlook": @"com.microsoft.Office.Outlook", + @"teams": @"com.microsoft.skype.teams", + @"com.microsoft.teams": @"com.microsoft.skype.teams", + @"onedrive": @"com.microsoft.skydrive", + @"com.microsoft.skydrive": @"com.microsoft.skydrive", + @"word": @"com.microsoft.Office.Word", + @"com.microsoft.office.word": @"com.microsoft.Office.Word", + @"excel": @"com.microsoft.Office.Excel", + @"com.microsoft.office.excel": @"com.microsoft.Office.Excel", + @"powerpoint": @"com.microsoft.Office.Powerpoint", + @"com.microsoft.office.powerpoint": @"com.microsoft.Office.Powerpoint", + @"zoom": @"us.zoom.videomeetings", + @"us.zoom.videomeetings": @"us.zoom.videomeetings", + @"slack": @"com.tinyspeck.chatlyio", + @"com.slack": @"com.tinyspeck.chatlyio", + @"notion": @"notion.id", + @"notion.id": @"notion.id", + @"todoist": @"com.todoist.ios", + @"com.todoist": @"com.todoist.ios", + @"evernote": @"com.evernote.iPhone.Evernote", + @"com.evernote": @"com.evernote.iPhone.Evernote", + @"dropbox": @"com.getdropbox.Dropbox", + @"com.dropbox.android": @"com.getdropbox.Dropbox", + @"github": @"com.github.stormbreaker.prod", + @"com.github.android": @"com.github.stormbreaker.prod", + @"chatgpt": @"com.openai.chat", + @"com.openai.chatgpt": @"com.openai.chat", + @"perplexity": @"ai.perplexity.app", + @"ai.perplexity.app.android": @"ai.perplexity.app", + @"claude": @"com.anthropic.claude", + @"com.anthropic.claude": @"com.anthropic.claude", + + @"uber": @"com.ubercab.UberClient", + @"com.ubercab": @"com.ubercab.UberClient", + @"airbnb": @"com.airbnb.app", + @"com.airbnb.android": @"com.airbnb.app", + @"booking": @"com.booking.BookingApp", + @"com.booking": @"com.booking.BookingApp", + @"tripadvisor": @"com.tripadvisor.TripAdvisor", + @"com.tripadvisor.tripadvisor": @"com.tripadvisor.TripAdvisor", + @"waze": @"com.waze.iphone", + @"com.waze": @"com.waze.iphone", + @"yelp": @"com.yelp.yelpiphone", + @"com.yelp.android": @"com.yelp.yelpiphone", + @"doordash": @"com.doordash.Consumer", + @"com.dd.doordash": @"com.doordash.Consumer", + @"paypal": @"com.paypal.ppmobile", + @"com.paypal.android.p2pmobile": @"com.paypal.ppmobile", + @"venmo": @"net.kortina.labs.Venmo", + @"com.venmo": @"net.kortina.labs.Venmo", + @"cashapp": @"com.squareup.cash", + @"com.squareup.cash": @"com.squareup.cash", + @"coinbase": @"com.coinbase.Coinbase", + @"com.coinbase.android": @"com.coinbase.Coinbase", + @"wise": @"com.transferwise.TransferWise", + @"com.transferwise.android": @"com.transferwise.TransferWise", + + @"weibo": @"com.sina.weibo", + @"微博": @"com.sina.weibo", + @"com.sina.weibo": @"com.sina.weibo", + @"tmall": @"com.tmall.wireless", + @"天猫": @"com.tmall.wireless", + @"com.tmall.wireless": @"com.tmall.wireless", + @"xianyu": @"com.taobao.fleamarket", + @"闲鱼": @"com.taobao.fleamarket", + @"com.taobao.idlefish": @"com.taobao.fleamarket", + @"1688": @"com.alibaba.wireless", + @"com.alibaba.wireless": @"com.alibaba.wireless", + @"dingtalk": @"com.laiwang.DingTalk", + @"钉钉": @"com.laiwang.DingTalk", + @"com.alibaba.android.rimet": @"com.laiwang.DingTalk", + @"wecom": @"com.tencent.ww", + @"企业微信": @"com.tencent.ww", + @"com.tencent.wework": @"com.tencent.ww", + @"feishu": @"com.larksuite.Lark", + @"飞书": @"com.larksuite.Lark", + @"com.ss.android.lark": @"com.larksuite.Lark", + @"meituanwaimai": @"com.meituan.waimai", + @"美团外卖": @"com.meituan.waimai", + @"com.sankuai.meituan.takeoutnew": @"com.meituan.waimai", + @"dianping": @"com.dianping.dpscope", + @"大众点评": @"com.dianping.dpscope", + @"com.dianping.v1": @"com.dianping.dpscope", + @"tencentmap": @"com.tencent.map", + @"腾讯地图": @"com.tencent.map", + @"com.tencent.map": @"com.tencent.map", + @"qqbrowser": @"com.tencent.mttlite", + @"qq浏览器": @"com.tencent.mttlite", + @"com.tencent.mtt": @"com.tencent.mttlite", + @"tencentvideo": @"com.tencent.live4iphone", + @"腾讯视频": @"com.tencent.live4iphone", + @"com.tencent.qqlive": @"com.tencent.live4iphone", + @"toutiao": @"com.ss.iphone.article.News", + @"今日头条": @"com.ss.iphone.article.News", + @"com.ss.android.article.news": @"com.ss.iphone.article.News", + @"wps": @"com.kingsoft.wpsoffice", + @"cn.wps.moffice_eng": @"com.kingsoft.wpsoffice", + @"keep": @"com.gotokeep.Keep", + @"com.gotokeep.keep": @"com.gotokeep.Keep", + @"dewu": @"com.siwuai.duapp", + @"得物": @"com.siwuai.duapp", + @"com.shizhuang.duapp": @"com.siwuai.duapp", + @"smzdm": @"com.smzdm.client.iphone", + @"什么值得买": @"com.smzdm.client.iphone", + @"com.smzdm.client.android": @"com.smzdm.client.iphone", + + // User-local SmartisanOS theme compatibility. + // These source icons exist in SmartisanOS.theme/IconBundles and are + // used as closest semantic matches for apps without dedicated art. + @"com.kapinote.ai": @"com.kapinote.ai", + @"qnq.nuosike.sign": @"qnq.nuosike.sign", + @"com.danbo.dbxq2": @"com.danbo.dbxq2", + @"jxd.devapp.ireadnote": @"jxd.devapp.iReadNote", + @"ireadnote": @"jxd.devapp.iReadNote", + @"爱阅记": @"jxd.devapp.iReadNote", + @"app.nicegram": @"app.nicegram", + @"app.swiftgram.ios": @"app.swiftgram.ios", + @"com.swiftgram.swiftgram": @"app.swiftgram.ios", + @"swiftgram": @"app.swiftgram.ios", + @"nicegram": @"app.nicegram", + + // Common China carrier package aliases. + @"cn.10086.app": @"com.chinamobile.cmcc", + @"com.greenpoint.android.mc10086.activity": @"com.chinamobile.cmcc", + @"com.chinamobile.cmcc": @"com.chinamobile.cmcc", + @"com.sinovatech.unicom.ui": @"com.sinovatech.unicom.ui", + @"com.chinaunicom.mobilebusiness": @"com.sinovatech.unicom.ui", + @"com.chinaunicom.mobileb": @"com.sinovatech.unicom.ui", + @"ctclient": @"com.chinatelecom.189client", + @"com.chinatelecom.189client": @"com.chinatelecom.189client", + @"com.chinatelecom.bestpayclient": @"com.chinatelecom.189client", + }; + }); + return aliases; +} + +static NSDictionary *> *CNDAppIconMultiAliases(void) +{ + static NSDictionary *> *aliases = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + aliases = @{ + @"ph.telegra.telegraph": @[ + @"ph.telegra.Telegraph", + @"app.nicegram", + @"app.swiftgram.ios", + ], + @"org.telegram.messenger": @[ + @"ph.telegra.Telegraph", + @"app.nicegram", + @"app.swiftgram.ios", + ], + @"telegram": @[ + @"ph.telegra.Telegraph", + @"app.nicegram", + @"app.swiftgram.ios", + ], + @"me.bakumon.moneykeeper": @[ + @"me.bakumon.moneykeeper", + @"com.kapinote.ai", + ], + @"com.blackcat.app": @[ + @"com.Blackcat.app", + @"com.macxk.KMusic", + ], + @"com.tencent.kittypong": @[ + @"com.tencent.kittypong", + @"com.sigkitten.litter", + ], + @"com.smartisan.reader": @[ + @"com.smartisan.reader", + @"jxd.devapp.iReadNote", + ], + @"cn.10086.app": @[ + @"com.chinamobile.cmcc", + @"cn.10086.app", + ], + @"com.chinamobile.cmcc": @[ + @"com.chinamobile.cmcc", + @"cn.10086.app", + ], + @"com.sinovatech.unicom.ui": @[ + @"com.sinovatech.unicom.ui", + @"com.chinaunicom.mobilebusiness", + ], + @"com.chinaunicom.mobilebusiness": @[ + @"com.sinovatech.unicom.ui", + @"com.chinaunicom.mobilebusiness", + ], + @"ctclient": @[ + @"com.chinatelecom.189client", + @"CtClient", + ], + @"com.chinatelecom.bestpayclient": @[ + @"com.chinatelecom.189client", + @"com.chinatelecom.bestpayclient", + ], + }; + }); + return aliases; +} + +static NSString *CNDLookupMappedBundleID(NSString *base) +{ + if (base.length == 0) return nil; + NSDictionary *aliases = CNDAppIconAliases(); + NSString *mapped = aliases[base.lowercaseString]; + if (mapped.length > 0) return mapped; + return aliases[CNDCompactAliasKey(base)]; +} + +NSString *CNDMappedIOSBundleIDForIconName(NSString *name, BOOL *usedAlias) +{ + if (usedAlias) *usedAlias = NO; + if (name.length == 0) return nil; + + NSString *base = CNDIconBaseName(name); + NSString *mapped = CNDLookupMappedBundleID(base); + if (!mapped.length) { + for (NSString *marker in @[@"z.", @"y."]) { + NSRange compound = [base rangeOfString:marker options:NSBackwardsSearch]; + if (compound.location != NSNotFound && NSMaxRange(compound) < base.length) { + NSString *tail = [base substringFromIndex:NSMaxRange(compound)]; + mapped = CNDLookupMappedBundleID(tail); + if (mapped.length > 0) break; + } + } + } + if (mapped.length > 0) { + if (usedAlias) *usedAlias = ![mapped isEqualToString:base]; + return mapped; + } + + if (![base containsString:@"."]) return nil; + return base.length > 0 ? base : nil; +} + +NSArray *CNDMappedIOSBundleIDsForIconName(NSString *name, BOOL *usedAlias) +{ + if (usedAlias) *usedAlias = NO; + if (name.length == 0) return @[]; + + NSString *base = CNDIconBaseName(name); + NSDictionary *> *multiAliases = CNDAppIconMultiAliases(); + NSArray *mapped = multiAliases[base.lowercaseString]; + if (!mapped) mapped = multiAliases[CNDCompactAliasKey(base)]; + if (mapped.count > 0) { + if (usedAlias) { + *usedAlias = mapped.count != 1 || ![mapped.firstObject isEqualToString:base]; + } + return mapped; + } + + BOOL singleUsedAlias = NO; + NSString *single = CNDMappedIOSBundleIDForIconName(name, &singleUsedAlias); + if (usedAlias) *usedAlias = singleUsedAlias; + return single.length > 0 ? @[single] : @[]; +} From 83481a45ec3cbe756b6f14359141d6724990cb19 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:03:46 +0530 Subject: [PATCH 206/233] Create map_app.h --- .../views/tweaks/broken/darkboardv2/map_app.h | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/map_app.h diff --git a/lara/views/tweaks/broken/darkboardv2/map_app.h b/lara/views/tweaks/broken/darkboardv2/map_app.h new file mode 100644 index 000000000..22de4d441 --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/map_app.h @@ -0,0 +1,21 @@ +// +// map_app.h +// Cyanide +// Adapted from https://github.com/d1y/cyanide-ios (AGPL-3.0). +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +// Maps SnowBoard/IconBundles file names, common aliases, and Android package +// names to iOS bundle identifiers. Returns nil when the name cannot resolve. +NSString *_Nullable CNDMappedIOSBundleIDForIconName(NSString *name, + BOOL *_Nullable usedAlias); + +// Same as above, but returns every target bundle that should receive this icon. +// This is used for compatible clients that intentionally share one source icon. +NSArray *CNDMappedIOSBundleIDsForIconName(NSString *name, + BOOL *_Nullable usedAlias); + +NS_ASSUME_NONNULL_END From c8b85714c4372843cf40b07711a5d8404820e103 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:15:10 +0530 Subject: [PATCH 207/233] Create remote_obj.m --- .../tweaks/broken/darkboardv2/remote_obj.m | 702 ++++++++++++++++++ 1 file changed, 702 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/remote_obj.m diff --git a/lara/views/tweaks/broken/darkboardv2/remote_obj.m b/lara/views/tweaks/broken/darkboardv2/remote_obj.m new file mode 100644 index 000000000..468add01a --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/remote_obj.m @@ -0,0 +1,702 @@ +// +// remote_objc.m +// + +#import "remote_objc.h" +#import "../../../../kexploit/TaskRop/RemoteCall.h" +#import +#import +#import +#import + +extern uint64_t remote_read64(uint64_t src); + +static useconds_t gSettleUS = 50000; + +#define R_OBJC_CACHE_CAP 192 +#define R_OBJC_CACHE_NAME_MAX 96 + +typedef struct { + int pid; + char name[R_OBJC_CACHE_NAME_MAX]; + uint64_t value; +} RemoteObjCCacheEntry; + +static pthread_mutex_t gObjCCacheLock = PTHREAD_MUTEX_INITIALIZER; +static RemoteObjCCacheEntry gSelCache[R_OBJC_CACHE_CAP]; +static RemoteObjCCacheEntry gClassCache[R_OBJC_CACHE_CAP]; +static int gSelCacheNext = 0; +static int gClassCacheNext = 0; + +static bool r_cacheable_name(const char *name) +{ + return name && name[0] && strlen(name) < R_OBJC_CACHE_NAME_MAX; +} + +static uint64_t r_cache_lookup(RemoteObjCCacheEntry *cache, int pid, const char *name) +{ + if (pid <= 0 || !r_cacheable_name(name)) return 0; + + uint64_t value = 0; + pthread_mutex_lock(&gObjCCacheLock); + for (int i = 0; i < R_OBJC_CACHE_CAP; i++) { + if (cache[i].pid == pid && cache[i].value && strcmp(cache[i].name, name) == 0) { + value = cache[i].value; + break; + } + } + pthread_mutex_unlock(&gObjCCacheLock); + return value; +} + +static void r_cache_store(RemoteObjCCacheEntry *cache, int *nextSlot, int pid, const char *name, uint64_t value) +{ + if (pid <= 0 || !value || !r_cacheable_name(name)) return; + + pthread_mutex_lock(&gObjCCacheLock); + for (int i = 0; i < R_OBJC_CACHE_CAP; i++) { + if (cache[i].pid == pid && strcmp(cache[i].name, name) == 0) { + cache[i].value = value; + pthread_mutex_unlock(&gObjCCacheLock); + return; + } + } + + int slot = -1; + for (int i = 0; i < R_OBJC_CACHE_CAP; i++) { + if (cache[i].pid == 0 || cache[i].value == 0) { + slot = i; + break; + } + } + if (slot < 0) { + slot = *nextSlot; + *nextSlot = (*nextSlot + 1) % R_OBJC_CACHE_CAP; + } + + cache[slot].pid = pid; + strncpy(cache[slot].name, name, sizeof(cache[slot].name) - 1); + cache[slot].name[sizeof(cache[slot].name) - 1] = '\0'; + cache[slot].value = value; + pthread_mutex_unlock(&gObjCCacheLock); +} + +static void r_settle(void) +{ + if (gSettleUS) usleep(gSettleUS); +} + +uint32_t r_settle_us(uint32_t usec) +{ + uint32_t old = (uint32_t)gSettleUS; + gSettleUS = (useconds_t)usec; + return old; +} + +bool r_is_objc_ptr(uint64_t ptr) +{ + return ptr >= 0x100000000ULL; +} + +uint64_t r_dlsym_call(int timeout, const char *fnName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, + uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) +{ + return do_remote_call_stable(timeout, fnName, a0, a1, a2, a3, a4, a5, a6, a7); +} + +uint64_t r_alloc_str(const char *s) +{ + if (!s) return 0; + uint64_t len = strlen(s) + 1; + uint64_t buf = do_remote_call_stable(R_TIMEOUT, "malloc", len, 0, 0, 0, 0, 0, 0, 0); + if (buf) remote_writeStr(buf, s); + return buf; +} + +void r_free(uint64_t ptr) +{ + if (!ptr) return; + do_remote_call_stable(R_TIMEOUT, "free", ptr, 0, 0, 0, 0, 0, 0, 0); +} + +uint64_t r_sel(const char *name) +{ + int pid = remote_call_current_pid(); + uint64_t cached = r_cache_lookup(gSelCache, pid, name); + if (cached) return cached; + + uint64_t s = r_alloc_str(name); + if (!s) return 0; + uint64_t sel = do_remote_call_stable(R_TIMEOUT, "sel_registerName", s, 0, 0, 0, 0, 0, 0, 0); + r_free(s); + r_cache_store(gSelCache, &gSelCacheNext, pid, name, sel); + return sel; +} + +uint64_t r_class(const char *name) +{ + int pid = remote_call_current_pid(); + uint64_t cached = r_cache_lookup(gClassCache, pid, name); + if (cached) return cached; + + uint64_t s = r_alloc_str(name); + if (!s) return 0; + uint64_t c = do_remote_call_stable(R_TIMEOUT, "objc_getClass", s, 0, 0, 0, 0, 0, 0, 0); + r_free(s); + r_cache_store(gClassCache, &gClassCacheNext, pid, name, c); + return c; +} + +uint64_t r_msg(uint64_t obj, uint64_t sel, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + if (!obj || !sel) return 0; + return do_remote_call_stable(R_TIMEOUT, "objc_msgSend", + obj, sel, a0, a1, a2, a3, 0, 0); +} + +uint64_t r_msg2(uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + if (!obj || !selName) return 0; + uint64_t sel = r_sel(selName); + if (!sel) return 0; + r_settle(); + return r_msg(obj, sel, a0, a1, a2, a3); +} + +static uint64_t r_method_signature(uint64_t obj, uint64_t sel) +{ + if (!r_is_objc_ptr(obj) || !sel) return 0; + + uint64_t sigSel = r_sel("methodSignatureForSelector:"); + uint64_t sig = r_msg(obj, sigSel, sel, 0, 0, 0); + if (r_is_objc_ptr(sig)) return sig; + + uint64_t cls = do_remote_call_stable(R_TIMEOUT, "object_getClass", + obj, 0, 0, 0, 0, 0, 0, 0); + if (!r_is_objc_ptr(cls)) return 0; + + uint64_t method = do_remote_call_stable(R_TIMEOUT, "class_getInstanceMethod", + cls, sel, 0, 0, 0, 0, 0, 0); + if (!method) return 0; + + uint64_t types = do_remote_call_stable(R_TIMEOUT, "method_getTypeEncoding", + method, 0, 0, 0, 0, 0, 0, 0); + if (!types) return 0; + + uint64_t NSMethodSignature = r_class("NSMethodSignature"); + if (!r_is_objc_ptr(NSMethodSignature)) return 0; + return r_msg2(NSMethodSignature, "signatureWithObjCTypes:", types, 0, 0, 0); +} + +static bool r_write_remote_arg(uint64_t remoteBuf, const void *arg, size_t argSize, size_t remoteSize) +{ + if (!remoteBuf || remoteSize == 0) return false; + + uint8_t stackBuf[64]; + void *localBuf = stackBuf; + if (remoteSize > sizeof(stackBuf)) { + localBuf = calloc(1, remoteSize); + if (!localBuf) return false; + } else { + memset(stackBuf, 0, remoteSize); + } + + if (arg && argSize) { + size_t copySize = (argSize < remoteSize) ? argSize : remoteSize; + memcpy(localBuf, arg, copySize); + } + + bool ok = remote_write(remoteBuf, localBuf, remoteSize); + if (localBuf != stackBuf) free(localBuf); + return ok; +} + +uint64_t r_msg_main_raw(uint64_t obj, uint64_t sel, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size) +{ + if (!r_is_objc_ptr(obj) || !sel) return 0; + + uint64_t sig = r_method_signature(obj, sel); + if (!r_is_objc_ptr(sig)) return 0; + + uint64_t NSInvocation = r_class("NSInvocation"); + if (!r_is_objc_ptr(NSInvocation)) return 0; + + uint64_t inv = r_msg2(NSInvocation, "invocationWithMethodSignature:", sig, 0, 0, 0); + if (!r_is_objc_ptr(inv)) return 0; + + uint64_t retainedInv = r_msg2(inv, "retain", 0, 0, 0, 0); + if (r_is_objc_ptr(retainedInv)) inv = retainedInv; + + uint64_t numArgs = r_msg2(sig, "numberOfArguments", 0, 0, 0, 0); + uint64_t maxUserArgs = (numArgs > 2) ? (numArgs - 2) : 0; + if (maxUserArgs > 4) maxUserArgs = 4; + + r_msg2(inv, "setTarget:", obj, 0, 0, 0); + r_msg2(inv, "setSelector:", sel, 0, 0, 0); + + bool argsOK = true; + const void *argData[4] = { a0, a1, a2, a3 }; + size_t argSizes[4] = { a0Size, a1Size, a2Size, a3Size }; + for (uint64_t i = 0; i < maxUserArgs; i++) { + size_t argBufLen = (argSizes[i] > 8) ? argSizes[i] : 8; + uint64_t argBuf = do_remote_call_stable(R_TIMEOUT, "malloc", + argBufLen, 0, 0, 0, 0, 0, 0, 0); + if (!argBuf) { + argsOK = false; + continue; + } + if (r_write_remote_arg(argBuf, argData[i], argSizes[i], argBufLen)) { + r_msg2(inv, "setArgument:atIndex:", argBuf, i + 2, 0, 0); + } else { + argsOK = false; + } + r_free(argBuf); + } + + if (!argsOK) { + r_msg2(inv, "release", 0, 0, 0, 0); + return 0; + } + + r_msg2(inv, "retainArguments", 0, 0, 0, 0); + + uint64_t performSel = r_sel("performSelectorOnMainThread:withObject:waitUntilDone:"); + uint64_t invokeSel = r_sel("invoke"); + if (!performSel || !invokeSel) { + r_msg2(inv, "release", 0, 0, 0, 0); + return 0; + } + r_msg(inv, performSel, invokeSel, 0, 1, 0); + + uint64_t ret = 0; + uint64_t retLen = r_msg2(sig, "methodReturnLength", 0, 0, 0, 0); + if (retLen > 0) { + uint64_t retBufLen = (retLen > 8) ? retLen : 8; + uint64_t retBuf = do_remote_call_stable(R_TIMEOUT, "malloc", + retBufLen, 0, 0, 0, 0, 0, 0, 0); + if (retBuf) { + remote_write64(retBuf, 0); + r_msg2(inv, "getReturnValue:", retBuf, 0, 0, 0); + ret = remote_read64(retBuf); + r_free(retBuf); + } + } + + r_msg2(inv, "release", 0, 0, 0, 0); + return ret; +} + +uint64_t r_msg_main(uint64_t obj, uint64_t sel, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + uint64_t args[4] = { a0, a1, a2, a3 }; + return r_msg_main_raw(obj, sel, + &args[0], sizeof(args[0]), + &args[1], sizeof(args[1]), + &args[2], sizeof(args[2]), + &args[3], sizeof(args[3])); +} + +uint64_t r_msg2_main(uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + if (!obj || !selName) return 0; + uint64_t sel = r_sel(selName); + if (!sel) return 0; + r_settle(); + return r_msg_main(obj, sel, a0, a1, a2, a3); +} + +// Fire-and-forget variant: dispatches the call to main thread with +// waitUntilDone:NO and skips the return-value plumbing. Use this when the +// selector returns void and we don't need to wait — main thread retains the +// NSInvocation for the duration of the call, so it's safe to release here. +void r_msg2_main_async(uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + if (!r_is_objc_ptr(obj) || !selName) return; + uint64_t sel = r_sel(selName); + if (!sel) return; + r_settle(); + + uint64_t sig = 0; + { + uint64_t sigSel = r_sel("methodSignatureForSelector:"); + sig = r_msg(obj, sigSel, sel, 0, 0, 0); + } + if (!r_is_objc_ptr(sig)) return; + + uint64_t NSInvocation = r_class("NSInvocation"); + if (!r_is_objc_ptr(NSInvocation)) return; + uint64_t inv = r_msg2(NSInvocation, "invocationWithMethodSignature:", sig, 0, 0, 0); + if (!r_is_objc_ptr(inv)) return; + + uint64_t numArgs = r_msg2(sig, "numberOfArguments", 0, 0, 0, 0); + uint64_t maxUserArgs = (numArgs > 2) ? (numArgs - 2) : 0; + if (maxUserArgs > 4) maxUserArgs = 4; + + r_msg2(inv, "setTarget:", obj, 0, 0, 0); + r_msg2(inv, "setSelector:", sel, 0, 0, 0); + + bool argsOK = true; + uint64_t userArgs[4] = { a0, a1, a2, a3 }; + for (uint64_t i = 0; i < maxUserArgs; i++) { + uint64_t argBuf = do_remote_call_stable(R_TIMEOUT, "malloc", + 8, 0, 0, 0, 0, 0, 0, 0); + if (!argBuf) { + argsOK = false; + continue; + } + if (remote_write64(argBuf, userArgs[i])) { + r_msg2(inv, "setArgument:atIndex:", argBuf, i + 2, 0, 0); + } else { + argsOK = false; + } + r_free(argBuf); + } + + if (!argsOK) return; + + r_msg2(inv, "retainArguments", 0, 0, 0, 0); + + uint64_t performSel = r_sel("performSelectorOnMainThread:withObject:waitUntilDone:"); + uint64_t invokeSel = r_sel("invoke"); + if (performSel && invokeSel) r_msg(inv, performSel, invokeSel, 0, 0, 0); +} + +uint64_t r_msg2_main_raw(uint64_t obj, const char *selName, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size) +{ + if (!obj || !selName) return 0; + uint64_t sel = r_sel(selName); + if (!sel) return 0; + r_settle(); + return r_msg_main_raw(obj, sel, a0, a0Size, a1, a1Size, a2, a2Size, a3, a3Size); +} + +// Same flow as r_msg_main_raw, but copies the full method return buffer back +// into outBuf instead of truncating to 8 bytes. Used for selectors that return +// a struct larger than a register pair (e.g. CGRect from -convertRect:toView:). +bool r_msg2_main_struct_ret(uint64_t obj, const char *selName, + void *outBuf, size_t outSize, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size) +{ + if (!r_is_objc_ptr(obj) || !selName || !outBuf || outSize == 0) return false; + uint64_t sel = r_sel(selName); + if (!sel) return false; + r_settle(); + + uint64_t sig = r_method_signature(obj, sel); + if (!r_is_objc_ptr(sig)) return false; + + uint64_t NSInvocation = r_class("NSInvocation"); + if (!r_is_objc_ptr(NSInvocation)) return false; + + uint64_t inv = r_msg2(NSInvocation, "invocationWithMethodSignature:", sig, 0, 0, 0); + if (!r_is_objc_ptr(inv)) return false; + + uint64_t retainedInv = r_msg2(inv, "retain", 0, 0, 0, 0); + if (r_is_objc_ptr(retainedInv)) inv = retainedInv; + + uint64_t numArgs = r_msg2(sig, "numberOfArguments", 0, 0, 0, 0); + uint64_t maxUserArgs = (numArgs > 2) ? (numArgs - 2) : 0; + if (maxUserArgs > 4) maxUserArgs = 4; + + r_msg2(inv, "setTarget:", obj, 0, 0, 0); + r_msg2(inv, "setSelector:", sel, 0, 0, 0); + + bool argsOK = true; + const void *argData[4] = { a0, a1, a2, a3 }; + size_t argSizes[4] = { a0Size, a1Size, a2Size, a3Size }; + for (uint64_t i = 0; i < maxUserArgs; i++) { + size_t argBufLen = (argSizes[i] > 8) ? argSizes[i] : 8; + uint64_t argBuf = do_remote_call_stable(R_TIMEOUT, "malloc", + argBufLen, 0, 0, 0, 0, 0, 0, 0); + if (!argBuf) { + argsOK = false; + continue; + } + if (r_write_remote_arg(argBuf, argData[i], argSizes[i], argBufLen)) { + r_msg2(inv, "setArgument:atIndex:", argBuf, i + 2, 0, 0); + } else { + argsOK = false; + } + r_free(argBuf); + } + + if (!argsOK) { + r_msg2(inv, "release", 0, 0, 0, 0); + return false; + } + + r_msg2(inv, "retainArguments", 0, 0, 0, 0); + + uint64_t performSel = r_sel("performSelectorOnMainThread:withObject:waitUntilDone:"); + uint64_t invokeSel = r_sel("invoke"); + if (!performSel || !invokeSel) { + r_msg2(inv, "release", 0, 0, 0, 0); + return false; + } + r_msg(inv, performSel, invokeSel, 0, 1, 0); + + bool ok = false; + uint64_t retLen = r_msg2(sig, "methodReturnLength", 0, 0, 0, 0); + if (retLen >= outSize) { + uint64_t retBuf = do_remote_call_stable(R_TIMEOUT, "malloc", + retLen, 0, 0, 0, 0, 0, 0, 0); + if (retBuf) { + r_msg2(inv, "getReturnValue:", retBuf, 0, 0, 0); + ok = remote_read(retBuf, outBuf, outSize); + r_free(retBuf); + } + } + + r_msg2(inv, "release", 0, 0, 0, 0); + return ok; +} + +uint64_t r_perform_main(uint64_t obj, uint64_t sel, uint64_t object, bool wait) +{ + if (!r_is_objc_ptr(obj) || !sel) return 0; + uint64_t performSel = r_sel("performSelectorOnMainThread:withObject:waitUntilDone:"); + if (!performSel) return 0; + return r_msg(obj, performSel, sel, object, wait ? 1 : 0, 0); +} + +uint64_t r_cfstr(const char *s) +{ + if (!s) return 0; + uint64_t buf = r_alloc_str(s); + if (!buf) return 0; + // CFStringCreateWithCString(alloc=NULL, cstr, encoding=kCFStringEncodingUTF8=0x08000100) + uint64_t cf = do_remote_call_stable(R_TIMEOUT, "CFStringCreateWithCString", + 0, buf, 0x08000100, 0, 0, 0, 0, 0); + r_free(buf); + return cf; +} + +uint64_t r_nsstr_retained(const char *s) +{ + if (!s) return 0; + uint64_t buf = r_alloc_str(s); + if (!buf) return 0; + uint64_t NSString = r_class("NSString"); + if (!r_is_objc_ptr(NSString)) { r_free(buf); return 0; } + uint64_t allocated = r_msg2(NSString, "alloc", 0, 0, 0, 0); + if (!r_is_objc_ptr(allocated)) { r_free(buf); return 0; } + uint64_t ns = r_msg2(allocated, "initWithUTF8String:", buf, 0, 0, 0); + r_free(buf); + return ns; +} + +bool r_responds(uint64_t obj, const char *selName) +{ + if (!r_is_objc_ptr(obj)) return false; + uint64_t sel = r_sel(selName); + if (!sel) return false; + uint64_t respondsSel = r_sel("respondsToSelector:"); + if (!respondsSel) return false; + r_settle(); + uint64_t r = r_msg(obj, respondsSel, sel, 0, 0, 0); + return (r & 0xff) != 0; +} + +bool r_responds_main(uint64_t obj, const char *selName) +{ + if (!r_is_objc_ptr(obj)) return false; + uint64_t sel = r_sel(selName); + if (!sel) return false; + uint64_t respondsSel = r_sel("respondsToSelector:"); + if (!respondsSel) return false; + r_settle(); + uint64_t r = r_msg_main(obj, respondsSel, sel, 0, 0, 0); + return (r & 0xff) != 0; +} + +uint64_t r_ivar_value(uint64_t obj, const char *ivarName) +{ + if (!r_is_objc_ptr(obj)) return 0; + uint64_t cls = do_remote_call_stable(R_TIMEOUT, "object_getClass", obj, 0, 0, 0, 0, 0, 0, 0); + if (!cls) return 0; + uint64_t nameBuf = r_alloc_str(ivarName); + if (!nameBuf) return 0; + uint64_t ivar = do_remote_call_stable(R_TIMEOUT, "class_getInstanceVariable", + cls, nameBuf, 0, 0, 0, 0, 0, 0); + r_free(nameBuf); + if (!ivar) return 0; + uint64_t offset = do_remote_call_stable(R_TIMEOUT, "ivar_getOffset", + ivar, 0, 0, 0, 0, 0, 0, 0); + return remote_read64(obj + offset); +} + +bool r_read_nsstring(uint64_t str, char *out, size_t outLen) +{ + if (!r_is_objc_ptr(str) || !out || outLen == 0) return false; + memset(out, 0, outLen); + + uint64_t buf = r_dlsym_call(R_TIMEOUT, "malloc", outLen, 0, 0, 0, 0, 0, 0, 0); + if (!buf) return false; + r_dlsym_call(R_TIMEOUT, "memset", buf, 0, outLen, 0, 0, 0, 0, 0); + + bool copied = false; + if (r_responds(str, "getCString:maxLength:encoding:")) { + uint64_t ok = r_msg2(str, "getCString:maxLength:encoding:", buf, outLen, 4, 0); + if ((ok & 0xff) && remote_read(buf, out, outLen - 1)) { + out[outLen - 1] = '\0'; + copied = out[0] != '\0'; + } + } + + r_free(buf); + return copied; +} + +#ifdef __OBJC__ +#define R_SESSION_RETURN(session, type, fallback, expr) do { \ + if (!(session)) return (expr); \ + __block type result = (fallback); \ + remote_call_with_session((session), ^{ result = (expr); }); \ + return result; \ +} while (0) + +#define R_SESSION_VOID(session, expr) do { \ + if (!(session)) { expr; return; } \ + remote_call_with_session((session), ^{ expr; }); \ +} while (0) + +uint64_t r_session_dlsym_call(RemoteCallSession *session, int timeout, const char *fnName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, + uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) +{ + R_SESSION_RETURN(session, uint64_t, 0, + r_dlsym_call(timeout, fnName, a0, a1, a2, a3, a4, a5, a6, a7)); +} + +uint64_t r_session_alloc_str(RemoteCallSession *session, const char *s) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_alloc_str(s)); +} + +void r_session_free(RemoteCallSession *session, uint64_t ptr) +{ + R_SESSION_VOID(session, r_free(ptr)); +} + +uint64_t r_session_sel(RemoteCallSession *session, const char *name) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_sel(name)); +} + +uint64_t r_session_class(RemoteCallSession *session, const char *name) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_class(name)); +} + +uint64_t r_session_msg(RemoteCallSession *session, uint64_t obj, uint64_t sel, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_msg(obj, sel, a0, a1, a2, a3)); +} + +uint64_t r_session_msg2(RemoteCallSession *session, uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_msg2(obj, selName, a0, a1, a2, a3)); +} + +uint64_t r_session_msg_main(RemoteCallSession *session, uint64_t obj, uint64_t sel, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_msg_main(obj, sel, a0, a1, a2, a3)); +} + +uint64_t r_session_msg2_main(RemoteCallSession *session, uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_msg2_main(obj, selName, a0, a1, a2, a3)); +} + +void r_session_msg2_main_async(RemoteCallSession *session, uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) +{ + R_SESSION_VOID(session, r_msg2_main_async(obj, selName, a0, a1, a2, a3)); +} + +uint64_t r_session_msg_main_raw(RemoteCallSession *session, uint64_t obj, uint64_t sel, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size) +{ + R_SESSION_RETURN(session, uint64_t, 0, + r_msg_main_raw(obj, sel, a0, a0Size, a1, a1Size, a2, a2Size, a3, a3Size)); +} + +uint64_t r_session_msg2_main_raw(RemoteCallSession *session, uint64_t obj, const char *selName, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size) +{ + R_SESSION_RETURN(session, uint64_t, 0, + r_msg2_main_raw(obj, selName, a0, a0Size, a1, a1Size, a2, a2Size, a3, a3Size)); +} + +bool r_session_msg2_main_struct_ret(RemoteCallSession *session, uint64_t obj, const char *selName, + void *outBuf, size_t outSize, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size) +{ + R_SESSION_RETURN(session, bool, false, + r_msg2_main_struct_ret(obj, selName, outBuf, outSize, + a0, a0Size, a1, a1Size, a2, a2Size, a3, a3Size)); +} + +uint64_t r_session_perform_main(RemoteCallSession *session, uint64_t obj, uint64_t sel, uint64_t object, bool wait) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_perform_main(obj, sel, object, wait)); +} + +uint64_t r_session_cfstr(RemoteCallSession *session, const char *s) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_cfstr(s)); +} + +uint64_t r_session_nsstr_retained(RemoteCallSession *session, const char *s) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_nsstr_retained(s)); +} + +bool r_session_responds(RemoteCallSession *session, uint64_t obj, const char *selName) +{ + R_SESSION_RETURN(session, bool, false, r_responds(obj, selName)); +} + +bool r_session_responds_main(RemoteCallSession *session, uint64_t obj, const char *selName) +{ + R_SESSION_RETURN(session, bool, false, r_responds_main(obj, selName)); +} + +uint64_t r_session_ivar_value(RemoteCallSession *session, uint64_t obj, const char *ivarName) +{ + R_SESSION_RETURN(session, uint64_t, 0, r_ivar_value(obj, ivarName)); +} + +#undef R_SESSION_VOID +#undef R_SESSION_RETURN +#endif From acdc1c4ee76a17b47aeed04681e399922626afd3 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:16:46 +0530 Subject: [PATCH 208/233] Create remote_obj.h --- .../tweaks/broken/darkboardv2/remote_obj.h | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/remote_obj.h diff --git a/lara/views/tweaks/broken/darkboardv2/remote_obj.h b/lara/views/tweaks/broken/darkboardv2/remote_obj.h new file mode 100644 index 000000000..eff116efc --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/remote_obj.h @@ -0,0 +1,107 @@ +// +// remote_objc.h +// Thin Objective-C runtime helpers built on do_remote_call_stable. +// + +#ifndef remote_objc_h +#define remote_objc_h + +#import +#import +#import +#ifdef __OBJC__ +#import "../../../../kexploit/TaskRop/RemoteCall.h" +#endif + +#define R_TIMEOUT 5 + +uint64_t r_alloc_str(const char *s); +void r_free(uint64_t ptr); +uint64_t r_sel(const char *name); +uint64_t r_class(const char *name); +uint64_t r_msg(uint64_t obj, uint64_t sel, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +uint64_t r_msg2(uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +uint64_t r_msg_main(uint64_t obj, uint64_t sel, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +uint64_t r_msg2_main(uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +void r_msg2_main_async(uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +uint64_t r_msg_main_raw(uint64_t obj, uint64_t sel, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size); +uint64_t r_msg2_main_raw(uint64_t obj, const char *selName, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size); +bool r_msg2_main_struct_ret(uint64_t obj, const char *selName, + void *outBuf, size_t outSize, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size); +uint32_t r_settle_us(uint32_t usec); +uint64_t r_perform_main(uint64_t obj, uint64_t sel, uint64_t object, bool wait); +uint64_t r_cfstr(const char *s); +uint64_t r_nsstr_retained(const char *s); +bool r_responds(uint64_t obj, const char *selName); +bool r_responds_main(uint64_t obj, const char *selName); +bool r_is_objc_ptr(uint64_t ptr); +uint64_t r_ivar_value(uint64_t obj, const char *ivarName); +uint64_t r_dlsym_call(int timeout, const char *fnName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, + uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7); + +// Copies the UTF-8 bytes of a remote NSString into a local C buffer (NUL +// terminated, truncated to outLen-1). Returns true only if at least one +// byte was copied. +bool r_read_nsstring(uint64_t str, char *out, size_t outLen); + +#ifdef __OBJC__ +uint64_t r_session_alloc_str(RemoteCallSession *session, const char *s); +void r_session_free(RemoteCallSession *session, uint64_t ptr); +uint64_t r_session_sel(RemoteCallSession *session, const char *name); +uint64_t r_session_class(RemoteCallSession *session, const char *name); +uint64_t r_session_msg(RemoteCallSession *session, uint64_t obj, uint64_t sel, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +uint64_t r_session_msg2(RemoteCallSession *session, uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +uint64_t r_session_msg_main(RemoteCallSession *session, uint64_t obj, uint64_t sel, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +uint64_t r_session_msg2_main(RemoteCallSession *session, uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +void r_session_msg2_main_async(RemoteCallSession *session, uint64_t obj, const char *selName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); +uint64_t r_session_msg_main_raw(RemoteCallSession *session, uint64_t obj, uint64_t sel, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size); +uint64_t r_session_msg2_main_raw(RemoteCallSession *session, uint64_t obj, const char *selName, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size); +bool r_session_msg2_main_struct_ret(RemoteCallSession *session, uint64_t obj, const char *selName, + void *outBuf, size_t outSize, + const void *a0, size_t a0Size, + const void *a1, size_t a1Size, + const void *a2, size_t a2Size, + const void *a3, size_t a3Size); +uint64_t r_session_perform_main(RemoteCallSession *session, uint64_t obj, uint64_t sel, uint64_t object, bool wait); +uint64_t r_session_cfstr(RemoteCallSession *session, const char *s); +uint64_t r_session_nsstr_retained(RemoteCallSession *session, const char *s); +bool r_session_responds(RemoteCallSession *session, uint64_t obj, const char *selName); +bool r_session_responds_main(RemoteCallSession *session, uint64_t obj, const char *selName); +uint64_t r_session_ivar_value(RemoteCallSession *session, uint64_t obj, const char *ivarName); +uint64_t r_session_dlsym_call(RemoteCallSession *session, int timeout, const char *fnName, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, + uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7); +#endif + +#endif From 6dd7deb2c5e21018f986d0d940f893cd5c5ba187 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:17:50 +0530 Subject: [PATCH 209/233] Create sb_walk.m --- .../views/tweaks/broken/darkboardv2/sb_walk.m | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/sb_walk.m diff --git a/lara/views/tweaks/broken/darkboardv2/sb_walk.m b/lara/views/tweaks/broken/darkboardv2/sb_walk.m new file mode 100644 index 000000000..ad61719c4 --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/sb_walk.m @@ -0,0 +1,76 @@ +// +// sb_walk.m +// Lifted verbatim from darksword_layout.m's rc_collect_list_views / +// rc_collect_from_windows so themer.m and any future tweak can share them +// without duplicating the BFS. +// + +#import "sb_walk.h" +#import "remote_objc.h" + +static uint64_t sw_safe_msg(uint64_t obj, const char *selname, + uint64_t a, uint64_t b, uint64_t c, uint64_t d) +{ + if (!obj) return 0; + uint64_t sel = r_sel(selname); + uint64_t rs = r_sel("respondsToSelector:"); + if (!sel || !rs) return 0; + if (!r_msg(obj, rs, sel, 0, 0, 0)) return 0; + return r_msg(obj, sel, a, b, c, d); +} + +int sb_collect_views(uint64_t root, uint64_t klass, uint64_t *out, int cap) +{ + if (!root || !klass || cap <= 0) return 0; + uint64_t selSub = r_sel("subviews"); + uint64_t selCnt = r_sel("count"); + uint64_t selObj = r_sel("objectAtIndex:"); + uint64_t selKind = r_sel("isKindOfClass:"); + + enum { QMAX = 4096 }; + static uint64_t q[QMAX]; + int head = 0, tail = 0, found = 0, visited = 0; + q[tail++] = root; + while (head < tail && visited < QMAX) { + uint64_t v = q[head++]; + visited++; + if (!v) continue; + if (r_msg(v, selKind, klass, 0, 0, 0)) { + if (found < cap) out[found++] = v; + continue; + } + uint64_t subs = r_msg(v, selSub, 0, 0, 0, 0); + if (!subs) continue; + uint64_t cn = r_msg(subs, selCnt, 0, 0, 0, 0); + if (cn > 256) cn = 256; + for (uint64_t i = 0; i < cn && tail < QMAX; i++) { + uint64_t c = r_msg(subs, selObj, i, 0, 0, 0); + if (c) q[tail++] = c; + } + } + return found; +} + +int sb_collect_views_in_windows(uint64_t klass, uint64_t *out, int cap) +{ + uint64_t clsApp = r_class("UIApplication"); + if (!clsApp) return 0; + uint64_t app = sw_safe_msg(clsApp, "sharedApplication", 0, 0, 0, 0); + if (!app) return 0; + + int n = 0; + uint64_t wins = sw_safe_msg(app, "windows", 0, 0, 0, 0); + if (wins) { + uint64_t wc = r_msg(wins, r_sel("count"), 0, 0, 0, 0); + if (wc > 32) wc = 32; + for (uint64_t i = 0; i < wc && n < cap; i++) { + uint64_t w = r_msg(wins, r_sel("objectAtIndex:"), i, 0, 0, 0); + if (w) n += sb_collect_views(w, klass, out + n, cap - n); + } + } + if (n == 0) { + uint64_t kw = sw_safe_msg(app, "keyWindow", 0, 0, 0, 0); + if (kw) n += sb_collect_views(kw, klass, out + n, cap - n); + } + return n; +} From 4a53efb9d8c70f8a2db5fd1cdccc4e61bfd96afb Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:18:19 +0530 Subject: [PATCH 210/233] Create sb_walk.h --- .../views/tweaks/broken/darkboardv2/sb_walk.h | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/sb_walk.h diff --git a/lara/views/tweaks/broken/darkboardv2/sb_walk.h b/lara/views/tweaks/broken/darkboardv2/sb_walk.h new file mode 100644 index 000000000..dd734f5ad --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/sb_walk.h @@ -0,0 +1,22 @@ +// +// sb_walk.h +// RemoteCall view-tree helpers shared between tweaks that need to find +// SpringBoard views of a particular class (SBIconListView, SBIconView, etc). +// + +#ifndef sb_walk_h +#define sb_walk_h + +#import + +// BFS from `root` collecting subviews that are instances of `klass`. +// Matched views are NOT recursed into. Returns the count written to `out`, +// capped at `cap`. Not reentrant — uses a static BFS queue. Callers are +// already serialized under the settings RemoteCall lock. +int sb_collect_views(uint64_t root, uint64_t klass, uint64_t *out, int cap); + +// Walks every UIApplication window (falls back to keyWindow if -windows +// returns empty) and collects views of `klass` across all of them. +int sb_collect_views_in_windows(uint64_t klass, uint64_t *out, int cap); + +#endif /* sb_walk_h */ From c0bf2dbced2c85e972c4fad5c36e76a736a4902e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:22:54 +0530 Subject: [PATCH 211/233] Create LogTextView.h --- .../tweaks/broken/darkboardv2/LogTextView.h | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/LogTextView.h diff --git a/lara/views/tweaks/broken/darkboardv2/LogTextView.h b/lara/views/tweaks/broken/darkboardv2/LogTextView.h new file mode 100644 index 000000000..231b8960f --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/LogTextView.h @@ -0,0 +1,48 @@ +// +// LogTextView.h +// Cyanide +// +// Created by seo on 4/7/26. +// + +#import +#import + +@interface LogTextView : UITextView +@end + +void log_init(void); +void log_write(const char *msg); +void log_write_raw_no_timestamp(const char *msg); +void log_set_verbose(BOOL enabled); +BOOL log_verbose_enabled(void); +void log_user(const char *fmt, ...) __attribute__((format(printf, 1, 2))); + +// Persistent session logs. When a chain run begins, call log_session_begin() +// to open a timestamped file at /chain-YYYYMMDD-HHMMSS.log. +// Every subsequent line emitted via the printf macro / log_user / log_write +// is tee'd into that file with an [HH:MM:SS.mmm] prefix. Call log_session_end() +// when the chain run finishes (typically in @finally) to flush + close. +// Info.plist's UIFileSharingEnabled surfaces these files in Files.app under +// On My iPhone → Cyanide. +void log_session_begin(void); +void log_session_end(void); + +// Absolute path of the most recent session log file, or nil if none exist. +NSString * _Nullable log_most_recent_session_path(void); + +// Snapshot of the in-app ring buffer (joined with '\n'). Always reflects the +// current state of what the user sees in Settings → View Log — boot identity, +// chain output, anything emitted via the printf macro / log_user. Returned +// even when no chain session is active, so the Contact email can ship live +// context regardless of whether log_session_begin/end ran. +NSString *log_inapp_buffer_snapshot(void); + +// Mirror printf into the LogTextView ring buffer. Any TU that imports this +// header gets its printf calls echoed both to stdout and to the in-app log. +#define printf(fmt, ...) ({ \ + printf(fmt, ##__VA_ARGS__); \ + char _logbuf[2560]; \ + snprintf(_logbuf, sizeof(_logbuf), fmt, ##__VA_ARGS__); \ + log_write(_logbuf); \ +}) From b2d1bcfa8b41de4fa91c5d7defd71b1202c30d2c Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:26:33 +0530 Subject: [PATCH 212/233] Create LogTextView.c --- .../tweaks/broken/darkboardv2/LogTextView.c | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/LogTextView.c diff --git a/lara/views/tweaks/broken/darkboardv2/LogTextView.c b/lara/views/tweaks/broken/darkboardv2/LogTextView.c new file mode 100644 index 000000000..07fbb1a37 --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/LogTextView.c @@ -0,0 +1,109 @@ +//Dummy implementation +// No logic +// created by notthemystery + +#include +#include +#include +#include +#include +#include +#include "LogTextView.h + +static BOOL g_verbose = NO; + +static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER; + +static char *g_buffer = NULL; +static size_t g_buffer_size = 0; + +static void append_buffer(const char *msg) +{ + if (!msg) return; + + pthread_mutex_lock(&g_lock); + + size_t len = strlen(msg); + + char *newbuf = realloc(g_buffer, g_buffer_size + len + 2); + if (!newbuf) { + pthread_mutex_unlock(&g_lock); + return; + } + + g_buffer = newbuf; + + memcpy(g_buffer + g_buffer_size, msg, len); + g_buffer_size += len; + + g_buffer[g_buffer_size++] = '\n'; + g_buffer[g_buffer_size] = '\0'; + + pthread_mutex_unlock(&g_lock); +} + +void log_init(void) +{ + // no-op init + g_verbose = NO; +} + +void log_write(const char *msg) +{ + if (!msg) return; + append_buffer(msg); +} + +void log_write_raw_no_timestamp(const char *msg) +{ + if (!msg) return; + append_buffer(msg); +} + +void log_set_verbose(BOOL enabled) +{ + g_verbose = enabled; +} + +BOOL log_verbose_enabled(void) +{ + return g_verbose; +} + +// printf-style user log +void log_user(const char *fmt, ...) +{ + if (!fmt) return; + + char buf[2048]; + + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + + append_buffer(buf); +} + +void log_session_begin(void) +{ + append_buffer("[session begin]"); +} + +void log_session_end(void) +{ + append_buffer("[session end]"); +} + +NSString * _Nullable log_most_recent_session_path(void) +{ + return nil; // dummy +} + +NSString *log_inapp_buffer_snapshot(void) +{ + if (!g_buffer) { + return @""; // empty snapshot + } + return [NSString stringWithUTF8String:g_buffer]; +} From 16e2ccfb13886127aa9785bfd395ae04c14f9382 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:28:06 +0530 Subject: [PATCH 213/233] Update LogTextView.h --- lara/views/tweaks/broken/darkboardv2/LogTextView.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/lara/views/tweaks/broken/darkboardv2/LogTextView.h b/lara/views/tweaks/broken/darkboardv2/LogTextView.h index 231b8960f..726ec6979 100644 --- a/lara/views/tweaks/broken/darkboardv2/LogTextView.h +++ b/lara/views/tweaks/broken/darkboardv2/LogTextView.h @@ -8,9 +8,6 @@ #import #import -@interface LogTextView : UITextView -@end - void log_init(void); void log_write(const char *msg); void log_write_raw_no_timestamp(const char *msg); From 8c39ab3fc41165fa978a9df6e4281a76baecef99 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:39:15 +0530 Subject: [PATCH 214/233] Update lara-Bridging-Header.h --- lara/lara-Bridging-Header.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/lara-Bridging-Header.h b/lara/lara-Bridging-Header.h index f092a4222..8103570aa 100644 --- a/lara/lara-Bridging-Header.h +++ b/lara/lara-Bridging-Header.h @@ -20,6 +20,7 @@ #import "persistence.h" #import "ota.h" #import "screentime.h" +#import "themer.h" #import From 45071a2c067ae4752ad3a1ee192e445ddd5c81ac Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:43:49 +0530 Subject: [PATCH 215/233] Create DBV2View.swift --- .../tweaks/broken/darkboardv2/DBV2View.swift | 205 ++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 lara/views/tweaks/broken/darkboardv2/DBV2View.swift diff --git a/lara/views/tweaks/broken/darkboardv2/DBV2View.swift b/lara/views/tweaks/broken/darkboardv2/DBV2View.swift new file mode 100644 index 000000000..19fec9600 --- /dev/null +++ b/lara/views/tweaks/broken/darkboardv2/DBV2View.swift @@ -0,0 +1,205 @@ +import SwiftUI +import UIKit +import UniformTypeIdentifiers + +final class SBLLogger: ObservableObject { + static let shared = SBLLogger() + + @Published var text: String = "" + + func log(_ msg: String) { + DispatchQueue.main.async { + let line = "[\(Self.time())] \(msg)\n" + self.text.append(line) + } + } + + static func time() -> String { + let f = DateFormatter() + f.dateFormat = "HH:mm:ss" + return f.string(from: Date()) + } +} + +struct SBLTheme: Identifiable { + let id = UUID() + let name: String + let path: String +} + +final class SBLThemeStore: ObservableObject { + @Published var themes: [SBLTheme] = [] + @Published var selected: SBLTheme? + + let logger = SBLLogger.shared + + func addTheme(name: String, path: String) { + let t = SBLTheme(name: name, path: path) + themes.append(t) + selected = t + logger.log("Added theme: \(name)") + } + + func select(_ theme: SBLTheme) { + selected = theme + logger.log("Selected theme: \(theme.name)") + } +} + +@_silgen_name("themer_apply_in_session") +func themer_apply_in_session(_ themePath: UnsafePointer) -> Bool + +@_silgen_name("themer_stop_in_session") +func themer_stop_in_session() -> Bool + +struct DocumentPicker: UIViewControllerRepresentable { + var onPick: (URL) -> Void + + func makeCoordinator() -> Coordinator { + Coordinator(onPick: onPick) + } + + func makeUIViewController(context: Context) -> UIDocumentPickerViewController { + let picker = UIDocumentPickerViewController(forOpeningContentTypes: [.folder, .data], asCopy: true) + picker.delegate = context.coordinator + return picker + } + + func updateUIViewController(_ uiViewController: UIDocumentPickerViewController, context: Context) {} + + final class Coordinator: NSObject, UIDocumentPickerDelegate { + let onPick: (URL) -> Void + + init(onPick: @escaping (URL) -> Void) { + self.onPick = onPick + } + + func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { + guard let url = urls.first else { return } + onPick(url) + } + } +} + +struct DBV2View: View { + @StateObject var store = SBLThemeStore() + @StateObject var logger = SBLLogger.shared + + @State private var showImporter = false + + var body: some View { + NavigationView { + VStack(spacing: 12) { + + // Theme List + List { + ForEach(store.themes) { theme in + HStack { + Text(theme.name) + Spacer() + if store.selected?.id == theme.id { + Text("Selected") + .foregroundColor(.green) + } + } + .contentShape(Rectangle()) + .onTapGesture { + store.select(theme) + } + } + } + + // Buttons + HStack { + Button("Import Theme") { + showImporter = true + } + .buttonStyle(.borderedProminent) + + Button("Apply") { + applyTheme() + } + .buttonStyle(.bordered) + + Button("Stop") { + _ = themer_stop_in_session() + logger.log("Stopped theming session") + } + .buttonStyle(.bordered) + } + .padding(.horizontal) + + // Log view (replaces LogTextView) + ScrollView { + Text(logger.text) + .font(.system(size: 12, design: .monospaced)) + .frame(maxWidth: .infinity, alignment: .leading) + .padding() + } + .frame(height: 220) + .background(Color.black.opacity(0.05)) + } + .navigationTitle("DarkBoard V2") + } + .sheet(isPresented: $showImporter) { + DocumentPicker { url in + importTheme(from: url) + } + } + } + + + func importTheme(from url: URL) { + let fm = FileManager.default + logger.log("Importing: \(url.lastPathComponent)") + + guard url.startAccessingSecurityScopedResource() else { + logger.log("Failed security scope access") + return + } + defer { url.stopAccessingSecurityScopedResource() } + + do { + let contents = try fm.contentsOfDirectory(at: url, includingPropertiesForKeys: nil) + + let pngs = contents.filter { $0.pathExtension.lowercased() == "png" } + if pngs.isEmpty { + logger.log("No PNG icons found") + return + } + + // Create temp theme folder in Documents + let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first! + let themeDir = docs.appendingPathComponent("SnowBoardLite/\(UUID().uuidString)") + let iconsDir = themeDir.appendingPathComponent("Icons") + + try fm.createDirectory(at: iconsDir, withIntermediateDirectories: true) + + // Copy files + for file in pngs { + let dest = iconsDir.appendingPathComponent(file.lastPathComponent) + try? fm.copyItem(at: file, to: dest) + } + + store.addTheme(name: url.lastPathComponent, path: iconsDir.path) + + } catch { + logger.log("Import error: \(error.localizedDescription)") + } + } + + func applyTheme() { + guard let theme = store.selected else { + logger.log("No theme selected") + return + } + + logger.log("Applying theme: \(theme.name)") + + let result = theme.path.withCString { ptr in + themer_apply_in_session(ptr) + } + + logger.log(result ? "Apply success" : "Apply failed") + } +} From e92a4055b746cc302035daadc58f82781bde6c2e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:45:17 +0530 Subject: [PATCH 216/233] Add Extra Tools navigation link to TweaksView --- lara/views/tweaks/TweaksView.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index 7a16461d0..fbfd63281 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -66,6 +66,9 @@ struct TweaksView: View { NavigationLink("DarkBoard", destination: DarkBoardView()) .disabled(!mgr.developer) } + Section(header: HeaderLabel(text: "In Progress (WIP)", icon: "exclamationmark.triangle.fill")) { + NavigationLink("DarkBoardV2", destination: DBV2View()) + .disabled(!mgr.developer) NavigationLink("Extra Tools", destination: ToolsView()) } From 58ee81b86106ffc377fd143a94ea251bda5b75ab Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:45:44 +0530 Subject: [PATCH 217/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index fbfd63281..f94d1a984 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -69,6 +69,7 @@ struct TweaksView: View { Section(header: HeaderLabel(text: "In Progress (WIP)", icon: "exclamationmark.triangle.fill")) { NavigationLink("DarkBoardV2", destination: DBV2View()) .disabled(!mgr.developer) + } NavigationLink("Extra Tools", destination: ToolsView()) } From f33ba99582896079388be76e3e02d7d0a72d3436 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:49:03 +0530 Subject: [PATCH 218/233] Update DBV2View.swift --- lara/views/tweaks/broken/darkboardv2/DBV2View.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/lara/views/tweaks/broken/darkboardv2/DBV2View.swift b/lara/views/tweaks/broken/darkboardv2/DBV2View.swift index 19fec9600..ac30159be 100644 --- a/lara/views/tweaks/broken/darkboardv2/DBV2View.swift +++ b/lara/views/tweaks/broken/darkboardv2/DBV2View.swift @@ -1,6 +1,7 @@ import SwiftUI import UIKit import UniformTypeIdentifiers +import Combine final class SBLLogger: ObservableObject { static let shared = SBLLogger() From e39451f16c01b294faaad6a2c2dc58004a778317 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:52:35 +0530 Subject: [PATCH 219/233] Rename remote_obj.h to remote_objc.h --- .../tweaks/broken/darkboardv2/{remote_obj.h => remote_objc.h} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lara/views/tweaks/broken/darkboardv2/{remote_obj.h => remote_objc.h} (100%) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_obj.h b/lara/views/tweaks/broken/darkboardv2/remote_objc.h similarity index 100% rename from lara/views/tweaks/broken/darkboardv2/remote_obj.h rename to lara/views/tweaks/broken/darkboardv2/remote_objc.h From 8177f7b5f7306da38f0c08b9cc2dc762a6108996 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 17:52:53 +0530 Subject: [PATCH 220/233] Rename remote_obj.m to remote_objc.m --- .../tweaks/broken/darkboardv2/{remote_obj.m => remote_objc.m} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lara/views/tweaks/broken/darkboardv2/{remote_obj.m => remote_objc.m} (100%) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_obj.m b/lara/views/tweaks/broken/darkboardv2/remote_objc.m similarity index 100% rename from lara/views/tweaks/broken/darkboardv2/remote_obj.m rename to lara/views/tweaks/broken/darkboardv2/remote_objc.m From 4d82a828951de95d96f634fbed7a91f0ea8edf1a Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 18:00:10 +0530 Subject: [PATCH 221/233] Update remote_objc.h --- lara/views/tweaks/broken/darkboardv2/remote_objc.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.h b/lara/views/tweaks/broken/darkboardv2/remote_objc.h index eff116efc..09abaf7a1 100644 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.h +++ b/lara/views/tweaks/broken/darkboardv2/remote_objc.h @@ -11,6 +11,9 @@ #import #ifdef __OBJC__ #import "../../../../kexploit/TaskRop/RemoteCall.h" +@class RemoteCallSession; +#else +typedef struct RemoteCallSession RemoteCallSession; #endif #define R_TIMEOUT 5 From 25906afc2018df7baadf164e8b19b8180506e2d4 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 18:06:09 +0530 Subject: [PATCH 222/233] Rename LogTextView.c to LogTextView.m --- .../tweaks/broken/darkboardv2/{LogTextView.c => LogTextView.m} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lara/views/tweaks/broken/darkboardv2/{LogTextView.c => LogTextView.m} (100%) diff --git a/lara/views/tweaks/broken/darkboardv2/LogTextView.c b/lara/views/tweaks/broken/darkboardv2/LogTextView.m similarity index 100% rename from lara/views/tweaks/broken/darkboardv2/LogTextView.c rename to lara/views/tweaks/broken/darkboardv2/LogTextView.m From 82dcdda251687fdf3db3156803898a3f2e7444c7 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 18:15:18 +0530 Subject: [PATCH 223/233] Update LogTextView.m --- lara/views/tweaks/broken/darkboardv2/LogTextView.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/broken/darkboardv2/LogTextView.m b/lara/views/tweaks/broken/darkboardv2/LogTextView.m index 07fbb1a37..bd7feac91 100644 --- a/lara/views/tweaks/broken/darkboardv2/LogTextView.m +++ b/lara/views/tweaks/broken/darkboardv2/LogTextView.m @@ -8,7 +8,7 @@ #include #include #include -#include "LogTextView.h +#include "LogTextView.h" static BOOL g_verbose = NO; From ade2a6f9a5fc0ff38fe1794d6d16716d6611c6ca Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 18:24:55 +0530 Subject: [PATCH 224/233] Update remote_objc.m --- lara/views/tweaks/broken/darkboardv2/remote_objc.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.m b/lara/views/tweaks/broken/darkboardv2/remote_objc.m index 468add01a..decbbd4e9 100644 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.m +++ b/lara/views/tweaks/broken/darkboardv2/remote_objc.m @@ -3,7 +3,7 @@ // #import "remote_objc.h" -#import "../../../../kexploit/TaskRop/RemoteCall.h" +#import "TaskRop/RemoteCall.h" #import #import #import From cd63f75b1b3733a474874914fd9f35ddc923e13b Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 18:25:14 +0530 Subject: [PATCH 225/233] Update remote_objc.h --- lara/views/tweaks/broken/darkboardv2/remote_objc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.h b/lara/views/tweaks/broken/darkboardv2/remote_objc.h index 09abaf7a1..db2c972ce 100644 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.h +++ b/lara/views/tweaks/broken/darkboardv2/remote_objc.h @@ -10,7 +10,7 @@ #import #import #ifdef __OBJC__ -#import "../../../../kexploit/TaskRop/RemoteCall.h" +#import "TaskRop/RemoteCall.h" @class RemoteCallSession; #else typedef struct RemoteCallSession RemoteCallSession; From 9a5bd46b7ae13d0699ad1b3c8a298b9041906e4d Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 18:35:26 +0530 Subject: [PATCH 226/233] Update remote_objc.m --- .../tweaks/broken/darkboardv2/remote_objc.m | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.m b/lara/views/tweaks/broken/darkboardv2/remote_objc.m index decbbd4e9..affabf8d2 100644 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.m +++ b/lara/views/tweaks/broken/darkboardv2/remote_objc.m @@ -16,6 +16,45 @@ #define R_OBJC_CACHE_CAP 192 #define R_OBJC_CACHE_NAME_MAX 96 +static inline uint64_t do_remote_call_stable(RemoteCall *proc, + int timeout, + const char *name, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, + uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) +{ + uint64_t args[8] = { a0,a1,a2,a3,a4,a5,a6,a7 }; + return [proc doRemoteCallStableWithTimeout:timeout + functionName:(char *)name + functionPointer:NULL + args:args + argCount:8]; +} + +static inline uint64_t remote_read64(RemoteCall *proc, uint64_t src) +{ + return [proc remoteRead64From:src]; +} + +static inline bool remote_read(RemoteCall *proc, uint64_t src, void *dst, uint64_t size) +{ + return [proc remoteRead:src to:dst size:size]; +} + +static inline bool remote_write(RemoteCall *proc, uint64_t dst, const void *src, uint64_t size) +{ + return [proc remote_write:dst from:src size:size]; +} + +static inline bool remote_write64(RemoteCall *proc, uint64_t dst, uint64_t val) +{ + return [proc remote_write64:dst value:val]; +} + +static inline int remote_call_current_pid(RemoteCall *proc) +{ + return proc.pid; +} + typedef struct { int pid; char name[R_OBJC_CACHE_NAME_MAX]; From 1edb19be83555d5e10edb89627f78f297333907c Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 18:40:15 +0530 Subject: [PATCH 227/233] Update remote_objc.m --- .../tweaks/broken/darkboardv2/remote_objc.m | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.m b/lara/views/tweaks/broken/darkboardv2/remote_objc.m index affabf8d2..5c280097d 100644 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.m +++ b/lara/views/tweaks/broken/darkboardv2/remote_objc.m @@ -16,43 +16,45 @@ #define R_OBJC_CACHE_CAP 192 #define R_OBJC_CACHE_NAME_MAX 96 -static inline uint64_t do_remote_call_stable(RemoteCall *proc, - int timeout, - const char *name, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, - uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) -{ - uint64_t args[8] = { a0,a1,a2,a3,a4,a5,a6,a7 }; - return [proc doRemoteCallStableWithTimeout:timeout - functionName:(char *)name - functionPointer:NULL - args:args - argCount:8]; +static inline RemoteCall *R(void) { + // If you already store a global RemoteCall instance, return it here + extern RemoteCall *gRemoteCall; + return gRemoteCall; } -static inline uint64_t remote_read64(RemoteCall *proc, uint64_t src) +static inline uint64_t R_CALL(int timeout, const char *name, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, + uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) { - return [proc remoteRead64From:src]; + return [R() doRemoteCallStableWithTimeout:timeout + functionName:(char *)name + functionPointer:NULL + args:(uint64_t[]){a0,a1,a2,a3,a4,a5,a6,a7} + argCount:8]; } -static inline bool remote_read(RemoteCall *proc, uint64_t src, void *dst, uint64_t size) -{ - return [proc remoteRead:src to:dst size:size]; +static inline uint64_t R_READ64(uint64_t addr) { + return [R() remoteRead64From:addr]; } -static inline bool remote_write(RemoteCall *proc, uint64_t dst, const void *src, uint64_t size) -{ +static inline BOOL R_WRITE(RemoteCall *proc, uint64_t dst, const void *src, uint64_t size) { return [proc remote_write:dst from:src size:size]; } -static inline bool remote_write64(RemoteCall *proc, uint64_t dst, uint64_t val) -{ +static inline BOOL R_WRITE64(RemoteCall *proc, uint64_t dst, uint64_t val) { return [proc remote_write64:dst value:val]; } -static inline int remote_call_current_pid(RemoteCall *proc) -{ - return proc.pid; +static inline uint64_t R_SEL(const char *name) { + return remote_sel(R(), name); +} + +static inline uint64_t R_CLASS(const char *name) { + return remote_getClass(R(), name); +} + +static inline uint64_t R_STR(const char *s) { + return remote_alloc_str(R(), s); } typedef struct { From aa8e70a8315aae799c63904304d59417361d7e45 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 20:18:59 +0530 Subject: [PATCH 228/233] Update remote_objc.m --- .../tweaks/broken/darkboardv2/remote_objc.m | 61 +++++++++++-------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.m b/lara/views/tweaks/broken/darkboardv2/remote_objc.m index 5c280097d..b67cfbb00 100644 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.m +++ b/lara/views/tweaks/broken/darkboardv2/remote_objc.m @@ -16,45 +16,58 @@ #define R_OBJC_CACHE_CAP 192 #define R_OBJC_CACHE_NAME_MAX 96 -static inline RemoteCall *R(void) { - // If you already store a global RemoteCall instance, return it here - extern RemoteCall *gRemoteCall; - return gRemoteCall; -} +extern RemoteCall *gRemoteCall; // you MUST have this somewhere -static inline uint64_t R_CALL(int timeout, const char *name, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, - uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) +#define R() (gRemoteCall) + +// ---- FIX: do_remote_call_stable ---- +static inline uint64_t do_remote_call_stable(int timeout, + const char *name, + uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, + uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) { return [R() doRemoteCallStableWithTimeout:timeout - functionName:(char *)name - functionPointer:NULL - args:(uint64_t[]){a0,a1,a2,a3,a4,a5,a6,a7} - argCount:8]; + functionName:(char *)name + functionPointer:NULL + args:(uint64_t[]){a0,a1,a2,a3,a4,a5,a6,a7} + argCount:8]; } -static inline uint64_t R_READ64(uint64_t addr) { - return [R() remoteRead64From:addr]; +// ---- FIX: remote_writeStr ---- +static inline void remote_writeStr(uint64_t dst, const char *str) +{ + if (!str) return; + [R() remote_write:dst string:str]; } -static inline BOOL R_WRITE(RemoteCall *proc, uint64_t dst, const void *src, uint64_t size) { - return [proc remote_write:dst from:src size:size]; +// ---- FIX: remote_call_current_pid ---- +static inline int remote_call_current_pid(void) +{ + return R().pid; } -static inline BOOL R_WRITE64(RemoteCall *proc, uint64_t dst, uint64_t val) { - return [proc remote_write64:dst value:val]; +// ---- FIX: remote_write64 ---- +static inline bool remote_write64(uint64_t dst, uint64_t val) +{ + return [R() remote_write64:dst value:val]; } -static inline uint64_t R_SEL(const char *name) { - return remote_sel(R(), name); +// ---- FIX: remote_write ---- +static inline bool remote_write(RemoteCall *proc, uint64_t dst, const void *src, uint64_t size) +{ + return [proc remote_write:dst from:src size:size]; } -static inline uint64_t R_CLASS(const char *name) { - return remote_getClass(R(), name); +// ---- FIX: remote_read ---- +static inline bool remote_read(uint64_t src, void *dst, uint64_t size) +{ + return [R() remoteRead:R() to:dst size:size]; // fallback-safe wrapper style } -static inline uint64_t R_STR(const char *s) { - return remote_alloc_str(R(), s); +// ---- FIX: remote_read64 ---- +static inline uint64_t remote_read64(uint64_t src) +{ + return [R() remoteRead64From:src]; } typedef struct { From efdbe6f5c44f0e69f87a649aa6b6af0607ab53d6 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 20:27:40 +0530 Subject: [PATCH 229/233] Update remote_objc.m --- .../tweaks/broken/darkboardv2/remote_objc.m | 43 ++++++++----------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.m b/lara/views/tweaks/broken/darkboardv2/remote_objc.m index b67cfbb00..e554e95f7 100644 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.m +++ b/lara/views/tweaks/broken/darkboardv2/remote_objc.m @@ -16,58 +16,53 @@ #define R_OBJC_CACHE_CAP 192 #define R_OBJC_CACHE_NAME_MAX 96 -extern RemoteCall *gRemoteCall; // you MUST have this somewhere +extern RemoteCall *gRemoteCall; #define R() (gRemoteCall) -// ---- FIX: do_remote_call_stable ---- static inline uint64_t do_remote_call_stable(int timeout, - const char *name, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, - uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) + const char *name, + uint64_t a0, uint64_t a1, + uint64_t a2, uint64_t a3, + uint64_t a4, uint64_t a5, + uint64_t a6, uint64_t a7) { + uint64_t args[] = { a0,a1,a2,a3,a4,a5,a6,a7 }; + return [R() doRemoteCallStableWithTimeout:timeout functionName:(char *)name - functionPointer:NULL - args:(uint64_t[]){a0,a1,a2,a3,a4,a5,a6,a7} - argCount:8]; + functionPointer:NULL + args:args + argCount:8]; } -// ---- FIX: remote_writeStr ---- static inline void remote_writeStr(uint64_t dst, const char *str) { - if (!str) return; [R() remote_write:dst string:str]; } -// ---- FIX: remote_call_current_pid ---- static inline int remote_call_current_pid(void) { return R().pid; } -// ---- FIX: remote_write64 ---- static inline bool remote_write64(uint64_t dst, uint64_t val) { return [R() remote_write64:dst value:val]; } -// ---- FIX: remote_write ---- -static inline bool remote_write(RemoteCall *proc, uint64_t dst, const void *src, uint64_t size) -{ - return [proc remote_write:dst from:src size:size]; -} - -// ---- FIX: remote_read ---- -static inline bool remote_read(uint64_t src, void *dst, uint64_t size) +static inline bool remote_write(uint64_t dst, + const void *src, + uint64_t size) { - return [R() remoteRead:R() to:dst size:size]; // fallback-safe wrapper style + return [R() remote_write:dst from:src size:size]; } -// ---- FIX: remote_read64 ---- -static inline uint64_t remote_read64(uint64_t src) +static inline bool remote_read(uint64_t src, + void *dst, + uint64_t size) { - return [R() remoteRead64From:src]; + return [R() remoteRead:src to:dst size:size]; } typedef struct { From 87cb33b4bf69f29ca8574e76bf5ef5909a1826cb Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 20:27:54 +0530 Subject: [PATCH 230/233] Update remote_objc.m --- lara/views/tweaks/broken/darkboardv2/remote_objc.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.m b/lara/views/tweaks/broken/darkboardv2/remote_objc.m index e554e95f7..1de5eccda 100644 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.m +++ b/lara/views/tweaks/broken/darkboardv2/remote_objc.m @@ -3,7 +3,7 @@ // #import "remote_objc.h" -#import "TaskRop/RemoteCall.h" +#import "RemoteCall.h" #import #import #import From eb55c17f110f13ac95f7e8f3d5e69cbc8c37d85e Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Tue, 9 Jun 2026 21:40:56 +0530 Subject: [PATCH 231/233] Update themer.m --- lara/views/tweaks/broken/darkboardv2/themer.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lara/views/tweaks/broken/darkboardv2/themer.m b/lara/views/tweaks/broken/darkboardv2/themer.m index 3d4a0467f..3956d98cc 100644 --- a/lara/views/tweaks/broken/darkboardv2/themer.m +++ b/lara/views/tweaks/broken/darkboardv2/themer.m @@ -286,7 +286,7 @@ static void themer_read_class_name(uint64_t obj, char *out, size_t outLen) if (!name) return; uint64_t heap = r_dlsym_call(R_TIMEOUT, "strdup", name, 0, 0, 0, 0, 0, 0, 0); if (!heap) return; - if (remote_read(heap, out, outLen - 1)) out[outLen - 1] = '\0'; + if ([gRemoteCall remoteRead:heap to:out size:outLen - 1]) out[outLen - 1] = '\0'; r_free(heap); } @@ -301,7 +301,7 @@ static void themer_read_class_object_name(uint64_t cls, char *out, size_t outLen uint64_t heap = r_dlsym_call(R_TIMEOUT, "strdup", name, 0, 0, 0, 0, 0, 0, 0); if (!heap) return; - if (remote_read(heap, out, outLen - 1)) out[outLen - 1] = '\0'; + if ([gRemoteCall remoteRead:heap to:out size:outLen - 1]) out[outLen - 1] = '\0'; r_free(heap); } @@ -652,7 +652,7 @@ static uint64_t themer_build_remote_uiimage_from_data(NSData *bytes, const char (unsigned long)bytes.length, label ?: "?"); return 0; } - if (!remote_write(remoteBuf, bytes.bytes, bytes.length)) { + if (![gRemoteCall remote_write:remoteBuf from:bytes.bytes size:bytes.length]) { printf("[THEMER] remote_write failed buf=0x%llx size=%lu label=%s\n", (unsigned long long)remoteBuf, (unsigned long)bytes.length, label ?: "?"); r_free(remoteBuf); From d5c2760c676c40b75e46fc3960faefeb1dc5c4c8 Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Wed, 10 Jun 2026 18:59:51 +0530 Subject: [PATCH 232/233] Update TweaksView.swift --- lara/views/tweaks/TweaksView.swift | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lara/views/tweaks/TweaksView.swift b/lara/views/tweaks/TweaksView.swift index f94d1a984..7a16461d0 100644 --- a/lara/views/tweaks/TweaksView.swift +++ b/lara/views/tweaks/TweaksView.swift @@ -66,10 +66,6 @@ struct TweaksView: View { NavigationLink("DarkBoard", destination: DarkBoardView()) .disabled(!mgr.developer) } - Section(header: HeaderLabel(text: "In Progress (WIP)", icon: "exclamationmark.triangle.fill")) { - NavigationLink("DarkBoardV2", destination: DBV2View()) - .disabled(!mgr.developer) - } NavigationLink("Extra Tools", destination: ToolsView()) } From 2aa38fd5532e42d0c16d99a7a8d18d08b182ec6c Mon Sep 17 00:00:00 2001 From: The Mystery <132539789+notthemystery@users.noreply.github.com> Date: Wed, 10 Jun 2026 19:00:04 +0530 Subject: [PATCH 233/233] Delete lara/views/tweaks/broken/darkboardv2 directory --- .../tweaks/broken/darkboardv2/DBV2View.swift | 206 -- .../tweaks/broken/darkboardv2/LogTextView.h | 45 - .../tweaks/broken/darkboardv2/LogTextView.m | 109 - .../views/tweaks/broken/darkboardv2/map_app.h | 21 - .../views/tweaks/broken/darkboardv2/map_app.m | 670 ----- .../tweaks/broken/darkboardv2/remote_objc.h | 110 - .../tweaks/broken/darkboardv2/remote_objc.m | 751 ----- .../views/tweaks/broken/darkboardv2/sb_walk.h | 22 - .../views/tweaks/broken/darkboardv2/sb_walk.m | 76 - lara/views/tweaks/broken/darkboardv2/themer.h | 51 - lara/views/tweaks/broken/darkboardv2/themer.m | 2471 ----------------- 11 files changed, 4532 deletions(-) delete mode 100644 lara/views/tweaks/broken/darkboardv2/DBV2View.swift delete mode 100644 lara/views/tweaks/broken/darkboardv2/LogTextView.h delete mode 100644 lara/views/tweaks/broken/darkboardv2/LogTextView.m delete mode 100644 lara/views/tweaks/broken/darkboardv2/map_app.h delete mode 100644 lara/views/tweaks/broken/darkboardv2/map_app.m delete mode 100644 lara/views/tweaks/broken/darkboardv2/remote_objc.h delete mode 100644 lara/views/tweaks/broken/darkboardv2/remote_objc.m delete mode 100644 lara/views/tweaks/broken/darkboardv2/sb_walk.h delete mode 100644 lara/views/tweaks/broken/darkboardv2/sb_walk.m delete mode 100644 lara/views/tweaks/broken/darkboardv2/themer.h delete mode 100644 lara/views/tweaks/broken/darkboardv2/themer.m diff --git a/lara/views/tweaks/broken/darkboardv2/DBV2View.swift b/lara/views/tweaks/broken/darkboardv2/DBV2View.swift deleted file mode 100644 index ac30159be..000000000 --- a/lara/views/tweaks/broken/darkboardv2/DBV2View.swift +++ /dev/null @@ -1,206 +0,0 @@ -import SwiftUI -import UIKit -import UniformTypeIdentifiers -import Combine - -final class SBLLogger: ObservableObject { - static let shared = SBLLogger() - - @Published var text: String = "" - - func log(_ msg: String) { - DispatchQueue.main.async { - let line = "[\(Self.time())] \(msg)\n" - self.text.append(line) - } - } - - static func time() -> String { - let f = DateFormatter() - f.dateFormat = "HH:mm:ss" - return f.string(from: Date()) - } -} - -struct SBLTheme: Identifiable { - let id = UUID() - let name: String - let path: String -} - -final class SBLThemeStore: ObservableObject { - @Published var themes: [SBLTheme] = [] - @Published var selected: SBLTheme? - - let logger = SBLLogger.shared - - func addTheme(name: String, path: String) { - let t = SBLTheme(name: name, path: path) - themes.append(t) - selected = t - logger.log("Added theme: \(name)") - } - - func select(_ theme: SBLTheme) { - selected = theme - logger.log("Selected theme: \(theme.name)") - } -} - -@_silgen_name("themer_apply_in_session") -func themer_apply_in_session(_ themePath: UnsafePointer) -> Bool - -@_silgen_name("themer_stop_in_session") -func themer_stop_in_session() -> Bool - -struct DocumentPicker: UIViewControllerRepresentable { - var onPick: (URL) -> Void - - func makeCoordinator() -> Coordinator { - Coordinator(onPick: onPick) - } - - func makeUIViewController(context: Context) -> UIDocumentPickerViewController { - let picker = UIDocumentPickerViewController(forOpeningContentTypes: [.folder, .data], asCopy: true) - picker.delegate = context.coordinator - return picker - } - - func updateUIViewController(_ uiViewController: UIDocumentPickerViewController, context: Context) {} - - final class Coordinator: NSObject, UIDocumentPickerDelegate { - let onPick: (URL) -> Void - - init(onPick: @escaping (URL) -> Void) { - self.onPick = onPick - } - - func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { - guard let url = urls.first else { return } - onPick(url) - } - } -} - -struct DBV2View: View { - @StateObject var store = SBLThemeStore() - @StateObject var logger = SBLLogger.shared - - @State private var showImporter = false - - var body: some View { - NavigationView { - VStack(spacing: 12) { - - // Theme List - List { - ForEach(store.themes) { theme in - HStack { - Text(theme.name) - Spacer() - if store.selected?.id == theme.id { - Text("Selected") - .foregroundColor(.green) - } - } - .contentShape(Rectangle()) - .onTapGesture { - store.select(theme) - } - } - } - - // Buttons - HStack { - Button("Import Theme") { - showImporter = true - } - .buttonStyle(.borderedProminent) - - Button("Apply") { - applyTheme() - } - .buttonStyle(.bordered) - - Button("Stop") { - _ = themer_stop_in_session() - logger.log("Stopped theming session") - } - .buttonStyle(.bordered) - } - .padding(.horizontal) - - // Log view (replaces LogTextView) - ScrollView { - Text(logger.text) - .font(.system(size: 12, design: .monospaced)) - .frame(maxWidth: .infinity, alignment: .leading) - .padding() - } - .frame(height: 220) - .background(Color.black.opacity(0.05)) - } - .navigationTitle("DarkBoard V2") - } - .sheet(isPresented: $showImporter) { - DocumentPicker { url in - importTheme(from: url) - } - } - } - - - func importTheme(from url: URL) { - let fm = FileManager.default - logger.log("Importing: \(url.lastPathComponent)") - - guard url.startAccessingSecurityScopedResource() else { - logger.log("Failed security scope access") - return - } - defer { url.stopAccessingSecurityScopedResource() } - - do { - let contents = try fm.contentsOfDirectory(at: url, includingPropertiesForKeys: nil) - - let pngs = contents.filter { $0.pathExtension.lowercased() == "png" } - if pngs.isEmpty { - logger.log("No PNG icons found") - return - } - - // Create temp theme folder in Documents - let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first! - let themeDir = docs.appendingPathComponent("SnowBoardLite/\(UUID().uuidString)") - let iconsDir = themeDir.appendingPathComponent("Icons") - - try fm.createDirectory(at: iconsDir, withIntermediateDirectories: true) - - // Copy files - for file in pngs { - let dest = iconsDir.appendingPathComponent(file.lastPathComponent) - try? fm.copyItem(at: file, to: dest) - } - - store.addTheme(name: url.lastPathComponent, path: iconsDir.path) - - } catch { - logger.log("Import error: \(error.localizedDescription)") - } - } - - func applyTheme() { - guard let theme = store.selected else { - logger.log("No theme selected") - return - } - - logger.log("Applying theme: \(theme.name)") - - let result = theme.path.withCString { ptr in - themer_apply_in_session(ptr) - } - - logger.log(result ? "Apply success" : "Apply failed") - } -} diff --git a/lara/views/tweaks/broken/darkboardv2/LogTextView.h b/lara/views/tweaks/broken/darkboardv2/LogTextView.h deleted file mode 100644 index 726ec6979..000000000 --- a/lara/views/tweaks/broken/darkboardv2/LogTextView.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// LogTextView.h -// Cyanide -// -// Created by seo on 4/7/26. -// - -#import -#import - -void log_init(void); -void log_write(const char *msg); -void log_write_raw_no_timestamp(const char *msg); -void log_set_verbose(BOOL enabled); -BOOL log_verbose_enabled(void); -void log_user(const char *fmt, ...) __attribute__((format(printf, 1, 2))); - -// Persistent session logs. When a chain run begins, call log_session_begin() -// to open a timestamped file at /chain-YYYYMMDD-HHMMSS.log. -// Every subsequent line emitted via the printf macro / log_user / log_write -// is tee'd into that file with an [HH:MM:SS.mmm] prefix. Call log_session_end() -// when the chain run finishes (typically in @finally) to flush + close. -// Info.plist's UIFileSharingEnabled surfaces these files in Files.app under -// On My iPhone → Cyanide. -void log_session_begin(void); -void log_session_end(void); - -// Absolute path of the most recent session log file, or nil if none exist. -NSString * _Nullable log_most_recent_session_path(void); - -// Snapshot of the in-app ring buffer (joined with '\n'). Always reflects the -// current state of what the user sees in Settings → View Log — boot identity, -// chain output, anything emitted via the printf macro / log_user. Returned -// even when no chain session is active, so the Contact email can ship live -// context regardless of whether log_session_begin/end ran. -NSString *log_inapp_buffer_snapshot(void); - -// Mirror printf into the LogTextView ring buffer. Any TU that imports this -// header gets its printf calls echoed both to stdout and to the in-app log. -#define printf(fmt, ...) ({ \ - printf(fmt, ##__VA_ARGS__); \ - char _logbuf[2560]; \ - snprintf(_logbuf, sizeof(_logbuf), fmt, ##__VA_ARGS__); \ - log_write(_logbuf); \ -}) diff --git a/lara/views/tweaks/broken/darkboardv2/LogTextView.m b/lara/views/tweaks/broken/darkboardv2/LogTextView.m deleted file mode 100644 index bd7feac91..000000000 --- a/lara/views/tweaks/broken/darkboardv2/LogTextView.m +++ /dev/null @@ -1,109 +0,0 @@ -//Dummy implementation -// No logic -// created by notthemystery - -#include -#include -#include -#include -#include -#include -#include "LogTextView.h" - -static BOOL g_verbose = NO; - -static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER; - -static char *g_buffer = NULL; -static size_t g_buffer_size = 0; - -static void append_buffer(const char *msg) -{ - if (!msg) return; - - pthread_mutex_lock(&g_lock); - - size_t len = strlen(msg); - - char *newbuf = realloc(g_buffer, g_buffer_size + len + 2); - if (!newbuf) { - pthread_mutex_unlock(&g_lock); - return; - } - - g_buffer = newbuf; - - memcpy(g_buffer + g_buffer_size, msg, len); - g_buffer_size += len; - - g_buffer[g_buffer_size++] = '\n'; - g_buffer[g_buffer_size] = '\0'; - - pthread_mutex_unlock(&g_lock); -} - -void log_init(void) -{ - // no-op init - g_verbose = NO; -} - -void log_write(const char *msg) -{ - if (!msg) return; - append_buffer(msg); -} - -void log_write_raw_no_timestamp(const char *msg) -{ - if (!msg) return; - append_buffer(msg); -} - -void log_set_verbose(BOOL enabled) -{ - g_verbose = enabled; -} - -BOOL log_verbose_enabled(void) -{ - return g_verbose; -} - -// printf-style user log -void log_user(const char *fmt, ...) -{ - if (!fmt) return; - - char buf[2048]; - - va_list ap; - va_start(ap, fmt); - vsnprintf(buf, sizeof(buf), fmt, ap); - va_end(ap); - - append_buffer(buf); -} - -void log_session_begin(void) -{ - append_buffer("[session begin]"); -} - -void log_session_end(void) -{ - append_buffer("[session end]"); -} - -NSString * _Nullable log_most_recent_session_path(void) -{ - return nil; // dummy -} - -NSString *log_inapp_buffer_snapshot(void) -{ - if (!g_buffer) { - return @""; // empty snapshot - } - return [NSString stringWithUTF8String:g_buffer]; -} diff --git a/lara/views/tweaks/broken/darkboardv2/map_app.h b/lara/views/tweaks/broken/darkboardv2/map_app.h deleted file mode 100644 index 22de4d441..000000000 --- a/lara/views/tweaks/broken/darkboardv2/map_app.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// map_app.h -// Cyanide -// Adapted from https://github.com/d1y/cyanide-ios (AGPL-3.0). -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -// Maps SnowBoard/IconBundles file names, common aliases, and Android package -// names to iOS bundle identifiers. Returns nil when the name cannot resolve. -NSString *_Nullable CNDMappedIOSBundleIDForIconName(NSString *name, - BOOL *_Nullable usedAlias); - -// Same as above, but returns every target bundle that should receive this icon. -// This is used for compatible clients that intentionally share one source icon. -NSArray *CNDMappedIOSBundleIDsForIconName(NSString *name, - BOOL *_Nullable usedAlias); - -NS_ASSUME_NONNULL_END diff --git a/lara/views/tweaks/broken/darkboardv2/map_app.m b/lara/views/tweaks/broken/darkboardv2/map_app.m deleted file mode 100644 index c597059fd..000000000 --- a/lara/views/tweaks/broken/darkboardv2/map_app.m +++ /dev/null @@ -1,670 +0,0 @@ -// -// map_app.m -// Cyanide -// Adapted from https://github.com/d1y/cyanide-ios (AGPL-3.0). -// - -#import "map_app.h" - -static NSString *CNDIconBaseName(NSString *name) -{ - NSString *ext = name.pathExtension.lowercaseString; - NSString *base = ([ext isEqualToString:@"png"] || - [ext isEqualToString:@"jpg"] || - [ext isEqualToString:@"jpeg"] || - [ext isEqualToString:@"heic"] || - [ext isEqualToString:@"webp"]) - ? name.stringByDeletingPathExtension - : name; - BOOL changed = YES; - while (changed && base.length > 0) { - changed = NO; - for (NSString *suffix in @[ - @"@3x", - @"@2x", - @"~iphone", - @"~ipad", - @"-large", - @"-small", - @"-dark", - @"-light", - @".past", - @"past", - @".icon.720p", - @"icon.720p", - @"ic.launcher", - @"ic_launcher", - @"icon", - ]) { - if ([base hasSuffix:suffix]) { - base = [base substringToIndex:base.length - suffix.length]; - changed = YES; - } - } - } - return base; -} - -static NSString *CNDCompactAliasKey(NSString *name) -{ - NSString *lower = name.lowercaseString; - NSMutableString *out = [NSMutableString stringWithCapacity:lower.length]; - NSCharacterSet *skip = [NSCharacterSet characterSetWithCharactersInString:@" _-."]; - for (NSUInteger i = 0; i < lower.length; i++) { - unichar c = [lower characterAtIndex:i]; - if ([skip characterIsMember:c]) continue; - [out appendFormat:@"%C", c]; - } - return out; -} - -static NSDictionary *CNDAppIconAliases(void) -{ - static NSDictionary *aliases = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - aliases = @{ - @"appstore": @"com.apple.AppStore", - @"com.apple.appstore": @"com.apple.AppStore", - @"settings": @"com.apple.Preferences", - @"preferences": @"com.apple.Preferences", - @"com.apple.preferences": @"com.apple.Preferences", - @"messages": @"com.apple.MobileSMS", - @"sms": @"com.apple.MobileSMS", - @"com.apple.mobilesms": @"com.apple.MobileSMS", - @"phone": @"com.apple.mobilephone", - @"safari": @"com.apple.mobilesafari", - @"mail": @"com.apple.mobilemail", - @"calendar": @"com.apple.mobilecal", - @"clock": @"com.apple.mobiletimer", - @"maps": @"com.apple.Maps", - @"com.apple.maps": @"com.apple.Maps", - @"photos": @"com.apple.mobileslideshow", - @"camera": @"com.apple.camera", - @"notes": @"com.apple.mobilenotes", - @"reminders": @"com.apple.reminders", - @"weather": @"com.apple.weather", - @"music": @"com.apple.Music", - @"com.apple.music": @"com.apple.Music", - @"contacts": @"com.apple.MobileAddressBook", - @"com.apple.mobileaddressbook": @"com.apple.MobileAddressBook", - @"com.apple.contacts": @"com.apple.MobileAddressBook", - @"facetime": @"com.apple.facetime", - @"findmy": @"com.apple.findmy", - @"findiphone": @"com.apple.findmy", - @"findmyiphone": @"com.apple.findmy", - @"com.apple.mobileme.fmip1": @"com.apple.findmy", - @"calculator": @"com.apple.calculator", - @"compass": @"com.apple.compass", - @"wallet": @"com.apple.Passbook", - @"passbook": @"com.apple.Passbook", - @"com.apple.passbook": @"com.apple.Passbook", - @"books": @"com.apple.iBooks", - @"ibooks": @"com.apple.iBooks", - @"com.apple.ibooks": @"com.apple.iBooks", - @"itunesstore": @"com.apple.iTunesStore", - @"com.apple.itunesstore": @"com.apple.iTunesStore", - @"voicememos": @"com.apple.VoiceMemos", - @"com.apple.voicememos": @"com.apple.VoiceMemos", - @"health": @"com.apple.Health", - @"home": @"com.apple.Home", - @"shortcuts": @"com.apple.shortcuts", - @"translate": @"com.apple.Translate", - @"freeform": @"com.apple.freeform", - @"journal": @"com.apple.Journal", - - @"alipay": @"com.alipay.iphoneclient", - @"支付宝": @"com.alipay.iphoneclient", - @"com.eg.android.alipaygphone": @"com.alipay.iphoneclient", - @"taobao": @"com.taobao.taobao4iphone", - @"淘宝": @"com.taobao.taobao4iphone", - @"淘宝iphone": @"com.taobao.taobao4iphone", - @"com.taobao.taobao": @"com.taobao.taobao4iphone", - @"amap": @"com.autonavi.minimap", - @"gaode": @"com.autonavi.minimap", - @"gaodemap": @"com.autonavi.minimap", - @"autonavi": @"com.autonavi.minimap", - @"高德": @"com.autonavi.minimap", - @"高德地图": @"com.autonavi.minimap", - @"com.autonavi.minimap": @"com.autonavi.minimap", - @"pinduoduo": @"com.xunmeng.pinduoduo", - @"pdd": @"com.xunmeng.pinduoduo", - @"拼多多": @"com.xunmeng.pinduoduo", - @"shadowrocket": @"com.liguangming.Shadowrocket", - @"com.liguangming.shadowrocket": @"com.liguangming.Shadowrocket", - @"twitter": @"com.atebits.Tweetie2", - @"tweetie": @"com.atebits.Tweetie2", - @"tweetie2": @"com.atebits.Tweetie2", - @"com.atebits.tweetie2": @"com.atebits.Tweetie2", - @"biliblue": @"tv.danmaku.biliblue", - @"bilibili": @"tv.danmaku.bilianime", - @"bilibili蓝版": @"tv.danmaku.biliblue", - @"com.bilibili.app.blue": @"tv.danmaku.biliblue", - @"tv.danmaku.bili": @"tv.danmaku.bilianime", - - @"wechat": @"com.tencent.xin", - @"weixin": @"com.tencent.xin", - @"微信": @"com.tencent.xin", - @"com.tencent.mm": @"com.tencent.xin", - @"qq": @"com.tencent.mqq", - @"com.tencent.mobileqq": @"com.tencent.mqq", - @"qqmusic": @"com.tencent.QQMusic", - @"com.tencent.qqmusic": @"com.tencent.QQMusic", - @"jingdong": @"com.360buy.jdmobile", - @"jd": @"com.360buy.jdmobile", - @"京东": @"com.360buy.jdmobile", - @"com.jingdong.app.mall": @"com.360buy.jdmobile", - @"douyin": @"com.ss.iphone.ugc.Aweme", - @"抖音": @"com.ss.iphone.ugc.Aweme", - @"com.ss.android.ugc.aweme": @"com.ss.iphone.ugc.Aweme", - @"kuaishou": @"com.kuaishou.gifmaker", - @"快手": @"com.kuaishou.gifmaker", - @"com.smile.gifmaker": @"com.kuaishou.gifmaker", - @"meituan": @"com.meituan.imeituan", - @"美团": @"com.meituan.imeituan", - @"com.sankuai.meituan": @"com.meituan.imeituan", - @"eleme": @"me.ele.ios.eleme", - @"饿了么": @"me.ele.ios.eleme", - @"me.ele": @"me.ele.ios.eleme", - @"xiaohongshu": @"com.xingin.discover", - @"xhs": @"com.xingin.discover", - @"小红书": @"com.xingin.discover", - @"com.xingin.xhs": @"com.xingin.discover", - @"baidumap": @"com.baidu.map", - @"百度地图": @"com.baidu.map", - @"com.baidu.baidumap": @"com.baidu.map", - @"baidu": @"com.baidu.searchbox", - @"百度": @"com.baidu.searchbox", - @"com.baidu.searchbox": @"com.baidu.searchbox", - @"didichuxing": @"com.xiaojukeji.didi", - @"didi": @"com.xiaojukeji.didi", - @"滴滴": @"com.xiaojukeji.didi", - @"com.sdu.didi.psnger": @"com.xiaojukeji.didi", - @"neteasemusic": @"com.netease.cloudmusic", - @"网易云音乐": @"com.netease.cloudmusic", - @"com.netease.cloudmusic": @"com.netease.cloudmusic", - @"zhihu": @"com.zhihu.ios", - @"知乎": @"com.zhihu.ios", - @"com.zhihu.android": @"com.zhihu.ios", - @"zhihudaily": @"com.zhihu.daily", - @"知乎日报": @"com.zhihu.daily", - @"com.zhihu.daily.android": @"com.zhihu.daily", - @"boss": @"com.hpbr.bosszhipin", - @"bosszhipin": @"com.hpbr.bosszhipin", - @"boss直聘": @"com.hpbr.bosszhipin", - @"直聘": @"com.hpbr.bosszhipin", - @"com.hpbr.bosszhipin": @"com.hpbr.bosszhipin", - @"zhaopin": @"com.zhaopin.social", - @"智联招聘": @"com.zhaopin.social", - @"com.zhaopin.social": @"com.zhaopin.social", - @"maimai": @"com.taou.maimai", - @"脉脉": @"com.taou.maimai", - @"com.taou.maimai": @"com.taou.maimai", - @"jdjr": @"com.jd.jrapp", - @"jdfinance": @"com.jd.jrapp", - @"京东金融": @"com.jd.jrapp", - @"com.jd.jrapp": @"com.jd.jrapp", - @"jingdongdaojia": @"com.jd.pdj", - @"jddaojia": @"com.jd.pdj", - @"京东到家": @"com.jd.pdj", - @"com.jingdong.pdj": @"com.jd.pdj", - @"cainiao": @"com.cainiao.Cainiao4iPhone", - @"菜鸟": @"com.cainiao.Cainiao4iPhone", - @"菜鸟裹裹": @"com.cainiao.Cainiao4iPhone", - @"com.cainiao.wireless": @"com.cainiao.Cainiao4iPhone", - @"qianniu": @"com.taobao.QN", - @"千牛": @"com.taobao.QN", - @"com.taobao.qianniu": @"com.taobao.QN", - @"etao": @"com.taobao.etao", - @"一淘": @"com.taobao.etao", - @"com.taobao.etao": @"com.taobao.etao", - @"youku": @"com.youku.YouKu", - @"优酷": @"com.youku.YouKu", - @"com.youku.phone": @"com.youku.YouKu", - @"iqiyi": @"com.qiyi.iphone", - @"爱奇艺": @"com.qiyi.iphone", - @"com.qiyi.video": @"com.qiyi.iphone", - @"mgtv": @"com.hunantv.imgo.activity", - @"芒果tv": @"com.hunantv.imgo.activity", - @"com.hunantv.imgo.activity": @"com.hunantv.imgo.activity", - @"xunlei": @"com.xunlei.download", - @"迅雷": @"com.xunlei.download", - @"com.xunlei.downloadprovider": @"com.xunlei.download", - @"ctrip": @"ctrip.com", - @"xiecheng": @"ctrip.com", - @"携程": @"ctrip.com", - @"ctrip.android.view": @"ctrip.com", - @"com.android.ctrip.gs": @"ctrip.com", - @"com.android.ctrip.gsic.launcher": @"ctrip.com", - @"qunar": @"com.qunar.iphoneclient", - @"去哪儿": @"com.qunar.iphoneclient", - @"com.qunar": @"com.qunar.iphoneclient", - @"tongcheng": @"com.ly.iphone", - @"同程旅行": @"com.ly.iphone", - @"com.tongcheng.android": @"com.ly.iphone", - @"baidunetdisk": @"com.baidu.netdisk", - @"百度网盘": @"com.baidu.netdisk", - @"com.baidu.netdisk": @"com.baidu.netdisk", - @"tieba": @"com.baidu.tieba", - @"baidutieba": @"com.baidu.tieba", - @"百度贴吧": @"com.baidu.tieba", - @"com.baidu.tieba": @"com.baidu.tieba", - @"baiduwenku": @"com.baidu.Wenku", - @"百度文库": @"com.baidu.Wenku", - @"com.baidu.wenku": @"com.baidu.Wenku", - @"baidutranslate": @"com.baidu.Translate", - @"百度翻译": @"com.baidu.Translate", - @"com.baidu.baidutranslate": @"com.baidu.Translate", - @"qqmail": @"com.tencent.qqmail", - @"qq邮箱": @"com.tencent.qqmail", - @"com.tencent.androidqqmail": @"com.tencent.qqmail", - @"quanminkge": @"com.tencent.karaoke", - @"quanminge": @"com.tencent.karaoke", - @"全民k歌": @"com.tencent.karaoke", - @"com.tencent.karaoke": @"com.tencent.karaoke", - @"qqlite": @"com.tencent.qqlite", - @"qq轻聊版": @"com.tencent.qqlite", - @"com.tencent.qqlite": @"com.tencent.qqlite", - @"yingyongbao": @"com.tencent.androidqqdownloader", - @"应用宝": @"com.tencent.androidqqdownloader", - @"com.tencent.android.qqdownloader": @"com.tencent.androidqqdownloader", - @"tencentnews": @"com.tencent.news", - @"腾讯新闻": @"com.tencent.news", - @"com.tencent.news": @"com.tencent.news", - @"weishi": @"com.tencent.weishi", - @"微视": @"com.tencent.weishi", - @"com.tencent.weishi": @"com.tencent.weishi", - @"douban": @"com.douban.frodo", - @"豆瓣": @"com.douban.frodo", - @"com.douban.frodo": @"com.douban.frodo", - @"lofter": @"com.netease.lofter", - @"com.netease.loftercam.activity": @"com.netease.lofter", - @"wangyiyanxuan": @"com.netease.yanxuan", - @"网易严选": @"com.netease.yanxuan", - @"com.netease.yanxuan": @"com.netease.yanxuan", - @"neteasenews": @"com.netease.news", - @"网易新闻": @"com.netease.news", - @"com.netease.newsreader.activity": @"com.netease.news", - @"youdaodict": @"com.youdao.dict", - @"网易有道词典": @"com.youdao.dict", - @"com.youdao.dict": @"com.youdao.dict", - @"ximalaya": @"com.gemd.iting", - @"喜马拉雅": @"com.gemd.iting", - @"com.ximalaya.ting.android": @"com.gemd.iting", - @"douyu": @"air.tv.douyu.douyutv", - @"斗鱼": @"air.tv.douyu.douyutv", - @"air.tv.douyu.android": @"air.tv.douyu.douyutv", - @"huya": @"com.duowan.HUYA", - @"虎牙": @"com.duowan.HUYA", - @"com.duowan.kiwi": @"com.duowan.HUYA", - @"xiaomi": @"com.xiaomi.mishop", - @"小米商城": @"com.xiaomi.mishop", - @"com.xiaomi.shop": @"com.xiaomi.mishop", - @"mijia": @"com.xiaomi.mihome", - @"米家": @"com.xiaomi.mihome", - @"com.xiaomi.smarthome": @"com.xiaomi.mihome", - @"cmb": @"cmb.pb", - @"招商银行": @"cmb.pb", - @"cmbchina": @"cmb.pb", - @"掌上生活": @"com.cmbchina.ccd.pluto.cmbactivity", - @"com.cmbchina.ccd.pluto.cmbactivity": @"com.cmbchina.ccd.pluto.cmbactivity", - @"icbc": @"com.icbc.iphoneclient", - @"工商银行": @"com.icbc.iphoneclient", - @"com.icbc": @"com.icbc.iphoneclient", - @"ccb": @"com.ccb.ccbMobileBank", - @"建设银行": @"com.ccb.ccbMobileBank", - @"com.chinamworld.main": @"com.ccb.ccbMobileBank", - @"abc": @"com.abchina.iphone.abchina", - @"农业银行": @"com.abchina.iphone.abchina", - @"com.android.bankabc": @"com.abchina.iphone.abchina", - @"boc": @"com.bocmbci.bocmbci", - @"中国银行": @"com.bocmbci.bocmbci", - @"com.chinamworld.bocmbci": @"com.bocmbci.bocmbci", - @"spdb": @"cn.com.spdb.mobilebank.per", - @"浦发银行": @"cn.com.spdb.mobilebank.per", - @"cn.com.spdb.mobilebank.per": @"cn.com.spdb.mobilebank.per", - @"citic": @"com.ecitic.bank.mobile", - @"中信银行": @"com.ecitic.bank.mobile", - @"pinganbank": @"com.pingan.pabank", - @"平安银行": @"com.pingan.pabank", - @"com.pingan.pabank.activity": @"com.pingan.pabank", - @"pingan": @"com.pingan.paces.ccms", - @"平安金管家": @"com.pingan.paces.ccms", - @"com.pingan.papd": @"com.pingan.paces.ccms", - - @"google": @"com.google.GoogleMobile", - @"com.google.android.googlequicksearchbox": @"com.google.GoogleMobile", - @"gmail": @"com.google.Gmail", - @"com.google.android.gm": @"com.google.Gmail", - @"googlemaps": @"com.google.Maps", - @"com.google.android.apps.maps": @"com.google.Maps", - @"youtube": @"com.google.ios.youtube", - @"com.google.android.youtube": @"com.google.ios.youtube", - @"chrome": @"com.google.chrome.ios", - @"com.android.chrome": @"com.google.chrome.ios", - @"com.google.android.apps.chrome": @"com.google.chrome.ios", - @"googlephotos": @"com.google.photos", - @"com.google.android.apps.photos": @"com.google.photos", - @"googledrive": @"com.google.Drive", - @"com.google.android.apps.docs": @"com.google.Drive", - @"googledocs": @"com.google.Docs", - @"com.google.android.apps.docs.editors.docs": @"com.google.Docs", - @"googlesheets": @"com.google.Sheets", - @"com.google.android.apps.docs.editors.sheets": @"com.google.Sheets", - @"googleslides": @"com.google.Slides", - @"com.google.android.apps.docs.editors.slides": @"com.google.Slides", - @"googletranslate": @"com.google.Translate", - @"com.google.android.apps.translate": @"com.google.Translate", - @"googlecalendar": @"com.google.Calendar", - @"com.google.android.calendar": @"com.google.Calendar", - @"googlekeep": @"com.google.Keep", - @"com.google.android.keep": @"com.google.Keep", - @"googlemeet": @"com.google.meetings", - @"com.google.android.apps.meetings": @"com.google.meetings", - - @"facebook": @"com.facebook.Facebook", - @"com.facebook.katana": @"com.facebook.Facebook", - @"messenger": @"com.facebook.Messenger", - @"com.facebook.orca": @"com.facebook.Messenger", - @"instagram": @"com.burbn.instagram", - @"com.instagram.android": @"com.burbn.instagram", - @"whatsapp": @"net.whatsapp.WhatsApp", - @"com.whatsapp": @"net.whatsapp.WhatsApp", - @"telegram": @"ph.telegra.Telegraph", - @"org.telegram.messenger": @"ph.telegra.Telegraph", - @"signal": @"org.whispersystems.signal", - @"org.thoughtcrime.securesms": @"org.whispersystems.signal", - @"discord": @"com.hammerandchisel.discord", - @"com.discord": @"com.hammerandchisel.discord", - @"reddit": @"com.reddit.Reddit", - @"com.reddit.frontpage": @"com.reddit.Reddit", - @"snapchat": @"com.toyopagroup.picaboo", - @"com.snapchat.android": @"com.toyopagroup.picaboo", - @"tiktok": @"com.zhiliaoapp.musically", - @"com.zhiliaoapp.musically": @"com.zhiliaoapp.musically", - @"com.twitter.android": @"com.atebits.Tweetie2", - @"linkedin": @"com.linkedin.LinkedIn", - @"com.linkedin.android": @"com.linkedin.LinkedIn", - @"pinterest": @"pinterest", - @"com.pinterest": @"pinterest", - @"tumblr": @"com.tumblr.tumblr", - @"com.tumblr": @"com.tumblr.tumblr", - - @"spotify": @"com.spotify.client", - @"com.spotify.music": @"com.spotify.client", - @"netflix": @"com.netflix.Netflix", - @"com.netflix.mediaclient": @"com.netflix.Netflix", - @"primevideo": @"com.amazon.aiv.AIVApp", - @"com.amazon.avod.thirdpartyclient": @"com.amazon.aiv.AIVApp", - @"amazon": @"com.amazon.Amazon", - @"com.amazon.mshop.android.shopping": @"com.amazon.Amazon", - @"twitch": @"tv.twitch", - @"tv.twitch.android.app": @"tv.twitch", - @"disneyplus": @"com.disney.disneyplus", - @"com.disney.disneyplus": @"com.disney.disneyplus", - @"hulu": @"com.hulu.plus", - @"com.hulu.plus": @"com.hulu.plus", - @"soundcloud": @"com.soundcloud.TouchApp", - @"com.soundcloud.android": @"com.soundcloud.TouchApp", - @"deezer": @"com.deezer.Deezer", - @"deezer.android.app": @"com.deezer.Deezer", - - @"outlook": @"com.microsoft.Office.Outlook", - @"com.microsoft.office.outlook": @"com.microsoft.Office.Outlook", - @"teams": @"com.microsoft.skype.teams", - @"com.microsoft.teams": @"com.microsoft.skype.teams", - @"onedrive": @"com.microsoft.skydrive", - @"com.microsoft.skydrive": @"com.microsoft.skydrive", - @"word": @"com.microsoft.Office.Word", - @"com.microsoft.office.word": @"com.microsoft.Office.Word", - @"excel": @"com.microsoft.Office.Excel", - @"com.microsoft.office.excel": @"com.microsoft.Office.Excel", - @"powerpoint": @"com.microsoft.Office.Powerpoint", - @"com.microsoft.office.powerpoint": @"com.microsoft.Office.Powerpoint", - @"zoom": @"us.zoom.videomeetings", - @"us.zoom.videomeetings": @"us.zoom.videomeetings", - @"slack": @"com.tinyspeck.chatlyio", - @"com.slack": @"com.tinyspeck.chatlyio", - @"notion": @"notion.id", - @"notion.id": @"notion.id", - @"todoist": @"com.todoist.ios", - @"com.todoist": @"com.todoist.ios", - @"evernote": @"com.evernote.iPhone.Evernote", - @"com.evernote": @"com.evernote.iPhone.Evernote", - @"dropbox": @"com.getdropbox.Dropbox", - @"com.dropbox.android": @"com.getdropbox.Dropbox", - @"github": @"com.github.stormbreaker.prod", - @"com.github.android": @"com.github.stormbreaker.prod", - @"chatgpt": @"com.openai.chat", - @"com.openai.chatgpt": @"com.openai.chat", - @"perplexity": @"ai.perplexity.app", - @"ai.perplexity.app.android": @"ai.perplexity.app", - @"claude": @"com.anthropic.claude", - @"com.anthropic.claude": @"com.anthropic.claude", - - @"uber": @"com.ubercab.UberClient", - @"com.ubercab": @"com.ubercab.UberClient", - @"airbnb": @"com.airbnb.app", - @"com.airbnb.android": @"com.airbnb.app", - @"booking": @"com.booking.BookingApp", - @"com.booking": @"com.booking.BookingApp", - @"tripadvisor": @"com.tripadvisor.TripAdvisor", - @"com.tripadvisor.tripadvisor": @"com.tripadvisor.TripAdvisor", - @"waze": @"com.waze.iphone", - @"com.waze": @"com.waze.iphone", - @"yelp": @"com.yelp.yelpiphone", - @"com.yelp.android": @"com.yelp.yelpiphone", - @"doordash": @"com.doordash.Consumer", - @"com.dd.doordash": @"com.doordash.Consumer", - @"paypal": @"com.paypal.ppmobile", - @"com.paypal.android.p2pmobile": @"com.paypal.ppmobile", - @"venmo": @"net.kortina.labs.Venmo", - @"com.venmo": @"net.kortina.labs.Venmo", - @"cashapp": @"com.squareup.cash", - @"com.squareup.cash": @"com.squareup.cash", - @"coinbase": @"com.coinbase.Coinbase", - @"com.coinbase.android": @"com.coinbase.Coinbase", - @"wise": @"com.transferwise.TransferWise", - @"com.transferwise.android": @"com.transferwise.TransferWise", - - @"weibo": @"com.sina.weibo", - @"微博": @"com.sina.weibo", - @"com.sina.weibo": @"com.sina.weibo", - @"tmall": @"com.tmall.wireless", - @"天猫": @"com.tmall.wireless", - @"com.tmall.wireless": @"com.tmall.wireless", - @"xianyu": @"com.taobao.fleamarket", - @"闲鱼": @"com.taobao.fleamarket", - @"com.taobao.idlefish": @"com.taobao.fleamarket", - @"1688": @"com.alibaba.wireless", - @"com.alibaba.wireless": @"com.alibaba.wireless", - @"dingtalk": @"com.laiwang.DingTalk", - @"钉钉": @"com.laiwang.DingTalk", - @"com.alibaba.android.rimet": @"com.laiwang.DingTalk", - @"wecom": @"com.tencent.ww", - @"企业微信": @"com.tencent.ww", - @"com.tencent.wework": @"com.tencent.ww", - @"feishu": @"com.larksuite.Lark", - @"飞书": @"com.larksuite.Lark", - @"com.ss.android.lark": @"com.larksuite.Lark", - @"meituanwaimai": @"com.meituan.waimai", - @"美团外卖": @"com.meituan.waimai", - @"com.sankuai.meituan.takeoutnew": @"com.meituan.waimai", - @"dianping": @"com.dianping.dpscope", - @"大众点评": @"com.dianping.dpscope", - @"com.dianping.v1": @"com.dianping.dpscope", - @"tencentmap": @"com.tencent.map", - @"腾讯地图": @"com.tencent.map", - @"com.tencent.map": @"com.tencent.map", - @"qqbrowser": @"com.tencent.mttlite", - @"qq浏览器": @"com.tencent.mttlite", - @"com.tencent.mtt": @"com.tencent.mttlite", - @"tencentvideo": @"com.tencent.live4iphone", - @"腾讯视频": @"com.tencent.live4iphone", - @"com.tencent.qqlive": @"com.tencent.live4iphone", - @"toutiao": @"com.ss.iphone.article.News", - @"今日头条": @"com.ss.iphone.article.News", - @"com.ss.android.article.news": @"com.ss.iphone.article.News", - @"wps": @"com.kingsoft.wpsoffice", - @"cn.wps.moffice_eng": @"com.kingsoft.wpsoffice", - @"keep": @"com.gotokeep.Keep", - @"com.gotokeep.keep": @"com.gotokeep.Keep", - @"dewu": @"com.siwuai.duapp", - @"得物": @"com.siwuai.duapp", - @"com.shizhuang.duapp": @"com.siwuai.duapp", - @"smzdm": @"com.smzdm.client.iphone", - @"什么值得买": @"com.smzdm.client.iphone", - @"com.smzdm.client.android": @"com.smzdm.client.iphone", - - // User-local SmartisanOS theme compatibility. - // These source icons exist in SmartisanOS.theme/IconBundles and are - // used as closest semantic matches for apps without dedicated art. - @"com.kapinote.ai": @"com.kapinote.ai", - @"qnq.nuosike.sign": @"qnq.nuosike.sign", - @"com.danbo.dbxq2": @"com.danbo.dbxq2", - @"jxd.devapp.ireadnote": @"jxd.devapp.iReadNote", - @"ireadnote": @"jxd.devapp.iReadNote", - @"爱阅记": @"jxd.devapp.iReadNote", - @"app.nicegram": @"app.nicegram", - @"app.swiftgram.ios": @"app.swiftgram.ios", - @"com.swiftgram.swiftgram": @"app.swiftgram.ios", - @"swiftgram": @"app.swiftgram.ios", - @"nicegram": @"app.nicegram", - - // Common China carrier package aliases. - @"cn.10086.app": @"com.chinamobile.cmcc", - @"com.greenpoint.android.mc10086.activity": @"com.chinamobile.cmcc", - @"com.chinamobile.cmcc": @"com.chinamobile.cmcc", - @"com.sinovatech.unicom.ui": @"com.sinovatech.unicom.ui", - @"com.chinaunicom.mobilebusiness": @"com.sinovatech.unicom.ui", - @"com.chinaunicom.mobileb": @"com.sinovatech.unicom.ui", - @"ctclient": @"com.chinatelecom.189client", - @"com.chinatelecom.189client": @"com.chinatelecom.189client", - @"com.chinatelecom.bestpayclient": @"com.chinatelecom.189client", - }; - }); - return aliases; -} - -static NSDictionary *> *CNDAppIconMultiAliases(void) -{ - static NSDictionary *> *aliases = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - aliases = @{ - @"ph.telegra.telegraph": @[ - @"ph.telegra.Telegraph", - @"app.nicegram", - @"app.swiftgram.ios", - ], - @"org.telegram.messenger": @[ - @"ph.telegra.Telegraph", - @"app.nicegram", - @"app.swiftgram.ios", - ], - @"telegram": @[ - @"ph.telegra.Telegraph", - @"app.nicegram", - @"app.swiftgram.ios", - ], - @"me.bakumon.moneykeeper": @[ - @"me.bakumon.moneykeeper", - @"com.kapinote.ai", - ], - @"com.blackcat.app": @[ - @"com.Blackcat.app", - @"com.macxk.KMusic", - ], - @"com.tencent.kittypong": @[ - @"com.tencent.kittypong", - @"com.sigkitten.litter", - ], - @"com.smartisan.reader": @[ - @"com.smartisan.reader", - @"jxd.devapp.iReadNote", - ], - @"cn.10086.app": @[ - @"com.chinamobile.cmcc", - @"cn.10086.app", - ], - @"com.chinamobile.cmcc": @[ - @"com.chinamobile.cmcc", - @"cn.10086.app", - ], - @"com.sinovatech.unicom.ui": @[ - @"com.sinovatech.unicom.ui", - @"com.chinaunicom.mobilebusiness", - ], - @"com.chinaunicom.mobilebusiness": @[ - @"com.sinovatech.unicom.ui", - @"com.chinaunicom.mobilebusiness", - ], - @"ctclient": @[ - @"com.chinatelecom.189client", - @"CtClient", - ], - @"com.chinatelecom.bestpayclient": @[ - @"com.chinatelecom.189client", - @"com.chinatelecom.bestpayclient", - ], - }; - }); - return aliases; -} - -static NSString *CNDLookupMappedBundleID(NSString *base) -{ - if (base.length == 0) return nil; - NSDictionary *aliases = CNDAppIconAliases(); - NSString *mapped = aliases[base.lowercaseString]; - if (mapped.length > 0) return mapped; - return aliases[CNDCompactAliasKey(base)]; -} - -NSString *CNDMappedIOSBundleIDForIconName(NSString *name, BOOL *usedAlias) -{ - if (usedAlias) *usedAlias = NO; - if (name.length == 0) return nil; - - NSString *base = CNDIconBaseName(name); - NSString *mapped = CNDLookupMappedBundleID(base); - if (!mapped.length) { - for (NSString *marker in @[@"z.", @"y."]) { - NSRange compound = [base rangeOfString:marker options:NSBackwardsSearch]; - if (compound.location != NSNotFound && NSMaxRange(compound) < base.length) { - NSString *tail = [base substringFromIndex:NSMaxRange(compound)]; - mapped = CNDLookupMappedBundleID(tail); - if (mapped.length > 0) break; - } - } - } - if (mapped.length > 0) { - if (usedAlias) *usedAlias = ![mapped isEqualToString:base]; - return mapped; - } - - if (![base containsString:@"."]) return nil; - return base.length > 0 ? base : nil; -} - -NSArray *CNDMappedIOSBundleIDsForIconName(NSString *name, BOOL *usedAlias) -{ - if (usedAlias) *usedAlias = NO; - if (name.length == 0) return @[]; - - NSString *base = CNDIconBaseName(name); - NSDictionary *> *multiAliases = CNDAppIconMultiAliases(); - NSArray *mapped = multiAliases[base.lowercaseString]; - if (!mapped) mapped = multiAliases[CNDCompactAliasKey(base)]; - if (mapped.count > 0) { - if (usedAlias) { - *usedAlias = mapped.count != 1 || ![mapped.firstObject isEqualToString:base]; - } - return mapped; - } - - BOOL singleUsedAlias = NO; - NSString *single = CNDMappedIOSBundleIDForIconName(name, &singleUsedAlias); - if (usedAlias) *usedAlias = singleUsedAlias; - return single.length > 0 ? @[single] : @[]; -} diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.h b/lara/views/tweaks/broken/darkboardv2/remote_objc.h deleted file mode 100644 index db2c972ce..000000000 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.h +++ /dev/null @@ -1,110 +0,0 @@ -// -// remote_objc.h -// Thin Objective-C runtime helpers built on do_remote_call_stable. -// - -#ifndef remote_objc_h -#define remote_objc_h - -#import -#import -#import -#ifdef __OBJC__ -#import "TaskRop/RemoteCall.h" -@class RemoteCallSession; -#else -typedef struct RemoteCallSession RemoteCallSession; -#endif - -#define R_TIMEOUT 5 - -uint64_t r_alloc_str(const char *s); -void r_free(uint64_t ptr); -uint64_t r_sel(const char *name); -uint64_t r_class(const char *name); -uint64_t r_msg(uint64_t obj, uint64_t sel, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -uint64_t r_msg2(uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -uint64_t r_msg_main(uint64_t obj, uint64_t sel, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -uint64_t r_msg2_main(uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -void r_msg2_main_async(uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -uint64_t r_msg_main_raw(uint64_t obj, uint64_t sel, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size); -uint64_t r_msg2_main_raw(uint64_t obj, const char *selName, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size); -bool r_msg2_main_struct_ret(uint64_t obj, const char *selName, - void *outBuf, size_t outSize, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size); -uint32_t r_settle_us(uint32_t usec); -uint64_t r_perform_main(uint64_t obj, uint64_t sel, uint64_t object, bool wait); -uint64_t r_cfstr(const char *s); -uint64_t r_nsstr_retained(const char *s); -bool r_responds(uint64_t obj, const char *selName); -bool r_responds_main(uint64_t obj, const char *selName); -bool r_is_objc_ptr(uint64_t ptr); -uint64_t r_ivar_value(uint64_t obj, const char *ivarName); -uint64_t r_dlsym_call(int timeout, const char *fnName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, - uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7); - -// Copies the UTF-8 bytes of a remote NSString into a local C buffer (NUL -// terminated, truncated to outLen-1). Returns true only if at least one -// byte was copied. -bool r_read_nsstring(uint64_t str, char *out, size_t outLen); - -#ifdef __OBJC__ -uint64_t r_session_alloc_str(RemoteCallSession *session, const char *s); -void r_session_free(RemoteCallSession *session, uint64_t ptr); -uint64_t r_session_sel(RemoteCallSession *session, const char *name); -uint64_t r_session_class(RemoteCallSession *session, const char *name); -uint64_t r_session_msg(RemoteCallSession *session, uint64_t obj, uint64_t sel, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -uint64_t r_session_msg2(RemoteCallSession *session, uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -uint64_t r_session_msg_main(RemoteCallSession *session, uint64_t obj, uint64_t sel, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -uint64_t r_session_msg2_main(RemoteCallSession *session, uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -void r_session_msg2_main_async(RemoteCallSession *session, uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3); -uint64_t r_session_msg_main_raw(RemoteCallSession *session, uint64_t obj, uint64_t sel, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size); -uint64_t r_session_msg2_main_raw(RemoteCallSession *session, uint64_t obj, const char *selName, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size); -bool r_session_msg2_main_struct_ret(RemoteCallSession *session, uint64_t obj, const char *selName, - void *outBuf, size_t outSize, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size); -uint64_t r_session_perform_main(RemoteCallSession *session, uint64_t obj, uint64_t sel, uint64_t object, bool wait); -uint64_t r_session_cfstr(RemoteCallSession *session, const char *s); -uint64_t r_session_nsstr_retained(RemoteCallSession *session, const char *s); -bool r_session_responds(RemoteCallSession *session, uint64_t obj, const char *selName); -bool r_session_responds_main(RemoteCallSession *session, uint64_t obj, const char *selName); -uint64_t r_session_ivar_value(RemoteCallSession *session, uint64_t obj, const char *ivarName); -uint64_t r_session_dlsym_call(RemoteCallSession *session, int timeout, const char *fnName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, - uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7); -#endif - -#endif diff --git a/lara/views/tweaks/broken/darkboardv2/remote_objc.m b/lara/views/tweaks/broken/darkboardv2/remote_objc.m deleted file mode 100644 index 1de5eccda..000000000 --- a/lara/views/tweaks/broken/darkboardv2/remote_objc.m +++ /dev/null @@ -1,751 +0,0 @@ -// -// remote_objc.m -// - -#import "remote_objc.h" -#import "RemoteCall.h" -#import -#import -#import -#import - -extern uint64_t remote_read64(uint64_t src); - -static useconds_t gSettleUS = 50000; - -#define R_OBJC_CACHE_CAP 192 -#define R_OBJC_CACHE_NAME_MAX 96 - -extern RemoteCall *gRemoteCall; - -#define R() (gRemoteCall) - -static inline uint64_t do_remote_call_stable(int timeout, - const char *name, - uint64_t a0, uint64_t a1, - uint64_t a2, uint64_t a3, - uint64_t a4, uint64_t a5, - uint64_t a6, uint64_t a7) -{ - uint64_t args[] = { a0,a1,a2,a3,a4,a5,a6,a7 }; - - return [R() doRemoteCallStableWithTimeout:timeout - functionName:(char *)name - functionPointer:NULL - args:args - argCount:8]; -} - -static inline void remote_writeStr(uint64_t dst, const char *str) -{ - [R() remote_write:dst string:str]; -} - -static inline int remote_call_current_pid(void) -{ - return R().pid; -} - -static inline bool remote_write64(uint64_t dst, uint64_t val) -{ - return [R() remote_write64:dst value:val]; -} - -static inline bool remote_write(uint64_t dst, - const void *src, - uint64_t size) -{ - return [R() remote_write:dst from:src size:size]; -} - -static inline bool remote_read(uint64_t src, - void *dst, - uint64_t size) -{ - return [R() remoteRead:src to:dst size:size]; -} - -typedef struct { - int pid; - char name[R_OBJC_CACHE_NAME_MAX]; - uint64_t value; -} RemoteObjCCacheEntry; - -static pthread_mutex_t gObjCCacheLock = PTHREAD_MUTEX_INITIALIZER; -static RemoteObjCCacheEntry gSelCache[R_OBJC_CACHE_CAP]; -static RemoteObjCCacheEntry gClassCache[R_OBJC_CACHE_CAP]; -static int gSelCacheNext = 0; -static int gClassCacheNext = 0; - -static bool r_cacheable_name(const char *name) -{ - return name && name[0] && strlen(name) < R_OBJC_CACHE_NAME_MAX; -} - -static uint64_t r_cache_lookup(RemoteObjCCacheEntry *cache, int pid, const char *name) -{ - if (pid <= 0 || !r_cacheable_name(name)) return 0; - - uint64_t value = 0; - pthread_mutex_lock(&gObjCCacheLock); - for (int i = 0; i < R_OBJC_CACHE_CAP; i++) { - if (cache[i].pid == pid && cache[i].value && strcmp(cache[i].name, name) == 0) { - value = cache[i].value; - break; - } - } - pthread_mutex_unlock(&gObjCCacheLock); - return value; -} - -static void r_cache_store(RemoteObjCCacheEntry *cache, int *nextSlot, int pid, const char *name, uint64_t value) -{ - if (pid <= 0 || !value || !r_cacheable_name(name)) return; - - pthread_mutex_lock(&gObjCCacheLock); - for (int i = 0; i < R_OBJC_CACHE_CAP; i++) { - if (cache[i].pid == pid && strcmp(cache[i].name, name) == 0) { - cache[i].value = value; - pthread_mutex_unlock(&gObjCCacheLock); - return; - } - } - - int slot = -1; - for (int i = 0; i < R_OBJC_CACHE_CAP; i++) { - if (cache[i].pid == 0 || cache[i].value == 0) { - slot = i; - break; - } - } - if (slot < 0) { - slot = *nextSlot; - *nextSlot = (*nextSlot + 1) % R_OBJC_CACHE_CAP; - } - - cache[slot].pid = pid; - strncpy(cache[slot].name, name, sizeof(cache[slot].name) - 1); - cache[slot].name[sizeof(cache[slot].name) - 1] = '\0'; - cache[slot].value = value; - pthread_mutex_unlock(&gObjCCacheLock); -} - -static void r_settle(void) -{ - if (gSettleUS) usleep(gSettleUS); -} - -uint32_t r_settle_us(uint32_t usec) -{ - uint32_t old = (uint32_t)gSettleUS; - gSettleUS = (useconds_t)usec; - return old; -} - -bool r_is_objc_ptr(uint64_t ptr) -{ - return ptr >= 0x100000000ULL; -} - -uint64_t r_dlsym_call(int timeout, const char *fnName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, - uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) -{ - return do_remote_call_stable(timeout, fnName, a0, a1, a2, a3, a4, a5, a6, a7); -} - -uint64_t r_alloc_str(const char *s) -{ - if (!s) return 0; - uint64_t len = strlen(s) + 1; - uint64_t buf = do_remote_call_stable(R_TIMEOUT, "malloc", len, 0, 0, 0, 0, 0, 0, 0); - if (buf) remote_writeStr(buf, s); - return buf; -} - -void r_free(uint64_t ptr) -{ - if (!ptr) return; - do_remote_call_stable(R_TIMEOUT, "free", ptr, 0, 0, 0, 0, 0, 0, 0); -} - -uint64_t r_sel(const char *name) -{ - int pid = remote_call_current_pid(); - uint64_t cached = r_cache_lookup(gSelCache, pid, name); - if (cached) return cached; - - uint64_t s = r_alloc_str(name); - if (!s) return 0; - uint64_t sel = do_remote_call_stable(R_TIMEOUT, "sel_registerName", s, 0, 0, 0, 0, 0, 0, 0); - r_free(s); - r_cache_store(gSelCache, &gSelCacheNext, pid, name, sel); - return sel; -} - -uint64_t r_class(const char *name) -{ - int pid = remote_call_current_pid(); - uint64_t cached = r_cache_lookup(gClassCache, pid, name); - if (cached) return cached; - - uint64_t s = r_alloc_str(name); - if (!s) return 0; - uint64_t c = do_remote_call_stable(R_TIMEOUT, "objc_getClass", s, 0, 0, 0, 0, 0, 0, 0); - r_free(s); - r_cache_store(gClassCache, &gClassCacheNext, pid, name, c); - return c; -} - -uint64_t r_msg(uint64_t obj, uint64_t sel, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - if (!obj || !sel) return 0; - return do_remote_call_stable(R_TIMEOUT, "objc_msgSend", - obj, sel, a0, a1, a2, a3, 0, 0); -} - -uint64_t r_msg2(uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - if (!obj || !selName) return 0; - uint64_t sel = r_sel(selName); - if (!sel) return 0; - r_settle(); - return r_msg(obj, sel, a0, a1, a2, a3); -} - -static uint64_t r_method_signature(uint64_t obj, uint64_t sel) -{ - if (!r_is_objc_ptr(obj) || !sel) return 0; - - uint64_t sigSel = r_sel("methodSignatureForSelector:"); - uint64_t sig = r_msg(obj, sigSel, sel, 0, 0, 0); - if (r_is_objc_ptr(sig)) return sig; - - uint64_t cls = do_remote_call_stable(R_TIMEOUT, "object_getClass", - obj, 0, 0, 0, 0, 0, 0, 0); - if (!r_is_objc_ptr(cls)) return 0; - - uint64_t method = do_remote_call_stable(R_TIMEOUT, "class_getInstanceMethod", - cls, sel, 0, 0, 0, 0, 0, 0); - if (!method) return 0; - - uint64_t types = do_remote_call_stable(R_TIMEOUT, "method_getTypeEncoding", - method, 0, 0, 0, 0, 0, 0, 0); - if (!types) return 0; - - uint64_t NSMethodSignature = r_class("NSMethodSignature"); - if (!r_is_objc_ptr(NSMethodSignature)) return 0; - return r_msg2(NSMethodSignature, "signatureWithObjCTypes:", types, 0, 0, 0); -} - -static bool r_write_remote_arg(uint64_t remoteBuf, const void *arg, size_t argSize, size_t remoteSize) -{ - if (!remoteBuf || remoteSize == 0) return false; - - uint8_t stackBuf[64]; - void *localBuf = stackBuf; - if (remoteSize > sizeof(stackBuf)) { - localBuf = calloc(1, remoteSize); - if (!localBuf) return false; - } else { - memset(stackBuf, 0, remoteSize); - } - - if (arg && argSize) { - size_t copySize = (argSize < remoteSize) ? argSize : remoteSize; - memcpy(localBuf, arg, copySize); - } - - bool ok = remote_write(remoteBuf, localBuf, remoteSize); - if (localBuf != stackBuf) free(localBuf); - return ok; -} - -uint64_t r_msg_main_raw(uint64_t obj, uint64_t sel, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size) -{ - if (!r_is_objc_ptr(obj) || !sel) return 0; - - uint64_t sig = r_method_signature(obj, sel); - if (!r_is_objc_ptr(sig)) return 0; - - uint64_t NSInvocation = r_class("NSInvocation"); - if (!r_is_objc_ptr(NSInvocation)) return 0; - - uint64_t inv = r_msg2(NSInvocation, "invocationWithMethodSignature:", sig, 0, 0, 0); - if (!r_is_objc_ptr(inv)) return 0; - - uint64_t retainedInv = r_msg2(inv, "retain", 0, 0, 0, 0); - if (r_is_objc_ptr(retainedInv)) inv = retainedInv; - - uint64_t numArgs = r_msg2(sig, "numberOfArguments", 0, 0, 0, 0); - uint64_t maxUserArgs = (numArgs > 2) ? (numArgs - 2) : 0; - if (maxUserArgs > 4) maxUserArgs = 4; - - r_msg2(inv, "setTarget:", obj, 0, 0, 0); - r_msg2(inv, "setSelector:", sel, 0, 0, 0); - - bool argsOK = true; - const void *argData[4] = { a0, a1, a2, a3 }; - size_t argSizes[4] = { a0Size, a1Size, a2Size, a3Size }; - for (uint64_t i = 0; i < maxUserArgs; i++) { - size_t argBufLen = (argSizes[i] > 8) ? argSizes[i] : 8; - uint64_t argBuf = do_remote_call_stable(R_TIMEOUT, "malloc", - argBufLen, 0, 0, 0, 0, 0, 0, 0); - if (!argBuf) { - argsOK = false; - continue; - } - if (r_write_remote_arg(argBuf, argData[i], argSizes[i], argBufLen)) { - r_msg2(inv, "setArgument:atIndex:", argBuf, i + 2, 0, 0); - } else { - argsOK = false; - } - r_free(argBuf); - } - - if (!argsOK) { - r_msg2(inv, "release", 0, 0, 0, 0); - return 0; - } - - r_msg2(inv, "retainArguments", 0, 0, 0, 0); - - uint64_t performSel = r_sel("performSelectorOnMainThread:withObject:waitUntilDone:"); - uint64_t invokeSel = r_sel("invoke"); - if (!performSel || !invokeSel) { - r_msg2(inv, "release", 0, 0, 0, 0); - return 0; - } - r_msg(inv, performSel, invokeSel, 0, 1, 0); - - uint64_t ret = 0; - uint64_t retLen = r_msg2(sig, "methodReturnLength", 0, 0, 0, 0); - if (retLen > 0) { - uint64_t retBufLen = (retLen > 8) ? retLen : 8; - uint64_t retBuf = do_remote_call_stable(R_TIMEOUT, "malloc", - retBufLen, 0, 0, 0, 0, 0, 0, 0); - if (retBuf) { - remote_write64(retBuf, 0); - r_msg2(inv, "getReturnValue:", retBuf, 0, 0, 0); - ret = remote_read64(retBuf); - r_free(retBuf); - } - } - - r_msg2(inv, "release", 0, 0, 0, 0); - return ret; -} - -uint64_t r_msg_main(uint64_t obj, uint64_t sel, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - uint64_t args[4] = { a0, a1, a2, a3 }; - return r_msg_main_raw(obj, sel, - &args[0], sizeof(args[0]), - &args[1], sizeof(args[1]), - &args[2], sizeof(args[2]), - &args[3], sizeof(args[3])); -} - -uint64_t r_msg2_main(uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - if (!obj || !selName) return 0; - uint64_t sel = r_sel(selName); - if (!sel) return 0; - r_settle(); - return r_msg_main(obj, sel, a0, a1, a2, a3); -} - -// Fire-and-forget variant: dispatches the call to main thread with -// waitUntilDone:NO and skips the return-value plumbing. Use this when the -// selector returns void and we don't need to wait — main thread retains the -// NSInvocation for the duration of the call, so it's safe to release here. -void r_msg2_main_async(uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - if (!r_is_objc_ptr(obj) || !selName) return; - uint64_t sel = r_sel(selName); - if (!sel) return; - r_settle(); - - uint64_t sig = 0; - { - uint64_t sigSel = r_sel("methodSignatureForSelector:"); - sig = r_msg(obj, sigSel, sel, 0, 0, 0); - } - if (!r_is_objc_ptr(sig)) return; - - uint64_t NSInvocation = r_class("NSInvocation"); - if (!r_is_objc_ptr(NSInvocation)) return; - uint64_t inv = r_msg2(NSInvocation, "invocationWithMethodSignature:", sig, 0, 0, 0); - if (!r_is_objc_ptr(inv)) return; - - uint64_t numArgs = r_msg2(sig, "numberOfArguments", 0, 0, 0, 0); - uint64_t maxUserArgs = (numArgs > 2) ? (numArgs - 2) : 0; - if (maxUserArgs > 4) maxUserArgs = 4; - - r_msg2(inv, "setTarget:", obj, 0, 0, 0); - r_msg2(inv, "setSelector:", sel, 0, 0, 0); - - bool argsOK = true; - uint64_t userArgs[4] = { a0, a1, a2, a3 }; - for (uint64_t i = 0; i < maxUserArgs; i++) { - uint64_t argBuf = do_remote_call_stable(R_TIMEOUT, "malloc", - 8, 0, 0, 0, 0, 0, 0, 0); - if (!argBuf) { - argsOK = false; - continue; - } - if (remote_write64(argBuf, userArgs[i])) { - r_msg2(inv, "setArgument:atIndex:", argBuf, i + 2, 0, 0); - } else { - argsOK = false; - } - r_free(argBuf); - } - - if (!argsOK) return; - - r_msg2(inv, "retainArguments", 0, 0, 0, 0); - - uint64_t performSel = r_sel("performSelectorOnMainThread:withObject:waitUntilDone:"); - uint64_t invokeSel = r_sel("invoke"); - if (performSel && invokeSel) r_msg(inv, performSel, invokeSel, 0, 0, 0); -} - -uint64_t r_msg2_main_raw(uint64_t obj, const char *selName, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size) -{ - if (!obj || !selName) return 0; - uint64_t sel = r_sel(selName); - if (!sel) return 0; - r_settle(); - return r_msg_main_raw(obj, sel, a0, a0Size, a1, a1Size, a2, a2Size, a3, a3Size); -} - -// Same flow as r_msg_main_raw, but copies the full method return buffer back -// into outBuf instead of truncating to 8 bytes. Used for selectors that return -// a struct larger than a register pair (e.g. CGRect from -convertRect:toView:). -bool r_msg2_main_struct_ret(uint64_t obj, const char *selName, - void *outBuf, size_t outSize, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size) -{ - if (!r_is_objc_ptr(obj) || !selName || !outBuf || outSize == 0) return false; - uint64_t sel = r_sel(selName); - if (!sel) return false; - r_settle(); - - uint64_t sig = r_method_signature(obj, sel); - if (!r_is_objc_ptr(sig)) return false; - - uint64_t NSInvocation = r_class("NSInvocation"); - if (!r_is_objc_ptr(NSInvocation)) return false; - - uint64_t inv = r_msg2(NSInvocation, "invocationWithMethodSignature:", sig, 0, 0, 0); - if (!r_is_objc_ptr(inv)) return false; - - uint64_t retainedInv = r_msg2(inv, "retain", 0, 0, 0, 0); - if (r_is_objc_ptr(retainedInv)) inv = retainedInv; - - uint64_t numArgs = r_msg2(sig, "numberOfArguments", 0, 0, 0, 0); - uint64_t maxUserArgs = (numArgs > 2) ? (numArgs - 2) : 0; - if (maxUserArgs > 4) maxUserArgs = 4; - - r_msg2(inv, "setTarget:", obj, 0, 0, 0); - r_msg2(inv, "setSelector:", sel, 0, 0, 0); - - bool argsOK = true; - const void *argData[4] = { a0, a1, a2, a3 }; - size_t argSizes[4] = { a0Size, a1Size, a2Size, a3Size }; - for (uint64_t i = 0; i < maxUserArgs; i++) { - size_t argBufLen = (argSizes[i] > 8) ? argSizes[i] : 8; - uint64_t argBuf = do_remote_call_stable(R_TIMEOUT, "malloc", - argBufLen, 0, 0, 0, 0, 0, 0, 0); - if (!argBuf) { - argsOK = false; - continue; - } - if (r_write_remote_arg(argBuf, argData[i], argSizes[i], argBufLen)) { - r_msg2(inv, "setArgument:atIndex:", argBuf, i + 2, 0, 0); - } else { - argsOK = false; - } - r_free(argBuf); - } - - if (!argsOK) { - r_msg2(inv, "release", 0, 0, 0, 0); - return false; - } - - r_msg2(inv, "retainArguments", 0, 0, 0, 0); - - uint64_t performSel = r_sel("performSelectorOnMainThread:withObject:waitUntilDone:"); - uint64_t invokeSel = r_sel("invoke"); - if (!performSel || !invokeSel) { - r_msg2(inv, "release", 0, 0, 0, 0); - return false; - } - r_msg(inv, performSel, invokeSel, 0, 1, 0); - - bool ok = false; - uint64_t retLen = r_msg2(sig, "methodReturnLength", 0, 0, 0, 0); - if (retLen >= outSize) { - uint64_t retBuf = do_remote_call_stable(R_TIMEOUT, "malloc", - retLen, 0, 0, 0, 0, 0, 0, 0); - if (retBuf) { - r_msg2(inv, "getReturnValue:", retBuf, 0, 0, 0); - ok = remote_read(retBuf, outBuf, outSize); - r_free(retBuf); - } - } - - r_msg2(inv, "release", 0, 0, 0, 0); - return ok; -} - -uint64_t r_perform_main(uint64_t obj, uint64_t sel, uint64_t object, bool wait) -{ - if (!r_is_objc_ptr(obj) || !sel) return 0; - uint64_t performSel = r_sel("performSelectorOnMainThread:withObject:waitUntilDone:"); - if (!performSel) return 0; - return r_msg(obj, performSel, sel, object, wait ? 1 : 0, 0); -} - -uint64_t r_cfstr(const char *s) -{ - if (!s) return 0; - uint64_t buf = r_alloc_str(s); - if (!buf) return 0; - // CFStringCreateWithCString(alloc=NULL, cstr, encoding=kCFStringEncodingUTF8=0x08000100) - uint64_t cf = do_remote_call_stable(R_TIMEOUT, "CFStringCreateWithCString", - 0, buf, 0x08000100, 0, 0, 0, 0, 0); - r_free(buf); - return cf; -} - -uint64_t r_nsstr_retained(const char *s) -{ - if (!s) return 0; - uint64_t buf = r_alloc_str(s); - if (!buf) return 0; - uint64_t NSString = r_class("NSString"); - if (!r_is_objc_ptr(NSString)) { r_free(buf); return 0; } - uint64_t allocated = r_msg2(NSString, "alloc", 0, 0, 0, 0); - if (!r_is_objc_ptr(allocated)) { r_free(buf); return 0; } - uint64_t ns = r_msg2(allocated, "initWithUTF8String:", buf, 0, 0, 0); - r_free(buf); - return ns; -} - -bool r_responds(uint64_t obj, const char *selName) -{ - if (!r_is_objc_ptr(obj)) return false; - uint64_t sel = r_sel(selName); - if (!sel) return false; - uint64_t respondsSel = r_sel("respondsToSelector:"); - if (!respondsSel) return false; - r_settle(); - uint64_t r = r_msg(obj, respondsSel, sel, 0, 0, 0); - return (r & 0xff) != 0; -} - -bool r_responds_main(uint64_t obj, const char *selName) -{ - if (!r_is_objc_ptr(obj)) return false; - uint64_t sel = r_sel(selName); - if (!sel) return false; - uint64_t respondsSel = r_sel("respondsToSelector:"); - if (!respondsSel) return false; - r_settle(); - uint64_t r = r_msg_main(obj, respondsSel, sel, 0, 0, 0); - return (r & 0xff) != 0; -} - -uint64_t r_ivar_value(uint64_t obj, const char *ivarName) -{ - if (!r_is_objc_ptr(obj)) return 0; - uint64_t cls = do_remote_call_stable(R_TIMEOUT, "object_getClass", obj, 0, 0, 0, 0, 0, 0, 0); - if (!cls) return 0; - uint64_t nameBuf = r_alloc_str(ivarName); - if (!nameBuf) return 0; - uint64_t ivar = do_remote_call_stable(R_TIMEOUT, "class_getInstanceVariable", - cls, nameBuf, 0, 0, 0, 0, 0, 0); - r_free(nameBuf); - if (!ivar) return 0; - uint64_t offset = do_remote_call_stable(R_TIMEOUT, "ivar_getOffset", - ivar, 0, 0, 0, 0, 0, 0, 0); - return remote_read64(obj + offset); -} - -bool r_read_nsstring(uint64_t str, char *out, size_t outLen) -{ - if (!r_is_objc_ptr(str) || !out || outLen == 0) return false; - memset(out, 0, outLen); - - uint64_t buf = r_dlsym_call(R_TIMEOUT, "malloc", outLen, 0, 0, 0, 0, 0, 0, 0); - if (!buf) return false; - r_dlsym_call(R_TIMEOUT, "memset", buf, 0, outLen, 0, 0, 0, 0, 0); - - bool copied = false; - if (r_responds(str, "getCString:maxLength:encoding:")) { - uint64_t ok = r_msg2(str, "getCString:maxLength:encoding:", buf, outLen, 4, 0); - if ((ok & 0xff) && remote_read(buf, out, outLen - 1)) { - out[outLen - 1] = '\0'; - copied = out[0] != '\0'; - } - } - - r_free(buf); - return copied; -} - -#ifdef __OBJC__ -#define R_SESSION_RETURN(session, type, fallback, expr) do { \ - if (!(session)) return (expr); \ - __block type result = (fallback); \ - remote_call_with_session((session), ^{ result = (expr); }); \ - return result; \ -} while (0) - -#define R_SESSION_VOID(session, expr) do { \ - if (!(session)) { expr; return; } \ - remote_call_with_session((session), ^{ expr; }); \ -} while (0) - -uint64_t r_session_dlsym_call(RemoteCallSession *session, int timeout, const char *fnName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3, - uint64_t a4, uint64_t a5, uint64_t a6, uint64_t a7) -{ - R_SESSION_RETURN(session, uint64_t, 0, - r_dlsym_call(timeout, fnName, a0, a1, a2, a3, a4, a5, a6, a7)); -} - -uint64_t r_session_alloc_str(RemoteCallSession *session, const char *s) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_alloc_str(s)); -} - -void r_session_free(RemoteCallSession *session, uint64_t ptr) -{ - R_SESSION_VOID(session, r_free(ptr)); -} - -uint64_t r_session_sel(RemoteCallSession *session, const char *name) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_sel(name)); -} - -uint64_t r_session_class(RemoteCallSession *session, const char *name) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_class(name)); -} - -uint64_t r_session_msg(RemoteCallSession *session, uint64_t obj, uint64_t sel, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_msg(obj, sel, a0, a1, a2, a3)); -} - -uint64_t r_session_msg2(RemoteCallSession *session, uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_msg2(obj, selName, a0, a1, a2, a3)); -} - -uint64_t r_session_msg_main(RemoteCallSession *session, uint64_t obj, uint64_t sel, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_msg_main(obj, sel, a0, a1, a2, a3)); -} - -uint64_t r_session_msg2_main(RemoteCallSession *session, uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_msg2_main(obj, selName, a0, a1, a2, a3)); -} - -void r_session_msg2_main_async(RemoteCallSession *session, uint64_t obj, const char *selName, - uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3) -{ - R_SESSION_VOID(session, r_msg2_main_async(obj, selName, a0, a1, a2, a3)); -} - -uint64_t r_session_msg_main_raw(RemoteCallSession *session, uint64_t obj, uint64_t sel, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size) -{ - R_SESSION_RETURN(session, uint64_t, 0, - r_msg_main_raw(obj, sel, a0, a0Size, a1, a1Size, a2, a2Size, a3, a3Size)); -} - -uint64_t r_session_msg2_main_raw(RemoteCallSession *session, uint64_t obj, const char *selName, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size) -{ - R_SESSION_RETURN(session, uint64_t, 0, - r_msg2_main_raw(obj, selName, a0, a0Size, a1, a1Size, a2, a2Size, a3, a3Size)); -} - -bool r_session_msg2_main_struct_ret(RemoteCallSession *session, uint64_t obj, const char *selName, - void *outBuf, size_t outSize, - const void *a0, size_t a0Size, - const void *a1, size_t a1Size, - const void *a2, size_t a2Size, - const void *a3, size_t a3Size) -{ - R_SESSION_RETURN(session, bool, false, - r_msg2_main_struct_ret(obj, selName, outBuf, outSize, - a0, a0Size, a1, a1Size, a2, a2Size, a3, a3Size)); -} - -uint64_t r_session_perform_main(RemoteCallSession *session, uint64_t obj, uint64_t sel, uint64_t object, bool wait) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_perform_main(obj, sel, object, wait)); -} - -uint64_t r_session_cfstr(RemoteCallSession *session, const char *s) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_cfstr(s)); -} - -uint64_t r_session_nsstr_retained(RemoteCallSession *session, const char *s) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_nsstr_retained(s)); -} - -bool r_session_responds(RemoteCallSession *session, uint64_t obj, const char *selName) -{ - R_SESSION_RETURN(session, bool, false, r_responds(obj, selName)); -} - -bool r_session_responds_main(RemoteCallSession *session, uint64_t obj, const char *selName) -{ - R_SESSION_RETURN(session, bool, false, r_responds_main(obj, selName)); -} - -uint64_t r_session_ivar_value(RemoteCallSession *session, uint64_t obj, const char *ivarName) -{ - R_SESSION_RETURN(session, uint64_t, 0, r_ivar_value(obj, ivarName)); -} - -#undef R_SESSION_VOID -#undef R_SESSION_RETURN -#endif diff --git a/lara/views/tweaks/broken/darkboardv2/sb_walk.h b/lara/views/tweaks/broken/darkboardv2/sb_walk.h deleted file mode 100644 index dd734f5ad..000000000 --- a/lara/views/tweaks/broken/darkboardv2/sb_walk.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// sb_walk.h -// RemoteCall view-tree helpers shared between tweaks that need to find -// SpringBoard views of a particular class (SBIconListView, SBIconView, etc). -// - -#ifndef sb_walk_h -#define sb_walk_h - -#import - -// BFS from `root` collecting subviews that are instances of `klass`. -// Matched views are NOT recursed into. Returns the count written to `out`, -// capped at `cap`. Not reentrant — uses a static BFS queue. Callers are -// already serialized under the settings RemoteCall lock. -int sb_collect_views(uint64_t root, uint64_t klass, uint64_t *out, int cap); - -// Walks every UIApplication window (falls back to keyWindow if -windows -// returns empty) and collects views of `klass` across all of them. -int sb_collect_views_in_windows(uint64_t klass, uint64_t *out, int cap); - -#endif /* sb_walk_h */ diff --git a/lara/views/tweaks/broken/darkboardv2/sb_walk.m b/lara/views/tweaks/broken/darkboardv2/sb_walk.m deleted file mode 100644 index ad61719c4..000000000 --- a/lara/views/tweaks/broken/darkboardv2/sb_walk.m +++ /dev/null @@ -1,76 +0,0 @@ -// -// sb_walk.m -// Lifted verbatim from darksword_layout.m's rc_collect_list_views / -// rc_collect_from_windows so themer.m and any future tweak can share them -// without duplicating the BFS. -// - -#import "sb_walk.h" -#import "remote_objc.h" - -static uint64_t sw_safe_msg(uint64_t obj, const char *selname, - uint64_t a, uint64_t b, uint64_t c, uint64_t d) -{ - if (!obj) return 0; - uint64_t sel = r_sel(selname); - uint64_t rs = r_sel("respondsToSelector:"); - if (!sel || !rs) return 0; - if (!r_msg(obj, rs, sel, 0, 0, 0)) return 0; - return r_msg(obj, sel, a, b, c, d); -} - -int sb_collect_views(uint64_t root, uint64_t klass, uint64_t *out, int cap) -{ - if (!root || !klass || cap <= 0) return 0; - uint64_t selSub = r_sel("subviews"); - uint64_t selCnt = r_sel("count"); - uint64_t selObj = r_sel("objectAtIndex:"); - uint64_t selKind = r_sel("isKindOfClass:"); - - enum { QMAX = 4096 }; - static uint64_t q[QMAX]; - int head = 0, tail = 0, found = 0, visited = 0; - q[tail++] = root; - while (head < tail && visited < QMAX) { - uint64_t v = q[head++]; - visited++; - if (!v) continue; - if (r_msg(v, selKind, klass, 0, 0, 0)) { - if (found < cap) out[found++] = v; - continue; - } - uint64_t subs = r_msg(v, selSub, 0, 0, 0, 0); - if (!subs) continue; - uint64_t cn = r_msg(subs, selCnt, 0, 0, 0, 0); - if (cn > 256) cn = 256; - for (uint64_t i = 0; i < cn && tail < QMAX; i++) { - uint64_t c = r_msg(subs, selObj, i, 0, 0, 0); - if (c) q[tail++] = c; - } - } - return found; -} - -int sb_collect_views_in_windows(uint64_t klass, uint64_t *out, int cap) -{ - uint64_t clsApp = r_class("UIApplication"); - if (!clsApp) return 0; - uint64_t app = sw_safe_msg(clsApp, "sharedApplication", 0, 0, 0, 0); - if (!app) return 0; - - int n = 0; - uint64_t wins = sw_safe_msg(app, "windows", 0, 0, 0, 0); - if (wins) { - uint64_t wc = r_msg(wins, r_sel("count"), 0, 0, 0, 0); - if (wc > 32) wc = 32; - for (uint64_t i = 0; i < wc && n < cap; i++) { - uint64_t w = r_msg(wins, r_sel("objectAtIndex:"), i, 0, 0, 0); - if (w) n += sb_collect_views(w, klass, out + n, cap - n); - } - } - if (n == 0) { - uint64_t kw = sw_safe_msg(app, "keyWindow", 0, 0, 0, 0); - if (kw) n += sb_collect_views(kw, klass, out + n, cap - n); - } - return n; -} diff --git a/lara/views/tweaks/broken/darkboardv2/themer.h b/lara/views/tweaks/broken/darkboardv2/themer.h deleted file mode 100644 index 8a6f4d9f9..000000000 --- a/lara/views/tweaks/broken/darkboardv2/themer.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// themer.h -// Per-bundle icon swap. Walks every SBIconView in SpringBoard and replaces -// its image with a PNG from `themePath/.png`. -// - -#ifndef themer_h -#define themer_h - -#import -#ifdef __OBJC__ -#import -#endif - -// Apply the theme rooted at `themePath` — a local-process directory of -// `.png` files. Builds an in-memory dictionary and forwards to -// themer_apply_data_in_session. -bool themer_apply_in_session(const char *themePath); - -#ifdef __OBJC__ -// Apply a theme provided in-memory. Keys are bundle identifiers -// (NSString *), values are raw PNG bytes (NSData *). Caller can free the -// dictionary as soon as the call returns. Idempotent within a session — -// per-bundle SB UIImages are cached and reused. Must run under -// settings_rc_lock with the SpringBoard RemoteCall session open. -bool themer_apply_data_in_session(NSDictionary *imageDataByBundle); - -// Repaint currently visible icon views from the in-session UIImage cache only. -// This is for SpringBoard re-entry paths where views keep our overrideImage -// pointer but their inner image contents/layer were reset. -bool themer_repaint_cached_views_in_session(void); - -// Same cache-only repaint, but does not trust SBIconImageView.displayedImage -// as proof that the visible layer is still intact. -bool themer_force_repaint_cached_views_in_session(void); - -// Re-pin only dynamic icons (Clock/Calendar). This is intentionally narrower -// than a cached repaint so wake/unlock repairs don't touch normal app icons. -bool themer_repaint_dynamic_cached_views_in_session(void); -#endif - -// Release the in-SB UIImage cache. SB will re-render native icons on its -// next layout pass. -bool themer_stop_in_session(void); - -// Drop local pointer cache without touching SpringBoard. Call from the -// SpringBoard-restart handler so we don't release dangling pointers under -// the next SB incarnation. -void themer_forget_remote_state(void); - -#endif /* themer_h */ diff --git a/lara/views/tweaks/broken/darkboardv2/themer.m b/lara/views/tweaks/broken/darkboardv2/themer.m deleted file mode 100644 index 3956d98cc..000000000 --- a/lara/views/tweaks/broken/darkboardv2/themer.m +++ /dev/null @@ -1,2471 +0,0 @@ -// -// themer.m -// skidded from cyanide credit goes to zeroxjf -// - -#import "themer.h" -#import "remote_objc.h" -#import "sb_walk.h" -#import "map_app.h" -#import "../../../../kexploit/TaskRop/RemoteCall.h" -#import "LogTextView.h" - -#import -#import -#import -#import -#import - -typedef struct { - char bundle[128]; - uint64_t image; // retained SB UIImage* - uint64_t dataSource; // retained SB helper from earlier model experiments - bool iconServicesSeeded; -} ThemerEntry; - -typedef struct { - uint64_t icon; - char bundle[128]; -} ThemerIconBundleEntry; - -static const int kThemerMaxCache = 512; -static const int kThemerMaxIconBundleCache = 512; -static const size_t kThemerMaxPngBytes = 1 << 18; // 256 KB hard cap per icon -static const uint32_t kThemerApplySettleUS = 0; -static const bool kThemerDetailedIconLogs = false; - -// Debug focus: when non-empty, only apply to this single bundle. Keeps the -// log readable while we figure out which iOS 26 render path actually sticks. -// Set to "" or NULL to re-enable the full theme. -static const char *kThemerFocusBundle = ""; - -static ThemerEntry gThemerCache[kThemerMaxCache]; -static int gThemerCacheCount = 0; -static ThemerIconBundleEntry gThemerIconBundleCache[kThemerMaxIconBundleCache]; -static int gThemerIconBundleCacheCount = 0; -static int gThemerLogBudget = 48; -static bool gThemerModelProbeLogged = false; -static bool gThemerIconServicesProbeLogged = false; -static int gThemerHostIOSMajor = -1; -static bool gThemerVisiblePolicyLogged = false; - -// -1 unprobed, 0 nothing works, 1/2/3/4 chosen rung. -static int gThemerRung = -1; -static bool gThemerHasUpdateAfter = false; -static bool gThemerHasUpdateImageView = false; - -static uint64_t themer_now_us(void) -{ - struct timespec ts = {0}; - clock_gettime(CLOCK_MONOTONIC, &ts); - return ((uint64_t)ts.tv_sec * 1000000ULL) + ((uint64_t)ts.tv_nsec / 1000ULL); -} - -static int themer_host_ios_major(void) -{ - if (gThemerHostIOSMajor >= 0) return gThemerHostIOSMajor; - NSOperatingSystemVersion v = [[NSProcessInfo processInfo] operatingSystemVersion]; - gThemerHostIOSMajor = (int)v.majorVersion; - return gThemerHostIOSMajor; -} - -static NSArray *themer_priority_theme_bundles(void) -{ - static NSArray *bundles = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - bundles = @[ - @"com.apple.AppStore", - @"com.apple.DocumentsApp", - @"com.apple.Health", - @"com.apple.Home", - @"com.apple.Maps", - @"com.apple.MobileAddressBook", - @"com.apple.MobileSMS", - @"com.apple.Music", - @"com.apple.Passbook", - @"com.apple.Preferences", - @"com.apple.Translate", - @"com.apple.VoiceMemos", - @"com.apple.calculator", - @"com.apple.camera", - @"com.apple.findmy", - @"com.apple.freeform", - @"com.apple.iBooks", - @"com.apple.mobilecal", - @"com.apple.mobilemail", - @"com.apple.mobilenotes", - @"com.apple.mobilephone", - @"com.apple.mobilesafari", - @"com.apple.mobileslideshow", - @"com.apple.mobiletimer", - @"com.apple.podcasts", - @"com.apple.reminders", - @"com.apple.shortcuts", - @"com.apple.stocks", - @"com.apple.weather", - @"com.alipay.iphoneclient", - @"com.taobao.taobao4iphone", - @"com.autonavi.minimap", - @"com.360buy.jdmobile", - @"com.jd.jrapp", - @"com.taobao.fleamarket", - @"com.tmall.wireless", - @"com.alibaba.wireless", - @"com.cainiao.Cainiao4iPhone", - @"com.hpbr.bosszhipin", - @"com.xingin.discover", - @"com.sina.weibo", - @"com.zhihu.ios", - @"com.baidu.searchbox", - @"com.baidu.map", - @"com.baidu.netdisk", - @"com.baidu.tieba", - @"com.xiaojukeji.didi", - @"ctrip.com", - @"com.qunar.iphoneclient", - @"com.meituan.imeituan", - @"com.meituan.waimai", - @"com.dianping.dpscope", - @"me.ele.ios.eleme", - @"com.netease.cloudmusic", - @"com.qiyi.iphone", - @"com.youku.YouKu", - @"com.tencent.live4iphone", - @"com.tencent.map", - @"com.tencent.mttlite", - @"com.tencent.QQMusic", - @"com.tencent.qqmail", - @"com.tencent.karaoke", - @"com.laiwang.DingTalk", - @"com.tencent.ww", - @"com.larksuite.Lark", - @"com.kingsoft.wpsoffice", - @"com.xunlei.download", - @"cmb.pb", - @"com.icbc.iphoneclient", - @"com.ccb.ccbMobileBank", - @"com.abchina.iphone.abchina", - @"com.bocmbci.bocmbci", - @"cn.com.spdb.mobilebank.per", - @"com.ecitic.bank.mobile", - @"com.pingan.paces.ccms", - @"com.pingan.pabank", - @"com.google.ios.youtube", - @"com.ss.iphone.ugc.Aweme", - @"com.kuaishou.gifmaker", - @"tv.danmaku.biliblue", - @"tv.danmaku.bilianime", - @"com.tencent.xin", - @"com.tencent.mqq", - @"com.xunmeng.pinduoduo", - @"com.github.stormbreaker.prod", - @"com.liguangming.Shadowrocket", - @"com.atebits.Tweetie2", - @"com.autonavi.amap", - ]; - }); - return bundles; -} - -static NSString *themer_join_strings_for_log(id strings, NSUInteger limit) -{ - if (![strings respondsToSelector:@selector(allObjects)] && - ![strings respondsToSelector:@selector(countByEnumeratingWithState:objects:count:)]) { - return @""; - } - - NSArray *raw = [strings respondsToSelector:@selector(allObjects)] - ? [strings allObjects] - : (NSArray *)strings; - NSMutableArray *items = [NSMutableArray array]; - for (id obj in raw) { - if (![obj isKindOfClass:NSString.class] || [obj length] == 0) continue; - [items addObject:obj]; - } - [items sortUsingSelector:@selector(compare:)]; - - NSUInteger total = items.count; - if (limit > 0 && items.count > limit) { - items = [[items subarrayWithRange:NSMakeRange(0, limit)] mutableCopy]; - [items addObject:[NSString stringWithFormat:@"...(+%lu)", (unsigned long)(total - limit)]]; - } - return [items componentsJoinedByString:@","]; -} - -static NSString *themer_theme_path_for_bundle(NSDictionary *pathByBundle, - NSString *bundle) -{ - if (![bundle isKindOfClass:NSString.class] || bundle.length == 0) return nil; - NSString *path = pathByBundle[bundle]; - if (!path) path = pathByBundle[bundle.lowercaseString]; - return path; -} - -static uint64_t themer_lookup_cached(const char *bundle) -{ - if (!bundle || !bundle[0]) return 0; - for (int i = 0; i < gThemerCacheCount; i++) { - if (strcmp(gThemerCache[i].bundle, bundle) == 0) { - return gThemerCache[i].image; - } - } - return 0; -} - -static ThemerEntry *themer_lookup_entry(const char *bundle) -{ - if (!bundle || !bundle[0]) return NULL; - for (int i = 0; i < gThemerCacheCount; i++) { - if (strcmp(gThemerCache[i].bundle, bundle) == 0) { - return &gThemerCache[i]; - } - } - return NULL; -} - -static void themer_cache_image(const char *bundle, uint64_t image) -{ - if (!bundle || !bundle[0] || !r_is_objc_ptr(image)) return; - if (gThemerCacheCount >= kThemerMaxCache) return; - ThemerEntry *e = &gThemerCache[gThemerCacheCount++]; - snprintf(e->bundle, sizeof(e->bundle), "%s", bundle); - e->image = image; - e->dataSource = 0; - e->iconServicesSeeded = false; -} - -static void themer_cache_icon_bundle(uint64_t icon, const char *bundle) -{ - if (!r_is_objc_ptr(icon) || !bundle || !bundle[0]) return; - for (int i = 0; i < gThemerIconBundleCacheCount; i++) { - if (gThemerIconBundleCache[i].icon == icon) { - snprintf(gThemerIconBundleCache[i].bundle, - sizeof(gThemerIconBundleCache[i].bundle), - "%s", bundle); - return; - } - } - if (gThemerIconBundleCacheCount >= kThemerMaxIconBundleCache) return; - ThemerIconBundleEntry *e = &gThemerIconBundleCache[gThemerIconBundleCacheCount++]; - e->icon = icon; - snprintf(e->bundle, sizeof(e->bundle), "%s", bundle); -} - -static bool themer_lookup_icon_bundle(uint64_t icon, char *out, size_t outLen) -{ - if (!r_is_objc_ptr(icon) || !out || outLen == 0) return false; - for (int i = 0; i < gThemerIconBundleCacheCount; i++) { - if (gThemerIconBundleCache[i].icon == icon && - gThemerIconBundleCache[i].bundle[0]) { - snprintf(out, outLen, "%s", gThemerIconBundleCache[i].bundle); - return out[0] != '\0'; - } - } - return false; -} - -static void themer_reset_icon_bundle_cache(void) -{ - for (int i = 0; i < kThemerMaxIconBundleCache; i++) { - gThemerIconBundleCache[i].icon = 0; - gThemerIconBundleCache[i].bundle[0] = '\0'; - } - gThemerIconBundleCacheCount = 0; -} - -// Read a remote ObjC object's class name into a local C buffer. -static void themer_read_class_name(uint64_t obj, char *out, size_t outLen) -{ - if (!out || outLen == 0) return; - out[0] = '\0'; - if (!r_is_objc_ptr(obj)) return; - uint64_t cls = r_dlsym_call(R_TIMEOUT, "object_getClass", obj, 0, 0, 0, 0, 0, 0, 0); - if (!r_is_objc_ptr(cls)) return; - uint64_t name = r_dlsym_call(R_TIMEOUT, "class_getName", cls, 0, 0, 0, 0, 0, 0, 0); - if (!name) return; - uint64_t heap = r_dlsym_call(R_TIMEOUT, "strdup", name, 0, 0, 0, 0, 0, 0, 0); - if (!heap) return; - if ([gRemoteCall remoteRead:heap to:out size:outLen - 1]) out[outLen - 1] = '\0'; - r_free(heap); -} - -static void themer_read_class_object_name(uint64_t cls, char *out, size_t outLen) -{ - if (!out || outLen == 0) return; - out[0] = '\0'; - if (!r_is_objc_ptr(cls)) return; - uint64_t name = r_dlsym_call(R_TIMEOUT, "class_getName", - cls, 0, 0, 0, 0, 0, 0, 0); - if (!name) return; - uint64_t heap = r_dlsym_call(R_TIMEOUT, "strdup", - name, 0, 0, 0, 0, 0, 0, 0); - if (!heap) return; - if ([gRemoteCall remoteRead:heap to:out size:outLen - 1]) out[outLen - 1] = '\0'; - r_free(heap); -} - -static uint64_t themer_lookup_class(const char *name) -{ - if (!name || !name[0]) return 0; - uint64_t s = r_alloc_str(name); - if (!s) return 0; - uint64_t cls = r_dlsym_call(R_TIMEOUT, "objc_lookUpClass", - s, 0, 0, 0, 0, 0, 0, 0); - r_free(s); - return cls; -} - -static uint64_t themer_method_imp(uint64_t cls, const char *selName) -{ - if (!r_is_objc_ptr(cls) || !selName) return 0; - uint64_t sel = r_sel(selName); - if (!sel) return 0; - uint64_t method = r_dlsym_call(R_TIMEOUT, "class_getInstanceMethod", - cls, sel, 0, 0, 0, 0, 0, 0); - if (!method) return 0; - return r_dlsym_call(R_TIMEOUT, "method_getImplementation", - method, 0, 0, 0, 0, 0, 0, 0); -} - -static bool themer_add_method(uint64_t cls, const char *selName, - uint64_t imp, const char *types) -{ - if (!r_is_objc_ptr(cls) || !selName || !imp || !types) return false; - uint64_t sel = r_sel(selName); - uint64_t typeStr = r_alloc_str(types); - if (!sel || !typeStr) { - if (typeStr) r_free(typeStr); - return false; - } - uint64_t ok = r_dlsym_call(R_TIMEOUT, "class_addMethod", - cls, sel, imp, typeStr, 0, 0, 0, 0); - r_free(typeStr); - return (ok & 0xff) != 0; -} - -static bool themer_add_methods(uint64_t cls, const char **sels, int count, - uint64_t imp, const char *types) -{ - if (!r_is_objc_ptr(cls) || !sels || count <= 0 || !imp || !types) return false; - bool ok = true; - for (int i = 0; i < count; i++) { - ok = themer_add_method(cls, sels[i], imp, types) && ok; - } - return ok; -} - -static uint64_t themer_remote_symbol_addr(const char *name) -{ - if (!name || !name[0]) return 0; - uint64_t remoteName = r_alloc_str(name); - if (!remoteName) return 0; - uint64_t sym = r_dlsym_call(R_TIMEOUT, "dlsym", - (uint64_t)-2, remoteName, 0, 0, 0, 0, 0, 0); - r_free(remoteName); - return sym; -} - -static bool themer_ensure_iconservices_loaded(void) -{ - if (r_is_objc_ptr(themer_lookup_class("ISBundleIdentifierIcon")) && - r_is_objc_ptr(themer_lookup_class("ISImageDescriptor")) && - r_is_objc_ptr(themer_lookup_class("ISIconManager")) && - r_is_objc_ptr(themer_lookup_class("IFImage"))) { - return true; - } - - uint64_t foundationPath = r_alloc_str("/System/Library/PrivateFrameworks/IconFoundation.framework/IconFoundation"); - if (foundationPath) { - r_dlsym_call(R_TIMEOUT, "dlopen", foundationPath, 1, 0, 0, 0, 0, 0, 0); - r_free(foundationPath); - } - - uint64_t path = r_alloc_str("/System/Library/PrivateFrameworks/IconServices.framework/IconServices"); - if (!path) return false; - uint64_t handle = r_dlsym_call(R_TIMEOUT, "dlopen", path, 1, 0, 0, 0, 0, 0, 0); - r_free(path); - (void)handle; - - return r_is_objc_ptr(themer_lookup_class("ISBundleIdentifierIcon")) && - r_is_objc_ptr(themer_lookup_class("ISImageDescriptor")) && - r_is_objc_ptr(themer_lookup_class("ISIconManager")) && - r_is_objc_ptr(themer_lookup_class("IFImage")); -} - -static NSData *themer_rounded_png_data(NSData *bytes, const char *label) -{ - if (!bytes || bytes.length == 0 || bytes.length > kThemerMaxPngBytes) return bytes; - - @autoreleasepool { - UIImage *src = [UIImage imageWithData:bytes]; - CGImageRef cg = src.CGImage; - if (!src || !cg) return bytes; - - size_t width = CGImageGetWidth(cg); - size_t height = CGImageGetHeight(cg); - if (width < 2 || height < 2) return bytes; - - CGSize size = CGSizeMake((CGFloat)width, (CGFloat)height); - UIGraphicsImageRendererFormat *format = [UIGraphicsImageRendererFormat defaultFormat]; - format.scale = 1.0; - format.opaque = NO; - - CGFloat radius = (CGFloat)MIN(width, height) * 0.225; - UIGraphicsImageRenderer *renderer = - [[UIGraphicsImageRenderer alloc] initWithSize:size format:format]; - UIImage *rounded = [renderer imageWithActions:^(UIGraphicsImageRendererContext *ctx) { - (void)ctx; - CGRect rect = CGRectMake(0, 0, size.width, size.height); - [[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:radius] addClip]; - [src drawInRect:rect]; - }]; - - NSData *out = UIImagePNGRepresentation(rounded); - if (out.length > 0 && out.length <= kThemerMaxPngBytes) return out; - - if (out.length > kThemerMaxPngBytes) { - printf("[THEMER] rounded PNG too large bundle=%s rounded=%lu original=%lu cap=%zu\n", - label ?: "?", - (unsigned long)out.length, - (unsigned long)bytes.length, - kThemerMaxPngBytes); - } - return bytes; - } -} - -static double themer_screen_scale(void) -{ - double scale = 3.0; - uint64_t UIScreen = r_class("UIScreen"); - uint64_t screen = r_is_objc_ptr(UIScreen) - ? r_msg2(UIScreen, "mainScreen", 0, 0, 0, 0) : 0; - if (r_is_objc_ptr(screen) && r_responds_main(screen, "scale")) { - uint64_t bits = r_msg2_main(screen, "scale", 0, 0, 0, 0); - memcpy(&scale, &bits, sizeof(scale)); - } - if (scale < 1.0 || scale > 4.0) scale = 3.0; - return scale; -} - -static uint64_t themer_make_is_descriptor(double pointSize, - double scale, - int64_t appearance, - uint64_t variant, - bool useVariantFactory) -{ - uint64_t descCls = themer_lookup_class("ISImageDescriptor"); - if (!r_is_objc_ptr(descCls)) return 0; - - uint64_t desc = 0; - if (useVariantFactory && - r_responds_main(descCls, "imageDescriptorWithIconVariant:options:")) { - desc = r_msg2_main(descCls, "imageDescriptorWithIconVariant:options:", - variant, 0, 0, 0); - if (r_is_objc_ptr(desc)) { - desc = r_msg2(desc, "retain", 0, 0, 0, 0); - } - } - - if (!r_is_objc_ptr(desc)) { - uint64_t alloc = r_msg2(descCls, "alloc", 0, 0, 0, 0); - struct { double width; double height; } size = { pointSize, pointSize }; - desc = r_is_objc_ptr(alloc) - ? r_msg2_main_raw(alloc, "initWithSize:scale:", - &size, sizeof(size), - &scale, sizeof(scale), - NULL, 0, NULL, 0) - : 0; - } - if (!r_is_objc_ptr(desc)) return 0; - - struct { double width; double height; } size = { pointSize, pointSize }; - if (r_responds_main(desc, "setSize:")) { - r_msg2_main_raw(desc, "setSize:", - &size, sizeof(size), - NULL, 0, NULL, 0, NULL, 0); - } - if (r_responds_main(desc, "setScale:")) { - r_msg2_main_raw(desc, "setScale:", - &scale, sizeof(scale), - NULL, 0, NULL, 0, NULL, 0); - } - if (r_responds_main(desc, "setAppearance:")) { - r_msg2_main(desc, "setAppearance:", (uint64_t)appearance, 0, 0, 0); - } - if (r_responds_main(desc, "setAppearanceVariant:")) { - r_msg2_main(desc, "setAppearanceVariant:", (uint64_t)appearance, 0, 0, 0); - } - if (r_responds_main(desc, "setIgnoreCache:")) { - r_msg2_main(desc, "setIgnoreCache:", 0, 0, 0, 0); - } - return desc; -} - -static uint64_t themer_make_if_image(uint64_t uiImage) -{ - if (!r_is_objc_ptr(uiImage)) return 0; - - uint64_t IFImage = themer_lookup_class("IFImage"); - if (!r_is_objc_ptr(IFImage)) return 0; - - uint64_t cgImage = r_responds_main(uiImage, "CGImage") - ? r_msg2_main(uiImage, "CGImage", 0, 0, 0, 0) : 0; - if (!cgImage) return 0; - - double scale = themer_screen_scale(); - if (r_responds_main(uiImage, "scale")) { - uint64_t bits = r_msg2_main(uiImage, "scale", 0, 0, 0, 0); - memcpy(&scale, &bits, sizeof(scale)); - if (scale < 1.0 || scale > 4.0) scale = themer_screen_scale(); - } - - uint64_t alloc = r_msg2(IFImage, "alloc", 0, 0, 0, 0); - if (!r_is_objc_ptr(alloc)) return 0; - return r_msg2_main_raw(alloc, "initWithCGImage:scale:", - &cgImage, sizeof(cgImage), - &scale, sizeof(scale), - NULL, 0, NULL, 0); -} - -static int themer_seed_iconservices_cache(const char *bundle, - uint64_t image, - double pointSize) -{ - if (!bundle || !bundle[0] || !r_is_objc_ptr(image)) return 0; - if (!themer_ensure_iconservices_loaded()) return 0; - - uint64_t bid = r_nsstr_retained(bundle); - uint64_t iconCls = themer_lookup_class("ISBundleIdentifierIcon"); - uint64_t mgrCls = themer_lookup_class("ISIconManager"); - if (!r_is_objc_ptr(bid) || !r_is_objc_ptr(iconCls) || !r_is_objc_ptr(mgrCls)) { - if (r_is_objc_ptr(bid)) r_msg2(bid, "release", 0, 0, 0, 0); - return 0; - } - - uint64_t iconAlloc = r_msg2(iconCls, "alloc", 0, 0, 0, 0); - uint64_t icon = r_is_objc_ptr(iconAlloc) - ? r_msg2_main(iconAlloc, "initWithBundleIdentifier:", bid, 0, 0, 0) - : 0; - r_msg2(bid, "release", 0, 0, 0, 0); - if (!r_is_objc_ptr(icon)) return 0; - - uint64_t mgr = r_msg2(mgrCls, "sharedInstance", 0, 0, 0, 0); - uint64_t createdIcon = icon; - uint64_t registered = (r_is_objc_ptr(mgr) && - r_responds_main(mgr, "findOrRegisterIcon:")) - ? r_msg2_main(mgr, "findOrRegisterIcon:", icon, 0, 0, 0) : 0; - if (r_is_objc_ptr(registered) && registered != icon) { - r_msg2(icon, "release", 0, 0, 0, 0); - icon = registered; - } - - uint64_t imageCache = r_responds_main(icon, "imageCache") - ? r_msg2_main(icon, "imageCache", 0, 0, 0, 0) : 0; - if (!r_is_objc_ptr(imageCache) || - !r_responds_main(imageCache, "setImage:forDescriptor:")) { - if (icon == createdIcon) r_msg2(icon, "release", 0, 0, 0, 0); - return 0; - } - - uint64_t cacheImage = themer_make_if_image(image); - if (!r_is_objc_ptr(cacheImage)) { - if (icon == createdIcon) r_msg2(icon, "release", 0, 0, 0, 0); - return 0; - } - - double scale = themer_screen_scale(); - if (pointSize < 20.0 || pointSize > 120.0) pointSize = 60.0; - - double sizes[2] = { pointSize, 60.0 }; - int seeded = 0; - int readbackHits = 0; - bool checkedReadback = false; - for (int s = 0; s < 2; s++) { - if (s == 1 && sizes[1] == sizes[0]) continue; - for (int appearance = 0; appearance <= 1; appearance++) { - for (int variant = 0; variant < 2; variant++) { - uint64_t desc = themer_make_is_descriptor(sizes[s], scale, - appearance, - (uint64_t)variant, - variant != 0); - if (!r_is_objc_ptr(desc)) continue; - r_msg2_main(imageCache, "setImage:forDescriptor:", - cacheImage, desc, 0, 0); - seeded++; - - uint64_t readback = (!checkedReadback && - r_responds_main(icon, "imageForDescriptor:")) - ? r_msg2_main(icon, "imageForDescriptor:", desc, 0, 0, 0) : 0; - checkedReadback = true; - if (readback == cacheImage) readbackHits++; - r_msg2(desc, "release", 0, 0, 0, 0); - } - } - } - - if (!gThemerIconServicesProbeLogged) { - gThemerIconServicesProbeLogged = true; - uint64_t cachePath = 0; - uint64_t iconCache = (r_is_objc_ptr(mgr) && r_responds_main(mgr, "iconCache")) - ? r_msg2_main(mgr, "iconCache", 0, 0, 0, 0) : 0; - if (r_is_objc_ptr(iconCache) && r_responds_main(iconCache, "cachePath")) { - cachePath = r_msg2_main(iconCache, "cachePath", 0, 0, 0, 0); - } - char cachePathStr[240] = {0}; - if (r_is_objc_ptr(cachePath)) { - r_read_nsstring(cachePath, cachePathStr, sizeof(cachePathStr)); - } - printf("[THEMER] IconServices seed probe bundle=%s icon=0x%llx imageCache=0x%llx " - "ifImage=0x%llx seeded=%d readback=%d pointSize=%.1f scale=%.1f cachePath=\"%s\"\n", - bundle, - (unsigned long long)icon, - (unsigned long long)imageCache, - (unsigned long long)cacheImage, - seeded, readbackHits, - pointSize, scale, - cachePathStr); - } - - r_msg2(cacheImage, "release", 0, 0, 0, 0); - if (icon == createdIcon) r_msg2(icon, "release", 0, 0, 0, 0); - return seeded; -} - -// Ships PNG bytes into SB and returns a retained SB UIImage* (+1 owned by -// caller). `label` is just for log output (e.g. "com.apple.mobilesafari"). -static uint64_t themer_build_remote_uiimage_from_data(NSData *bytes, const char *label) -{ - if (!bytes || bytes.length == 0 || bytes.length > kThemerMaxPngBytes) { - printf("[THEMER] PNG size out of range label=%s size=%lu cap=%zu\n", - label ?: "?", - (unsigned long)bytes.length, - kThemerMaxPngBytes); - return 0; - } - - uint64_t remoteBuf = r_dlsym_call(R_TIMEOUT, "malloc", - bytes.length, 0, 0, 0, 0, 0, 0, 0); - if (!remoteBuf) { - printf("[THEMER] remote malloc(%lu) failed label=%s\n", - (unsigned long)bytes.length, label ?: "?"); - return 0; - } - if (![gRemoteCall remote_write:remoteBuf from:bytes.bytes size:bytes.length]) { - printf("[THEMER] remote_write failed buf=0x%llx size=%lu label=%s\n", - (unsigned long long)remoteBuf, (unsigned long)bytes.length, label ?: "?"); - r_free(remoteBuf); - return 0; - } - - uint64_t NSDataCls = r_class("NSData"); - uint64_t UIImageCls = r_class("UIImage"); - if (!r_is_objc_ptr(NSDataCls) || !r_is_objc_ptr(UIImageCls)) { - printf("[THEMER] missing class NSData=0x%llx UIImage=0x%llx\n", - (unsigned long long)NSDataCls, - (unsigned long long)UIImageCls); - r_free(remoteBuf); - return 0; - } - - uint64_t dataAlloc = r_msg2(NSDataCls, "alloc", 0, 0, 0, 0); - uint64_t nsdata = r_is_objc_ptr(dataAlloc) - ? r_msg2(dataAlloc, "initWithBytes:length:", remoteBuf, bytes.length, 0, 0) - : 0; - r_free(remoteBuf); // NSData copied the bytes - - if (!r_is_objc_ptr(nsdata)) { - printf("[THEMER] NSData init failed label=%s\n", label ?: "?"); - return 0; - } - - uint64_t image = r_msg2(UIImageCls, "imageWithData:", nsdata, 0, 0, 0); - if (r_is_objc_ptr(image)) { - r_msg2(image, "retain", 0, 0, 0, 0); - } - r_msg2(nsdata, "release", 0, 0, 0, 0); - - if (!r_is_objc_ptr(image)) { - printf("[THEMER] UIImage decode failed for %s (PNG malformed?)\n", - label ?: "?"); - return 0; - } - return image; -} - -static uint64_t themer_ensure_datasource_class(void) -{ - static uint64_t cls = 0; - if (r_is_objc_ptr(cls)) return cls; - - cls = themer_lookup_class("CNDIconLayerDataSource"); - if (r_is_objc_ptr(cls)) return cls; - - uint64_t NSObject = r_class("NSObject"); - if (!r_is_objc_ptr(NSObject)) return 0; - - uint64_t name = r_alloc_str("CNDIconLayerDataSource"); - if (!name) return 0; - cls = r_dlsym_call(R_TIMEOUT, "objc_allocateClassPair", - NSObject, name, 0, 0, 0, 0, 0, 0); - r_free(name); - if (!r_is_objc_ptr(cls)) return 0; - - uint64_t getAssocImp = themer_remote_symbol_addr("objc_getAssociatedObject"); - bool ok = getAssocImp && - themer_add_method(cls, "icon:imageWithInfo:traitCollection:options:", - getAssocImp, "@@:@@@Q") && - themer_add_method(cls, "icon:layerWithInfo:traitCollection:options:", - getAssocImp, "@@:@@@Q") && - themer_add_method(cls, "icon:displayNameForLocation:", - getAssocImp, "@@:@q") && - themer_add_method(cls, "icon:accessibilityLabelForLocation:", - getAssocImp, "@@:@q"); - - r_dlsym_call(R_TIMEOUT, "objc_registerClassPair", - cls, 0, 0, 0, 0, 0, 0, 0); - - if (!ok) { - printf("[THEMER] model graft: datasource class incomplete getAssoc=0x%llx\n", - (unsigned long long)getAssocImp); - return 0; - } - return cls; -} - -static double themer_icon_width_for_view(uint64_t iconView) -{ - uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); - if (!r_is_objc_ptr(iiv) && r_responds_main(iconView, "_iconImageView")) { - iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); - } - uint64_t layer = r_is_objc_ptr(iiv) && r_responds_main(iiv, "layer") - ? r_msg2_main(iiv, "layer", 0, 0, 0, 0) : 0; - struct { double x, y, w, h; } b = {0}; - if (r_is_objc_ptr(layer) && - r_responds_main(layer, "bounds") && - r_msg2_main_struct_ret(layer, "bounds", &b, sizeof(b), - NULL, 0, NULL, 0, NULL, 0, NULL, 0) && - b.w > 1.0) { - return b.w; - } - return 60.0; -} - -static uint64_t themer_icon_image_view_for_iconview(uint64_t iconView) -{ - if (!r_is_objc_ptr(iconView)) return 0; - uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); - if (!r_is_objc_ptr(iiv) && r_responds_main(iconView, "_iconImageView")) { - iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); - } - return r_is_objc_ptr(iiv) ? iiv : 0; -} - -static bool themer_icon_is_application_icon(uint64_t icon) -{ - if (!r_is_objc_ptr(icon)) return false; - char cls[96] = {0}; - themer_read_class_name(icon, cls, sizeof(cls)); - return strstr(cls, "ApplicationIcon") != NULL && - strstr(cls, "WidgetIcon") == NULL && - strstr(cls, "FolderIcon") == NULL; -} - -static uint64_t themer_application_icon_for_iconview(uint64_t iconView) -{ - if (!r_is_objc_ptr(iconView) || !r_responds_main(iconView, "icon")) return 0; - uint64_t icon = r_msg2_main(iconView, "icon", 0, 0, 0, 0); - return themer_icon_is_application_icon(icon) ? icon : 0; -} - -static bool themer_should_pin_dynamic_overlay(const char *bundle, uint64_t iconView) -{ - int major = themer_host_ios_major(); - if (major > 0 && major < 26) return false; - - if (!r_is_objc_ptr(themer_application_icon_for_iconview(iconView))) return false; - - if (!bundle || - (strcmp(bundle, "com.apple.mobiletimer") != 0 && - strcmp(bundle, "com.apple.mobilecal") != 0)) { - return false; - } - - // Clock/Calendar use live renderers; only pin over their real app icon. - // Widget icons can share nearby image-view classes and must never receive - // these overlays. - uint64_t iiv = themer_icon_image_view_for_iconview(iconView); - char cls[128] = {0}; - themer_read_class_name(iiv, cls, sizeof(cls)); - return strstr(cls, "Clock") != NULL || - strstr(cls, "Calendar") != NULL; -} - -static bool themer_prefers_view_level_overlay(const char *bundle) -{ - if (bundle && - (strcmp(bundle, "com.apple.mobiletimer") == 0 || - strcmp(bundle, "com.apple.mobilecal") == 0)) { - return true; - } - return false; -} - -static bool themer_needs_visible_push(const char *bundle) -{ - (void)bundle; - // Keep SnowBoard Lite on the model/cache path. The visible setter path can - // draw an extra image layer above SpringBoard's own rounded icon mask. - return false; -} - -static NSDictionary *themer_normalized_theme_data(NSDictionary *input) -{ - if (input.count == 0) return @{}; - - NSMutableDictionary *out = [NSMutableDictionary dictionaryWithCapacity:input.count]; - NSUInteger aliases = 0; - for (NSString *key in input) { - NSData *data = input[key]; - if (![key isKindOfClass:NSString.class] || - ![data isKindOfClass:NSData.class] || - data.length == 0) { - continue; - } - - BOOL usedAlias = NO; - NSArray *mappedTargets = CNDMappedIOSBundleIDsForIconName(key, &usedAlias); - if (mappedTargets.count == 0) mappedTargets = @[key]; - for (NSString *target in mappedTargets) { - if (target.length == 0 || out[target]) continue; - out[target] = data; - if (usedAlias) aliases++; - } - } - - if (aliases > 0 || out.count != input.count) { - printf("[THEMER] normalized theme data entries=%lu -> %lu aliases=%lu\n", - (unsigned long)input.count, - (unsigned long)out.count, - (unsigned long)aliases); - } - return out; -} - -static bool themer_clear_overlay_on_object(uint64_t obj, uint64_t key) -{ - if (!r_is_objc_ptr(obj) || !key) return false; - - uint64_t overlay = r_dlsym_call(R_TIMEOUT, "objc_getAssociatedObject", - obj, key, 0, 0, 0, 0, 0, 0); - if (!r_is_objc_ptr(overlay)) return false; - - if (r_responds_main(overlay, "setHidden:")) { - r_msg2_main(overlay, "setHidden:", 1, 0, 0, 0); - } - if (r_responds_main(overlay, "removeFromSuperview")) { - r_msg2_main(overlay, "removeFromSuperview", 0, 0, 0, 0); - } - r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", - obj, key, 0, 1, 0, 0, 0, 0); - return true; -} - -static bool themer_clear_dynamic_overlay(uint64_t iconView) -{ - if (!r_is_objc_ptr(iconView)) return false; - uint64_t key = r_sel("cnd_themer_pinned_overlay"); - if (!key) return false; - - bool cleared = themer_clear_overlay_on_object(iconView, key); - uint64_t iiv = themer_icon_image_view_for_iconview(iconView); - cleared = themer_clear_overlay_on_object(iiv, key) || cleared; - return cleared; -} - -static bool themer_clear_visible_override(uint64_t iconView) -{ - if (!r_is_objc_ptr(iconView) || - !r_responds_main(iconView, "setOverrideImage:")) { - return false; - } - - uint64_t cur = r_responds_main(iconView, "overrideImage") - ? r_msg2_main(iconView, "overrideImage", 0, 0, 0, 0) : 0; - if (!r_is_objc_ptr(cur)) return false; - - r_msg2_main(iconView, "setOverrideImage:", 0, 0, 0, 0); - if (r_responds_main(iconView, "setOverrideIconImageAppearance:")) { - r_msg2_main(iconView, "setOverrideIconImageAppearance:", 0, 0, 0, 0); - } - if (r_responds_main(iconView, "_updateIconImageViewAnimated:")) { - r_msg2_main(iconView, "_updateIconImageViewAnimated:", 0, 0, 0, 0); - } else if (r_responds_main(iconView, - "_updateAfterManualIconImageInfoChangeInvalidatingLayout:")) { - r_msg2_main(iconView, - "_updateAfterManualIconImageInfoChangeInvalidatingLayout:", - 0, 0, 0, 0); - } - return true; -} - -static bool themer_pin_dynamic_overlay(uint64_t iconView, uint64_t image, - const char *bundle) -{ - if (!r_is_objc_ptr(iconView) || !r_is_objc_ptr(image)) return false; - - uint64_t iiv = themer_icon_image_view_for_iconview(iconView); - if (!r_is_objc_ptr(iiv)) return false; - bool viewLevel = themer_prefers_view_level_overlay(bundle); - uint64_t overlayParent = viewLevel ? iconView : iiv; - - uint64_t key = r_sel("cnd_themer_pinned_overlay"); - if (!key) return false; - - uint64_t overlay = r_dlsym_call(R_TIMEOUT, "objc_getAssociatedObject", - iconView, key, 0, 0, 0, 0, 0, 0); - uint64_t imageViewOverlay = r_dlsym_call(R_TIMEOUT, "objc_getAssociatedObject", - iiv, key, 0, 0, 0, 0, 0, 0); - if (!r_is_objc_ptr(overlay) && r_is_objc_ptr(imageViewOverlay)) { - overlay = imageViewOverlay; - r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", - iconView, key, overlay, 1, 0, 0, 0, 0); - } else if (r_is_objc_ptr(overlay) && r_is_objc_ptr(imageViewOverlay) && - overlay != imageViewOverlay) { - themer_clear_overlay_on_object(iiv, key); - } - - bool created = false; - if (!r_is_objc_ptr(overlay)) { - uint64_t overlayCls = r_class("UIImageView"); - uint64_t alloc = r_is_objc_ptr(overlayCls) - ? r_msg2(overlayCls, "alloc", 0, 0, 0, 0) : 0; - overlay = r_is_objc_ptr(alloc) - ? r_msg2_main(alloc, "initWithImage:", image, 0, 0, 0) : 0; - if (!r_is_objc_ptr(overlay)) return false; - - r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", - iconView, key, overlay, 1, 0, 0, 0, 0); - r_msg2(overlay, "release", 0, 0, 0, 0); - created = true; - } else if (r_responds_main(overlay, "setImage:")) { - r_msg2_main(overlay, "setImage:", image, 0, 0, 0); - } - - r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", - iiv, key, overlay, 1, 0, 0, 0, 0); - if (r_responds_main(overlay, "removeFromSuperview")) { - r_msg2_main(overlay, "removeFromSuperview", 0, 0, 0, 0); - } - if (r_responds_main(overlayParent, "addSubview:")) { - r_msg2_main(overlayParent, "addSubview:", overlay, 0, 0, 0); - } - - struct { double x, y, w, h; } bounds = {0.0, 0.0, 0.0, 0.0}; - if (!r_responds_main(iiv, "bounds") || - !r_msg2_main_struct_ret(iiv, "bounds", - &bounds, sizeof(bounds), - NULL, 0, NULL, 0, NULL, 0, NULL, 0) || - bounds.w <= 1.0 || bounds.h <= 1.0) { - double width = themer_icon_width_for_view(iconView); - bounds.w = width; - bounds.h = width; - } - if (viewLevel && - r_responds_main(iiv, "frame")) { - struct { double x, y, w, h; } frame = {0.0, 0.0, 0.0, 0.0}; - if (r_msg2_main_struct_ret(iiv, "frame", - &frame, sizeof(frame), - NULL, 0, NULL, 0, NULL, 0, NULL, 0) && - frame.w > 1.0 && frame.h > 1.0) { - bounds.x = frame.x; - bounds.y = frame.y; - bounds.w = frame.w; - bounds.h = frame.h; - } - } - - if (r_responds_main(overlay, "setFrame:")) { - r_msg2_main_raw(overlay, "setFrame:", - &bounds, sizeof(bounds), - NULL, 0, NULL, 0, NULL, 0); - } - if (r_responds_main(overlay, "setBounds:")) { - struct { double x, y, w, h; } localBounds = {0.0, 0.0, bounds.w, bounds.h}; - r_msg2_main_raw(overlay, "setBounds:", - &localBounds, sizeof(localBounds), - NULL, 0, NULL, 0, NULL, 0); - } - if (r_responds_main(overlay, "setAutoresizingMask:")) { - r_msg2_main(overlay, "setAutoresizingMask:", 18, 0, 0, 0); - } - if (r_responds_main(overlay, "setUserInteractionEnabled:")) { - r_msg2_main(overlay, "setUserInteractionEnabled:", 0, 0, 0, 0); - } - if (r_responds_main(overlay, "setContentMode:")) { - r_msg2_main(overlay, "setContentMode:", 0, 0, 0, 0); - } - if (r_responds_main(overlay, "setHidden:")) { - r_msg2_main(overlay, "setHidden:", 0, 0, 0, 0); - } - if (r_responds_main(overlayParent, "bringSubviewToFront:")) { - r_msg2_main(overlayParent, "bringSubviewToFront:", overlay, 0, 0, 0); - } - - uint64_t layer = r_responds_main(overlay, "layer") - ? r_msg2_main(overlay, "layer", 0, 0, 0, 0) : 0; - if (r_is_objc_ptr(layer)) { - double radius = bounds.w > 1.0 ? bounds.w * 0.225 : 15.0; - if (r_responds_main(layer, "setCornerRadius:")) { - r_msg2_main_raw(layer, "setCornerRadius:", - &radius, sizeof(radius), - NULL, 0, NULL, 0, NULL, 0); - } - if (r_responds_main(layer, "setMasksToBounds:")) { - r_msg2_main(layer, "setMasksToBounds:", 1, 0, 0, 0); - } - } - - static bool logged = false; - if (!logged) { - logged = true; - char iivCls[128] = {0}; - themer_read_class_name(iiv, iivCls, sizeof(iivCls)); - printf("[THEMER] dynamic overlay pinned bundle=%s iconView=0x%llx " - "iiv=0x%llx (%s) overlay=0x%llx viewLevel=%d created=%d\n", - bundle ?: "?", - (unsigned long long)iconView, - (unsigned long long)iiv, - iivCls, - (unsigned long long)overlay, - viewLevel, - created); - } - - return true; -} - -static uint64_t themer_make_datasource(uint64_t image, double width) -{ - if (!r_is_objc_ptr(image)) return 0; - uint64_t dsCls = themer_ensure_datasource_class(); - if (!r_is_objc_ptr(dsCls)) return 0; - - uint64_t alloc = r_msg2(dsCls, "alloc", 0, 0, 0, 0); - uint64_t ds = r_is_objc_ptr(alloc) - ? r_msg2_main(alloc, "init", 0, 0, 0, 0) : 0; - if (!r_is_objc_ptr(ds)) return 0; - - uint64_t layerCls = r_class("CALayer"); - uint64_t layerAlloc = r_is_objc_ptr(layerCls) - ? r_msg2(layerCls, "alloc", 0, 0, 0, 0) : 0; - uint64_t layer = r_is_objc_ptr(layerAlloc) - ? r_msg2_main(layerAlloc, "init", 0, 0, 0, 0) : 0; - if (!r_is_objc_ptr(layer)) { - r_msg2(ds, "release", 0, 0, 0, 0); - return 0; - } - - uint64_t cgImage = r_responds_main(image, "CGImage") - ? r_msg2_main(image, "CGImage", 0, 0, 0, 0) : 0; - if (cgImage && r_responds_main(layer, "setContents:")) { - r_msg2_main(layer, "setContents:", cgImage, 0, 0, 0); - } - - struct { double x, y, w, h; } bounds = {0.0, 0.0, width, width}; - if (r_responds_main(layer, "setBounds:")) { - r_msg2_main_raw(layer, "setBounds:", - &bounds, sizeof(bounds), - NULL, 0, NULL, 0, NULL, 0); - } - - double radius = width * 0.225; - if (r_responds_main(layer, "setCornerRadius:")) { - r_msg2_main_raw(layer, "setCornerRadius:", - &radius, sizeof(radius), - NULL, 0, NULL, 0, NULL, 0); - } - if (r_responds_main(layer, "setMasksToBounds:")) { - r_msg2_main(layer, "setMasksToBounds:", 1, 0, 0, 0); - } - - double scale = 3.0; - uint64_t UIScreen = r_class("UIScreen"); - uint64_t screen = r_is_objc_ptr(UIScreen) - ? r_msg2(UIScreen, "mainScreen", 0, 0, 0, 0) : 0; - if (r_is_objc_ptr(screen) && r_responds_main(screen, "scale")) { - uint64_t bits = r_msg2_main(screen, "scale", 0, 0, 0, 0); - memcpy(&scale, &bits, sizeof(scale)); - } - if (r_responds_main(layer, "setContentsScale:")) { - r_msg2_main_raw(layer, "setContentsScale:", - &scale, sizeof(scale), - NULL, 0, NULL, 0, NULL, 0); - } - - uint64_t imageSel = r_sel("icon:imageWithInfo:traitCollection:options:"); - if (imageSel) { - r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", - ds, imageSel, image, 1, 0, 0, 0, 0); - } - uint64_t layerSel = r_sel("icon:layerWithInfo:traitCollection:options:"); - if (layerSel) { - r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", - ds, layerSel, layer, 1, 0, 0, 0, 0); - } - r_msg2(layer, "release", 0, 0, 0, 0); - return ds; -} - -static uint64_t themer_make_icon_layer(uint64_t image, double width) -{ - if (!r_is_objc_ptr(image)) return 0; - - uint64_t layerCls = r_class("CALayer"); - uint64_t layerAlloc = r_is_objc_ptr(layerCls) - ? r_msg2(layerCls, "alloc", 0, 0, 0, 0) : 0; - uint64_t layer = r_is_objc_ptr(layerAlloc) - ? r_msg2_main(layerAlloc, "init", 0, 0, 0, 0) : 0; - if (!r_is_objc_ptr(layer)) return 0; - - uint64_t cgImage = r_responds_main(image, "CGImage") - ? r_msg2_main(image, "CGImage", 0, 0, 0, 0) : 0; - if (cgImage && r_responds_main(layer, "setContents:")) { - r_msg2_main(layer, "setContents:", cgImage, 0, 0, 0); - } - - struct { double x, y, w, h; } bounds = {0.0, 0.0, width, width}; - if (r_responds_main(layer, "setBounds:")) { - r_msg2_main_raw(layer, "setBounds:", - &bounds, sizeof(bounds), - NULL, 0, NULL, 0, NULL, 0); - } - - double radius = width * 0.225; - if (r_responds_main(layer, "setCornerRadius:")) { - r_msg2_main_raw(layer, "setCornerRadius:", - &radius, sizeof(radius), - NULL, 0, NULL, 0, NULL, 0); - } - if (r_responds_main(layer, "setMasksToBounds:")) { - r_msg2_main(layer, "setMasksToBounds:", 1, 0, 0, 0); - } - - double scale = 3.0; - uint64_t UIScreen = r_class("UIScreen"); - uint64_t screen = r_is_objc_ptr(UIScreen) - ? r_msg2(UIScreen, "mainScreen", 0, 0, 0, 0) : 0; - if (r_is_objc_ptr(screen) && r_responds_main(screen, "scale")) { - uint64_t bits = r_msg2_main(screen, "scale", 0, 0, 0, 0); - memcpy(&scale, &bits, sizeof(scale)); - } - if (r_responds_main(layer, "setContentsScale:")) { - r_msg2_main_raw(layer, "setContentsScale:", - &scale, sizeof(scale), - NULL, 0, NULL, 0, NULL, 0); - } - - return layer; -} - -static uint64_t themer_copy_icon_label(uint64_t icon) -{ - if (!r_is_objc_ptr(icon)) return 0; - - uint64_t label = 0; - if (r_responds_main(icon, "displayNameForLocation:")) { - label = r_msg2_main(icon, "displayNameForLocation:", 0, 0, 0, 0); - } - if (!r_is_objc_ptr(label) && r_responds_main(icon, "displayName")) { - label = r_msg2_main(icon, "displayName", 0, 0, 0, 0); - } - if (!r_is_objc_ptr(label) && r_responds_main(icon, "application")) { - uint64_t app = r_msg2_main(icon, "application", 0, 0, 0, 0); - if (r_is_objc_ptr(app) && r_responds_main(app, "displayName")) { - label = r_msg2_main(app, "displayName", 0, 0, 0, 0); - } - } - if (!r_is_objc_ptr(label)) return 0; - return r_msg2(label, "copy", 0, 0, 0, 0); -} - -static void themer_seed_datasource_metadata(uint64_t ds, uint64_t icon) -{ - if (!r_is_objc_ptr(ds) || !r_is_objc_ptr(icon)) return; - - uint64_t label = themer_copy_icon_label(icon); - if (!r_is_objc_ptr(label)) return; - - uint64_t displaySel = r_sel("icon:displayNameForLocation:"); - if (displaySel) { - r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", - ds, displaySel, label, 1, 0, 0, 0, 0); - } - uint64_t axSel = r_sel("icon:accessibilityLabelForLocation:"); - if (axSel) { - r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", - ds, axSel, label, 1, 0, 0, 0, 0); - } - r_msg2(label, "release", 0, 0, 0, 0); -} - -static uint64_t themer_ensure_model_class(uint64_t currentClass) -{ - if (!r_is_objc_ptr(currentClass)) return 0; - - uint64_t baseClass = currentClass; - char clsName[160] = {0}; - themer_read_class_object_name(baseClass, clsName, sizeof(clsName)); - while (strncmp(clsName, "CNDThemed", 9) == 0) { - uint64_t superCls = r_dlsym_call(R_TIMEOUT, "class_getSuperclass", - baseClass, 0, 0, 0, 0, 0, 0, 0); - if (!r_is_objc_ptr(superCls) || superCls == baseClass) break; - baseClass = superCls; - themer_read_class_object_name(baseClass, clsName, sizeof(clsName)); - } - if (!clsName[0]) return 0; - - char subName[192] = {0}; - snprintf(subName, sizeof(subName), "CNDThemedV7_%s", clsName); - - uint64_t sub = themer_lookup_class(subName); - if (r_is_objc_ptr(sub)) return sub; - - uint64_t name = r_alloc_str(subName); - if (!name) return 0; - sub = r_dlsym_call(R_TIMEOUT, "objc_allocateClassPair", - baseClass, name, 0, 0, 0, 0, 0, 0); - r_free(name); - if (!r_is_objc_ptr(sub)) return 0; - - uint64_t getAssocImp = themer_remote_symbol_addr("objc_getAssociatedObject"); - - static const char *imageSels[] = { - "makeIconImageWithInfo:traitCollection:context:options:", - "iconImageWithInfo:traitCollection:context:options:", - }; - static const char *imageSels3[] = { - "iconImageWithInfo:traitCollection:options:", - }; - - bool ok = getAssocImp && - themer_add_methods(sub, imageSels, 2, getAssocImp, "@@:@@@Q") && - themer_add_methods(sub, imageSels3, 1, getAssocImp, "@@:@@Q"); - - r_dlsym_call(R_TIMEOUT, "objc_registerClassPair", - sub, 0, 0, 0, 0, 0, 0, 0); - - if (!ok) { - printf("[THEMER] model graft: subclass incomplete %s getAssoc=0x%llx\n", - subName, - (unsigned long long)getAssocImp); - return 0; - } - return sub; -} - -static bool themer_graft_icon_model(uint64_t icon, uint64_t image, - ThemerEntry *entry, uint64_t iconView, - bool *changedOut) -{ - if (changedOut) *changedOut = false; - if (!r_is_objc_ptr(icon) || !r_is_objc_ptr(image) || !entry) return false; - - uint64_t currentClass = r_dlsym_call(R_TIMEOUT, "object_getClass", - icon, 0, 0, 0, 0, 0, 0, 0); - uint64_t themedClass = themer_ensure_model_class(currentClass); - if (!r_is_objc_ptr(themedClass)) return false; - - static const char *imageSels[] = { - "makeIconImageWithInfo:traitCollection:context:options:", - "iconImageWithInfo:traitCollection:context:options:", - "iconImageWithInfo:traitCollection:options:", - }; - for (int i = 0; i < 3; i++) { - uint64_t sel = r_sel(imageSels[i]); - if (!sel) return false; - r_dlsym_call(R_TIMEOUT, "objc_setAssociatedObject", - icon, sel, image, 1, 0, 0, 0, 0); - } - (void)iconView; - - if (themedClass != currentClass) { - r_dlsym_call(R_TIMEOUT, "object_setClass", - icon, themedClass, 0, 0, 0, 0, 0, 0); - if (changedOut) *changedOut = true; - } - - if (!gThemerModelProbeLogged) { - gThemerModelProbeLogged = true; - printf("[THEMER] model graft: icon=0x%llx class=0x%llx changed=%d imageOnly=1\n", - (unsigned long long)icon, - (unsigned long long)themedClass, - changedOut ? *changedOut : false); - } - - return true; -} - -static int themer_notify_icon_image_changed(uint64_t icon) -{ - if (!r_is_objc_ptr(icon)) return 0; - - int called = 0; - static const char *selectors[] = { - "purgeCachedImages", - "clearCachedImages", - "invalidateIconImageCache", - "_invalidateIconImageCache", - "reloadIconImage", - "_reloadIconImage", - "noteIconImageDidChange", - "_noteIconImageDidChange", - }; - - for (size_t i = 0; i < sizeof(selectors) / sizeof(selectors[0]); i++) { - const char *sel = selectors[i]; - if (!r_responds_main(icon, sel)) continue; - r_msg2_main(icon, sel, 0, 0, 0, 0); - called++; - } - return called; -} - -// Resolve the bundle identifier for an app SBIconView/SBIcon. -static bool themer_read_bundle_for_icon(uint64_t icon, - uint64_t probeIconView, - char *out, size_t outLen) -{ - if (!r_is_objc_ptr(icon) || !out || outLen == 0) return false; - - // Try the SBHApplication path first. On iOS 26 the older leaf identifier - // selectors can report support but return non-NSString/private values. - uint64_t appObj = r_responds(icon, "application") - ? r_msg2(icon, "application", 0, 0, 0, 0) : 0; - if (r_is_objc_ptr(appObj) && r_responds(appObj, "bundleIdentifier")) { - uint64_t bid = r_msg2(appObj, "bundleIdentifier", 0, 0, 0, 0); - if (r_is_objc_ptr(bid) && r_read_nsstring(bid, out, outLen) && out[0]) { - themer_cache_icon_bundle(icon, out); - return true; - } - } - - if (themer_lookup_icon_bundle(icon, out, outLen)) { - static int fallbackLogs = 0; - if (fallbackLogs < 8) { - printf("[THEMER] model bundle fallback icon=0x%llx bundle=%s\n", - (unsigned long long)icon, out); - fallbackLogs++; - } - return true; - } - - // First-iconView verbose probe: keep this to the known-stable application - // path. Calling object_getClass on legacy selector returns can PAC-crash - // SpringBoard when a selector returns a private non-object payload. - static bool probedShape = false; - if (!probedShape) { - probedShape = true; - char ivCls[96] = {0}, iconCls[96] = {0}; - if (r_is_objc_ptr(probeIconView)) themer_read_class_name(probeIconView, ivCls, sizeof(ivCls)); - themer_read_class_name(icon, iconCls, sizeof(iconCls)); - printf("[THEMER] probe iconView class=%s icon=0x%llx class=%s\n", - ivCls, (unsigned long long)icon, iconCls); - if (r_is_objc_ptr(appObj)) { - char appCls[96] = {0}; - themer_read_class_name(appObj, appCls, sizeof(appCls)); - bool appHasBID = r_responds(appObj, "bundleIdentifier"); - uint64_t appBID = appHasBID - ? r_msg2(appObj, "bundleIdentifier", 0, 0, 0, 0) : 0; - char appBIDStr[160] = {0}; - if (r_is_objc_ptr(appBID)) r_read_nsstring(appBID, appBIDStr, sizeof(appBIDStr)); - printf("[THEMER] application=0x%llx class=%s bundleIdentifier=\"%s\"\n", - (unsigned long long)appObj, appCls, appBIDStr); - } - } - - return false; -} - -static bool themer_read_bundle_for_iconview(uint64_t iconView, - char *out, size_t outLen) -{ - if (!r_is_objc_ptr(iconView) || !out || outLen == 0) return false; - - uint64_t icon = themer_application_icon_for_iconview(iconView); - return themer_read_bundle_for_icon(icon, iconView, out, outLen); -} - -// Rung 1: iOS 26 path — -// setOverrideImage: (track the override slot) -// + _iconImageView.updateImageContentsWithImage:imageAppearance:animated: -// (or fallback: setDisplayedImage:) (force the rendered pixels) -// Rung 2: setIconImage: (iOS 18 and earlier) -// Rung 3: _setIconImage: (private variant) -// Rung 4: _iconImageView.setImage: (last-resort UIImageView-style setter) -static bool gThemerInnerCanUpdateContents = false; -static bool gThemerInnerCanSetDisplayed = false; - -static int themer_probe_rung(uint64_t iconView) -{ - if (gThemerRung >= 0) return gThemerRung; - if (!r_is_objc_ptr(iconView)) return -1; - - bool r1 = r_responds_main(iconView, "setOverrideImage:"); - bool r2 = r_responds_main(iconView, "setIconImage:"); - bool r3 = r_responds_main(iconView, "_setIconImage:"); - - uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); - if (!r_is_objc_ptr(iiv) && r_responds_main(iconView, "_iconImageView")) { - iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); - } - bool r4 = r_is_objc_ptr(iiv) && r_responds_main(iiv, "setImage:"); - if (r_is_objc_ptr(iiv)) { - gThemerInnerCanUpdateContents = r_responds_main(iiv, - "updateImageContentsWithImage:imageAppearance:animated:"); - gThemerInnerCanSetDisplayed = r_responds_main(iiv, "setDisplayedImage:"); - } - - gThemerHasUpdateAfter = r_responds_main(iconView, - "_updateAfterManualIconImageInfoChangeInvalidatingLayout:"); - gThemerHasUpdateImageView = r_responds_main(iconView, - "_updateIconImageViewAnimated:"); - - char iivCls[96] = {0}; - if (r_is_objc_ptr(iiv)) themer_read_class_name(iiv, iivCls, sizeof(iivCls)); - bool legacyVisible = themer_needs_visible_push(NULL); - printf("[THEMER] probe iconView=0x%llx setOverrideImage:=%d setIconImage:=%d " - "_setIconImage:=%d _iconImageView=0x%llx (%s) " - "setImage:=%d updateContents:=%d setDisplayedImage:=%d " - "update:=%d updateIV:=%d legacy=%d\n", - (unsigned long long)iconView, r1, r2, r3, - (unsigned long long)iiv, iivCls, - r4, gThemerInnerCanUpdateContents, gThemerInnerCanSetDisplayed, - gThemerHasUpdateAfter, gThemerHasUpdateImageView, - legacyVisible); - - if (legacyVisible) { - if (r2) gThemerRung = 2; - else if (r3) gThemerRung = 3; - else if (r4) gThemerRung = 4; - else if (r1) gThemerRung = 1; - else gThemerRung = 0; - } else { - if (r1) gThemerRung = 1; - else if (r2) gThemerRung = 2; - else if (r3) gThemerRung = 3; - else if (r4) gThemerRung = 4; - else gThemerRung = 0; - } - - return gThemerRung; -} - -// Returns the rung that succeeded (1/2/3/4) or 0 if nothing stuck. -static int themer_push_image(uint64_t iconView, uint64_t image) -{ - if (!r_is_objc_ptr(iconView) || !r_is_objc_ptr(image)) return 0; - int rung = themer_probe_rung(iconView); - - switch (rung) { - case 1: { - // iOS 26 contents-path strategy (from RE of SpringBoardHome): - // shouldDisplayImageLayer is YES by default → sublayer path that - // ignores overrideImage. To force the flat contents path that - // DOES read overrideImage: - // 1. Set overrideIconImageAppearance = +[SBHIconImageAppearance lightAppearance] - // (light = appearanceType 0/1 → hasGlass returns NO) - // 2. Set iconImageView.showsSquareCorners = YES - // 3. Now shouldDisplayImageLayer returns NO, and - // updateImageAnimated: takes updateImageContentsAnimated:, - // which calls updateImageContentsWithImage:imageAppearance:animated: - // using [iconView overrideImage]. - // 4. Set overrideImage = our UIImage (also triggers updateImageAnimated:NO). - uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); - if (!r_is_objc_ptr(iiv)) { - iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); - } - if (!r_is_objc_ptr(iiv)) break; - - // PERSISTENCE: populate SBHIconImageCache for this icon. The - // home-screen render pipeline goes via SBIcon → - // iconLayerViewWithInfo: → SBHIconImageVariantCache.cachedImage - // → SBHIconImageAppearanceStore. Cache-populated images stick - // across layout passes (page swipe, rotation) so home icons - // don't revert. -[SBHIconImageCache cacheImage:forIcon:imageAppearance:] - // calls through to setImage:forIcon:appearance: on the underlying - // store plus bookkeeping. - uint64_t icon = r_responds_main(iconView, "icon") - ? r_msg2_main(iconView, "icon", 0, 0, 0, 0) : 0; - uint64_t cache = r_responds_main(iiv, "iconImageCache") - ? r_msg2_main(iiv, "iconImageCache", 0, 0, 0, 0) : 0; - uint64_t appearance = r_responds_main(iiv, "effectiveIconImageAppearance") - ? r_msg2_main(iiv, "effectiveIconImageAppearance", 0, 0, 0, 0) : 0; - if (r_is_objc_ptr(cache) && r_is_objc_ptr(icon) && - r_is_objc_ptr(appearance) && - r_responds_main(cache, "cacheImage:forIcon:imageAppearance:")) { - r_msg2_main(cache, "cacheImage:forIcon:imageAppearance:", - image, icon, appearance, 0); - } - - uint64_t appearanceCls = r_class("SBHIconImageAppearance"); - uint64_t lightAppearance = r_is_objc_ptr(appearanceCls) - ? r_msg2(appearanceCls, "lightAppearance", 0, 0, 0, 0) : 0; - if (r_is_objc_ptr(lightAppearance) && - r_responds_main(iconView, "setOverrideIconImageAppearance:")) { - r_msg2_main(iconView, "setOverrideIconImageAppearance:", - lightAppearance, 0, 0, 0); - } - if (r_responds_main(iiv, "setShowsSquareCorners:")) { - r_msg2_main(iiv, "setShowsSquareCorners:", 1, 0, 0, 0); - } - r_msg2_main(iconView, "setOverrideImage:", image, 0, 0, 0); - - // App launch/resume can leave the SBIconView carrying our - // overrideImage while its inner contents/layer was discarded. - // Force the iOS 26 flat-contents path too, so a cached repaint - // repairs that state even when setOverrideImage: sees the same - // pointer it already had. - uint64_t updateAppearance = r_is_objc_ptr(lightAppearance) - ? lightAppearance : appearance; - if (gThemerInnerCanUpdateContents && r_is_objc_ptr(updateAppearance) && - r_responds_main(iiv, "updateImageContentsWithImage:imageAppearance:animated:")) { - r_msg2_main(iiv, "updateImageContentsWithImage:imageAppearance:animated:", - image, updateAppearance, 0, 0); - } else if (gThemerInnerCanSetDisplayed && - r_responds_main(iiv, "setDisplayedImage:")) { - r_msg2_main(iiv, "setDisplayedImage:", image, 0, 0, 0); - } - - // Also cache for the light appearance specifically, in case - // future layout fetches request that variant (we've flipped the - // override appearance to light, so the cache lookup key likely - // ends up there). - if (r_is_objc_ptr(cache) && r_is_objc_ptr(icon) && - r_is_objc_ptr(lightAppearance) && - r_responds_main(cache, "cacheImage:forIcon:imageAppearance:")) { - r_msg2_main(cache, "cacheImage:forIcon:imageAppearance:", - image, icon, lightAppearance, 0); - } - - // showsSquareCorners=YES exposed the full iconImageView bounds. - // Reapply rounded mask on iiv.layer (~22.5% of width). - uint64_t iivLayer = r_responds_main(iiv, "layer") - ? r_msg2_main(iiv, "layer", 0, 0, 0, 0) : 0; - if (r_is_objc_ptr(iivLayer)) { - struct { double x, y, w, h; } b = {0}; - double radius = 15.0; - if (r_responds_main(iivLayer, "bounds") && - r_msg2_main_struct_ret(iivLayer, "bounds", - &b, sizeof(b), - NULL, 0, NULL, 0, NULL, 0, NULL, 0) && - b.w > 0.0) { - radius = b.w * 0.225; - } - r_msg2_main_raw(iivLayer, "setCornerRadius:", - &radius, sizeof(radius), - NULL, 0, NULL, 0, NULL, 0); - if (r_responds_main(iivLayer, "setMasksToBounds:")) { - r_msg2_main(iivLayer, "setMasksToBounds:", 1, 0, 0, 0); - } - } - - static bool postProbed = false; - if (!postProbed) { - postProbed = true; - bool shouldDisplay = r_responds_main(iiv, "shouldDisplayImageLayer") - ? (r_msg2_main(iiv, "shouldDisplayImageLayer", 0, 0, 0, 0) & 0xff) != 0 - : true; - bool sqCorners = r_responds_main(iiv, "showsSquareCorners") - ? (r_msg2_main(iiv, "showsSquareCorners", 0, 0, 0, 0) & 0xff) != 0 - : false; - uint64_t effApp = r_responds_main(iiv, "effectiveIconImageAppearance") - ? r_msg2_main(iiv, "effectiveIconImageAppearance", 0, 0, 0, 0) : 0; - bool hasGlass = (r_is_objc_ptr(effApp) && r_responds_main(effApp, "hasGlass")) - ? (r_msg2_main(effApp, "hasGlass", 0, 0, 0, 0) & 0xff) != 0 - : true; - uint64_t displayedRead = r_responds_main(iiv, "displayedImage") - ? r_msg2_main(iiv, "displayedImage", 0, 0, 0, 0) : 0; - uint64_t overrideRead = r_responds_main(iconView, "overrideImage") - ? r_msg2_main(iconView, "overrideImage", 0, 0, 0, 0) : 0; - char appCls[96] = {0}; - themer_read_class_name(effApp, appCls, sizeof(appCls)); - printf("[THEMER] post: shouldDisplayImageLayer=%d showsSquareCorners=%d " - "hasGlass=%d effApp=0x%llx (%s) displayed=0x%llx override=0x%llx " - "(want image=0x%llx) lightAppearance=0x%llx\n", - shouldDisplay, sqCorners, hasGlass, - (unsigned long long)effApp, appCls, - (unsigned long long)displayedRead, - (unsigned long long)overrideRead, - (unsigned long long)image, - (unsigned long long)lightAppearance); - } - break; - } - case 2: - r_msg2_main(iconView, "setIconImage:", image, 0, 0, 0); - break; - case 3: - r_msg2_main(iconView, "_setIconImage:", image, 0, 0, 0); - break; - case 4: { - uint64_t iiv = r_ivar_value(iconView, "_iconImageView"); - if (!r_is_objc_ptr(iiv)) { - iiv = r_msg2_main(iconView, "_iconImageView", 0, 0, 0, 0); - } - if (!r_is_objc_ptr(iiv)) return 0; - r_msg2_main(iiv, "setImage:", image, 0, 0, 0); - break; - } - default: - return 0; - } - - return rung; -} - -static int themer_iter_iconviews(uint64_t listView, - NSDictionary *dataByBundle, - uint64_t iconViewCls, - int *rungHits, - int *misses) -{ - if (!r_is_objc_ptr(listView) || !r_is_objc_ptr(iconViewCls)) return 0; - - // BFS the list view so we pick up SBIconViews regardless of how iOS 26 - // wraps them (AMUIInfographIconListLayout adds intermediate containers). - enum { IV_CAP = 64 }; - uint64_t ivs[IV_CAP]; - int n = sb_collect_views(listView, iconViewCls, ivs, IV_CAP); - - if (n == 0) { - if (gThemerLogBudget > 0) { - uint64_t subs = r_msg2(listView, "subviews", 0, 0, 0, 0); - uint64_t sc = r_is_objc_ptr(subs) ? r_msg2(subs, "count", 0, 0, 0, 0) : 0; - char lvCls[96]; - themer_read_class_name(listView, lvCls, sizeof(lvCls)); - printf("[THEMER] listView=0x%llx class=%s no iconViews; direct subviews=%llu\n", - (unsigned long long)listView, lvCls, (unsigned long long)sc); - uint64_t cap = sc > 6 ? 6 : sc; - for (uint64_t i = 0; i < cap; i++) { - uint64_t child = r_msg2(subs, "objectAtIndex:", i, 0, 0, 0); - char cls[96] = {0}; - themer_read_class_name(child, cls, sizeof(cls)); - printf("[THEMER] subview[%llu]=0x%llx class=%s\n", - (unsigned long long)i, (unsigned long long)child, cls); - } - gThemerLogBudget--; - } - return 0; - } - - if (gThemerLogBudget > 0) { - printf("[THEMER] listView=0x%llx iconViews=%d (BFS)\n", - (unsigned long long)listView, n); - gThemerLogBudget--; - } - - int applied = 0; - for (int i = 0; i < n; i++) { - uint64_t v = ivs[i]; - if (!r_is_objc_ptr(v)) continue; - - char bundle[128] = {0}; - if (!themer_read_bundle_for_iconview(v, bundle, sizeof(bundle))) { - themer_clear_dynamic_overlay(v); - themer_clear_visible_override(v); - if (gThemerLogBudget > 0) { - char ivCls[96] = {0}; - themer_read_class_name(v, ivCls, sizeof(ivCls)); - printf("[THEMER] bundle read failed iconView=0x%llx class=%s\n", - (unsigned long long)v, ivCls); - gThemerLogBudget--; - } - continue; - } - - // Debug: skip everything except the focus bundle so the log is - // small enough to reason about. - if (kThemerFocusBundle && kThemerFocusBundle[0] && - strcmp(bundle, kThemerFocusBundle) != 0) { - continue; - } - - bool dynamicOverlay = themer_should_pin_dynamic_overlay(bundle, v); - if (!dynamicOverlay) themer_clear_visible_override(v); - - uint64_t image = themer_lookup_cached(bundle); - if (!image) { - NSString *key = [NSString stringWithUTF8String:bundle]; - NSData *pngBytes = key ? dataByBundle[key] : nil; - if (!pngBytes) { - themer_clear_dynamic_overlay(v); - themer_clear_visible_override(v); - if (misses) (*misses)++; - if (gThemerLogBudget > 0) { - printf("[THEMER] miss bundle=%s (no override in theme)\n", bundle); - gThemerLogBudget--; - } - continue; - } - NSData *uploadBytes = themer_rounded_png_data(pngBytes, bundle); - image = themer_build_remote_uiimage_from_data(uploadBytes ?: pngBytes, bundle); - if (!image) { - themer_clear_dynamic_overlay(v); - themer_clear_visible_override(v); - if (misses) (*misses)++; - continue; - } - themer_cache_image(bundle, image); - if (gThemerLogBudget > 0) { - printf("[THEMER] built bundle=%s image=0x%llx\n", - bundle, (unsigned long long)image); - gThemerLogBudget--; - } - } - if (!dynamicOverlay) { - themer_clear_dynamic_overlay(v); - if (!themer_needs_visible_push(bundle)) { - applied++; - continue; - } - } - - // Most icons persist through the model/cache pass. Dynamic/special - // icons keep a pinned overlay because their mounted image views can - // redraw from private live renderers. - bool viewLevelOverlay = themer_prefers_view_level_overlay(bundle); - (void)viewLevelOverlay; - int rung = 0; - if (dynamicOverlay && themer_pin_dynamic_overlay(v, image, bundle)) { - rung = 1; - } else if (!dynamicOverlay && themer_needs_visible_push(bundle)) { - rung = themer_push_image(v, image); - } - - ThemerEntry *entry = themer_lookup_entry(bundle); - if (entry && !entry->iconServicesSeeded) { - double iconWidth = themer_icon_width_for_view(v); - entry->iconServicesSeeded = - themer_seed_iconservices_cache(bundle, image, iconWidth) > 0; - } - if (rung > 0) { - applied++; - if (rungHits && rung >= 1 && rung <= 4) rungHits[rung - 1]++; - if (kThemerDetailedIconLogs) { - uint64_t superv = r_responds_main(v, "superview") - ? r_msg2_main(v, "superview", 0, 0, 0, 0) : 0; - char supCls[96] = {0}; - themer_read_class_name(superv, supCls, sizeof(supCls)); - double alpha = 1.0; - if (r_responds_main(v, "alpha")) { - r_msg2_main_struct_ret(v, "alpha", &alpha, sizeof(alpha), - NULL, 0, NULL, 0, NULL, 0, NULL, 0); - } - bool hidden = r_responds_main(v, "isHidden") - ? (r_msg2_main(v, "isHidden", 0, 0, 0, 0) & 0xff) != 0 - : false; - bool wasBorrowed = r_responds_main(v, "isIconImageViewBorrowed") - ? (r_msg2_main(v, "isIconImageViewBorrowed", 0, 0, 0, 0) & 0xff) != 0 - : false; - printf("[THEMER] %s superview=%s borrowed=%d alpha=%.2f hidden=%d\n", - bundle, supCls, wasBorrowed, alpha, hidden); - } - } else { - if (misses) (*misses)++; - if (gThemerLogBudget > 0) { - printf("[THEMER] no rung stuck bundle=%s iconView=0x%llx\n", - bundle, (unsigned long long)v); - gThemerLogBudget--; - } - } - } - return applied; -} - -static int themer_repaint_cached_iconviews(uint64_t listView, - uint64_t iconViewCls, - int *rungHits, - int *misses, - int *skips, - bool force) -{ - if (!r_is_objc_ptr(listView) || !r_is_objc_ptr(iconViewCls)) return 0; - - enum { IV_CAP = 64 }; - uint64_t ivs[IV_CAP]; - int n = sb_collect_views(listView, iconViewCls, ivs, IV_CAP); - int applied = 0; - - for (int i = 0; i < n; i++) { - uint64_t v = ivs[i]; - if (!r_is_objc_ptr(v)) continue; - - char bundle[128] = {0}; - if (!themer_read_bundle_for_iconview(v, bundle, sizeof(bundle))) { - themer_clear_dynamic_overlay(v); - themer_clear_visible_override(v); - if (misses) (*misses)++; - continue; - } - - uint64_t image = themer_lookup_cached(bundle); - if (!r_is_objc_ptr(image)) { - themer_clear_dynamic_overlay(v); - themer_clear_visible_override(v); - if (misses) (*misses)++; - continue; - } - - uint64_t overrideRead = r_responds_main(v, "overrideImage") - ? r_msg2_main(v, "overrideImage", 0, 0, 0, 0) : 0; - uint64_t iiv = r_ivar_value(v, "_iconImageView"); - if (!r_is_objc_ptr(iiv) && r_responds_main(v, "_iconImageView")) { - iiv = r_msg2_main(v, "_iconImageView", 0, 0, 0, 0); - } - uint64_t displayedRead = (r_is_objc_ptr(iiv) && - r_responds_main(iiv, "displayedImage")) - ? r_msg2_main(iiv, "displayedImage", 0, 0, 0, 0) : 0; - bool dynamicOverlay = themer_should_pin_dynamic_overlay(bundle, v); - if (!dynamicOverlay) themer_clear_visible_override(v); - if (!force && !dynamicOverlay && - overrideRead == image && displayedRead == image) { - themer_clear_dynamic_overlay(v); - if (skips) (*skips)++; - continue; - } - if (!dynamicOverlay) { - themer_clear_dynamic_overlay(v); - if (!themer_needs_visible_push(bundle)) { - if (skips) (*skips)++; - continue; - } - } - - int rung = 0; - if (dynamicOverlay && themer_pin_dynamic_overlay(v, image, bundle)) { - rung = 1; - } else if (!dynamicOverlay && themer_needs_visible_push(bundle)) { - rung = themer_push_image(v, image); - } - if (rung > 0) { - applied++; - if (rungHits && rung >= 1 && rung <= 4) rungHits[rung - 1]++; - } else if (misses) { - (*misses)++; - } - } - - return applied; -} - -static int themer_repaint_dynamic_iconviews(uint64_t listView, - uint64_t iconViewCls, - int *rungHits, - int *misses) -{ - if (!r_is_objc_ptr(listView) || !r_is_objc_ptr(iconViewCls)) return 0; - - enum { IV_CAP = 64 }; - uint64_t ivs[IV_CAP]; - int n = sb_collect_views(listView, iconViewCls, ivs, IV_CAP); - int applied = 0; - - for (int i = 0; i < n; i++) { - uint64_t v = ivs[i]; - if (!r_is_objc_ptr(v)) continue; - - char bundle[128] = {0}; - if (!themer_read_bundle_for_iconview(v, bundle, sizeof(bundle))) { - if (misses) (*misses)++; - continue; - } - if (!themer_should_pin_dynamic_overlay(bundle, v)) continue; - - uint64_t image = themer_lookup_cached(bundle); - if (!r_is_objc_ptr(image)) { - if (misses) (*misses)++; - continue; - } - - int rung = themer_pin_dynamic_overlay(v, image, bundle) ? 1 : 0; - if (rung > 0) { - applied++; - if (rungHits) rungHits[0]++; - } else if (misses) { - (*misses)++; - } - } - - return applied; -} - -static void themer_add_unique(uint64_t *items, int *count, int cap, uint64_t item) -{ - if (!r_is_objc_ptr(item) || !items || !count || *count >= cap) return; - for (int i = 0; i < *count; i++) { - if (items[i] == item) return; - } - items[(*count)++] = item; -} - -static int themer_collect_model_lookup_roots(uint64_t *roots, int cap) -{ - if (!roots || cap <= 0) return 0; - int count = 0; - - uint64_t controllerCls = r_class("SBIconController"); - uint64_t controller = (r_is_objc_ptr(controllerCls) && - r_responds(controllerCls, "sharedInstance")) - ? r_msg2(controllerCls, "sharedInstance", 0, 0, 0, 0) : 0; - themer_add_unique(roots, &count, cap, controller); - - uint64_t managerCls = r_class("SBHIconManager"); - uint64_t manager = (r_is_objc_ptr(managerCls) && - r_responds(managerCls, "sharedInstance")) - ? r_msg2(managerCls, "sharedInstance", 0, 0, 0, 0) : 0; - themer_add_unique(roots, &count, cap, manager); - - const char *childSels[] = { - "model", - "iconModel", - "_iconModel", - "rootFolder", - "rootFolderController", - "rootFolderViewController", - }; - int initial = count; - for (int i = 0; i < initial && count < cap; i++) { - uint64_t root = roots[i]; - for (size_t s = 0; s < sizeof(childSels) / sizeof(childSels[0]) && count < cap; s++) { - if (!r_responds_main(root, childSels[s])) continue; - uint64_t child = r_msg2_main(root, childSels[s], 0, 0, 0, 0); - themer_add_unique(roots, &count, cap, child); - } - } - - return count; -} - -static uint64_t themer_lookup_model_icon_for_bundle(const char *bundle) -{ - if (!bundle || !bundle[0]) return 0; - - uint64_t bid = r_nsstr_retained(bundle); - if (!r_is_objc_ptr(bid)) return 0; - - enum { ROOT_CAP = 24 }; - uint64_t roots[ROOT_CAP] = {0}; - int rootCount = themer_collect_model_lookup_roots(roots, ROOT_CAP); - - const char *lookupSels[] = { - "applicationIconForBundleIdentifier:", - "applicationIconForDisplayIdentifier:", - "expectedIconForDisplayIdentifier:", - "iconForApplicationIdentifier:", - "iconForIdentifier:", - "leafIconForIdentifier:", - "_leafIconForIdentifier:", - "iconWithIdentifier:", - }; - - static bool loggedShape = false; - uint64_t found = 0; - const char *foundSel = NULL; - uint64_t foundRoot = 0; - static int mismatchLogs = 0; - for (int r = 0; r < rootCount && !found; r++) { - uint64_t root = roots[r]; - for (size_t s = 0; s < sizeof(lookupSels) / sizeof(lookupSels[0]); s++) { - const char *sel = lookupSels[s]; - if (!r_responds_main(root, sel)) continue; - uint64_t icon = r_msg2_main(root, sel, bid, 0, 0, 0); - if (!r_is_objc_ptr(icon)) continue; - - char actual[128] = {0}; - if (!themer_read_bundle_for_icon(icon, 0, actual, sizeof(actual)) || - strcmp(actual, bundle) != 0) { - if (mismatchLogs < 8) { - printf("[THEMER] model lookup rejected requested=%s actual=%s " - "root=0x%llx selector=%s icon=0x%llx\n", - bundle, - actual[0] ? actual : "?", - (unsigned long long)root, - sel, - (unsigned long long)icon); - mismatchLogs++; - } - continue; - } - - found = icon; - foundSel = sel; - foundRoot = root; - break; - } - } - r_msg2(bid, "release", 0, 0, 0, 0); - - if (!loggedShape) { - loggedShape = true; - printf("[THEMER] model lookup probe roots=%d firstBundle=%s root=0x%llx " - "selector=%s icon=0x%llx\n", - rootCount, - bundle, - (unsigned long long)foundRoot, - foundSel ?: "(none)", - (unsigned long long)found); - } - - if (r_is_objc_ptr(found)) { - themer_cache_icon_bundle(found, bundle); - } - - return found; -} - -static int themer_graft_icon_models_for_theme(NSDictionary *dataByBundle, - int *misses) -{ - int grafted = 0; - int modelMisses = 0; - for (NSString *key in dataByBundle) { - if (![key isKindOfClass:NSString.class] || key.length == 0) continue; - const char *bundle = key.UTF8String; - if (!bundle || !bundle[0]) continue; - - if (kThemerFocusBundle && kThemerFocusBundle[0] && - strcmp(bundle, kThemerFocusBundle) != 0) { - continue; - } - - NSData *pngBytes = dataByBundle[key]; - if (![pngBytes isKindOfClass:NSData.class] || pngBytes.length == 0) continue; - - uint64_t image = themer_lookup_cached(bundle); - if (!image) { - NSData *uploadBytes = themer_rounded_png_data(pngBytes, bundle); - image = themer_build_remote_uiimage_from_data(uploadBytes ?: pngBytes, bundle); - if (!image) { - modelMisses++; - continue; - } - themer_cache_image(bundle, image); - } - - uint64_t icon = themer_lookup_model_icon_for_bundle(bundle); - if (!r_is_objc_ptr(icon)) { - modelMisses++; - continue; - } - - ThemerEntry *entry = themer_lookup_entry(bundle); - if (entry && !entry->iconServicesSeeded) { - entry->iconServicesSeeded = - themer_seed_iconservices_cache(bundle, image, 60.0) > 0; - } - - bool changed = false; - if (entry && themer_graft_icon_model(icon, image, entry, 0, &changed)) { - (void)themer_notify_icon_image_changed(icon); - grafted++; - } else { - modelMisses++; - } - } - - if (misses) *misses += modelMisses; - printf("[THEMER] model pass grafted=%d misses=%d cache=%d\n", - grafted, modelMisses, gThemerCacheCount); - return grafted; -} - -static bool themer_repaint_cached_views_internal(bool force) -{ - if (gThemerCacheCount <= 0) { - printf("[THEMER] cached repaint skipped; cache empty\n"); - return false; - } - - uint64_t startUS = themer_now_us(); - uint32_t prevSettle = r_settle_us(kThemerApplySettleUS); - - uint64_t listViewCls = r_class("SBIconListView"); - uint64_t iconViewCls = r_class("SBIconView"); - if (!r_is_objc_ptr(listViewCls) || !r_is_objc_ptr(iconViewCls)) { - r_settle_us(prevSettle); - return false; - } - - enum { LV_CAP = 64 }; - uint64_t lvs[LV_CAP]; - int nlv = sb_collect_views_in_windows(listViewCls, lvs, LV_CAP); - if (nlv == 0) { - r_settle_us(prevSettle); - printf("[THEMER] cached repaint: no visible SBIconListView\n"); - return false; - } - - int rungHits[4] = {0}; - int misses = 0; - int skips = 0; - int applied = 0; - for (int i = 0; i < nlv; i++) { - applied += themer_repaint_cached_iconviews(lvs[i], iconViewCls, - rungHits, &misses, &skips, - force); - } - - r_settle_us(prevSettle); - uint64_t elapsedUS = themer_now_us() - startUS; - printf("[THEMER] cached repaint%s lists=%d applied=%d skipped=%d misses=%d rungs={1:%d,2:%d,3:%d,4:%d} cache=%d elapsed=%llums\n", - force ? " force" : "", - nlv, applied, skips, misses, - rungHits[0], rungHits[1], rungHits[2], rungHits[3], - gThemerCacheCount, - (unsigned long long)(elapsedUS / 1000ULL)); - return applied > 0 || skips > 0 || nlv > 0; -} - -bool themer_repaint_cached_views_in_session(void) -{ - return themer_repaint_cached_views_internal(false); -} - -bool themer_force_repaint_cached_views_in_session(void) -{ - return themer_repaint_cached_views_internal(true); -} - -bool themer_repaint_dynamic_cached_views_in_session(void) -{ - if (gThemerCacheCount <= 0) { - printf("[THEMER] dynamic repaint skipped; cache empty\n"); - return false; - } - - uint64_t startUS = themer_now_us(); - uint32_t prevSettle = r_settle_us(kThemerApplySettleUS); - - uint64_t listViewCls = r_class("SBIconListView"); - uint64_t iconViewCls = r_class("SBIconView"); - if (!r_is_objc_ptr(listViewCls) || !r_is_objc_ptr(iconViewCls)) { - r_settle_us(prevSettle); - return false; - } - - enum { LV_CAP = 64 }; - uint64_t lvs[LV_CAP]; - int nlv = sb_collect_views_in_windows(listViewCls, lvs, LV_CAP); - if (nlv == 0) { - r_settle_us(prevSettle); - printf("[THEMER] dynamic repaint: no visible SBIconListView\n"); - return false; - } - - int rungHits[4] = {0}; - int misses = 0; - int applied = 0; - for (int i = 0; i < nlv; i++) { - applied += themer_repaint_dynamic_iconviews(lvs[i], iconViewCls, - rungHits, &misses); - } - - uint64_t elapsed = (themer_now_us() - startUS) / 1000ULL; - r_settle_us(prevSettle); - printf("[THEMER] dynamic repaint lists=%d applied=%d misses=%d " - "rungs={1:%d,2:%d,3:%d,4:%d} cache=%d elapsed=%llums\n", - nlv, applied, misses, - rungHits[0], rungHits[1], rungHits[2], rungHits[3], - gThemerCacheCount, - (unsigned long long)elapsed); - return applied > 0; -} - -static NSSet *themer_collect_visible_bundles(void) -{ - uint64_t listViewCls = r_class("SBIconListView"); - uint64_t iconViewCls = r_class("SBIconView"); - if (!r_is_objc_ptr(listViewCls) || !r_is_objc_ptr(iconViewCls)) return [NSSet set]; - - enum { LV_CAP = 64 }; - uint64_t lvs[LV_CAP]; - int nlv = sb_collect_views_in_windows(listViewCls, lvs, LV_CAP); - if (nlv == 0) return [NSSet set]; - - NSMutableSet *bundles = [NSMutableSet set]; - for (int i = 0; i < nlv; i++) { - enum { IV_CAP = 64 }; - uint64_t ivs[IV_CAP]; - int n = sb_collect_views(lvs[i], iconViewCls, ivs, IV_CAP); - for (int j = 0; j < n; j++) { - char bundle[128] = {0}; - if (themer_read_bundle_for_iconview(ivs[j], bundle, sizeof(bundle)) && bundle[0]) { - [bundles addObject:@(bundle)]; - } - } - } - return bundles; -} - -bool themer_apply_data_in_session(NSDictionary *imageDataByBundle) -{ - if (imageDataByBundle.count == 0) { - printf("[THEMER] apply data: empty dictionary\n"); - return false; - } - imageDataByBundle = themer_normalized_theme_data(imageDataByBundle); - printf("[THEMER] apply data entries=%lu cacheCarried=%d\n", - (unsigned long)imageDataByBundle.count, gThemerCacheCount); - if (!gThemerVisiblePolicyLogged) { - gThemerVisiblePolicyLogged = true; - printf("[THEMER] visible push policy iosMajor=%d legacyVisible=%d\n", - themer_host_ios_major(), - themer_needs_visible_push(NULL)); - } - - // Drop the per-msgSend settle for the duration of the apply. The stable - // RemoteCall trampoline already serializes the calls; sleeping before every - // ObjC send just makes the initial icon flip visibly lag. - uint64_t startUS = themer_now_us(); - uint32_t prevSettle = r_settle_us(kThemerApplySettleUS); - themer_reset_icon_bundle_cache(); - - uint64_t listViewCls = r_class("SBIconListView"); - uint64_t iconViewCls = r_class("SBIconView"); - if (!r_is_objc_ptr(listViewCls) || !r_is_objc_ptr(iconViewCls)) { - printf("[THEMER] missing class SBIconListView=0x%llx SBIconView=0x%llx\n", - (unsigned long long)listViewCls, - (unsigned long long)iconViewCls); - r_settle_us(prevSettle); - return false; - } - - enum { LV_CAP = 64 }; - uint64_t lvs[LV_CAP]; - int nlv = sb_collect_views_in_windows(listViewCls, lvs, LV_CAP); - if (nlv == 0) { - printf("[THEMER] no SBIconListView visible (home screen not active?)\n"); - r_settle_us(prevSettle); - return false; - } - - int rungHits[4] = {0}; - int misses = 0; - int modelGrafted = themer_graft_icon_models_for_theme(imageDataByBundle, - &misses); - int applied = 0; - for (int i = 0; i < nlv; i++) { - applied += themer_iter_iconviews(lvs[i], imageDataByBundle, iconViewCls, - rungHits, &misses); - } - - r_settle_us(prevSettle); - uint64_t elapsedUS = themer_now_us() - startUS; - printf("[THEMER] done lists=%d model=%d applied=%d misses=%d rungs={1:%d,2:%d,3:%d,4:%d} cache=%d elapsed=%llums settle=%uus\n", - nlv, modelGrafted, applied, misses, - rungHits[0], rungHits[1], rungHits[2], rungHits[3], - gThemerCacheCount, - (unsigned long long)(elapsedUS / 1000ULL), - kThemerApplySettleUS); - return applied > 0; -} - -bool themer_apply_in_session(const char *themePath) -{ - if (!themePath || !themePath[0]) { - printf("[THEMER] apply: nil path\n"); - return false; - } - - NSString *themeDir = @(themePath); - NSFileManager *fm = [NSFileManager defaultManager]; - BOOL isDir = NO; - if (![fm fileExistsAtPath:themeDir isDirectory:&isDir] || !isDir) { - printf("[THEMER] apply: missing dir %s\n", themePath); - return false; - } - - NSArray *files = [fm contentsOfDirectoryAtPath:themeDir error:NULL]; - NSMutableDictionary *pathByBundle = [NSMutableDictionary dictionary]; - NSMutableSet *explicitFileBundles = [NSMutableSet set]; - NSMutableSet *appleSystemBundles = [NSMutableSet set]; - NSMutableSet *aliasTargetBundles = [NSMutableSet set]; - NSUInteger availableCount = 0; - NSUInteger aliasKeyCount = 0; - for (NSString *f in files) { - if (![f.pathExtension.lowercaseString isEqualToString:@"png"]) continue; - availableCount++; - NSString *bundle = f.stringByDeletingPathExtension; - NSString *path = [themeDir stringByAppendingPathComponent:f]; - pathByBundle[bundle] = path; - if (bundle.length > 0) [explicitFileBundles addObject:bundle]; - if ([bundle.lowercaseString hasPrefix:@"com.apple."]) { - [appleSystemBundles addObject:bundle]; - } - NSString *lower = bundle.lowercaseString; - if (lower.length > 0 && !pathByBundle[lower]) { - pathByBundle[lower] = path; - } - if ([lower isEqualToString:@"com.autonavi.minimap"] && !pathByBundle[@"com.autonavi.amap"]) { - pathByBundle[@"com.autonavi.amap"] = path; - [aliasTargetBundles addObject:@"com.autonavi.amap"]; - } - BOOL usedAlias = NO; - NSArray *mappedTargets = CNDMappedIOSBundleIDsForIconName(f, &usedAlias); - for (NSString *mapped in mappedTargets) { - if (mapped.length == 0) continue; - if ([mapped.lowercaseString hasPrefix:@"com.apple."]) { - [appleSystemBundles addObject:mapped]; - } - if (!pathByBundle[mapped]) { - pathByBundle[mapped] = path; - if (usedAlias) aliasKeyCount++; - } - if (usedAlias) { - [aliasTargetBundles addObject:mapped]; - } - NSString *mappedLower = mapped.lowercaseString; - if (mappedLower.length > 0 && !pathByBundle[mappedLower]) { - pathByBundle[mappedLower] = path; - } - } - } - printf("[THEMER] apply path=%s available=%lu aliasKeys=%lu\n", - themePath, (unsigned long)availableCount, (unsigned long)aliasKeyCount); - if (availableCount == 0) return false; - - NSSet *visible = themer_collect_visible_bundles(); - printf("[THEMER] visible bundles count=%lu list=%s\n", - (unsigned long)visible.count, - themer_join_strings_for_log(visible, 160).UTF8String); - printf("[THEMER] explicit file bundles count=%lu list=%s\n", - (unsigned long)explicitFileBundles.count, - themer_join_strings_for_log(explicitFileBundles, 200).UTF8String); - printf("[THEMER] apple-system bundles count=%lu list=%s\n", - (unsigned long)appleSystemBundles.count, - themer_join_strings_for_log(appleSystemBundles, 200).UTF8String); - printf("[THEMER] alias-target bundles count=%lu list=%s\n", - (unsigned long)aliasTargetBundles.count, - themer_join_strings_for_log(aliasTargetBundles, 240).UTF8String); - NSMutableSet *targetBundles = [visible mutableCopy]; - NSUInteger explicitAdded = 0; - NSUInteger priorityAdded = 0; - NSUInteger appleAdded = 0; - NSUInteger aliasAdded = 0; - for (NSString *bid in explicitFileBundles) { - if (![bid isKindOfClass:NSString.class] || bid.length == 0) continue; - if ([targetBundles containsObject:bid]) continue; - if (themer_theme_path_for_bundle(pathByBundle, bid)) { - [targetBundles addObject:bid]; - explicitAdded++; - } - } - for (NSString *bid in appleSystemBundles) { - if (![bid isKindOfClass:NSString.class] || bid.length == 0) continue; - if ([targetBundles containsObject:bid]) continue; - if (themer_theme_path_for_bundle(pathByBundle, bid)) { - [targetBundles addObject:bid]; - appleAdded++; - } - } - for (NSString *bid in aliasTargetBundles) { - if (![bid isKindOfClass:NSString.class] || bid.length == 0) continue; - if ([targetBundles containsObject:bid]) continue; - if (themer_theme_path_for_bundle(pathByBundle, bid)) { - [targetBundles addObject:bid]; - aliasAdded++; - } - } - for (NSString *bid in themer_priority_theme_bundles()) { - if (![bid isKindOfClass:NSString.class] || bid.length == 0) continue; - if ([targetBundles containsObject:bid]) continue; - if (themer_theme_path_for_bundle(pathByBundle, bid)) { - [targetBundles addObject:bid]; - priorityAdded++; - } - } - printf("[THEMER] target bundles count=%lu list=%s\n", - (unsigned long)targetBundles.count, - themer_join_strings_for_log(targetBundles, 240).UTF8String); - NSMutableDictionary *dict = [NSMutableDictionary dictionary]; - NSMutableArray *matchedBundles = [NSMutableArray array]; - NSUInteger caseFallbacks = 0; - for (NSString *bid in targetBundles) { - NSString *path = themer_theme_path_for_bundle(pathByBundle, bid); - if (path && !pathByBundle[bid]) { - caseFallbacks++; - } - if (!path) continue; - NSData *bytes = [NSData dataWithContentsOfFile:path]; - if (bytes.length) { - dict[bid] = bytes; - [matchedBundles addObject:bid]; - } - } - printf("[THEMER] matched bundles count=%lu list=%s\n", - (unsigned long)matchedBundles.count, - themer_join_strings_for_log(matchedBundles, 240).UTF8String); - printf("[THEMER] apply loaded=%lu matched of %lu target (%lu visible + %lu explicit + %lu apple + %lu alias + %lu priority), %lu available caseFallbacks=%lu\n", - (unsigned long)dict.count, - (unsigned long)targetBundles.count, - (unsigned long)visible.count, - (unsigned long)explicitAdded, - (unsigned long)appleAdded, - (unsigned long)aliasAdded, - (unsigned long)priorityAdded, - (unsigned long)availableCount, - (unsigned long)caseFallbacks); - return themer_apply_data_in_session(dict); -} - -bool themer_stop_in_session(void) -{ - int released = 0; - for (int i = 0; i < gThemerCacheCount; i++) { - if (r_is_objc_ptr(gThemerCache[i].image)) { - r_msg2(gThemerCache[i].image, "release", 0, 0, 0, 0); - released++; - } - if (r_is_objc_ptr(gThemerCache[i].dataSource)) { - r_msg2(gThemerCache[i].dataSource, "release", 0, 0, 0, 0); - released++; - } - gThemerCache[i].image = 0; - gThemerCache[i].dataSource = 0; - gThemerCache[i].iconServicesSeeded = false; - gThemerCache[i].bundle[0] = '\0'; - } - gThemerCacheCount = 0; - themer_reset_icon_bundle_cache(); - gThemerRung = -1; - gThemerHasUpdateAfter = false; - gThemerHasUpdateImageView = false; - gThemerLogBudget = 48; - gThemerModelProbeLogged = false; - gThemerIconServicesProbeLogged = false; - gThemerVisiblePolicyLogged = false; - printf("[THEMER] stop released=%d\n", released); - return true; -} - -void themer_forget_remote_state(void) -{ - for (int i = 0; i < kThemerMaxCache; i++) { - gThemerCache[i].image = 0; - gThemerCache[i].dataSource = 0; - gThemerCache[i].iconServicesSeeded = false; - gThemerCache[i].bundle[0] = '\0'; - } - gThemerCacheCount = 0; - themer_reset_icon_bundle_cache(); - gThemerRung = -1; - gThemerHasUpdateAfter = false; - gThemerHasUpdateImageView = false; - gThemerLogBudget = 48; - gThemerModelProbeLogged = false; - gThemerIconServicesProbeLogged = false; - gThemerVisiblePolicyLogged = false; -}