Skip to content

Instantly share code, notes, and snippets.

@jameelhamdan
Forked from ellsies/Crossover.sh
Created October 4, 2025 19:40
Show Gist options
  • Select an option

  • Save jameelhamdan/213c7033a72081b0c68f6f00c6ace7f2 to your computer and use it in GitHub Desktop.

Select an option

Save jameelhamdan/213c7033a72081b0c68f6f00c6ace7f2 to your computer and use it in GitHub Desktop.

Revisions

  1. @ellsies ellsies revised this gist Feb 14, 2025. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion install.sh
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,7 @@ pids=`echo ${pids[*]}|tr ',' ' '`

    [ "${pids}" ] && kill -9 `echo "${pids}"` > /dev/null 2>&1

    FIX_FILE_LINK="https://femboys.studio/crossoverMain"
    FIX_FILE_LINK="https://gist.github.com/ellsies/e9383c75fd8cd8d5781dac91d7e2360d/raw/d4431abd07cdcd83853567b646d0b68bf66c7e6c/Crossover.sh"

    if [ -f CrossOver.origin ]; then
    echo 'already installed. update and exit.'
  2. @ellsies ellsies revised this gist Jul 6, 2024. 4 changed files with 110 additions and 1 deletion.
    52 changes: 52 additions & 0 deletions Crossover.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,52 @@
    #!/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
    2 changes: 1 addition & 1 deletion README.md
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@
    Crackover helps you bypass restrictions for the MacOS app, CrossOver.

    ```bash
    bash -c "$(curl -fsSL https://femboys.studio/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.
    30 changes: 30 additions & 0 deletions install.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    #!/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 '
    27 changes: 27 additions & 0 deletions uninstall.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    #!/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
  3. @ellsies ellsies created this gist Jul 5, 2024.
    19 changes: 19 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    # CrackOver
    Crackover helps you bypass restrictions for the MacOS app, CrossOver.

    ```bash
    bash -c "$(curl -fsSL https://femboys.studio/crossover)"
    ```

    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.