#!/bin/bash # # Maya Auto-Patcher # Detects version, applies patches, verifies installation # set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" PATCHER_BIN="$PROJECT_DIR/core/maya_patcher" PATCH_DB="$PROJECT_DIR/config/patches.json" echo "=== Maya Auto-Patcher ===" echo "" # Detect Maya version echo "Step 1: Detecting Maya installation..." MAYA_INFO=$(python3 "$PROJECT_DIR/updater/detect_maya.py" 2>/dev/null | python3 -c " import sys, json for line in sys.stdin: if line.startswith('{'): data = json.loads(line) if data.get('found') and data.get('installations'): inst = data['installations'][0] print(f\"{inst['version']}|{inst['path']}\") sys.exit(0) print('NOT_FOUND|') ") if [[ "$MAYA_INFO" == "NOT_FOUND|"* ]]; then echo "ERROR: No Maya installation found!" exit 1 fi MAYA_VERSION=$(echo "$MAYA_INFO" | cut -d'|' -f1) MAYA_PATH=$(echo "$MAYA_INFO" | cut -d'|' -f2) echo " Found Maya $MAYA_VERSION at $MAYA_PATH" echo "" # Check if patcher is built if [[ ! -f "$PATCHER_BIN" ]]; then echo "Step 2: Building patcher..." cd "$PROJECT_DIR/core" gcc -Wall -o maya_patcher maya_patcher.c -ljson-c echo " Patcher built successfully" echo "" fi # Apply patches echo "Step 3: Applying patches for Maya $MAYA_VERSION..." $PATCHER_BIN "$MAYA_VERSION" "$PATCH_DB" PATCH_RESULT=$? if [[ $PATCH_RESULT -eq 0 ]]; then echo "" echo "✓ Patches applied successfully!" else echo "" echo "✗ Some patches failed to apply" exit 1 fi # Verify patches echo "" echo "Step 4: Verifying patches..." LIB_PATH="/usr/autodesk/maya${MAYA_VERSION}/lib/libAdskLicensingSDK.so.10.0.1.66" if [[ -f "$LIB_PATH.backup" ]]; then echo " Backup exists: $LIB_PATH.backup" # Compare files to ensure they're different if ! cmp -s "$LIB_PATH" "$LIB_PATH.backup"; then echo " ✓ Library has been modified (different from backup)" else echo " ✗ Library appears unchanged!" exit 1 fi else echo " Warning: No backup found" fi echo "" echo "=== Auto-Patch Complete ===" echo "" echo "Maya $MAYA_VERSION has been patched." echo "You can now launch Maya without license validation." echo "" echo "To restore original library:" echo " cp $LIB_PATH.backup $LIB_PATH"