android-unlock-and-more-box/scripts/run-docker.sh

31 lines
1012 B
Bash
Executable File

#!/usr/bin/env bash
# aubox im Container starten, mit USB-Passthrough so dass Re-Enumeration
# (Kirin DLOAD -> Huawei Fastboot-D) korrekt durchläuft.
#
# Wichtig: Wir mounten /dev/bus/usb komplett (nicht ein einzelnes Device),
# damit nach Re-Enumeration das neue Device sichtbar ist. Dazu ist die
# device-cgroup-rule für USB (Major 189) nötig.
#
# udev-Regeln müssen auf dem HOST liegen, nicht im Container. Falls noch
# nicht installiert, einmalig: sudo bash scripts/setup-linux.sh
set -euo pipefail
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
IMAGE="${AUBOX_IMAGE:-aubox}"
# Image bauen, falls nicht vorhanden
if ! docker image inspect "$IMAGE" >/dev/null 2>&1; then
echo "Image $IMAGE nicht gefunden — baue..."
docker build -t "$IMAGE" "$PROJECT_DIR"
fi
# USB-Major-Nummer für cgroup-rule
USB_MAJOR=189
exec docker run --rm -it \
--device-cgroup-rule="c ${USB_MAJOR}:* rmw" \
-v /dev/bus/usb:/dev/bus/usb \
-v "${PROJECT_DIR}/loaders:/app/loaders:ro" \
"$IMAGE" "$@"