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.' |
thanks
thanks
Worked?
I need to install Crossover first and them run this script, right?
when will this be updated for 24.01?
Does not work for Crossover v24
If you are getting "this is an evaluation version of crossover", you can just simply add
# clear data in .red
for file in ~/Library/Application\ Support/CrossOver/Bottles/*/system.reg;
do sed -i -e "/^\\[Software\\\\\\\\CodeWeavers\\\\\\\\CrossOver\\\\\\\\cxoffice\\]/,+6d" "${file}"; done
To the end of the code
Does not work for Crossover v24
Just delete 4 lines after
[Software\\CodeWeavers\\CrossOver\\cxoffice]
#time=...
"InstallTime"=...
"NagTime"=...
"Version"=...
in
/Users/glazomer/Library/Application Support/CrossOver/Bottles/Steam/system.reg
Could not determine installation date, Please uninstall CrossOver and reinstall it again.
Does not work for Crossover v24
Just delete 4 lines after [Software\\CodeWeavers\\CrossOver\\cxoffice] #time=... "InstallTime"=... "NagTime"=... "Version"=...
in
/Users/glazomer/Library/Application Support/CrossOver/Bottles/Steam/system.reg
I get "Could not determine installation date, Please uninstall CrossOver and reinstall it again." after doing what you suggested, any fix?
Just renewed Crossover (Version 23.7 (23.7.0.36580)) with the help of the above script. While it didn't run successfully on my computer, one can do the following to extend the trial:
- Delete
~/Library/Preferences/com.codeweavers.CrossOver.plist
(you don't actually need to change the date)- Delete
~/Library/Application\ Support/CrossOver/Bottles/*/.update-timestamp
- Delete the whole section start with
Software\\CodeWeavers\\CrossOver
in~/Library/Application\ Support/CrossOver/Bottles/*/system.reg
. Check djsmax's comment if you don't know how to do this.Prefer not to publish a script for this for legal reason, but hope this helps for any user with the same need.
It did work! Thank you!
I have created an update script to adapt to these changes. This link shouldn't change unless I have specified here:
bash -c "$(curl -fsSL https://femboys.studio/crossover)"
I will continue to update this script as crossover evolves.
As of now, this script completely fixes the trial issue, and the bottle issue.
I have created an update script to adapt to these changes. This link shouldn't change unless I have specified here:
bash -c "$(curl -fsSL https://femboys.studio/crossover)"
I will continue to update this script as crossover evolves.
As of now, this script completely fixes the trial issue, and the bottle issue.
let's goo!!
Created a new gist for people to star, and to get updates for:
https://gist.github.com/ellsies/e9383c75fd8cd8d5781dac91d7e2360d
Vouch for @ellsies, script works
NGL, adding 4 lines doesn't really justify the donation links you added, especially since it's otherwise the same as this Gist...
Appreciate you spending time to automate the process, but c'mon.
PSA: Do not use @Ellises' script. It downloads a completely random version from their website, which may contain spyware/malware, and will definitely replace your newer version of the app in the future, when you eventually upgrade and they forget to do so. An absolute no-go for a place like github.
@BoratTheGreatest You are more than able to the the source of the script at https://femboys.studio/crossover and https://femboys.studio/crossoverMain.
These are the only 2 urls used to access the script, and they are completely unencrypted. There is no external tools used apart from bash commands at most.
Neither of these URLs are binary executables, they are bash scripts with the extension removed. You can check this by downloading the file, either by using cURL or the web browser, and opening the file with the text editor.
EDIT: Updated to the correct URLs.
@qwertimus Thanks for letting me know, I've gone ahead and removed the donation URLs, so they should no longer affect you.
@BoratTheGreatest For reference these are the file sources:
https://femboys.studio/crossover (install.sh)
#!/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 '
https://femboys.studio/crossoverMain (Crossover.sh)
#!/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
Please let me know if you have anymore worries.
@BoratTheGreatest Also for reference heres the uninstall command:
bash -c "$(curl -fsSL https://femboys.studio/uninstall)"
With the following source (uninstall.sh):
#!/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
Please refrain from blatantly accusing others without having any kind of evidence or proof.
is it supposed to say zsh : command not found :
Hi can anyone please tell me what to do with steps? I'm new here
you guys think the codeweavers team will find out about all of this and patch it
Don't delete it ;p
you guys think the codeweavers team will find out about all of this and patch it
They already found out, when i made my version of the script, they notified me about it and ask me to remove it.
oof!, is it safe to assume they would patch it soon? is it safe to update to the latest version?, deleting bottle install date and changing install first launch date have been working flawlessly
you guys think the codeweavers team will find out about all of this and patch it
They already found out, when i made my version of the script, they notified me about it and ask me to remove it.
oof!, is it safe to assume they would patch it soon? is it safe to update to the latest version?, deleting bottle install date and changing install first launch date have been working flawlessly
It's been several months, no patch yet
Is there any option to disable auto update?
you guys think the codeweavers team will find out about all of this and patch it
They already found out, when i made my version of the script, they notified me about it and ask me to remove it.
oof!, is it safe to assume they would patch it soon? is it safe to update to the latest version?, deleting bottle install date and changing install first launch date have been working flawlessly
It's been several months, no patch yet
so its safe to update then? what are the actual improvements on the latest version?
I can't see the /Bottles/ part it ends in CrossOver folder and don't have any Bottles folder inside of it