//I needed more room in my folders so here it is... //piracy protection @interface SBCoverSheetPrimarySlidingViewController : UIViewController - (void)viewDidDisappear:(BOOL)arg1; - (void)viewDidAppear:(BOOL)arg1; @end BOOL dpkgInvalid = NO; %hook SBCoverSheetPrimarySlidingViewController - (void)viewDidDisappear:(BOOL)arg1 { %orig; // Thanks to Nepeta for the DRM if (!dpkgInvalid) return; UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Pirate Detected!" message:@"Seriously? Pirating a free Tweak is awful!\nPiracy repo's Tweaks could contain Malware if you didn't know that, so go ahead and get 4x3Folders from the official Source https://Burrit0z.github.io/repo/.\nIf you're seeing this but you got it from the official source then make sure to add https://Burrit0z.github.io/repo to Cydia or Sileo." preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * action) { UIApplication *application = [UIApplication sharedApplication]; [application openURL:[NSURL URLWithString:@"https://Burrit0z.github.io/repo"] options:@{} completionHandler:nil]; }]; [alertController addAction:cancelAction]; [self presentViewController:alertController animated:YES completion:nil]; } %end //ios 13 %hook SBIconListFlowLayout - (NSUInteger)numberOfColumnsForOrientation:(NSInteger)arg1 { return 4; } %end //ios 12 and lower %hook SBFolderIconListView +(unsigned long long)iconColumnsForInterfaceOrientation:(long long)arg1 { return (4); } %end %ctor { if (![NSProcessInfo processInfo]) return; NSString *processName = [NSProcessInfo processInfo].processName; bool isSpringboard = [@"SpringBoard" isEqualToString:processName]; // Someone smarter than Nepeta invented this. // https://www.reddit.com/r/jailbreak/comments/4yz5v5/questionremote_messages_not_enabling/d6rlh88/ bool shouldLoad = NO; NSArray *args = [[NSClassFromString(@"NSProcessInfo") processInfo] arguments]; NSUInteger count = args.count; if (count != 0) { NSString *executablePath = args[0]; if (executablePath) { NSString *processName = [executablePath lastPathComponent]; BOOL isApplication = [executablePath rangeOfString:@"/Application/"].location != NSNotFound || [executablePath rangeOfString:@"/Applications/"].location != NSNotFound; BOOL isFileProvider = [[processName lowercaseString] rangeOfString:@"fileprovider"].location != NSNotFound; BOOL skip = [processName isEqualToString:@"AdSheet"] || [processName isEqualToString:@"CoreAuthUI"] || [processName isEqualToString:@"InCallService"] || [processName isEqualToString:@"MessagesNotificationViewService"] || [executablePath rangeOfString:@".appex/"].location != NSNotFound; if ((!isFileProvider && isApplication && !skip) || isSpringboard) { shouldLoad = YES; } } } if (!shouldLoad) return; dpkgInvalid = ![[NSFileManager defaultManager] fileExistsAtPath:@"/var/lib/dpkg/info/com.burritoz.4x3folders.list"]; if (!dpkgInvalid) dpkgInvalid = ![[NSFileManager defaultManager] fileExistsAtPath:@"/var/lib/dpkg/info/com.burritoz.4x3folders.md5sums"]; }