#!/usr/bin/env bash # Antigravity CLI - Universal Xiaomi/Termux Fix (V8 - Pro Performance) set -e BOLD="\033[1m" GREEN="\033[32m" CYAN="\033[36m" RED="\033[31m" RESET="\033[0m" AGY_HOME="$HOME/.antigravity-termux" BIN_DEST="$PREFIX/bin/agy" URL="https://github.com/wallentx/antigravity-cli-termux/releases/latest/download/antigravity-termux-standalone.tar.gz" echo -e "${CYAN}${BOLD}Antigravity CLI - Xiaomi/Termux Installer${RESET}" echo -e "------------------------------------------" # 1. Dependency Setup echo -e "${CYAN}[1/4]${RESET} Updating packages..." pkg update -y pkg install -y glibc-repo pkg update -y pkg install -y glibc qemu-user-aarch64 curl tar util-linux # 2. Download Engine echo -e "${CYAN}[2/4]${RESET} Downloading patched engine..." mkdir -p "$AGY_HOME/bin" "$AGY_HOME/lib" curl -fL "$URL" | tar -xzf - -C "$AGY_HOME" agy.va39 mv -f "$AGY_HOME/agy.va39" "$AGY_HOME/bin/agy.engine" # 3. Library Shim echo -e "${CYAN}[3/4]${RESET} Setting up library shims..." ln -sf "$PREFIX/glibc/lib/"* "$AGY_HOME/lib/" rm -f "$AGY_HOME/lib/libc.so" ln -sf "$PREFIX/glibc/lib/libc.so.6" "$AGY_HOME/lib/libc.so" # 4. The Launcher (Safe Pro Performance V8.1 - Extreme Edition) echo -e "${CYAN}[4/4]${RESET} Creating high-performance launcher..." cat << 'EOF' > "$AGY_HOME/agy.sh" #!/usr/bin/env bash export AGY_HOME="$HOME/.antigravity-termux" export LD_PRELOAD="" unset LD_LIBRARY_PATH export SSL_CERT_FILE="$PREFIX/etc/tls/cert.pem" # Clear the terminal screen before launching clear 2>/dev/null || true # Performance optimization settings export QEMU_CPU=max export QEMU_TB_SIZE=256 # Larger TB cache for complex operations export GOGC=200 # Relaxed GC for speed export GODEBUG=netdns=go # Optimized DNS export LD_BIND_NOW=1 # Pre-resolve symbols for execution speed export MALLOC_ARENA_MAX=2 # Reduce memory fragmentation # Auto-detect total RAM to scale GOMEMLIMIT safely total_mem_kb=$(grep MemTotal /proc/meminfo | awk '{print $2}') if [ -n "$total_mem_kb" ]; then if [ "$total_mem_kb" -gt 8000000 ]; then export GOMEMLIMIT=2048MiB elif [ "$total_mem_kb" -gt 4000000 ]; then export GOMEMLIMIT=1536MiB else export GOMEMLIMIT=1024MiB fi else export GOMEMLIMIT=1024MiB fi # Auto-detect high-performance "big" CPU cores max_freq=0 big_cores="" for f in /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq; do freq=$(cat "$f" 2>/dev/null || echo 0) if [ "$freq" -gt "$max_freq" ]; then max_freq=$freq fi done if [ "$max_freq" -gt 0 ]; then core_idx=0 count=0 for f in /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq; do freq=$(cat "$f" 2>/dev/null || echo 0) if [ "$freq" -eq "$max_freq" ]; then if [ -n "$big_cores" ]; then big_cores="$big_cores,$core_idx" else big_cores="$core_idx" fi count=$((count + 1)) fi core_idx=$((core_idx + 1)) done # Align Go threads with big core count export GOMAXPROCS=$count fi if [ -z "$big_cores" ]; then big_cores="4-7" export GOMAXPROCS=4 fi # Run using taskset and nice for priority TASKSET_CMD="" if command -v taskset >/dev/null 2>&1; then TASKSET_CMD="taskset -c $big_cores" fi NICE_CMD="" if command -v nice >/dev/null 2>&1; then NICE_CMD="nice -n -5" # Try to get higher priority fi # Directly run via qemu-aarch64 exec $NICE_CMD $TASKSET_CMD qemu-aarch64 "$AGY_HOME/lib/ld-linux-aarch64.so.1" --library-path "$AGY_HOME/lib" "$AGY_HOME/bin/agy.engine" "$@" EOF chmod +x "$AGY_HOME/agy.sh" ln -sf "$AGY_HOME/agy.sh" "$BIN_DEST" echo -e "------------------------------------------" echo -e "${GREEN}${BOLD}Success! Ultimate Performance Fix Applied.${RESET}" # Print allocated memory total_mem_kb=$(grep MemTotal /proc/meminfo | awk '{print $2}') if [ -n "$total_mem_kb" ]; then if [ "$total_mem_kb" -gt 8000000 ]; then allocated_mem="2048MiB (2.0 GB)" elif [ "$total_mem_kb" -gt 4000000 ]; then allocated_mem="1536MiB (1.5 GB)" else allocated_mem="1024MiB (1.0 GB)" fi else allocated_mem="1024MiB (1.0 GB)" fi echo -e "Memory Allocated (GOMEMLIMIT): ${CYAN}${allocated_mem}${RESET}" "$AGY_HOME/agy.sh" --version