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.' |
I would also recommend reading the thread on here to see specifics of how crossover's license checks work instead of relying on AI, as your solution is flawed in many ways.
This looks like straight ChatGPT/LLM/chat bot code. Why would you put emojis/emoticons in a script?
Actually, yes, it's straight code from a chatbot. I didn't have much time to understand the specifics of how Crossover's license checks work (sorry about that), and the script was failing without any error message. I instructed the chatbot to add debug messages, and for some unknown reason, the brew install pidof
command was failing. The chatbot suggested using the MacBook's native command, and I agreed. After that, the script was working fine.
By the way, the emojis appear in the debug messages in the terminal when running the script. I didn’t ask the chatbot for emojis, but it’s actually quite cool.
I have 2 bottles, Diablo IV and POE2. However, only Diablo IV bottle was resetted, and POE2 not.
I'm using version 2.0.7. It turns out that I have to convert the binary plist to XML and then convert it back to make the script work.
# modify time in order to reset trial
plutil -convert xml1 ~/Library/Preferences/com.codeweavers.CrossOver.plist
plutil -replace FirstRunDate -date "${DATETIME}" ~/Library/Preferences/com.codeweavers.CrossOver.plist
plutil -replace SULastCheckTime -date "${DATETIME}" ~/Library/Preferences/com.codeweavers.CrossOver.plist
plutil -convert binary1 ~/Library/Preferences/com.codeweavers.CrossOver.plist
Excuse me, do u know how to do that in Linux?
@-iMac ~ % bash -c "$(curl -fsSL https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh?token=$(date +%s))"
zsh: no matches found: https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh?token=1742190633
I put this in the terminal right? How can I fix this?
For me it works perfectly when I close CrossOver and delete this file ~/Library/Preferences/com.codeweavers.CrossOver.plist . Then I launch it and it shows 14 days left again...
Can someone tell me how to use this? When I copy the code in README.sh and run it in console, it just said "no matches found: https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh?token=1742667277".
Just want to know how to get it work.
@-iMac ~ % bash -c "$(curl -fsSL https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh?token=$(date +%s))" zsh: no matches found: https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh?token=1742190633
I put this in the terminal right? How can I fix this?
The code needs to be properly escaped. Hopefully @santaklouse fixes this soon. This is the fix,
bash -c "$(curl -fsSL 'https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh?token='$(date +%s))"
just follow the instructions here https://github.com/Nygosaki/crossover-trial-renew
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Nygosaki/crossover-trial-renew/refs/heads/main/resetCrossoverTrial.sh)"
I've run both this code and Nygosaki's code, but my crossover trail didn't refresh.
Is these code not working on crossover 25, or did I miss something?
Used it two weeks ago, but now it seems the com.codeweavers.CrossOver.plist has disappeared and the reset doesn't work any more...
just follow the instructions here https://github.com/Nygosaki/crossover-trial-renew
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Nygosaki/crossover-trial-renew/refs/heads/main/resetCrossoverTrial.sh)"
bottles are not resseted, and there is no additional instructions in your gist
@WoodWithFire @Slay33r @xyanid2015
After you fully quit crossover (through activity monitor if necessary), run the script, and reopened crossover, could you send the file ~/Library/Preferences/com.codeweavers.CrossOver.plist
and ~/Library/Application Support/CrossOver/Bottles/.../system.reg
?
@Nygosaki Hey, looks like they have changed folders paths or the whole system idk
➜ Documents bash -c "$(curl -fsSL https://raw.githubusercontent.com/Nygosaki/crossover-trial-renew/refs/heads/main/resetCrossoverTrial.sh)"
No CrossOver processes found.
FirstRunDate not found in plist file. Deletion successful.
grep: /Users/*****/Library/Application Support/CrossOver/Bottles/*/system.reg: No such file or directory
Bottle trial reset successful.
@FewJuho hm... could you check the paths I mentioned in my prior message? If you still have access to cross over, could you click the "open C drive" button in one of your bottles and tell me the path of one of the files in there (right click, get info)?
Actually, I might see the issue. @FewJuho just to verify, could you send a screenshot of the output?
I'm using CrossOver 25.0.0.38553. I had created some bottles for test but now I already deleted all bottles. I didn't install the script, but just ran [CrossOver.sh] to modify plist file and reset bottles. However each time I started CrossOver, the FirstRunDate in plist file would be reverted and CrossOver said the trial has x remaining days (x is exactly the right number). It seems like CrossOver records the FirstRunDate somewhere else and reverts the plist file in its startup. Any idea to fix this? Thanks so much.
just follow the instructions here https://github.com/Nygosaki/crossover-trial-renew
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Nygosaki/crossover-trial-renew/refs/heads/main/resetCrossoverTrial.sh)"
bottles are not resseted, and there is no additional instructions in your gist
Seconding this issue
@FewJuho @supahfox are both of you on linux?
The script was made with the macos version in mind. If you could open the C: drive of a bottle, navigate from there to base crossover directory, and then dump the entire folder into a zip and upload it here I can modify it to work on linux.
If you are using macos, please try using terminal instead.
iam on macos sequoia rn using Iterm2, maybe paths depends on CrossOver version? (25.0.0)
@FewJuho @supahfox are both of you on linux? The script was made with the macos version in mind. If you could open the C: drive of a bottle, navigate from there to base crossover directory, and then dump the entire folder into a zip and upload it here I can modify it to work on linux. If you are using macos, please try using terminal instead.
macos sequoia 15.4
I see. Considering I've had crossover since way before 25, I am thinking that my paths might be outdated. I am currently on vacation, once I return I'll reinstall it and check things out.
works in combination with https://github.com/Ghost420-over/crackover/blob/main/Reset_Crossover_bottles.command to update the bottles system.reg file. (had to modify both scripts to suite my setup)
I am on macos 15.4
all i did:
brew install pidof
sudo bash -c "$(curl -fsSL https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh)"
bosh 👍
This looks like straight ChatGPT/LLM/chat bot code. Why would you put emojis/emoticons in a script?
This code runs a loop that kills some pids but never exits successfully. After killing manually, it doesn't fix the issue.