#!/bin/bash # Logfile LOGFILE="$HOME/box_install.log" touch "$LOGFILE" || { echo "[FATAL] Cannot write to $LOGFILE. Check permissions." >&2 exit 1 } # Helper functions get_arch() { case "$(uname -m)" in x86_64) echo "amd64" ;; aarch64) echo "arm64" ;; armv7l|armv6l) echo "armhf" ;; *) uname -m ;; esac } is_arch() { local current_arch current_arch="$(get_arch)" if [[ "$current_arch" == "$1" ]]; then return 0 else return 1 fi } log() { echo "[INFO] $*" | tee -a "$LOGFILE" } err() { echo "[ERROR] $*" | tee -a "$LOGFILE" >&2 } # Add box64 repo log "Adding box64 repository..." if ! sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list >>"$LOGFILE" 2>&1; then err "Failed to download box64.list" fi if ! wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg >>"$LOGFILE" 2>&1; then err "Failed to download or add KEY.gpg for box64" fi # Add box86 repo log "Adding box86 repository..." if ! sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list >>"$LOGFILE" 2>&1; then err "Failed to download box86.list" fi if ! wget -qO- https://ryanfortner.github.io/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg >>"$LOGFILE" 2>&1; then err "Failed to download or add KEY.gpg for box86" fi # Check if arch is amd64, and if so add armhf dpkg for box86 to work if is_arch "amd64"; then log "64-bit system detected. Enabling armhf support for box86..." if ! sudo dpkg --add-architecture armhf >>"$LOGFILE" 2>&1; then err "Failed to add armhf architecture" fi fi # Update apt packge index log "Updating apt package index..." if ! sudo apt update >>"$LOGFILE" 2>&1; then err "Failed to update apt package list" fi log "Script completed successfully, box86 and box64 repos installed."