]> git.saurik.com Git - cydia.git/commitdiff
Cydia no longer runs as root. (WE FINALLY DID IT!)
authorJay Freeman (saurik) <saurik@saurik.com>
Thu, 2 Jul 2015 14:54:47 +0000 (07:54 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Thu, 2 Jul 2015 14:54:47 +0000 (07:54 -0700)
MobileCydia.app/Cydia [deleted file]
MobileCydia.mm
makefile

diff --git a/MobileCydia.app/Cydia b/MobileCydia.app/Cydia
deleted file mode 100755 (executable)
index 572af7b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-C=/${0}
-C=${C%/*}
-declare -a flags
-[[ :${DYLD_INSERT_LIBRARIES}: == */MobileSubstrate.dylib: ]] && flags[${#flags[@]}]=--substrate
-exec "${C:-.}"/MobileCydia "${flags[@]}" -- "$@" 2>>/tmp/cydia.log
index 612cd23e3cb83f144c6a07ea03722e98f94d3b07..3c0ffa991d3c8f4cc580e5ab05b286bb025fbb77 100644 (file)
@@ -237,35 +237,6 @@ union SplitHash {
 };
 // }}}
 
-static void setreugid(uid_t uid, gid_t gid) {
-    _assert(setreuid(uid, uid) != -1);
-    _assert(setregid(gid, gid) != -1);
-}
-
-static void setreguid(gid_t gid, uid_t uid) {
-    _assert(setregid(gid, gid) != -1);
-    _assert(setreuid(uid, uid) != -1);
-}
-
-struct Root {
-    Root() {
-        _trace();
-        setreugid(0, 0);
-        _assert(pthread_setugid_np(0, 0) != -1);
-        setreguid(501, 501);
-    }
-
-    ~Root() {
-        _trace();
-        setreugid(0, 0);
-        _assert(pthread_setugid_np(KAUTH_UID_NONE, KAUTH_GID_NONE) != -1);
-        setreguid(501, 501);
-    }
-};
-
-#define _root(code) \
-    ({ Root _root; code; })
-
 static NSString *Colon_;
 NSString *Elision_;
 static NSString *Error_;
@@ -9307,12 +9278,10 @@ _end
 - (void) _uicache {
     _trace();
 
-    if (UpgradeCydia_ && Finish_ > 0) {
-        setreugid(0, 0);
-        system("su -c /usr/bin/uicache mobile");
-    } else {
+    if (UpgradeCydia_ && Finish_ > 0)
+        system("/usr/libexec/cydia/cydo /bin/su -c /usr/bin/uicache mobile");
+    else
         system("/usr/bin/uicache");
-    }
 
     _trace();
 }
@@ -10099,8 +10068,6 @@ MSHook(id, NSUserDefaults$objectForKey$, NSUserDefaults *self, SEL _cmd, NSStrin
 }
 
 int main(int argc, char *argv[]) {
-    setreugid(501, 501);
-
     NSAutoreleasePool *pool([[NSAutoreleasePool alloc] init]);
 
     _trace();
@@ -10417,21 +10384,6 @@ int main(int argc, char *argv[]) {
 
     Finishes_ = [NSArray arrayWithObjects:@"return", @"reopen", @"restart", @"reload", @"reboot", nil];
 
-#define MobileSubstrate_(name) \
-    if (substrate && access("/Library/MobileSubstrate/DynamicLibraries/" #name ".dylib", F_OK) == 0) { \
-        void *handle(dlopen("/Library/MobileSubstrate/DynamicLibraries/" #name ".dylib", RTLD_LAZY | RTLD_GLOBAL)); \
-        if (handle == NULL) \
-            NSLog(@"%s", dlerror()); \
-    }
-
-    MobileSubstrate_(Activator)
-    MobileSubstrate_(libstatusbar)
-    MobileSubstrate_(SimulatedKeyEvents)
-    MobileSubstrate_(WinterBoard)
-
-    /*if (substrate && access("/Library/MobileSubstrate/MobileSubstrate.dylib", F_OK) == 0)
-        dlopen("/Library/MobileSubstrate/MobileSubstrate.dylib", RTLD_LAZY | RTLD_GLOBAL);*/
-
     if (kCFCoreFoundationVersionNumber > 1000)
         system("/usr/libexec/cydia/cydo /usr/libexec/cydia/setnsfpn /var/lib");
 
index 0d5506b5b962f1213f7df8c6195af1f727657e3c..86b4784a12a8753650cfc7572f1d5dd1eca49bf9 100644 (file)
--- a/makefile
+++ b/makefile
@@ -167,7 +167,7 @@ debs/cydia_$(version)_iphoneos-arm.deb: MobileCydia preinst postinst cfversion s
        mkdir -p _/Applications
        cp -a MobileCydia.app _/Applications/Cydia.app
        rm -rf _/Applications/Cydia.app/*.lproj
-       cp -a MobileCydia _/Applications/Cydia.app/MobileCydia
+       cp -a MobileCydia _/Applications/Cydia.app/Cydia
        
        cd MobileCydia.app && find . -name '*.png' -exec cp -af ../Images/MobileCydia.app/{} ../_/Applications/Cydia.app/{} ';'
        
@@ -183,7 +183,6 @@ debs/cydia_$(version)_iphoneos-arm.deb: MobileCydia preinst postinst cfversion s
        
        sudo chown -R 0 _
        sudo chgrp -R 0 _
-       sudo chmod 6755 _/Applications/Cydia.app/MobileCydia
        
        mkdir -p debs
        ln -sf debs/cydia_$(version)_iphoneos-arm.deb Cydia.deb