Skip to content

Instantly share code, notes, and snippets.

@ellsies
Last active November 11, 2024 05:07
Show Gist options
  • Save ellsies/e9383c75fd8cd8d5781dac91d7e2360d to your computer and use it in GitHub Desktop.
Save ellsies/e9383c75fd8cd8d5781dac91d7e2360d to your computer and use it in GitHub Desktop.
Crackover (Complete free version of crossover)

CrackOver

Crackover helps you bypass restrictions for the MacOS app, CrossOver.

bash -c "$(curl -fsSL https://gist.github.com/ellsies/e9383c75fd8cd8d5781dac91d7e2360d/raw/install.sh)"

Executing this script will replace the CrossOver binary with a patched version that bypasses the restrictions and time limits.

This script fixes all trial issue, resets the trial period, and fixes all bottle trial periods.

I will update this script as needed to keep it working.

For any help, please leave a comment on this gist, and I will respond as soon as possible.

Disclaimer

This script is for educational purposes only. I am not responsible for any damage caused by this script. Use at your own risk.

#!/usr/bin/env bash
# checck if pidof exists
PIDOF="$(which pidof)"
# and if not - install it
(test "${PIDOF}" && test -f "${PIDOF}") || brew install pidof
# find app in default paths
CO_PWD=~/Applications/CrossOver.app/Contents/MacOS
test -d "${CO_PWD}" || CO_PWD=/Applications/CrossOver.app/Contents/MacOS
test -d "${CO_PWD}" || (echo 'unable to detect app path. exiting...' && exit)
PWD="${CO_PWD}"
cd "${PWD}"
PROC_NAME='CrossOver'
# get all pids of CrossOver
pids=(`pgrep "${PROC_NAME}"`, `pidof "${PROC_NAME}"`, `ps -Ac | grep -m1 "${PROC_NAME}" | awk '{print $1}'`)
pids=`echo ${pids[*]}|tr ',' ' '`
# kills CrossOver process if it is running
[ "${pids}" ] && kill -9 `echo "${pids}"` > /dev/null 2>&1
# wait until app finish
sleep 3
# make the current date RFC3339-encoded string representation in UTC time zone
DATETIME=`date -u -v -3H '+%Y-%m-%dT%TZ'`
# modify time in order to reset trial
plutil -replace FirstRunDate -date "${DATETIME}" ~/Library/Preferences/com.codeweavers.CrossOver.plist
plutil -replace SULastCheckTime -date "${DATETIME}" ~/Library/Preferences/com.codeweavers.CrossOver.plist
# show tooltip notification
/usr/bin/osascript -e "display notification \"trial fixed: date changed to ${DATETIME}\""
for file in ~/Library/Application\ Support/CrossOver/Bottles/*/system.reg; do
sed -i -e "/^\\[Software\\\\\\\\CodeWeavers\\\\\\\\CrossOver\\\\\\\\cxoffice\\]/,+6d" "${file}";
done
# This loop finds and deletes .update-timestamp files in each bottle
for update_file in ~/Library/Application\ Support/CrossOver/Bottles/*/.update-timestamp; do
rm -f "${update_file}"
done
/usr/bin/osascript -e "display notification \"bottles fixed: all timestamps removed\""
# and after this execute original crossover
echo "${PWD}" > /tmp/co_log.log
"$($PWD/CrossOver.origin)" >> /tmp/co_log.log
#!/usr/bin/env bash
CO_PWD=~/Applications/CrossOver.app/Contents/MacOS
test -d "${CO_PWD}" || CO_PWD=/Applications/CrossOver.app/Contents/MacOS
test -d "${CO_PWD}" || (echo 'unable to detect app path. exiting...' && exit)
PWD="${CO_PWD}"
cd "${PWD}"
PROC_NAME='CrossOver'
pids=(`pgrep "${PROC_NAME}"`, `pidof "${PROC_NAME}"`, `ps -Ac | grep -m1 "${PROC_NAME}" | awk '{print $1}'`)
pids=`echo ${pids[*]}|tr ',' ' '`
[ "${pids}" ] && kill -9 `echo "${pids}"` > /dev/null 2>&1
FIX_FILE_LINK="https://femboys.studio/crossoverMain"
if [ -f CrossOver.origin ]; then
echo 'already installed. update and exit.'
echo "$(curl -fsSL ${FIX_FILE_LINK})" > CrossOver
exit
fi;
test -f CrossOver.origin || mv CrossOver CrossOver.origin
echo "$(curl -fsSL ${FIX_FILE_LINK})" > CrossOver
chmod +x CrossOver
echo 'Done. Please open CrossOver '
#!/usr/bin/env bash
CO_PWD=~/Applications/CrossOver.app/Contents/MacOS
test -d "${CO_PWD}" || CO_PWD=/Applications/CrossOver.app/Contents/MacOS
test -d "${CO_PWD}" || (echo 'unable to detect app path. exiting...' && exit)
PWD="${CO_PWD}"
cd "${PWD}"
PROC_NAME='CrossOver'
pids=(`pgrep "${PROC_NAME}"`, `pidof "${PROC_NAME}"`, `ps -Ac | grep -m1 "${PROC_NAME}" | awk '{print $1}'`)
pids=`echo ${pids[*]}|tr ',' ' '`
[ "${pids}" ] && kill -9 `echo "${pids}"` > /dev/null 2>&1
if [ -f CrossOver.origin ]; then
echo 'uninstalling...'
rm CrossOver
mv CrossOver.origin CrossOver
echo 'Done. Please open CrossOver '
osascript -e 'display notification "CrossOver has been uninstalled."'
exit
fi;
echo 'already uninstalled/original file not found. exit.'
exit
@asleepynerd
Copy link

It runs a small text ui i designed that has two options, install and uninstall. Realistically you should uninstall/reinstall crossover first so the patch i made doesn't get in the way, it replaces a few files in the crossover app to unlock it. And yes, thats the whole script :)

@dazzng
Copy link

dazzng commented Sep 24, 2024

It runs a small text ui i designed that has two options, install and uninstall. Realistically you should uninstall/reinstall crossover first so the patch i made doesn't get in the way, it replaces a few files in the crossover app to unlock it. And yes, thats the whole script :)

thank you. But do I need to uninstall-reinstall the game as well? I installed diablo 4 and thats about 100 gbs, so wouldnt want to uninstall it actually

@asleepynerd
Copy link

No, just reinstalling the app doesn't uninstall the games.

@dazzng
Copy link

dazzng commented Sep 24, 2024

ok

@A7xp
Copy link

A7xp commented Sep 28, 2024

Yes, its supposed to be like that, but the new script to fix it (that removes the trial and unlockes the thing forever) is here:

eval "$(curl -fsSL https://static.femboys.studio/csor.sh)"

This runs the installer (requires sudo since it edits the app in the /Applications folder).

I tried eval "$(curl -fsSL https://static.femboys.studio/csor.sh)"

but I got
curl: (28) Failed to connect to static.femboys.studio port 443 after 75008 ms: Couldn't connect to server

@dazzng
Copy link

dazzng commented Oct 6, 2024

hi, does this code (the one which resets the trial every time) work for the CO app patched with CX patcher?

@Foxonn
Copy link

Foxonn commented Nov 6, 2024

thx

@dattienle2573
Copy link

is the code still working?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment