w0lfschild/mySIMBL

Something wrong with SIMBL

Opened this issue · 8 comments

Hello. I'm having the exact same message installing on Mac Book Pro Retina mid 2012 high sierra.

Yep, same here.

npyl commented

Same for me too!

Probably disabling SIP will help.

I am not sure if you can reenable SIP after SIMBL is installed, though.

SIP is disabled on mine, that’s why I am here reporting the issue, probably like so many others.

Interesting... Probably a permissions issue would be my guess. I probably need to figure out a way for better logging.

Check this folder for logs /Users/w0lf/Library/Application Support/mySIMBL/logs and reporting back might help me out.

npyl commented

Installation seems to be working fine. What I think is that mySIMBL prints this message even though the installation succeded.

The log

installSIMBL.log

Hmm. That could totally be true.

- (Boolean)SIMBL_install {
    BOOL success = false;
    if (![self SIP_enabled]) {
        NSArray *args = [NSArray arrayWithObject:[[NSBundle bundleForClass:[SIMBLManager class]] pathForResource:@"installSIMBL" ofType:nil]];
        success = [self runSTPrivilegedTask:@"/bin/sh" :args];
    }
    if (!success) {
        NSLog(@"SIMBL install failed");
        dispatch_async(dispatch_get_main_queue(), ^{
            NSAlert *alert = [[NSAlert alloc] init];
            [alert setMessageText:@"SIMBL install failed!"];
            [alert setInformativeText:@"Something went wrong, probably System Integrity Protection."];
            [alert addButtonWithTitle:@"Ok"];
            NSLog(@"%ld", (long)[alert runModal]);
        });
    } else {
        NSLog(@"SIMBL install successful");
    }
    return success;
}

It's gonna show that message 100% if you try to install SIMBL with SIP on but it would also display that if [self runSTPrivilegedTask:@"/bin/sh" :args]; doesn't return true but that should only ideally be happening if you fail to provide the correct authorization.

- (Boolean)runSTPrivilegedTask:(NSString*)launchPath :(NSArray*)args {
    STPrivilegedTask *privilegedTask = [[STPrivilegedTask alloc] init];
    NSMutableArray *components = [args mutableCopy];
    [privilegedTask setLaunchPath:launchPath];
    [privilegedTask setArguments:components];
    [privilegedTask setCurrentDirectoryPath:[[NSBundle mainBundle] resourcePath]];
    Boolean result = false;
    OSStatus err = [privilegedTask launch];
    if (err != errAuthorizationSuccess) {
        if (err == errAuthorizationCanceled) {
            NSLog(@"User cancelled");
        }  else {
            NSLog(@"Something went wrong: %d", (int)err);
        }
    } else {
        result = true;
    }
    return result;
}