15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Constants.h:
--------------------------------------------------------------------------------
1 | //
2 | // Constants.h
3 | // Play Button iTunes Patch
4 | //
5 | // Created by Farhan Ahmad on 3/12/17.
6 | // Copyright © 2017 thebitguru. All rights reserved.
7 | //
8 |
9 | #ifndef Constants_h
10 | #define Constants_h
11 |
12 | static NSInteger const TriggerCommandLineToolsInstall = 900;
13 | static NSInteger const TriggerReportIssue = 901;
14 |
15 | #endif /* Constants_h */
16 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Constants.m:
--------------------------------------------------------------------------------
1 | //
2 | // Constants.m
3 | // Play Button iTunes Patch
4 | //
5 | // Created by Farhan Ahmad on 3/12/17.
6 | // Copyright © 2017 thebitguru. All rights reserved.
7 | //
8 |
9 | #include "Constants.h"
10 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Credits.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Copyright (C) 2010-2017 Farhan Ahmad.
4 |
5 | Special thanks to Steven Knurr for creating and donating the icon!
6 |
7 | This program is free software; you can redistribute it and/or modify it under
8 | the terms of the GNU General Public License as published by the Free Software
9 | Foundation; version 2 of the License.
10 |
11 | This program is distributed in the hope that it will be useful, but WITHOUT ANY
12 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 | PARTICULAR PURPOSE. See the GNU General Public License for more details.
14 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/CustomLogFormatter.h:
--------------------------------------------------------------------------------
1 | //
2 | // CustomLogFormatter.h
3 | // Play Button iTunes Patch
4 | //
5 | // Based on https://github.com/CocoaLumberjack/CocoaLumberjack/blob/master/Documentation/CustomFormatters.md
6 |
7 | #import
8 |
9 | @interface CustomLogFormatter : NSObject
10 | {
11 | int loggerCount;
12 | NSDateFormatter *threadUnsafeDateFormatter;
13 | }
14 | @end
15 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/CustomLogFormatter.m:
--------------------------------------------------------------------------------
1 | //
2 | // CustomLogFormatter.m
3 | // Play Button iTunes Patch
4 | //
5 | // Based on https://github.com/CocoaLumberjack/CocoaLumberjack/blob/master/Documentation/CustomFormatters.md
6 |
7 | #import "CustomLogFormatter.h"
8 | #import "DDLog.h"
9 | #import
10 |
11 | @implementation CustomLogFormatter
12 |
13 | - (id)init {
14 | if((self = [super init]))
15 | {
16 | threadUnsafeDateFormatter = [[NSDateFormatter alloc] init];
17 | [threadUnsafeDateFormatter setDateFormat:@"yyyy/MM/dd HH:mm:ss:SSS"];
18 | }
19 | return self;
20 | }
21 |
22 | - (NSString *)formatLogMessage:(DDLogMessage *)logMessage {
23 | NSString *logLevel;
24 |
25 | switch (logMessage->_flag)
26 | {
27 | case DDLogFlagError : logLevel = @"ERROR"; break;
28 | case DDLogFlagWarning : logLevel = @"WARNING"; break;
29 | case DDLogFlagInfo : logLevel = @"INFO"; break;
30 | case DDLogFlagDebug : logLevel = @"DEBUG"; break;
31 | default : logLevel = @"VERBOSE"; break;
32 | }
33 |
34 | NSString *dateAndTime = [threadUnsafeDateFormatter stringFromDate:(logMessage->_timestamp)];
35 | return [NSString stringWithFormat:@"%@ | %@ | %@:%lu - %@\n", dateAndTime, logLevel, logMessage->_fileName, logMessage->_line, logMessage->_message];
36 | }
37 |
38 | - (void)didAddToLogger:(id )logger {
39 | loggerCount++;
40 | NSAssert(loggerCount <= 1, @"This logger is not thread-safe");
41 | }
42 |
43 | - (void)willRemoveFromLogger:(id )logger {
44 | loggerCount--;
45 | }
46 |
47 | @end
48 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/ErrorWindowController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ErrorWindowController.h
3 | // Play Button iTunes Patch
4 | //
5 | // Created by Farhan Ahmad on 3/12/17.
6 | // Copyright © 2017 thebitguru. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ErrorWindowController : NSWindowController
12 |
13 | - (void) setErrorMessage:(NSString *)errorMessage;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/ErrorWindowController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ErrorWindowController.m
3 | // Play Button iTunes Patch
4 | //
5 | // Created by Farhan Ahmad on 3/12/17.
6 | // Copyright © 2017 thebitguru. All rights reserved.
7 | //
8 |
9 | #import "ErrorWindowController.h"
10 | #import "Constants.h"
11 | #import
12 | #import "CustomLogFormatter.h"
13 |
14 | @interface ErrorWindowController ()
15 |
16 | @property IBOutlet NSTextView *errorTextView;
17 |
18 | - (IBAction)installCommandLineToolsClicked:(id)sender;
19 | - (IBAction)reportIssueClicked:(id)sender;
20 |
21 | @end
22 |
23 | @implementation ErrorWindowController {
24 | NSString * _errorMessage;
25 | }
26 |
27 | - (void)windowDidLoad {
28 | [super windowDidLoad];
29 |
30 | if (_errorMessage) {
31 | [_errorTextView setString:_errorMessage];
32 | }
33 | }
34 |
35 | - (void) setErrorMessage:(NSString *)errorMessage {
36 | _errorMessage = errorMessage;
37 | [_errorTextView setString:_errorMessage];
38 | }
39 |
40 |
41 | - (IBAction)installCommandLineToolsClicked:(id)sender {
42 | [self.window.sheetParent endSheet:self.window returnCode:TriggerCommandLineToolsInstall];
43 | }
44 |
45 | - (IBAction)reportIssueClicked:(id)sender {
46 | [self.window.sheetParent endSheet:self.window returnCode:TriggerReportIssue];
47 | }
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/ErrorWindowController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
77 |
88 |
89 |
90 |
91 |
92 |
93 | Sometimes the errors can be fixed by reinstalling the Xcode command line tools. Please first try reinstalling the Xcode command line tools before reporting as an issue...
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/GradientView.h:
--------------------------------------------------------------------------------
1 | //
2 | // GradientView.h
3 | // Play Button iTunes Patch
4 | //
5 | // Based on http://www.katoemba.net/makesnosenseatall/2008/01/09/nsview-with-gradient-background/
6 |
7 | #import
8 |
9 | @interface GradientView : NSView
10 |
11 | // Define the variables as properties
12 | @property (nonatomic, retain) NSColor *startingColor;
13 | @property (nonatomic, retain) NSColor *endingColor;
14 | @property (assign) int angle;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/GradientView.m:
--------------------------------------------------------------------------------
1 | //
2 | // GradientView.m
3 | // Play Button iTunes Patch
4 | //
5 | // Based on http://www.katoemba.net/makesnosenseatall/2008/01/09/nsview-with-gradient-background/
6 |
7 | #import "GradientView.h"
8 |
9 | @implementation GradientView
10 |
11 | - (id)initWithFrame:(NSRect)frame {
12 | self = [super initWithFrame:frame];
13 | if (self) {
14 | // Initialization code here.
15 | [self setStartingColor:[NSColor colorWithCalibratedWhite:0.70 alpha:1.0]];
16 | [self setEndingColor:nil];
17 | [self setAngle:270];
18 | }
19 | return self;
20 | }
21 |
22 | - (void)drawRect:(NSRect)rect {
23 | if (_endingColor == nil || [_startingColor isEqual:_endingColor]) {
24 | // Fill view with a standard background color
25 | [_startingColor set];
26 | NSRectFill(rect);
27 | }
28 | else {
29 | // Fill view with a top-down gradient from startingColor to endingColor
30 | NSGradient* aGradient = [[NSGradient alloc]
31 | initWithStartingColor:_startingColor
32 | endingColor:_endingColor];
33 | [aGradient drawInRect:[self bounds] angle:_angle];
34 | }
35 | }
36 |
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "16x16",
5 | "idiom" : "mac",
6 | "filename" : "NOPE autoplay_16.png",
7 | "scale" : "1x"
8 | },
9 | {
10 | "size" : "16x16",
11 | "idiom" : "mac",
12 | "filename" : "NOPE autoplay-2x_16.png",
13 | "scale" : "2x"
14 | },
15 | {
16 | "size" : "32x32",
17 | "idiom" : "mac",
18 | "filename" : "NOPE autoplay_32.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "32x32",
23 | "idiom" : "mac",
24 | "filename" : "NOPE autoplay-2x_32.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "128x128",
29 | "idiom" : "mac",
30 | "filename" : "logo-2 copy.png",
31 | "scale" : "1x"
32 | },
33 | {
34 | "size" : "128x128",
35 | "idiom" : "mac",
36 | "filename" : "NOPE autoplay-2x_128.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "256x256",
41 | "idiom" : "mac",
42 | "filename" : "NOPE autoplay_256.png",
43 | "scale" : "1x"
44 | },
45 | {
46 | "size" : "256x256",
47 | "idiom" : "mac",
48 | "filename" : "NOPE autoplay-2x_256.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "512x512",
53 | "idiom" : "mac",
54 | "filename" : "NOPE autoplay_512.png",
55 | "scale" : "1x"
56 | },
57 | {
58 | "size" : "512x512",
59 | "idiom" : "mac",
60 | "filename" : "NOPE autoplay-2x_512.png",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_128.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_16.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_256.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_32.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay-2x_512.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay_16.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay_256.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay_32.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/NOPE autoplay_512.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/logo-2 copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/Images.xcassets/AppIcon.appiconset/logo-2 copy.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.1
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSApplicationCategoryType
26 | public.app-category.utilities
27 | LSMinimumSystemVersion
28 | $(MACOSX_DEPLOYMENT_TARGET)
29 | NSHumanReadableCopyright
30 | Copyright © 2014 Farhan Ahmad. All rights reserved.
31 | NSMainNibFile
32 | MainMenu
33 | NSPrincipalClass
34 | NSApplication
35 |
36 |
37 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/PatchedWindowController.h:
--------------------------------------------------------------------------------
1 | //
2 | // PatchedWindowController.h
3 | // Play Button iTunes Patch
4 | //
5 | // Created by Farhan Ahmad on 3/5/17.
6 | // Copyright © 2017 thebitguru. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | static NSString * const URL_AFTER_INSTALL = @"http://thebitguru.com/projects/itunes-patch?utm_source=guiapp&utm_medium=guiapp&utm_campaign=successful-patch#successful-install";
12 |
13 | static NSString * const URL_BECM_DONATE = @"https://www.blackearthchildrensmuseum.org/donate?utm_source=itunes-patch-app&utm_campaign=farhan_donation&utm_medium=app-button";
14 |
15 | @interface PatchedWindowController : NSWindowController
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/PatchedWindowController.m:
--------------------------------------------------------------------------------
1 | //
2 | // PatchedWindowController.m
3 | // Play Button iTunes Patch
4 | //
5 | // Created by Farhan Ahmad on 3/5/17.
6 | // Copyright © 2017 thebitguru. All rights reserved.
7 | //
8 |
9 | #import "PatchedWindowController.h"
10 |
11 | @interface PatchedWindowController ()
12 |
13 | - (IBAction)showWebsiteButtonClicked:(id)sender;
14 | - (IBAction)closeButtonClicked:(id)sender;
15 | - (IBAction)moreAboutBECMClicked:(id)sender;
16 |
17 | @end
18 |
19 | @implementation PatchedWindowController
20 |
21 | - (void)windowDidLoad {
22 | [super windowDidLoad];
23 |
24 | // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
25 | }
26 |
27 | - (IBAction)showWebsiteButtonClicked:(id)sender {
28 | [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:URL_AFTER_INSTALL]];
29 | [self.window.sheetParent endSheet:self.window returnCode:NSModalResponseOK];
30 | }
31 |
32 | - (IBAction)moreAboutBECMClicked:(id)sender {
33 | [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:URL_BECM_DONATE]];
34 | // [self.window.sheetParent endSheet:self.window returnCode:NSModalResponseOK];
35 | }
36 |
37 |
38 | - (IBAction)closeButtonClicked:(id)sender {
39 | [self.window.sheetParent endSheet:self.window returnCode:NSModalResponseCancel];
40 | }
41 |
42 | @end
43 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/PatchedWindowController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
44 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 | You only have to do this once per OS X upgrade.
93 |
94 | You can try it by pressing the Play/Pause button. iTunes should no longer launch when you press this button.
95 |
96 | You should not have to restart your system, but in case if it looks like this did not change the behavior then please restart your system before reporting it as an issue.
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/Patcher.h:
--------------------------------------------------------------------------------
1 | //
2 | // Patcher.h
3 | // iTunes Play Button Patch
4 | //
5 | // Created by Farhan Ahmad on 11/12/14.
6 | // Copyright (c) 2014 Farhan Ahmad. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "RcdFile.h"
11 |
12 | //static NSString * const RCD_PATH = @"/Users/thebitguru/Documents/Development/Projects/play-button-itunes-patch/rcd";
13 | static NSString * const RCD_PATH = @"/System/Library/CoreServices/rcd.app/Contents/MacOS/";
14 |
15 | @interface Patcher : NSObject
16 |
17 | typedef NS_ENUM(NSInteger, SIPStatus) {
18 | SIPStatusEnabled,
19 | SIPStatusDisabled,
20 | SIPStatusCSRUTILNotFound
21 | };
22 |
23 | @property NSMutableArray* files;
24 | @property NSMutableArray * backupFiles;
25 | @property BOOL isMainFilePatched;
26 | @property BOOL areCommandLineToolsInstalled;
27 | @property SIPStatus SystemIntegrityProtectionStatus;
28 |
29 | - (id) init;
30 | - (BOOL) isFilePatched: (NSString *) filePath;
31 | - (void) reloadFiles;
32 | - (BOOL) patchFile: (NSError **) error;
33 | - (void) restoreFromBackupFile:(RcdFile *)fileToRestore;
34 | - (BOOL) restartRcdProcesses;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/PlayButtoniTunesPatch-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // PlayButtoniTunesPatch-Prefix.pch
3 | // Play Button iTunes Patch
4 | //
5 | // Created by Farhan Ahmad on 1/31/15.
6 | // Copyright (c) 2015 thebitguru. All rights reserved.
7 | //
8 |
9 |
10 | #ifndef Play_Button_iTunes_Patch_PlayButtoniTunesPatch_Prefix_pch
11 | #define Play_Button_iTunes_Patch_PlayButtoniTunesPatch_Prefix_pch
12 |
13 | #import
14 |
15 | // Include any system framework and library headers here that should be included in all compilation units.
16 | // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
17 |
18 | static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
19 |
20 | //#ifdef DEBUG
21 | // static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
22 | //#else
23 | // static const DDLogLevel ddLogLevel = DDLogLevelWarning;
24 | //#endif
25 |
26 | // Force the log to be written right away.
27 | #ifdef LOG_ASYNC_ENABLED
28 | #undef LOG_ASYNC_ENABLED
29 | #endif
30 | #define LOG_ASYNC_ENABLED NO
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/RcdFile.h:
--------------------------------------------------------------------------------
1 | //
2 | // RcdFile.h
3 | // A simple structure for saving references to files.
4 | // iTunes Play Button Patch
5 | //
6 | // Created by Farhan Ahmad on 11/12/14.
7 | // Copyright (c) 2014 Farhan Ahmad. All rights reserved.
8 | //
9 |
10 | #import
11 |
12 | @interface RcdFile : NSObject
13 |
14 | @property (copy) NSString * name;
15 | @property (copy) NSString * comments;
16 | @property (copy) NSString * md5sum;
17 | @property (copy) NSURL * fileUrl;
18 | @property (copy) NSDate * dateModified;
19 | @property BOOL isPatched;
20 | @property BOOL isBackupFile;
21 |
22 | - (id) initWithParams:(NSString *)name
23 | comments:(NSString *)comments
24 | md5sum:(NSString *)md5sum
25 | isPatched:(BOOL)isPatched
26 | dateModified:(NSDate *) dateModified
27 | fileUrl:(NSURL *)fileUrl;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/RcdFile.m:
--------------------------------------------------------------------------------
1 | //
2 | // RcdFile.m
3 | // iTunes Play Button Patch
4 | //
5 | // Created by Farhan Ahmad on 11/12/14.
6 | // Copyright (c) 2014 Farhan Ahmad. All rights reserved.
7 | //
8 |
9 | #import "RcdFile.h"
10 |
11 | @implementation RcdFile
12 |
13 | - (id) initWithParams:(NSString *)name
14 | comments:(NSString *)comments
15 | md5sum:(NSString *)md5sum
16 | isPatched:(BOOL)isPatched
17 | dateModified:(NSDate *) dateModified
18 | fileUrl:(NSURL *)fileUrl {
19 | self = [super init];
20 | if (self) {
21 | _name = name;
22 | _comments = comments;
23 | _md5sum = md5sum;
24 | _isPatched = isPatched;
25 | _fileUrl = fileUrl;
26 | _dateModified = dateModified;
27 | }
28 | return self;
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/en.lproj/MainMenu.strings:
--------------------------------------------------------------------------------
1 |
2 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "13Q-h0-5VA"; */
3 | "13Q-h0-5VA.title" = "Text Cell";
4 |
5 | /* Class = "NSMenuItem"; title = "iTunes Play Button Patch"; ObjectID = "1Xt-HY-uBw"; */
6 | "1Xt-HY-uBw.title" = "iTunes Play Button Patch";
7 |
8 | /* Class = "NSMenuItem"; title = "Quit iTunes Play Button Patch"; ObjectID = "4sb-4s-VLi"; */
9 | "4sb-4s-VLi.title" = "Quit iTunes Play Button Patch";
10 |
11 | /* Class = "NSMenuItem"; title = "About iTunes Play Button Patch"; ObjectID = "5kV-Vb-QxS"; */
12 | "5kV-Vb-QxS.title" = "About iTunes Play Button Patch";
13 |
14 | /* Class = "NSTextFieldCell"; title = "This program will patch the Remote Control Daemon to prevent it from starting iTunes whenever you press the play button on the keyboard or an external remote control. This will only prevent iTunes from starting, all other functions (like play/pause while iTunes is _running_) will continue to work as before.\n\nAlso, this program will backup the original file in case if you would like to restore the original functionality.\n \nThis program comes with ABSOLUTELY NO WARRANTY; please see the license in the about window."; ObjectID = "5zj-nX-X02"; */
15 | "5zj-nX-X02.title" = "This program will patch the Remote Control Daemon to prevent it from starting iTunes whenever you press the play button on the keyboard or an external remote control. This will only prevent iTunes from starting, all other functions (like play/pause while iTunes is _running_) will continue to work as before.\n\nAlso, this program will backup the original file in case if you would like to restore the original functionality.\n \nThis program comes with ABSOLUTELY NO WARRANTY; please see the license in the about window.";
16 |
17 | /* Class = "NSMenu"; title = "Main Menu"; ObjectID = "AYu-sK-qS6"; */
18 | "AYu-sK-qS6.title" = "Main Menu";
19 |
20 | /* Class = "NSMenu"; title = "Help"; ObjectID = "F2S-fz-NVQ"; */
21 | "F2S-fz-NVQ.title" = "Help";
22 |
23 | /* Class = "NSMenuItem"; title = "iTunes Play Button Patch Help"; ObjectID = "FKE-Sm-Kum"; */
24 | "FKE-Sm-Kum.title" = "iTunes Play Button Patch Help";
25 |
26 | /* Class = "NSTextFieldCell"; title = "Status..."; ObjectID = "G1z-cC-3e8"; */
27 | "G1z-cC-3e8.title" = "Status...";
28 |
29 | /* Class = "NSTextFieldCell"; title = "OS X Version"; ObjectID = "GhD-ry-KTY"; */
30 | "GhD-ry-KTY.title" = "OS X Version";
31 |
32 | /* Class = "NSTextFieldCell"; title = "Play Button iTunes Patch"; ObjectID = "Iq8-Cl-4lh"; */
33 | "Iq8-Cl-4lh.title" = "Play Button iTunes Patch";
34 |
35 | /* Class = "NSMenuItem"; title = "Show All"; ObjectID = "Kd2-mp-pUS"; */
36 | "Kd2-mp-pUS.title" = "Show All";
37 |
38 | /* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "LE2-aR-0XJ"; */
39 | "LE2-aR-0XJ.title" = "Bring All to Front";
40 |
41 | /* Class = "NSButtonCell"; title = "Restore from Backup"; ObjectID = "MW9-WL-0Sr"; */
42 | "MW9-WL-0Sr.title" = "Restore from Backup";
43 |
44 | /* Class = "NSMenuItem"; title = "Services"; ObjectID = "NMo-om-nkz"; */
45 | "NMo-om-nkz.title" = "Services";
46 |
47 | /* Class = "NSTextFieldCell"; title = "Version..."; ObjectID = "NbS-61-7xA"; */
48 | "NbS-61-7xA.title" = "Version...";
49 |
50 | /* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "OY7-WF-poV"; */
51 | "OY7-WF-poV.title" = "Minimize";
52 |
53 | /* Class = "NSMenuItem"; title = "Hide iTunes Play Button Patch"; ObjectID = "Olw-nP-bQN"; */
54 | "Olw-nP-bQN.title" = "Hide iTunes Play Button Patch";
55 |
56 | /* Class = "NSWindow"; title = "Play Button iTunes Patch"; ObjectID = "QvC-M9-y7g"; */
57 | "QvC-M9-y7g.title" = "Play Button iTunes Patch";
58 |
59 | /* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "R4o-n2-Eq4"; */
60 | "R4o-n2-Eq4.title" = "Zoom";
61 |
62 | /* Class = "NSMenu"; title = "Window"; ObjectID = "Td7-aD-5lo"; */
63 | "Td7-aD-5lo.title" = "Window";
64 |
65 | /* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "Vdr-fp-XzO"; */
66 | "Vdr-fp-XzO.title" = "Hide Others";
67 |
68 | /* Class = "NSTextFieldCell"; title = "Xcode command line tool status..."; ObjectID = "WR2-Oo-7VU"; */
69 | "WR2-Oo-7VU.title" = "Xcode command line tool status...";
70 |
71 | /* Class = "NSTableColumn"; headerCell.title = "Comments"; ObjectID = "WnR-3V-Xbj"; */
72 | "WnR-3V-Xbj.headerCell.title" = "Comments";
73 |
74 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "Z9V-93-fYL"; */
75 | "Z9V-93-fYL.title" = "Text Cell";
76 |
77 | /* Class = "NSMenuItem"; title = "Window"; ObjectID = "aUF-d1-5bR"; */
78 | "aUF-d1-5bR.title" = "Window";
79 |
80 | /* Class = "NSMenuItem"; title = "Check for Updates..."; ObjectID = "cCB-HD-P0w"; */
81 | "cCB-HD-P0w.title" = "Check for Updates...";
82 |
83 | /* Class = "NSTableColumn"; headerCell.title = "MD5 Sum"; ObjectID = "cRy-vV-fvo"; */
84 | "cRy-vV-fvo.headerCell.title" = "MD5 Sum";
85 |
86 | /* Class = "NSTextFieldCell"; title = "Status"; ObjectID = "d7s-oT-FDS"; */
87 | "d7s-oT-FDS.title" = "Status";
88 |
89 | /* Class = "NSButtonCell"; title = "Patch"; ObjectID = "f02-cN-DLs"; */
90 | "f02-cN-DLs.title" = "Patch";
91 |
92 | /* Class = "NSTableColumn"; headerCell.title = "Date Modified"; ObjectID = "ftU-vr-HiF"; */
93 | "ftU-vr-HiF.headerCell.title" = "Date Modified";
94 |
95 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "g1O-qU-J5f"; */
96 | "g1O-qU-J5f.title" = "Text Cell";
97 |
98 | /* Class = "NSMenuItem"; title = "Show in Finder..."; ObjectID = "gmX-kv-hqZ"; */
99 | "gmX-kv-hqZ.title" = "Show in Finder...";
100 |
101 | /* Class = "NSMenu"; title = "Services"; ObjectID = "hz9-B4-Xy5"; */
102 | "hz9-B4-Xy5.title" = "Services";
103 |
104 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "j4e-Ox-VNY"; */
105 | "j4e-Ox-VNY.title" = "Text Cell";
106 |
107 | /* Class = "NSTextFieldCell"; title = "Xcode Command Line Tools"; ObjectID = "lIE-fA-jed"; */
108 | "lIE-fA-jed.title" = "Xcode Command Line Tools";
109 |
110 | /* Class = "NSButtonCell"; title = "Refresh"; ObjectID = "pvz-8b-ccj"; */
111 | "pvz-8b-ccj.title" = "Refresh";
112 |
113 | /* Class = "NSButtonCell"; title = "Install"; ObjectID = "sta-26-Im5"; */
114 | "sta-26-Im5.title" = "Install";
115 |
116 | /* Class = "NSTableColumn"; headerCell.title = "File Name"; ObjectID = "uJg-zm-EyF"; */
117 | "uJg-zm-EyF.headerCell.title" = "File Name";
118 |
119 | /* Class = "NSMenu"; title = "iTunes Play Button Patch"; ObjectID = "uQy-DD-JDr"; */
120 | "uQy-DD-JDr.title" = "iTunes Play Button Patch";
121 |
122 | /* Class = "NSMenuItem"; title = "Help"; ObjectID = "wpr-3q-Mcd"; */
123 | "wpr-3q-Mcd.title" = "Help";
124 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/logo-large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/logo-large.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/iTunes Play Button Patch/logo.png
--------------------------------------------------------------------------------
/iTunes Play Button Patch/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // iTunes Play Button Patch
4 | //
5 | // Created by Farhan Ahmad on 11/12/14.
6 | // Copyright (c) 2014 Farhan Ahmad. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, const char * argv[]) {
12 | return NSApplicationMain(argc, argv);
13 | }
14 |
--------------------------------------------------------------------------------
/iTunes Play Button Patch/notes.txt:
--------------------------------------------------------------------------------
1 |
2 | ------------------------------------------
3 | TODO:
4 |
5 |
6 |
7 | DMG Instructions:
8 | 1. Create a new Image file in Disk Utility
9 |
10 |
11 | DMG based on: http://mac101.net/content/how-to/how-to-create-dmg-art-for-fancy-application-installations/
12 | https://web.archive.org/web/20150709174949/http://mac101.net/content/how-to/how-to-create-dmg-art-for-fancy-application-installations/
13 |
--------------------------------------------------------------------------------
/iTunes Play Button PatchTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/iTunes Play Button PatchTests/iTunes_Play_Button_PatchTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // iTunes_Play_Button_PatchTests.m
3 | // iTunes Play Button PatchTests
4 | //
5 | // Created by Farhan Ahmad on 11/12/14.
6 | // Copyright (c) 2014 Farhan Ahmad. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface iTunes_Play_Button_PatchTests : XCTestCase
13 |
14 | @end
15 |
16 | @implementation iTunes_Play_Button_PatchTests
17 |
18 | - (void)setUp {
19 | [super setUp];
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 | }
22 |
23 | - (void)tearDown {
24 | // Put teardown code here. This method is called after the invocation of each test method in the class.
25 | [super tearDown];
26 | }
27 |
28 | - (void)testExample {
29 | // This is an example of a functional test case.
30 | XCTAssert(YES, @"Pass");
31 | }
32 |
33 | - (void)testPerformanceExample {
34 | // This is an example of a performance test case.
35 | [self measureBlock:^{
36 | // Put the code you want to measure the time of here.
37 | }];
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/old-cli/Patch.command:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # Title: Driver for patching the Apple Remote Control Daemon.
4 | # Description: This is a simple command line driver for patching the remote control
5 | # daemon. The actual patching is done by the python script (patch_bytes.py).
6 | #
7 | # Author: Farhan Ahmad
8 | # Website: http://www.thebitguru.com/projects/iTunesPatch
9 | #
10 | # Revision history:
11 | # 2010-11-18, fa:
12 | # * Created
13 | # 2010-11-28, fa:
14 | # * Updated to use patch_bytes.py script instead of the previously
15 | # used bsdiff/bspatch method.
16 | # 2011-08-18, fa:
17 | # * Added fix submitted by Michael Winestock to account for spaces
18 | # in the directory name.
19 | # 2011-09-03, fa:
20 | # * Added Michael's contact info
21 | # Michael Winestock http://www.linkedin.com/pub/michael-winestock/18/579/972
22 | # 2013-05-11, fa:
23 | # * Added step to self-sign the modified binary. This should
24 | # prevent rcd from crashing on Mountain Lion. Thanks to user48986 at
25 | # http://apple.stackexchange.com/questions/64408/can-you-disable-a-code-signature-check
26 | # * Changed version to 0.8.2.
27 | # 2014-01-19, fa: Farhan Ahmad
28 | # * Added the '-KILL' to killall command because rcd doesn't seem to respect SIGTERM
29 | # anymore. Thanks for @quicksnap (https://github.com/quicksnap) for helping
30 | # troubleshoot.
31 | # * Version changed to 0.8.3
32 | #
33 | # Technical notes:
34 | # Create a backup of the original file (cp rcd rcd_original_os).
35 | # Comment out (--) the iTunes launch lines in rcd.
36 |
37 | VERSION=0.8.3 # Version of the script.
38 |
39 | rcd_path=/System/Library/CoreServices/rcd.app/Contents/MacOS
40 |
41 | # MD5 sum of the current rcd
42 | calculated_rcd_md5=`md5 -q $rcd_path/rcd`
43 |
44 | if [[ `id -u` == "0" ]]; then
45 | echo " Confirmed that the script is running as root (uid `id -u`)."
46 | fi
47 |
48 | # Banner
49 | echo
50 | echo "-------------------------- Play Button iTunes Patch --------------------------"
51 |
52 | # Make sure the script is running as root.
53 | if [[ `id -u` != "0" ]]; then
54 | echo " This patch requires that you run it as root. Trying: sudo $0"
55 | sudo "$0"
56 | exit
57 | fi
58 |
59 | # Print a banner and confirm that the user has root access.
60 | if [[ "$1" != "--nobanner" ]]; then
61 | echo " This program will patch the Remote Control Daemon to prevent it from starting"
62 | echo " iTunes whenever you press the play button on the keyboard or an external"
63 | echo " remote control. This will only prevent iTunes from starting, all other"
64 | echo " functions (like play/pause while iTunes is _running_) will continue to work"
65 | echo " as before."
66 | echo ""
67 | echo " Also, this program will backup the original file in case if you would like"
68 | echo " to restore the original functionality."
69 | echo
70 | echo " This program comes with ABSOLUTELY NO WARRANTY; please see the included"
71 | echo " license file for details."
72 | echo
73 | fi
74 |
75 |
76 | # Check if the program has already been in patched, in which case, present the
77 | # option to restore the original file.
78 | confirm=1
79 | backup_count=`find $rcd_path -type f -maxdepth 1 -name rcd_backup_\* | wc -l`
80 | if [[ $backup_count -ne 0 ]]; then
81 | echo " Found an existing backup file. "
82 | echo -n " "
83 | find $rcd_path -type f -maxdepth 1 -name rcd_backup_\*
84 | echo
85 | echo -n "Would you like to undo the patch and restore the backed up file? (y/N) "
86 | read restore_from_backup
87 | restore_from_backup=`echo $restore_from_backup | tr '[:lower:]' '[:upper:]' | cut -b 1`
88 | if [[ "$restore_from_backup" != "Y" ]]; then
89 | echo "You can only restore since you have the file already patched. Aborting."
90 | echo
91 | exit
92 | fi
93 |
94 | # Restore from the backup, use the first backup file.
95 | echo
96 | backup_file=`find $rcd_path -type f -maxdepth 1 -name rcd_backup_\* | head -1`
97 | killall -KILL rcd 2> /dev/null # Kill any existing processes
98 | mv -f $backup_file $rcd_path/rcd # Restore the backup file.
99 | echo "Restore complete. Your original functionality should be back. To verify:"
100 | echo " 1. If iTunes is already running then quit it first."
101 | echo " 2. Press the play button on your keyboard."
102 | echo " 3. If iTunes started then the original file was successfully restored and "
103 | echo " you should have the original functionality back."
104 | echo
105 | echo "For questions and/or comments please visit http://www.thebitguru.com/projects/iTunesPatch"
106 | exit
107 | fi
108 |
109 | # === Otherwise, we are patching the original file for the first time.
110 |
111 | # Get a final confirmation from the user.
112 | echo
113 | echo -n "Everything is ready. Would you like to create a backup and apply the patch? (y/N) "
114 | read go_ahead
115 | go_ahead=`echo $go_ahead | tr '[:lower:]' '[:upper:]' | cut -b 1`
116 | if [[ "$go_ahead" != "Y" ]]; then
117 | echo "You must answer yes, aborting."
118 | echo
119 | exit
120 | fi
121 |
122 | # Everything is good, let's stop the process, backup existing version and then patch.
123 | echo "Patching..."
124 | killall -KILL rcd 2> /dev/null # Stop any running processing.
125 | echo " + Killed any running processes."
126 | backup_filename="rcd_backup_${VERSION}_`date "+%Y%m%d%H%M.%S"`"
127 | cp $rcd_path/rcd $rcd_path/$backup_filename
128 | echo " + Backed up the existing file as $backup_filename"
129 | echo " + Patching..."
130 | cd "`dirname \"$0\"`"
131 | ./edit_rcd_bin.py $rcd_path/rcd
132 | if [[ $? -eq 0 ]]; then
133 | echo " + Regenerating the code signature..."
134 | codesign -f -s - $rcd_path/rcd
135 | echo " + Successfully patched the existing file."
136 | echo
137 | echo "Finished patching. To verify: "
138 | echo " 1. If iTunes is already running then quit it first."
139 | echo " 2. Press the play button on your keyboard."
140 | echo " 3. If iTunes did not start then the patch was applied successfully."
141 | echo " 4. Enjoy."
142 | echo
143 | echo "Run this script again if you would like to restore the original functionality."
144 | else
145 | echo " !!! Sorry, an unexpected error occurred while patching. Please email me all"
146 | echo " of the above text and attach $rcd_path/rcd "
147 | echo " for troubleshooting at farhan@thebitguru.com."
148 | fi
149 |
150 | echo
151 | echo
152 | echo "For questions and/or comments please visit http://www.thebitguru.com/projects/iTunesPatch"
153 |
--------------------------------------------------------------------------------
/old-cli/edit_rcd_bin.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #
3 | # Author: Farhan Ahmad
4 | # Website: http://www.thebitguru.com/projects/iTunesPatch
5 | # Description: This patches the iTunes launch commands in the rcd binary. This
6 | # program is expected to be executed by the provided Patch.command driver.
7 | # For more information please see the website for this project.
8 | #
9 | # Revision history:
10 | # 2010-11-28, fa: Created
11 |
12 | import mmap
13 | import sys
14 | import os.path
15 |
16 | if len(sys.argv) != 2:
17 | print "%s rcd_filepath" % sys.argv[0]
18 | sys.exit(1)
19 |
20 | rcd_filepath = sys.argv[1]
21 |
22 | if not os.path.isfile(rcd_filepath):
23 | print "'%s' is not a valid file." % rcd_filepath
24 | sys.exit(2)
25 |
26 | # String that needs to be commented out.
27 | string_to_find = 'tell application id "com.apple.iTunes" to launch'
28 | instances = []
29 |
30 | with open(rcd_filepath, "r+b") as f:
31 | map = mmap.mmap(f.fileno(), 0)
32 | start = 0
33 | while True:
34 | found_at = map.find(string_to_find, start)
35 | if found_at == -1:
36 | break
37 | instances.append(str(found_at))
38 | map[found_at:found_at+2] = "--"
39 | start = found_at + len(string_to_find)
40 | map.close()
41 |
42 | if len(instances) == 0:
43 | print " Sorry, could not find any instances of the expected bytes to be patched."
44 | sys.exit(3)
45 | else:
46 | print " Successfully patched the file (found %s instances at %s)." % (
47 | len(instances), ", ".join(instances))
48 |
49 | sys.exit(0) # Return successful status.
50 |
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 14B25
7 | CFBundleDevelopmentRegion
8 | en
9 | CFBundleExecutable
10 | Play Button iTunes Patch
11 | CFBundleIconFile
12 | AppIcon
13 | CFBundleIdentifier
14 | com.thebitguru.Play-Button-iTunes-Patch
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | Play Button iTunes Patch
19 | CFBundlePackageType
20 | APPL
21 | CFBundleShortVersionString
22 | 0.9
23 | CFBundleSignature
24 | ????
25 | CFBundleVersion
26 | 1
27 | DTCompiler
28 | com.apple.compilers.llvm.clang.1_0
29 | DTPlatformBuild
30 | 6A2008a
31 | DTPlatformVersion
32 | GM
33 | DTSDKBuild
34 | 13F26
35 | DTSDKName
36 | macosx10.9
37 | DTXcode
38 | 0611
39 | DTXcodeBuild
40 | 6A2008a
41 | LSMinimumSystemVersion
42 | 10.7
43 | NSHumanReadableCopyright
44 | Copyright © 2014 Farhan Ahmad. All rights reserved.
45 | NSMainNibFile
46 | MainMenu
47 | NSPrincipalClass
48 | NSApplication
49 |
50 |
51 |
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/MacOS/Play Button iTunes Patch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/package/Play Button iTunes Patch.app/Contents/MacOS/Play Button iTunes Patch
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/PkgInfo:
--------------------------------------------------------------------------------
1 | APPL????
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/Resources/AboutWindow.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/package/Play Button iTunes Patch.app/Contents/Resources/AboutWindow.nib
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/Resources/AppIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/package/Play Button iTunes Patch.app/Contents/Resources/AppIcon.icns
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/Resources/Base.lproj/MainMenu.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/package/Play Button iTunes Patch.app/Contents/Resources/Base.lproj/MainMenu.nib
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/Resources/Credits.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Copyright (C) 2010 Farhan Ahmad.
4 |
5 | Special thanks to Steven Knurr for creating and donating the icon!
6 |
7 | This program is free software; you can redistribute it and/or modify it under
8 | the terms of the GNU General Public License as published by the Free Software
9 | Foundation; version 2 of the License.
10 |
11 | This program is distributed in the hope that it will be useful, but WITHOUT ANY
12 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 | PARTICULAR PURPOSE. See the GNU General Public License for more details.
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/Resources/logo-large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/package/Play Button iTunes Patch.app/Contents/Resources/logo-large.png
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/Resources/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thebitguru/play-button-itunes-patch/786a239f3b0c6463a80ed5293e1b75929325e3a4/package/Play Button iTunes Patch.app/Contents/Resources/logo.png
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/Resources/notes.txt:
--------------------------------------------------------------------------------
1 |
2 |
3 | ------------------------------------------
4 | TODO:
5 |
6 |
7 | DMG based on: http://mac101.net/content/how-to/how-to-create-dmg-art-for-fancy-application-installations/
8 |
--------------------------------------------------------------------------------
/package/Play Button iTunes Patch.app/Contents/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Resources/AboutWindow.nib
8 |
9 | Xmns7I6+qgSPBpkTPSpIg+l303o=
10 |
11 | Resources/AppIcon.icns
12 |
13 | jhhGcvlR4E0zjAw8qsnYH8p+U98=
14 |
15 | Resources/Base.lproj/MainMenu.nib
16 |
17 | hash
18 |
19 | alPCHSAchsevgfkDA0DtVH5z7ek=
20 |
21 | optional
22 |
23 |
24 | Resources/Credits.html
25 |
26 | XwuKKr40fG55Rfl6dI+D6tF7Mco=
27 |
28 | Resources/en.lproj/MainMenu.strings
29 |
30 | hash
31 |
32 | yOmVDHUdroTvnnCfx3SlCa9+zkg=
33 |
34 | optional
35 |
36 |
37 | Resources/logo-large.png
38 |
39 | yd0SMhlTwlX70rY8XdBW/DpCuSE=
40 |
41 | Resources/logo.png
42 |
43 | 9w6FEK1wppIy1dCx44lSe+gxpr4=
44 |
45 | Resources/notes.txt
46 |
47 | TRCJEIckaU5CbhV8TMNYb3j/gaw=
48 |
49 |
50 | files2
51 |
52 | Resources/AboutWindow.nib
53 |
54 | Xmns7I6+qgSPBpkTPSpIg+l303o=
55 |
56 | Resources/AppIcon.icns
57 |
58 | jhhGcvlR4E0zjAw8qsnYH8p+U98=
59 |
60 | Resources/Base.lproj/MainMenu.nib
61 |
62 | hash
63 |
64 | alPCHSAchsevgfkDA0DtVH5z7ek=
65 |
66 | optional
67 |
68 |
69 | Resources/Credits.html
70 |
71 | XwuKKr40fG55Rfl6dI+D6tF7Mco=
72 |
73 | Resources/en.lproj/MainMenu.strings
74 |
75 | hash
76 |
77 | yOmVDHUdroTvnnCfx3SlCa9+zkg=
78 |
79 | optional
80 |
81 |
82 | Resources/logo-large.png
83 |
84 | yd0SMhlTwlX70rY8XdBW/DpCuSE=
85 |
86 | Resources/logo.png
87 |
88 | 9w6FEK1wppIy1dCx44lSe+gxpr4=
89 |
90 | Resources/notes.txt
91 |
92 | TRCJEIckaU5CbhV8TMNYb3j/gaw=
93 |
94 |
95 | rules
96 |
97 | ^Resources/
98 |
99 | ^Resources/.*\.lproj/
100 |
101 | optional
102 |
103 | weight
104 | 1000
105 |
106 | ^Resources/.*\.lproj/locversion.plist$
107 |
108 | omit
109 |
110 | weight
111 | 1100
112 |
113 | ^version.plist$
114 |
115 |
116 | rules2
117 |
118 | .*\.dSYM($|/)
119 |
120 | weight
121 | 11
122 |
123 | ^(.*/)?\.DS_Store$
124 |
125 | omit
126 |
127 | weight
128 | 2000
129 |
130 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
131 |
132 | nested
133 |
134 | weight
135 | 10
136 |
137 | ^.*
138 |
139 | ^Info\.plist$
140 |
141 | omit
142 |
143 | weight
144 | 20
145 |
146 | ^PkgInfo$
147 |
148 | omit
149 |
150 | weight
151 | 20
152 |
153 | ^Resources/
154 |
155 | weight
156 | 20
157 |
158 | ^Resources/.*\.lproj/
159 |
160 | optional
161 |
162 | weight
163 | 1000
164 |
165 | ^Resources/.*\.lproj/locversion.plist$
166 |
167 | omit
168 |
169 | weight
170 | 1100
171 |
172 | ^[^/]+$
173 |
174 | nested
175 |
176 | weight
177 | 10
178 |
179 | ^embedded\.provisionprofile$
180 |
181 | weight
182 | 20
183 |
184 | ^version\.plist$
185 |
186 | weight
187 | 20
188 |
189 |
190 |
191 |
192 |
--------------------------------------------------------------------------------