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.
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.
Installation seems to be working fine. What I think is that mySIMBL prints this message even though the installation succeded.
The 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;
}