- WBRename(false, "UIImage", @selector(applicationImageNamed:), (IMP) &UIImage$applicationImageNamed$);
- WBRename(false, "UIImage", @selector(defaultDesktopImage), (IMP) &UIImage$defaultDesktopImage$);
- WBRename(false, "UIImage", @selector(imageAtPath:), (IMP) &UIImage$imageAtPath$);
- WBRename(false, "UIImage", @selector(imageNamed:), (IMP) &UIImage$imageNamed$);
- WBRename(false, "UIImage", @selector(imageNamed:inBundle:), (IMP) &UIImage$imageNamed$inBundle$);
-
- //WBRename("UINavigationBar", @selector(initWithCoder:", (IMP) &UINavigationBar$initWithCoder$);
- //WBRename("UINavigationBarBackground", @selector(initWithFrame:withBarStyle:withTintColor:", (IMP) &UINavigationBarBackground$initWithFrame$withBarStyle$withTintColor$);
- //WBRename(true, "SBStatusBar", @selector(initWithMode:orientation:", (IMP) &SBStatusBar$initWithMode$orientation$);
- //WBRename(true, "UIWebDocumentView", @selector(setViewportSize:forDocumentTypes:", (IMP) &UIWebDocumentView$setViewportSize$forDocumentTypes$);
-
- WBRename(true, "NSBundle", @selector(bundlePath), (IMP) &NSBundle$bundlePath$);
- WBRename(true, "NSBundle", @selector(pathForResource:ofType:), (IMP) &NSBundle$pathForResource$ofType$);
-
- WBRename(true, "UIImage", @selector(initWithContentsOfFile:), (IMP) &$initWithContentsOfFile$);
- WBRename(true, "UIImage", @selector(initWithContentsOfFile:cache:), (IMP) &UIImage$initWithContentsOfFile$cache$);
- WBRename(true, "UINavigationBar", @selector(setBarStyle:), (IMP) &UINavigationBar$setBarStyle$);
- WBRename(true, "UIToolbar", @selector(setBarStyle:), (IMP) &UIToolbar$setBarStyle$);
-
- WBRename(true, "WebCoreFrameBridge", @selector(renderedSizeOfNode:constrainedToWidth:), (IMP) &WebCoreFrameBridge$renderedSizeOfNode$constrainedToWidth$);
-
- WBRename(true, "SBApplication", @selector(pathForIcon), (IMP) &SBApplication$pathForIcon);
- WBRename(true, "SBApplicationIcon", @selector(icon), (IMP) &SBApplicationIcon$icon);
- WBRename(true, "SBBookmarkIcon", @selector(icon), (IMP) &SBBookmarkIcon$icon);
- WBRename(true, "SBButtonBar", @selector(didMoveToSuperview), (IMP) &$didMoveToSuperview);
- WBRename(true, "SBCalendarIconContentsView", @selector(drawRect:), (IMP) &SBCalendarIconContentsView$drawRect$);
- WBRename(true, "SBContentLayer", @selector(initWithSize:), (IMP) &SBContentLayer$initWithSize$);
- WBRename(true, "SBIconLabel", @selector(initWithSize:label:), (IMP) &SBIconLabel$initWithSize$label$);
- WBRename(true, "SBIconLabel", @selector(setInDock:), (IMP) &SBIconLabel$setInDock$);
- WBRename(true, "SBIconLabel", @selector(drawRect:), (IMP) &SBIconLabel$drawRect$);
- WBRename(true, "SBSlidingAlertDisplay", @selector(updateDesktopImage:), (IMP) &SBSlidingAlertDisplay$updateDesktopImage$);
- WBRename(true, "SBStatusBarContentsView", @selector(didMoveToSuperview), (IMP) &$didMoveToSuperview);
- WBRename(true, "SBStatusBarContentsView", @selector(initWithStatusBar:mode:), (IMP) &SBStatusBarContentsView$initWithStatusBar$mode$);
- WBRename(true, "SBStatusBarController", @selector(setStatusBarMode:orientation:duration:fenceID:animation:), (IMP) &SBStatusBarController$setStatusBarMode$orientation$duration$fenceID$animation$);
- WBRename(true, "SBStatusBarTimeView", @selector(drawRect:), (IMP) &SBStatusBarTimeView$drawRect$);
- WBRename(true, "SBIconController", @selector(appendIconList:), (IMP) &SBIconController$appendIconList$);
-
- _UISharedImageInitialize(false);
-
- English_ = [[NSDictionary alloc] initWithContentsOfFile:@"/System/Library/CoreServices/SpringBoard.app/English.lproj/LocalizedApplicationNames.strings"];
- if (English_ != nil)
- English_ = [English_ retain];
+ WBRename(SBBookmarkIcon, icon, icon);
+ WBRename(SBButtonBar, didMoveToSuperview, didMoveToSuperview);
+ WBRename(SBCalendarIconContentsView, drawRect:, drawRect$);
+ WBRename(SBIconBadge, initWithBadge:, initWithBadge$);
+ WBRename(SBIconController, noteNumberOfIconListsChanged, noteNumberOfIconListsChanged);
+
+ WBRename(SBWidgetApplicationIcon, icon, icon);
+
+ WBRename(SBDockIconListView, setFrame:, setFrame$);
+ MSHookMessage(object_getClass($SBDockIconListView), @selector(shouldShowNewDock), &$SBDockIconListView$shouldShowNewDock, &_SBDockIconListView$shouldShowNewDock);
+
+ if (kCFCoreFoundationVersionNumber < 600 || SummerBoard_)
+ WBRename(SBIconLabel, drawRect:, drawRect$);
+ else if (kCFCoreFoundationVersionNumber < 700) {
+ WBRename(SBIconLabel, buildLabelImage, buildLabelImage);
+ } else {
+ WBRename(SBIconLabelImageParameters, hash, hash);
+ WBRename($SBIconView, _labelImageParametersForIcon:location:, _labelImageParametersForIcon$location$);
+ WBRename($SBIconLabelImage, _drawLabelImageForParameters:, _drawLabelImageForParameters$);
+ }
+
+ WBRename(SBIconLabel, initWithSize:label:, initWithSize$label$);
+ WBRename(SBIconLabel, setInDock:, setInDock$);
+
+ WBRename(SBIconList, didMoveToSuperview, didMoveToSuperview);
+ WBRename(SBIconList, setFrame:, setFrame$);
+
+ WBRename(SBIconModel, cacheImageForIcon:, cacheImageForIcon$);
+ WBRename(SBIconModel, cacheImagesForIcon:, cacheImagesForIcon$);
+ WBRename(SBIconModel, getCachedImagedForIcon:, getCachedImagedForIcon$);
+ WBRename(SBIconModel, getCachedImagedForIcon:smallIcon:, getCachedImagedForIcon$smallIcon$);
+
+ WBRename(SBSearchView, initWithFrame:, initWithFrame$);
+ WBRename(SBSearchTableViewCell, drawRect:, drawRect$);
+ WBRename(SBSearchTableViewCell, initWithStyle:reuseIdentifier:, initWithStyle$reuseIdentifier$);
+
+ //WBRename(SBImageCache, initWithName:forImageWidth:imageHeight:initialCapacity:, initWithName$forImageWidth$imageHeight$initialCapacity$);
+
+ WBRename(SBAwayView, updateDesktopImage:, updateDesktopImage$);
+ if (kCFCoreFoundationVersionNumber >= 700)
+ WBRename(SBAwayView, _addSubview:positioned:relativeTo:, _addSubview$positioned$relativeTo$);
+
+ WBRename(SBStatusBarContentsView, didMoveToSuperview, didMoveToSuperview);
+ //WBRename(SBStatusBarContentsView, initWithStatusBar:mode:, initWithStatusBar$mode$);
+ //WBRename(SBStatusBarController, setStatusBarMode:orientation:duration:animation:, setStatusBarMode$orientation$duration$animation$);
+ WBRename(SBStatusBarController, setStatusBarMode:orientation:duration:fenceID:animation:, setStatusBarMode$orientation$duration$fenceID$animation$);
+ WBRename(SBStatusBarController, setStatusBarMode:orientation:duration:fenceID:animation:startTime:, setStatusBarMode$orientation$duration$fenceID$animation$startTime$);
+ WBRename(SBStatusBarOperatorNameView, operatorNameStyle, operatorNameStyle);
+ WBRename(SBStatusBarOperatorNameView, setOperatorName:fullSize:, setOperatorName$fullSize$);
+ WBRename(SBStatusBarTimeView, drawRect:, drawRect$);
+
+ if (SummerBoard_)
+ English_ = [[NSDictionary alloc] initWithContentsOfFile:@"/System/Library/CoreServices/SpringBoard.app/English.lproj/LocalizedApplicationNames.strings"];
+}
+
+/*MSHook(int, open, const char *path, int oflag, mode_t mode) {
+ int fd(_open(path, oflag, mode));
+
+ static bool no(false);
+ if (no) return fd;
+ no = true;
+
+ if (strstr(path, "/icon") != NULL)
+ MSHookProcess(-1, "");
+
+ if (fd == -1 && errno == EFAULT)
+ NSLog(@"open(%p, %#x, %#o) = %d\n", path, oflag, mode, fd);
+ else
+ NSLog(@"open(\"%s\", %#x, %#o) = %d\n", path, oflag, mode, fd);
+
+ no = false;
+ return fd;
+}*/
+
+MSInitialize {
+ $objc_setAssociatedObject = reinterpret_cast<void (*)(id, void *, id value, objc_AssociationPolicy)>(dlsym(RTLD_DEFAULT, "objc_setAssociatedObject"));
+ $objc_getAssociatedObject = reinterpret_cast<id (*)(id, void *)>(dlsym(RTLD_DEFAULT, "objc_getAssociatedObject"));
+ $objc_removeAssociatedObjects = reinterpret_cast<void (*)(id)>(dlsym(RTLD_DEFAULT, "objc_removeAssociatedObjects"));
+
+ NSAutoreleasePool *pool([[NSAutoreleasePool alloc] init]);
+
+ NSString *identifier([[NSBundle mainBundle] bundleIdentifier]);
+ SpringBoard_ = [identifier isEqualToString:@"com.apple.springboard"];