#!/bin/sh # Apply Bananarchy prebuilt binaries, DTBs, panel firmwares, artwork, and Sxmo 240x320 overlay to a target rootfs set -eu BASE_DIR="$(cd "$(dirname "$0")/.." && pwd)" TARGET_ROOTFS="${1:-${ROOTFS_DIR:-$BASE_DIR/rootfs}}" DEVICE="${2:-nokia-argon}" if [ ! -d "$TARGET_ROOTFS" ]; then echo "Error: Target rootfs directory does not exist: $TARGET_ROOTFS" >&2 exit 1 fi case "$DEVICE" in nokia-argon|argon) DEVICE="nokia-argon" DTB_FILE="qcom-msm8905-nokia-argon.dtb" ;; nokia-beatles|beatles) DEVICE="nokia-beatles" DTB_FILE="qcom-msm8905-nokia-beatles.dtb" ;; nokia-tough|nokia-coconut|tough|coconut) DEVICE="nokia-tough" DTB_FILE="qcom-msm8905-nokia-coconut.dtb" ;; nokia-sparkler|sparkler) DEVICE="nokia-sparkler" DTB_FILE="qcom-msm8909-nokia-sparkler.dtb" ;; nokia-leo|leo) DEVICE="nokia-sparkler" DTB_FILE="qcom-msm8909-nokia-leo.dtb" ;; *) echo "Error: Unsupported device '$DEVICE'." >&2 echo "Supported devices: nokia-argon, nokia-beatles, nokia-tough, nokia-sparkler, nokia-leo" >&2 exit 1 ;; esac echo "[1/4] Installing Bananarchy rootfs overlay (artwork, branding, Sxmo 240x320, UCM, udev)..." rm -f "$TARGET_ROOTFS/usr/bin/bantam" "$TARGET_ROOTFS/usr/local/bin/bantam" "$TARGET_ROOTFS/etc/doas.d/wheel.conf" cp -af "$BASE_DIR/overlay/rootfs/." "$TARGET_ROOTFS/" chown 0:0 "$TARGET_ROOTFS/etc/doas.d/50-sxmo.conf" 2>/dev/null || true chmod 640 "$TARGET_ROOTFS/etc/doas.d/50-sxmo.conf" 2>/dev/null || true echo "[2/4] Installing prebuilt QDSP6/Q6Voice kernel modules, torch LED module, camera module, and DTBs..." if [ -d "$TARGET_ROOTFS/lib/modules/6.12.1-msm8916/kernel/sound/soc/qcom/qdsp6" ]; then cp -af "$BASE_DIR/prebuilt/kernel-6.12.1-msm8916/qdsp6/"*.ko* \ "$TARGET_ROOTFS/lib/modules/6.12.1-msm8916/kernel/sound/soc/qcom/qdsp6/" fi if [ -d "$BASE_DIR/prebuilt/kernel-6.12.1-msm8916/leds" ] && \ [ -d "$TARGET_ROOTFS/lib/modules/6.12.1-msm8916/kernel/drivers/leds" ]; then cp -af "$BASE_DIR/prebuilt/kernel-6.12.1-msm8916/leds/"*.ko* \ "$TARGET_ROOTFS/lib/modules/6.12.1-msm8916/kernel/drivers/leds/" fi if [ -d "$BASE_DIR/prebuilt/kernel-6.12.1-msm8916/camera" ] && \ [ -d "$TARGET_ROOTFS/lib/modules/6.12.1-msm8916/kernel/drivers" ]; then mkdir -p "$TARGET_ROOTFS/lib/modules/6.12.1-msm8916/kernel/drivers/media/platform/qcom/camss" cp -af "$BASE_DIR/prebuilt/kernel-6.12.1-msm8916/camera/"*.ko* \ "$TARGET_ROOTFS/lib/modules/6.12.1-msm8916/kernel/drivers/media/platform/qcom/camss/" fi mkdir -p "$TARGET_ROOTFS/boot/dtbs" cp -af "$BASE_DIR/prebuilt/kernel-6.12.1-msm8916/dtbs/"*.dtb "$TARGET_ROOTFS/boot/dtbs/" cp -af "$BASE_DIR/prebuilt/kernel-6.12.1-msm8916/dtbs/$DTB_FILE" "$TARGET_ROOTFS/boot/$DTB_FILE" echo "[3/4] Installing prebuilt multi-mode fcitx5-t9 and Bantam AI agent..." cp -af "$BASE_DIR/prebuilt/fcitx5-t9/usr/." "$TARGET_ROOTFS/usr/" cp -af "$BASE_DIR/prebuilt/bantam/bantam" "$TARGET_ROOTFS/usr/bin/bantam" cp -af "$BASE_DIR/prebuilt/bantam/bantam" "$TARGET_ROOTFS/usr/local/bin/bantam" rm -f \ "$TARGET_ROOTFS/home/user/.bantam.cfg" \ "$TARGET_ROOTFS/etc/skel/.bantam.cfg" \ "$TARGET_ROOTFS/root/.bantam.cfg" echo "[4/4] Installing deviceinfo for $DEVICE ($DTB_FILE)..." if [ -f "$BASE_DIR/devices/$DEVICE/deviceinfo" ]; then cp -a "$BASE_DIR/devices/$DEVICE/deviceinfo" "$TARGET_ROOTFS/etc/deviceinfo" fi echo "Bananarchy overlay applied to $TARGET_ROOTFS for device $DEVICE."