소스 검색

Additional changes that were needed as all the electra based fucntions were implemented into the ViewController. Theoretically this should work for either one just as good as each individual app worked before.

Kevin Bradley 8 년 전
부모
커밋
5ddefbcdf2

+ 5 - 1
Meridian/Meridian/helpers/common.h

@@ -2,7 +2,11 @@
 #define COMMON_H
 
 #include <stdint.h>             // uint*_t
-#include <Foundation/Foundation.h>
+#ifdef __OBJC__
+
+    #include <Foundation/Foundation.h>
+
+#endif
 
 #define LOG(str, args...) do { NSLog(@str "\n", ##args); } while(0)
 

+ 24 - 18
Meridian/Meridian/helpers/helpers.m

@@ -330,15 +330,18 @@ int extract_tar(const char *file_path) {
         return -1;
     }
 
-//    return execprog("/meridian/tar", (const char **)&(const char*[]) {
-//        "/meridian/tar",
-//        "--preserve-permissions",
-//        "-C",
-//        "/",
-//        "-xvf",
-//        file_path,
-//        NULL
-//    });
+    return execprog("/meridian/tar", (const char **)&(const char*[]) {
+        "/meridian/tar",
+        "--preserve-permissions",
+        "--no-overwrite-dir",
+        "-keep-newer-files",
+        "--no-xattrs",
+        "-C",
+        "/",
+        "-xvf",
+        file_path,
+        NULL
+    });
     
     return execprog("/meridian/tar", (const char **)&(const char*[]) {
         "/meridian/tar",
@@ -362,20 +365,23 @@ int extract_bundle_tar(const char *bundle_name) {
         return -1;
     }
     
-//    return execprog("/meridian/tar", (const char **)&(const char*[]) {
-//        "/meridian/tar",
-//        "--preserve-permissions",
-//        "-C",
-//        "/",
-//        "-xvf",
-//        file_path,
-//        NULL
-//    });
+    return execprog("/meridian/tar", (const char **)&(const char*[]) {
+        "/meridian/tar",
+        "--preserve-permissions",
+        "--no-overwrite-dir",
+        "-keep-newer-files",
+        "-C",
+        "/",
+        "-xvf",
+        file_path,
+        NULL
+    });
     
     return execprog("/meridian/tar", (const char **)&(const char*[]) {
         "/meridian/tar",
         "--preserve-permissions",
         "--no-overwrite-dir",
+        "--no-xattrs",
         "-C",
         "/",
         "-xvf",

+ 2 - 2
Meridian/Meridian/jailbreak.h

@@ -17,13 +17,13 @@ int patchContainermanagerd(void);
 int remountRootFs(void);
 int extractMeridianData(void);
 void setUpSymLinks(void);
-void extractGz(const char *from, const char *to);
+void extractGz_merd(const char *from, const char *to);
 int extractBootstrap(int *exitCode);
 int defecateAmfi(void);
 int launchDropbear(void);
 void setUpSubstitute(void);
 int startJailbreakd(void);
-int start_jailbreakd(void); //electra version
+int start_jailbreakd_e(void); //electra version
 int loadLaunchDaemons(void);
 void enableHiddenApps(void);
 void fixPerms(void);

+ 11 - 10
Meridian/Meridian/jailbreak.m

@@ -85,19 +85,20 @@ int makeShitHappen(ViewController *view) {
         [fileMgr removeItemAtPath:@"/meridian" error:nil];
     }
     
-    
-    if (file_exists("/meridian/.bootstrap") == 0) {
+    if (file_exists("/Library/LaunchDaemons/._dropbear.plist") == 0) {
         
-        unlink("/meridian/.bootstrap");
+        unlink("/Library/LaunchDaemons/._dropbear.plist");
         
     }
-    
-    if (file_exists("/Library/LaunchDaemons/._dropbear.plist") == 0) {
+    /*
+    if (file_exists("/meridian/.bootstrap") == 0) {
         
-        unlink("/Library/LaunchDaemons/._dropbear.plist");
+        unlink("/meridian/.bootstrap");
         
     }
     
+   
+    
     //take these out later, just so i can update the plists as i tweak the payload
     
     if (file_exists("/Library/LaunchDaemons/com.openssh.sshd.plist") == 0) {
@@ -112,7 +113,7 @@ int makeShitHappen(ViewController *view) {
         
     }
     
-    
+    */
     
     
 //    if (file_exists("/usr/lib/TweakInject.dylib") == 0) {
@@ -493,7 +494,7 @@ void setUpSymLinks() {
     symlink("/usr/lib/tweaks", "/Library/MobileSubstrate/DynamicLibraries");
 }
 
-void extractGz(const char *from, const char *to) {
+void extractGz_merd(const char *from, const char *to) {
     NSData *gz = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@(from) ofType:@"gz"]];
     NSData *extracted = [gz gunzippedData];
     [extracted writeToFile:@(to) atomically:YES];
@@ -505,7 +506,7 @@ int extractBootstrap(int *exitCode) {
     
     unlink("/meridian/bootstrap.tar");
     
-    extractGz("bootstrap.tar", "/meridian/bootstrap.tar");
+    extractGz_merd("bootstrap.tar", "/meridian/bootstrap.tar");
     
     rv = extract_tar("/meridian/bootstrap.tar");
     if (rv != 0) {
@@ -659,7 +660,7 @@ void setUpSubstitute() {
     symlink("/usr/lib/libsubstrate.dylib", "/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate");
 }
 
-int start_jailbreakd() {
+int start_jailbreakd_e() {
     unlink("/var/tmp/jailbreakd.pid");
     unlink("/var/run/jailbreakd.pid");
     unlink("/var/log/jailbreakd-stderr.log");

+ 17 - 0
Meridian/Meridian/patchfinders/patchfinder64.h

@@ -31,7 +31,24 @@ uint64_t find_sysbootnonce(void);
 uint64_t find_trustcache(void);
 uint64_t find_amficache(void);
 
+uint64_t find_trustcache_electra(void);
+uint64_t find_amficache_electra(void);
+
+int init_kernel(uint64_t base, const char *filename);
+
 uint64_t find_allproc(void);
 uint64_t find_boot_args(unsigned* cmdline_offset);
 
+//electra stuffs
+
+uint64_t find_add_x0_x0_0x40_ret(void);
+uint64_t find_allproc_electra(void);
+uint64_t find_copyout_electra(void);
+uint64_t find_bzero_electra(void);
+uint64_t find_bcopy_electra(void);
+uint64_t find_trustcache_electra(void);
+uint64_t find_amficache_electra(void);
+uint64_t find_rootvnode(void);
+uint64_t find_zone_map_ref(void);
+
 #endif

+ 11 - 0
Meridian/Meridian/views/ViewController.h

@@ -14,6 +14,17 @@
 - (void)writeText:(NSString *)message;
 - (void)writeTextPlain:(NSString *)message, ...;
 
+//electra
+
++ (instancetype)currentViewController;
+- (void)removingLiberiOS;
+- (void)removingElectraBeta;
+- (void)installingCydia;
+- (void)cydiaDone;
+- (void)displaySnapshotNotice;
+- (void)displaySnapshotWarning;
+
+
 @end
 
 task_t tfp0;

+ 203 - 0
Meridian/meridian.xcodeproj/project.pbxproj

@@ -48,6 +48,32 @@
 		325263D720E0D000003BD42A /* libimg4tool.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B585F42020519DB40049C703 /* libimg4tool.a */; };
 		325263D820E0D002003BD42A /* libplist.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B585F41F20519DB30049C703 /* libplist.a */; };
 		325263D920E0D005003BD42A /* libplist++.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B585F41E20519DB30049C703 /* libplist++.a */; };
+		325A25A220E8953C001D1BAD /* patchfinder64.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A257F20E8952E001D1BAD /* patchfinder64.c */; };
+		325A25A420E8954A001D1BAD /* async_wake.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A256A20E8952E001D1BAD /* async_wake.c */; };
+		325A25A520E8954A001D1BAD /* early_kalloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A256C20E8952E001D1BAD /* early_kalloc.c */; };
+		325A25A620E8954A001D1BAD /* find_port.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A256E20E8952E001D1BAD /* find_port.c */; };
+		325A25A720E8954A001D1BAD /* kcall.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A257020E8952E001D1BAD /* kcall.c */; };
+		325A25A820E8954A001D1BAD /* kdbg.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A257220E8952E001D1BAD /* kdbg.c */; };
+		325A25A920E8954A001D1BAD /* kmem.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A257420E8952E001D1BAD /* kmem.c */; };
+		325A25AA20E8954A001D1BAD /* symbols.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A257720E8952E001D1BAD /* symbols.c */; };
+		325A25AB20E89556001D1BAD /* bootstrap.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A258220E8952E001D1BAD /* bootstrap.c */; };
+		325A25AC20E89556001D1BAD /* fun.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A258420E8952E001D1BAD /* fun.c */; };
+		325A25AD20E89556001D1BAD /* fun_objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 325A258720E8952E001D1BAD /* fun_objc.m */; };
+		325A25AF20E89556001D1BAD /* remap_tfp_set_hsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A258A20E8952E001D1BAD /* remap_tfp_set_hsp.c */; };
+		325A25B020E89556001D1BAD /* start_jailbreakd.m in Sources */ = {isa = PBXBuildFile; fileRef = 325A258C20E8952E001D1BAD /* start_jailbreakd.m */; };
+		325A25B120E89556001D1BAD /* unlocknvram.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A258D20E8952E001D1BAD /* unlocknvram.c */; };
+		325A25B220E89561001D1BAD /* amfi_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A259020E8952E001D1BAD /* amfi_utils.c */; };
+		325A25B320E89561001D1BAD /* apfs_util.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A259220E8952E001D1BAD /* apfs_util.c */; };
+		325A25B420E89561001D1BAD /* file_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A259420E8952E001D1BAD /* file_utils.c */; };
+		325A25B520E89561001D1BAD /* kutils.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A259620E8952E001D1BAD /* kutils.c */; };
+		325A25B620E89561001D1BAD /* offsetof.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A259820E8952E001D1BAD /* offsetof.c */; };
+		325A25B720E89561001D1BAD /* removeElectraBeta.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A259A20E8952E001D1BAD /* removeElectraBeta.c */; };
+		325A25B820E89561001D1BAD /* topangadetect.m in Sources */ = {isa = PBXBuildFile; fileRef = 325A259D20E8952E001D1BAD /* topangadetect.m */; };
+		325A25B920E89561001D1BAD /* unliberios.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A259E20E8952E001D1BAD /* unliberios.c */; };
+		325A25BA20E89561001D1BAD /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 325A25A020E8952E001D1BAD /* utils.c */; };
+		32E5EAF320E8AE7B00346489 /* ent.plist in Resources */ = {isa = PBXBuildFile; fileRef = 32E5EAF120E8AE7600346489 /* ent.plist */; };
+		32E5EAF420E8AE7D00346489 /* launchctl.gz in Resources */ = {isa = PBXBuildFile; fileRef = 32E5EAF220E8AE7600346489 /* launchctl.gz */; };
+		32E5EAF520E8AE8000346489 /* rm.gz in Resources */ = {isa = PBXBuildFile; fileRef = 32E5EAF020E8AE7600346489 /* rm.gz */; };
 		B50F79571FF2248D000D6015 /* patchfinder64.c in Sources */ = {isa = PBXBuildFile; fileRef = B50F79401FF2248B000D6015 /* patchfinder64.c */; };
 		B50F795C1FF2248D000D6015 /* root-rw.m in Sources */ = {isa = PBXBuildFile; fileRef = B50F79461FF2248B000D6015 /* root-rw.m */; };
 		B50F79601FF2248D000D6015 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B50F794A1FF2248B000D6015 /* AppDelegate.m */; };
@@ -150,6 +176,60 @@
 		325263CC20E0C8FA003BD42A /* liboffsetfinder64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liboffsetfinder64.a; sourceTree = "<group>"; };
 		325263CD20E0C8FA003BD42A /* libplist++.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libplist++.a"; sourceTree = "<group>"; };
 		325263CE20E0C8FA003BD42A /* libplist.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libplist.a; sourceTree = "<group>"; };
+		325A256920E8952E001D1BAD /* arm64_state.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = arm64_state.h; sourceTree = "<group>"; };
+		325A256A20E8952E001D1BAD /* async_wake.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = async_wake.c; sourceTree = "<group>"; };
+		325A256B20E8952E001D1BAD /* async_wake.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = async_wake.h; sourceTree = "<group>"; };
+		325A256C20E8952E001D1BAD /* early_kalloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = early_kalloc.c; sourceTree = "<group>"; };
+		325A256D20E8952E001D1BAD /* early_kalloc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = early_kalloc.h; sourceTree = "<group>"; };
+		325A256E20E8952E001D1BAD /* find_port.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = find_port.c; sourceTree = "<group>"; };
+		325A256F20E8952E001D1BAD /* find_port.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = find_port.h; sourceTree = "<group>"; };
+		325A257020E8952E001D1BAD /* kcall.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = kcall.c; sourceTree = "<group>"; };
+		325A257120E8952E001D1BAD /* kcall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = kcall.h; sourceTree = "<group>"; };
+		325A257220E8952E001D1BAD /* kdbg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = kdbg.c; sourceTree = "<group>"; };
+		325A257320E8952E001D1BAD /* kdbg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = kdbg.h; sourceTree = "<group>"; };
+		325A257420E8952E001D1BAD /* kmem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = kmem.c; sourceTree = "<group>"; };
+		325A257520E8952E001D1BAD /* kmem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = kmem.h; sourceTree = "<group>"; };
+		325A257620E8952E001D1BAD /* README */ = {isa = PBXFileReference; lastKnownFileType = text; path = README; sourceTree = "<group>"; };
+		325A257720E8952E001D1BAD /* symbols.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = symbols.c; sourceTree = "<group>"; };
+		325A257820E8952E001D1BAD /* symbols.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = symbols.h; sourceTree = "<group>"; };
+		325A257A20E8952E001D1BAD /* codesign.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = codesign.h; sourceTree = "<group>"; };
+		325A257B20E8952E001D1BAD /* IOKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IOKit.h; sourceTree = "<group>"; };
+		325A257C20E8952E001D1BAD /* xpc_minimal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xpc_minimal.h; sourceTree = "<group>"; };
+		325A257F20E8952E001D1BAD /* patchfinder64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = patchfinder64.c; sourceTree = "<group>"; };
+		325A258020E8952E001D1BAD /* patchfinder64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = patchfinder64.h; sourceTree = "<group>"; };
+		325A258220E8952E001D1BAD /* bootstrap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bootstrap.c; sourceTree = "<group>"; };
+		325A258320E8952E001D1BAD /* bootstrap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bootstrap.h; sourceTree = "<group>"; };
+		325A258420E8952E001D1BAD /* fun.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fun.c; sourceTree = "<group>"; };
+		325A258520E8952E001D1BAD /* fun.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fun.h; sourceTree = "<group>"; };
+		325A258620E8952E001D1BAD /* fun_objc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fun_objc.h; sourceTree = "<group>"; };
+		325A258720E8952E001D1BAD /* fun_objc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = fun_objc.m; sourceTree = "<group>"; };
+		325A258A20E8952E001D1BAD /* remap_tfp_set_hsp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = remap_tfp_set_hsp.c; sourceTree = "<group>"; };
+		325A258B20E8952E001D1BAD /* remap_tfp_set_hsp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = remap_tfp_set_hsp.h; sourceTree = "<group>"; };
+		325A258C20E8952E001D1BAD /* start_jailbreakd.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = start_jailbreakd.m; sourceTree = "<group>"; };
+		325A258D20E8952E001D1BAD /* unlocknvram.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unlocknvram.c; sourceTree = "<group>"; };
+		325A258E20E8952E001D1BAD /* unlocknvram.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = unlocknvram.h; sourceTree = "<group>"; };
+		325A259020E8952E001D1BAD /* amfi_utils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = amfi_utils.c; sourceTree = "<group>"; };
+		325A259120E8952E001D1BAD /* amfi_utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = amfi_utils.h; sourceTree = "<group>"; };
+		325A259220E8952E001D1BAD /* apfs_util.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = apfs_util.c; sourceTree = "<group>"; };
+		325A259320E8952E001D1BAD /* apfs_util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apfs_util.h; sourceTree = "<group>"; };
+		325A259420E8952E001D1BAD /* file_utils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = file_utils.c; sourceTree = "<group>"; };
+		325A259520E8952E001D1BAD /* file_utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = file_utils.h; sourceTree = "<group>"; };
+		325A259620E8952E001D1BAD /* kutils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = kutils.c; sourceTree = "<group>"; };
+		325A259720E8952E001D1BAD /* kutils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = kutils.h; sourceTree = "<group>"; };
+		325A259820E8952E001D1BAD /* offsetof.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = offsetof.c; sourceTree = "<group>"; };
+		325A259920E8952E001D1BAD /* offsetof.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = offsetof.h; sourceTree = "<group>"; };
+		325A259A20E8952E001D1BAD /* removeElectraBeta.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = removeElectraBeta.c; sourceTree = "<group>"; };
+		325A259B20E8952E001D1BAD /* removeElectraBeta.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = removeElectraBeta.h; sourceTree = "<group>"; };
+		325A259C20E8952E001D1BAD /* topangadetect.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = topangadetect.h; sourceTree = "<group>"; };
+		325A259D20E8952E001D1BAD /* topangadetect.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = topangadetect.m; sourceTree = "<group>"; };
+		325A259E20E8952E001D1BAD /* unliberios.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unliberios.c; sourceTree = "<group>"; };
+		325A259F20E8952E001D1BAD /* unliberios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = unliberios.h; sourceTree = "<group>"; };
+		325A25A020E8952E001D1BAD /* utils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = utils.c; sourceTree = "<group>"; };
+		325A25A120E8952E001D1BAD /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = "<group>"; };
+		32E5EAEF20E8AC7B00346489 /* bgTemp.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = bgTemp.jpg; sourceTree = "<group>"; };
+		32E5EAF020E8AE7600346489 /* rm.gz */ = {isa = PBXFileReference; lastKnownFileType = archive.gzip; name = rm.gz; path = bootstrap/rm.gz; sourceTree = "<group>"; };
+		32E5EAF120E8AE7600346489 /* ent.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = ent.plist; path = bootstrap/ent.plist; sourceTree = "<group>"; };
+		32E5EAF220E8AE7600346489 /* launchctl.gz */ = {isa = PBXFileReference; lastKnownFileType = archive.gzip; name = launchctl.gz; path = bootstrap/launchctl.gz; sourceTree = "<group>"; };
 		B50F793B1FF2248A000D6015 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = "<group>"; };
 		B50F79401FF2248B000D6015 /* patchfinder64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = patchfinder64.c; sourceTree = "<group>"; };
 		B50F79461FF2248B000D6015 /* root-rw.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "root-rw.m"; sourceTree = "<group>"; };
@@ -257,6 +337,8 @@
 		3252638420E0B140003BD42A /* meridianTV */ = {
 			isa = PBXGroup;
 			children = (
+				32E5EAEF20E8AC7B00346489 /* bgTemp.jpg */,
+				325A256720E8952E001D1BAD /* electra */,
 				3249301B20E41D5200E99767 /* basebinaries.tar */,
 				3249301A20E41CD300E99767 /* jailbreakd.plist */,
 				320AFA9D20E35D4200859485 /* meridian-bootstrap.tar */,
@@ -308,6 +390,99 @@
 			path = libs;
 			sourceTree = "<group>";
 		};
+		325A256720E8952E001D1BAD /* electra */ = {
+			isa = PBXGroup;
+			children = (
+				32E5EAF120E8AE7600346489 /* ent.plist */,
+				32E5EAF220E8AE7600346489 /* launchctl.gz */,
+				32E5EAF020E8AE7600346489 /* rm.gz */,
+				325A256820E8952E001D1BAD /* exploit */,
+				325A257920E8952E001D1BAD /* headers */,
+				325A257F20E8952E001D1BAD /* patchfinder64.c */,
+				325A258020E8952E001D1BAD /* patchfinder64.h */,
+				325A258120E8952E001D1BAD /* the fun part */,
+			);
+			name = electra;
+			path = meridianTV/electra;
+			sourceTree = SOURCE_ROOT;
+		};
+		325A256820E8952E001D1BAD /* exploit */ = {
+			isa = PBXGroup;
+			children = (
+				325A256920E8952E001D1BAD /* arm64_state.h */,
+				325A256B20E8952E001D1BAD /* async_wake.h */,
+				325A256D20E8952E001D1BAD /* early_kalloc.h */,
+				325A256A20E8952E001D1BAD /* async_wake.c */,
+				325A256C20E8952E001D1BAD /* early_kalloc.c */,
+				325A256E20E8952E001D1BAD /* find_port.c */,
+				325A256F20E8952E001D1BAD /* find_port.h */,
+				325A257020E8952E001D1BAD /* kcall.c */,
+				325A257120E8952E001D1BAD /* kcall.h */,
+				325A257220E8952E001D1BAD /* kdbg.c */,
+				325A257320E8952E001D1BAD /* kdbg.h */,
+				325A257420E8952E001D1BAD /* kmem.c */,
+				325A257520E8952E001D1BAD /* kmem.h */,
+				325A257620E8952E001D1BAD /* README */,
+				325A257720E8952E001D1BAD /* symbols.c */,
+				325A257820E8952E001D1BAD /* symbols.h */,
+			);
+			path = exploit;
+			sourceTree = "<group>";
+		};
+		325A257920E8952E001D1BAD /* headers */ = {
+			isa = PBXGroup;
+			children = (
+				325A257A20E8952E001D1BAD /* codesign.h */,
+				325A257B20E8952E001D1BAD /* IOKit.h */,
+				325A257C20E8952E001D1BAD /* xpc_minimal.h */,
+			);
+			path = headers;
+			sourceTree = "<group>";
+		};
+		325A258120E8952E001D1BAD /* the fun part */ = {
+			isa = PBXGroup;
+			children = (
+				325A258220E8952E001D1BAD /* bootstrap.c */,
+				325A258320E8952E001D1BAD /* bootstrap.h */,
+				325A258420E8952E001D1BAD /* fun.c */,
+				325A258520E8952E001D1BAD /* fun.h */,
+				325A258620E8952E001D1BAD /* fun_objc.h */,
+				325A258720E8952E001D1BAD /* fun_objc.m */,
+				325A258A20E8952E001D1BAD /* remap_tfp_set_hsp.c */,
+				325A258B20E8952E001D1BAD /* remap_tfp_set_hsp.h */,
+				325A258C20E8952E001D1BAD /* start_jailbreakd.m */,
+				325A258D20E8952E001D1BAD /* unlocknvram.c */,
+				325A258E20E8952E001D1BAD /* unlocknvram.h */,
+				325A258F20E8952E001D1BAD /* utilities */,
+			);
+			path = "the fun part";
+			sourceTree = "<group>";
+		};
+		325A258F20E8952E001D1BAD /* utilities */ = {
+			isa = PBXGroup;
+			children = (
+				325A259020E8952E001D1BAD /* amfi_utils.c */,
+				325A259120E8952E001D1BAD /* amfi_utils.h */,
+				325A259220E8952E001D1BAD /* apfs_util.c */,
+				325A259320E8952E001D1BAD /* apfs_util.h */,
+				325A259420E8952E001D1BAD /* file_utils.c */,
+				325A259520E8952E001D1BAD /* file_utils.h */,
+				325A259620E8952E001D1BAD /* kutils.c */,
+				325A259720E8952E001D1BAD /* kutils.h */,
+				325A259820E8952E001D1BAD /* offsetof.c */,
+				325A259920E8952E001D1BAD /* offsetof.h */,
+				325A259A20E8952E001D1BAD /* removeElectraBeta.c */,
+				325A259B20E8952E001D1BAD /* removeElectraBeta.h */,
+				325A259C20E8952E001D1BAD /* topangadetect.h */,
+				325A259D20E8952E001D1BAD /* topangadetect.m */,
+				325A259E20E8952E001D1BAD /* unliberios.c */,
+				325A259F20E8952E001D1BAD /* unliberios.h */,
+				325A25A020E8952E001D1BAD /* utils.c */,
+				325A25A120E8952E001D1BAD /* utils.h */,
+			);
+			path = utilities;
+			sourceTree = "<group>";
+		};
 		B50F79671FF224F0000D6015 /* views */ = {
 			isa = PBXGroup;
 			children = (
@@ -608,8 +783,10 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				32E5EAF320E8AE7B00346489 /* ent.plist in Resources */,
 				320AFA8F20E215AD00859485 /* installer-base.tar in Resources */,
 				320AFA9C20E3514D00859485 /* bootstrap.tar.gz in Resources */,
+				32E5EAF520E8AE8000346489 /* rm.gz in Resources */,
 				320AFA9220E215AD00859485 /* system-base.tar in Resources */,
 				3249301C20E41D5400E99767 /* jailbreakd.plist in Resources */,
 				320AFA9420E215C100859485 /* build_time in Resources */,
@@ -619,6 +796,7 @@
 				320AFA8D20E215AD00859485 /* cydia-base.tar in Resources */,
 				3252638F20E0B141003BD42A /* Assets.xcassets in Resources */,
 				3252638D20E0B140003BD42A /* Main.storyboard in Resources */,
+				32E5EAF420E8AE7D00346489 /* launchctl.gz in Resources */,
 				320AFA9E20E35D5100859485 /* meridian-bootstrap.tar in Resources */,
 				3249301D20E41D5600E99767 /* basebinaries.tar in Resources */,
 			);
@@ -681,27 +859,50 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				325A25B820E89561001D1BAD /* topangadetect.m in Sources */,
 				3252639820E0B1C0003BD42A /* untar.m in Sources */,
 				3252639720E0B1B9003BD42A /* offsetdump.m in Sources */,
 				325263AD20E0B3E8003BD42A /* NSLayoutConstraint+PureLayout.m in Sources */,
+				325A25B520E89561001D1BAD /* kutils.c in Sources */,
 				3252638A20E0B140003BD42A /* ViewController.m in Sources */,
+				325A25B420E89561001D1BAD /* file_utils.c in Sources */,
+				325A25B620E89561001D1BAD /* offsetof.c in Sources */,
+				325A25AB20E89556001D1BAD /* bootstrap.c in Sources */,
 				320AFA9A20E34FD500859485 /* NSData+GZip.m in Sources */,
 				3252639E20E0B1D3003BD42A /* jailbreak.m in Sources */,
+				325A25AD20E89556001D1BAD /* fun_objc.m in Sources */,
 				320AFA9720E21D0A00859485 /* UIColor+Additions.m in Sources */,
 				325263AC20E0B3E6003BD42A /* NSArray+PureLayout.m in Sources */,
 				3252639220E0B141003BD42A /* main.m in Sources */,
+				325A25A420E8954A001D1BAD /* async_wake.c in Sources */,
+				325A25B220E89561001D1BAD /* amfi_utils.c in Sources */,
 				3252639D20E0B1D0003BD42A /* amfi.m in Sources */,
 				3252639620E0B1A5003BD42A /* offsetfinder.mm in Sources */,
 				3252638720E0B140003BD42A /* AppDelegate.m in Sources */,
 				325263D320E0CCB4003BD42A /* jailbreak_daemonUser.c in Sources */,
 				325263B020E0B506003BD42A /* patchfinder64.c in Sources */,
+				325A25A920E8954A001D1BAD /* kmem.c in Sources */,
+				325A25B320E89561001D1BAD /* apfs_util.c in Sources */,
 				3252639B20E0B1C8003BD42A /* kernel.m in Sources */,
 				3252639F20E0B1D5003BD42A /* root-rw.m in Sources */,
+				325A25B720E89561001D1BAD /* removeElectraBeta.c in Sources */,
+				325A25B920E89561001D1BAD /* unliberios.c in Sources */,
+				325A25A520E8954A001D1BAD /* early_kalloc.c in Sources */,
+				325A25A620E8954A001D1BAD /* find_port.c in Sources */,
 				325263A020E0B1EB003BD42A /* v0rtex.m in Sources */,
 				3252639920E0B1C3003BD42A /* fucksigningservices.m in Sources */,
 				3252639C20E0B1CB003BD42A /* nvpatch.c in Sources */,
 				325263AB20E0B3E2003BD42A /* ALView+PureLayout.m in Sources */,
+				325A25AA20E8954A001D1BAD /* symbols.c in Sources */,
+				325A25A720E8954A001D1BAD /* kcall.c in Sources */,
+				325A25B120E89556001D1BAD /* unlocknvram.c in Sources */,
+				325A25A220E8953C001D1BAD /* patchfinder64.c in Sources */,
 				3252639A20E0B1C5003BD42A /* helpers.m in Sources */,
+				325A25BA20E89561001D1BAD /* utils.c in Sources */,
+				325A25A820E8954A001D1BAD /* kdbg.c in Sources */,
+				325A25AC20E89556001D1BAD /* fun.c in Sources */,
+				325A25AF20E89556001D1BAD /* remap_tfp_set_hsp.c in Sources */,
+				325A25B020E89556001D1BAD /* start_jailbreakd.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -790,6 +991,7 @@
 				ENABLE_TESTABILITY = NO;
 				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
 				GCC_NO_COMMON_BLOCKS = NO;
+				HEADER_SEARCH_PATHS = $SRCROOT/meridiantTV;
 				INFOPLIST_FILE = meridianTV/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
 				LIBRARY_SEARCH_PATHS = (
@@ -814,6 +1016,7 @@
 				ENABLE_BITCODE = NO;
 				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
 				GCC_NO_COMMON_BLOCKS = NO;
+				HEADER_SEARCH_PATHS = $SRCROOT/meridiantTV;
 				INFOPLIST_FILE = meridianTV/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
 				LIBRARY_SEARCH_PATHS = (

BIN
Meridian/meridian.xcodeproj/project.xcworkspace/xcuserdata/kevinbradley.xcuserdatad/UserInterfaceState.xcuserstate


+ 1 - 1
Meridian/meridian.xcodeproj/xcuserdata/kevinbradley.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -10,7 +10,7 @@
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "Meridian/jailbreak.m"
-            timestampString = "551975752.490268"
+            timestampString = "551977791.286967"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "40"