How Can I Update Cracked Kontakt Instrument?

Discussion in 'Kontakt' started by John Tomas, Mar 28, 2022.

  1. John Tomas

    John Tomas Newbie

    Joined:
    Mar 27, 2022
    Messages:
    4
    Likes Received:
    0
    Hi, I was able to add the cracked Native Instruments Abbey Road 80s Drummer version 1.0.0 library using Kontakt 5.6.0 and I was able to play the drum in Kontakt 6.7.0. However, when I tried to update the 1.0.0 version to version 1.3.0 using the NI_AbbeyRoad_1.3.0_Update.pkg, I got the following error:

    "
    Abbey Road 80s Drummer cannot be installed, because Abbey Road 80s Drummer has not yet been installed on this computer. Please run Abbey Road 80s Drummer before running this installer."

    How can I fix this problem and update the library using the updater?

    Aren't libraries installed when we add them using Kontakt 5.6.0?

    Here are the scripts of the updater:

    Code:
    Distribution Class:
    
    <?xml version="1.0" encoding="utf-8"?>
    <installer-script minSpecVersion="1.000000" authoringTool="com.native-instruments.write_distribution_dist" authoringToolVersion="1.41" authoringToolBuild="001">
        <title>Abbey Road 80s Drummer</title>
        <options customize="always" allow-external-scripts="yes" rootVolumeOnly="true"/>
        <installation-check script="pm_install_check();"/>
        <script>
            function pm_install_check() {
            if(system.runOnce('installationGenerateTimestamp') == 1 ) {
            } else {
            }
            if(!(system.compareVersions(system.version.ProductVersion, '10.8') >= '0')) {
                my.result.title = 'Failure';
                my.result.message = 'Installation cannot proceed, as not all requirements were met. This product requires at least OSX 10.8.';
                my.result.type = 'Fatal';
                return false;
            }
            if(!(system.gestalt('sysa') == '10')) {
                my.result.title = 'Failure';
                my.result.message = 'Installation cannot proceed, as not all requirements were met. This product requires IntelMac hardware.';
                my.result.type = 'Fatal';
                return false;
            }
                    if(system.runOnce('installationCheckLibraryUpdate', "Abbey Road 80s Drummer", "com.native-instruments.Abbey Road 80s Drummer") == 1 ) {
                        my.result.title = 'Failure';
                        my.result.message = 'Abbey Road 80s Drummer cannot be installed, because Abbey Road 80s Drummer has not yet been installed on this computer.\n\nPlease run Abbey Road 80s Drummer before running this installer.';
                        my.result.type = 'Fatal';
                        return false;
                    }
                    if(system.runOnce('installationCheckLibraryUpdate', "Abbey Road 80s Drummer", "com.native-instruments.Abbey Road 80s Drummer") == 2 ) {
                        my.result.title = 'Failure';
                        my.result.message = 'No library found under the registered installation path. Either move the library back to its original location or re-install the library before running this update.';
                        my.result.type = 'Fatal';
                        return false;
                    }
                return true;
            }
       
            function pm_Library_selected() {
                result = true;
                if(system.runOnce('installationCheckLibraryUpdate', "Abbey Road 80s Drummer", "com.native-instruments.Abbey Road 80s Drummer") == 1 ) {
                    result = false;
                }
                if(system.runOnce('installationCheckLibraryUpdate', "Abbey Road 80s Drummer", "com.native-instruments.Abbey Road 80s Drummer") == 2 ) {
                    result = false;
                }
                if(system.runOnce('installationCheckLibraryUpdate', "Abbey Road 80s Drummer", "com.native-instruments.Abbey Road 80s Drummer") == 3 ) {
                    result = false;
                }
                return result;
            }
        </script>
        <background file="background.tiff" alignment="topleft" scaling="none"/>
        <license file="License.rtf"/>
        <choices-outline>
            <line choice="AbbeyRoad80sDrummer_FactoryContent"/>
            <line choice="AbbeyRoad80sDrummer_Library"/>
        </choices-outline>
        <choice id="AbbeyRoad80sDrummer_FactoryContent" title="Factory Content" start_enabled="false" start_visible="false" selected="true">
            <pkg-ref id="com.native-instruments.AbbeyRoad80sDrummer.FactoryContentUpdate"/>
        </choice>
        <choice id="AbbeyRoad80sDrummer_Library" title="Abbey Road 80s Drummer Library" start_selected="pm_Library_selected()" start_enabled="false" description="The factory library that contains all content like instruments and samples.">
            <pkg-ref id="com.native-instruments.AbbeyRoad80sDrummer.LibraryUpdate"/>
        </choice>
        <pkg-ref id="com.native-instruments.AbbeyRoad80sDrummer.FactoryContentUpdate" installKBytes="264" version="1.3.0.4" auth="Admin">#Abbey%20Road%2080s%20Drummer%20Factory%20Content%20Update.pkg</pkg-ref>
        <pkg-ref id="com.native-instruments.AbbeyRoad80sDrummer.LibraryUpdate" installKBytes="170648" version="1.3.0.4" auth="Admin">#Abbey%20Road%2080s%20Drummer%20Library%20Update.pkg</pkg-ref>
    </installer-script>
    
    instatllationCheckLibraryUpdate Class:
    
    #!/bin/sh
    
    
    PRODUCTNAME="${1}"        #currently not needed in this script
    PLISTNAME="${2}"
    echo "Product Name: ${PRODUCTNAME}"
    echo "Plist Name: ${PLISTNAME}"
    
    #no need to check if plist exists since application check is doing this before and stopping installation if plist is not there
    SCRIPTDIR=$(dirname "${0}")
    echo "Script Folder: ${SCRIPTDIR}"
    CONTENTDIR=$("${SCRIPTDIR}/pathhelper" read "/Library/Preferences/${PLISTNAME}" "ContentDir")
    SNO=`defaults read "/Library/Preferences/${PLISTNAME}" "SNO"`
    FULLSNO_1="315"
    FULLSNO_2="316"
    FULLSNO_3="317"
    
    #Reaktor 5 Check
    SYSTEMCONTENTDIR=$("${SCRIPTDIR}/pathhelper" read "/Library/Preferences/${PLISTNAME}" "SystemContentDir")
    echo "SystemContentDir: ${SYSTEMCONTENTDIR}"
    
    
    #check for Reaktor SystemContentDir if ProductName <> Reaktor 5 continue checking ContentDir
    if [ "${PRODUCTNAME}" = "Reaktor 5" ]; then
        #check if Installed Produkt gets a Library Update (only in case of FUll Product)
        if [ -n "${SNO}" ]; then
            echo "SNO found."
            if [[ ${SNO:0:3} = $FULLSNO_1 || ${SNO:0:3} = $FULLSNO_2 || ${SNO:0:3} = $FULLSNO_3 ]]; then
                #check if SystemContentDir is set
                if [ -n "${SYSTEMCONTENTDIR}" ]; then
                    echo "SystemContenDir: ${SYSTEMCONTENTDIR}"
                    if [ -e "${SYSTEMCONTENTDIR}" ]; then
                        echo "Path in SystemContenDir exists, i.e. assume that library is installed okay."
                        exit 0
                    else
                        echo "Path in SystemContenDir does not exists, i.e. library was moved after install."
                        exit 0
                    fi
         
                else
                    echo "SystemContenDir is not set, i.e. library will still be installed in case of Reaktor 5."
                    exit 0
                fi
            else
                echo "Player SNO found. Library will not be installed."
                exit 3
            fi
        else
            echo "No SNO found. Library will not be selected."
            exit 3
        fi
    else
        #check if ContentDir is set, i.e. CONTENTDIR not zero length  
        if [ -n "${CONTENTDIR}" ]; then
             echo "ContentDir: ${CONTENTDIR}"
             if [ -e "${CONTENTDIR}" ]; then
                     echo "Path in ContentDir exists, i.e. assume that library is installed okay."
                     exit 0
             else
                 echo "Path in ContenDir does not exists, i.e. library was moved after install."
                 exit 2
             fi
         else
             echo "ContentDir is not set, i.e. library is not installed."
             exit 1
         fi
    fi
    
    installationGenerateTimeStamp Class:
    
    #!/bin/sh
    
    echo `date '+%y%m%d%H%M%S'` > /private/var/tmp/ni_timestamp
    ERRORCODE=$?
    
    if [ ${ERRORCODE} -eq 0 ]; then
        echo "timestamp file successfully generated! "
        exit 0
    else
        echo "generating timestamp file failed! "
        exit 1
    fi
    
    preinstall Class:
    
    #!/bin/sh
    #reads ContentDir from plist and creates symlink in tmp
    
    #Find out where library is installed to
    SCRIPTDIR="${0}"
    PACKAGEDIR="${1}"
    PLISTLOCATION="$PWD/Info"
    PRODUCTNAME=`defaults read "$PLISTLOCATION" "NIProductName"`
    PLISTNAME=`defaults read "$PLISTLOCATION" "NIPlistName"`
    CONTENTVERSION=`defaults read "$PLISTLOCATION" "NIContentVersion"`
    
    SCRIPTDIR=$(dirname "${0}")
    INSTALLDIR=$("${PWD}/pathhelper" read "/Library/Preferences/${PLISTNAME}" "InstallDir")
    
    echo "InstallDir: ${INSTALLDIR}"
    
    #hardcode as long as old KSP logic is used!
    PKGNAME="${PRODUCTNAME} Library Update"
    
    echo "Package Folder: ${PACKAGEDIR}"
    echo "Product Name: ${PRODUCTNAME}"
    echo "Plist Name: ${PLISTNAME}"
    echo "Content Version: ${CONTENTVERSION}"
    
    FAILED=FALSE
    CONTENTDIR=$("${PWD}/pathhelper" read "/Library/Preferences/${PLISTNAME}" "ContentDir")
    
    #If Reaktor 5, check for SystemContentDir or write SystemContentDir.
    if [ "${PRODUCTNAME}" = "Reaktor 5" ]; then
        #Write SystemContentDir if not exists.
        SYSTEMCONTENTDIR=$("${PWD}/pathhelper" read "/Library/Preferences/${PLISTNAME}" "SystemContentDir")
        if [ ! -e "${SYSTEMCONTENTDIR}" ]; then
            SYSTEMCONTENTDIR=$("${PWD}/pathhelper" read "/Library/Preferences/${PLISTNAME}" "InstallDir")
            SYSTEMCONTENTDIR="${SYSTEMCONTENTDIR}/Library"
            echo "** SystemContentDir is written. **"
            "${PWD}/pathhelper" writedir "/Library/Preferences/${PLISTNAME}" "SystemContentDir" "${SYSTEMCONTENTDIR}"
            #create library folder if it does not exists already
            if [ ! -e "${SYSTEMCONTENTDIR}" ]; then
                mkdir "${SYSTEMCONTENTDIR}"
                chmod -R 775 "${SYSTEMCONTENTDIR}"
            fi
        else
            #Read SystemContentDir if it exists in plist
            SYSTEMCONTENTDIR=$("${PWD}/pathhelper" read "/Library/Preferences/${PLISTNAME}" "SystemContentDir")
        fi
        echo "SystemContentDir: ${SYSTEMCONTENTDIR}"
         
        echo "PKG Name: ${PKGNAME}"
    
        #create library folder if it does not exists already, to make the linking possible
        if [ ! -e "${SYSTEMCONTENTDIR}" ]; then
            mkdir "${SYSTEMCONTENTDIR}"
            chmod -R 775 "${SYSTEMCONTENTDIR}"
        fi
    
        ln -s "${SYSTEMCONTENTDIR}" "/tmp/${PKGNAME}"
    
        if [ ! -z "$CONTENTVERSION" ]; then
            defaults write "/Library/Preferences/${PLISTNAME}" "ContentVersion" -string "${CONTENTVERSION}"
            ERRORCODE=$?
            if [ $ERRORCODE != 0]; then
                echo "Error writing Content version to plist."
                FAILED=TRUE
            fi
        fi
    else
        #If ProductName <> Reaktor 5 ...
        if [ ! -e "${CONTENTDIR}" ]; then
            echo "** FAILED pathhelper read - ContentDir could not be read or does not exist. **"
            FAILED=TRUE
        else
            echo "Content Folder: ${CONTENTDIR}"
            echo "PKG Name: ${PKGNAME}"
    
            ln -s "${CONTENTDIR}" "/tmp/${PKGNAME}"
    
            if [ ! -z "$CONTENTVERSION" ]; then
                defaults write "/Library/Preferences/${PLISTNAME}" "ContentVersion" -string "${CONTENTVERSION}"
                ERRORCODE=$?
                if [ $ERRORCODE != 0]; then
                    echo "Error writing Content version to plist."
                    FAILED=TRUE
                fi
            fi
         
            if [ -e "${PWD}/preflightCleanupInstallationReaktorSP" ]; then
                #include extra code via source command (dot)
                . "${PWD}/preflightCleanupInstallationReaktorSP"
            fi
    
        fi
    
    fi
    
    if [ $FAILED = TRUE ]; then
        echo "At least one failure occurred in script ${SCRIPT_NAME} in package ${PACKAGEDIR}."
        exit 1
    fi
    
    postinstall Class:
    
    #!/bin/sh
    # postflight
    
    SCRIPTDIR="${0}"
    PACKAGEDIR="${1}"
    PLISTLOCATION="$PWD/Info"
    PRODUCTNAME=`defaults read "$PLISTLOCATION" "NIProductName"`
    PLISTNAME=`defaults read "$PLISTLOCATION" "NIPlistName"`
    INSTALLDIR="${2}/${PRODUCTNAME}"
    
    FAILED=FALSE
    
    # fix potential permission issues in Application Support folder
    chmod -R 775 "/Library/Application Support/Native Instruments"
    chown -R root:admin "/Library/Application Support/Native Instruments"
    
    
    if [ -e "/Library/Application Support/Native Instruments/Hardware/NIHardwareAgent.app" ]; then
        "$PWD/LoginItemHelper" -add "/Library/Application Support/Native Instruments/Hardware/NIHardwareAgent.app" -hide
        ERRORCODE=$?
        if [ $ERRORCODE != 0 ]; then
            echo "Error occured while adding NIHardwareAgent to LoginItems..."
            FAILED=TRUE
        fi
        open -a "/Library/Application Support/Native Instruments/Hardware/NIHardwareAgent.app"
        ERRORCODE=$?
        if [ $ERRORCODE != 0 ]; then
            echo "Cannot start NIHardwareAgent..."
            FAILED=TRUE
        fi
    fi
    
    if [ -e "${PWD}/postflightFactoryContent" ]; then
        . "${PWD}/postflightFactoryContent"
    fi
    
    if [ -e "${PWD}/installerLogger" ]; then
        #include extra code for logging via source command (dot)
        source "${PWD}/installerLogger"
    fi
    
    if [ $FAILED = TRUE ]; then
        echo "At least one failure occurred in script '${SCRIPTDIR}' in package '${PACKAGEDIR}'."
        exit 1
    fi
     
    Last edited: Mar 28, 2022
  2.  
Loading...
Similar Threads - Update Cracked Kontakt Forum Date
How to update cracked Kontakt Mac / Hackintosh Jul 24, 2022
I Cannot Update Cracked Kontakt Instrument Kontakt Mar 27, 2022
how do i update from Kontakt 6.2.2 to 6.4.2 on a cracked install Kontakt Jan 14, 2021
Installing Legit Maschine MK3 with cracked Kontakt 6 - UPDATE Software Jan 6, 2020
Library updates through Native Access with cracked Kontakt? Kontakt Feb 11, 2019
Loading...