-
-
Save dannote/17e0396fe2e19c6e60c915838376d267 to your computer and use it in GitHub Desktop.
#!/usr/bin/swift | |
// DISCLAIMER | |
// This script modifies an unencrypted file associated with the trial version of Final Cut Pro. | |
// Under the DMCA (17 U.S.C. § 1201), this modification does not qualify as circumvention of a technological | |
// protection measure (TPM), as it does not involve bypassing encryption, authentication, or similar protections. | |
// Distributing this code is therefore legal under the DMCA. | |
// This script is intended for educational and research purposes, such as exploring trial-related file structures, | |
// or for system troubleshooting in controlled environments with explicit permissions. It is not intended to be used | |
// in a manner that violates Apple's software license agreement. | |
// WARNING | |
// Using this script to reset or extend the trial period of Final Cut Pro without Apple's authorization likely violates | |
// the software license agreement. Such actions may lead to legal consequences. The responsibility for compliance with | |
// all applicable laws and agreements lies solely with the user. The author of this script assumes no liability for misuse | |
// or any resulting consequences. | |
import Foundation | |
let path = URL(fileURLWithPath: NSString(string: "~/Library/Containers/com.apple.FinalCutTrial/Data/Library/Application Support/.ffuserdata").expandingTildeInPath) | |
let data = try! NSData(contentsOf: path) as Data | |
let dictionary = try! NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as! NSDictionary | |
let mutableDictionary = dictionary.mutableCopy() as! NSMutableDictionary | |
for (key, value) in mutableDictionary { | |
if value is NSDate { | |
mutableDictionary[key] = Date() | |
} | |
} | |
try! NSKeyedArchiver.archivedData(withRootObject: mutableDictionary, requiringSecureCoding: false).write(to: path) | |
print("You'd better buy it") |
@tueng1 I am trying to run your command in Sonoma but it doesn't work. Here's the error I get. Can you please help?
@tueng1 I am trying to run your command in Sonoma but it doesn't work. Here's the error I get. Can you please help?
@karanmgandhi, run it in the Terminal app.
Shortcuts is running it as administrator and therefore ~
refers to root's home (as opposed to your user's home) which is not where .ffuserdata is stored.
Understood, tried it and it worked! Thanks a lot @TehBrian !
Install FCPX trial
Open terminal and run: crontab -e
Add line: 0 0 */90 * * rm -rf ~/Library/Application\ Support/.ffuserdata
Save in nano: CTRL + O, Enter, CTRL + X
Save in vim: ESC, :wq, Enter
Verify cronjob: crontab -l
Can anyone confirm if it is working on macos sequoia?
It’s working for me on the latest fcp. Just run the rm command in the terminal and check the trial period length.
It’s working for me on the latest fcp. Just run the rm command in the terminal and check the trial period length.
Did you execute it in macOS Sequoia?
Please confirm if it still works on macOS Sequoia?
The latest version of Final Cut Pro seems not to work with this script:
main/final-cut-pro-trial-reset.swift:6: Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=260 "The file “.ffuserdata” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/Users/[RESTRICTED]/Library/Application Support/.ffuserdata, NSURL=file:///Users/[RESTRICTED]/Library/Application%20Support/.ffuserdata, NSUnderlyingError=0x12e610c40 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
Does someone have a solution?
The latest version of Final Cut Pro seems not to work with this script:
main/final-cut-pro-trial-reset.swift:6: Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=260 "The file “.ffuserdata” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/Users/[RESTRICTED]/Library/Application Support/.ffuserdata, NSURL=file:///Users/[RESTRICTED]/Library/Application%20Support/.ffuserdata, NSUnderlyingError=0x12e610c40 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
Does someone have a solution?
Try this: https://gist.github.com/TehBrian/bf82c7505b647d423da6d5abbe2b95a3
@l0u1sg, I've updated https://gist.github.com/TehBrian/bf82c7505b647d423da6d5abbe2b95a3 with the correct path for newer versions of Final Cut Pro.
Additionally, I've made a similar Gist for Logic Pro, https://gist.github.com/TehBrian/1c236b6d9c58e736c0480a876759164d, which I'll keep updated as well.
@TehBrian thank you, updated the code accordingly.
Yes