54 lines
1.7 KiB
Bash
Executable File
54 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
WORK_DIR="${MONTANAOS_WORK:-$HOME/montanaos-build}"
|
|
DEVICE="${DEVICE:-komodo}"
|
|
MONTANAOS_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
LOCK_FILE="$MONTANAOS_ROOT/MONTANAOS_VERSIONS.lock"
|
|
|
|
if [[ ! -f "$LOCK_FILE" ]]; then
|
|
echo "ERROR: $LOCK_FILE not found. Phase 1 of ROADMAP must close first."
|
|
exit 1
|
|
fi
|
|
|
|
cd "$WORK_DIR/grapheneos"
|
|
|
|
KERNEL_DIR="kernel/google/$DEVICE"
|
|
DEVICE_DIR="device/google/$DEVICE"
|
|
|
|
if [[ ! -d "$KERNEL_DIR" ]]; then
|
|
echo "ERROR: kernel directory not found: $KERNEL_DIR"
|
|
echo "Did you run sync-grapheneos.sh successfully?"
|
|
exit 1
|
|
fi
|
|
|
|
for patch in "$MONTANAOS_ROOT/kernel/patches"/*.patch; do
|
|
[[ -f "$patch" ]] || continue
|
|
echo "Checking $(basename "$patch") against $KERNEL_DIR"
|
|
if git -C "$KERNEL_DIR" apply --check "$patch" 2>/dev/null; then
|
|
git -C "$KERNEL_DIR" apply "$patch"
|
|
echo " applied"
|
|
else
|
|
echo " WARN: $(basename "$patch") did not apply cleanly, manual merge required"
|
|
echo " Note: until Phase 2 of ROADMAP closes, kernel patches are sketches,"
|
|
echo " not expected to apply against current upstream."
|
|
fi
|
|
done
|
|
|
|
cp "$MONTANAOS_ROOT/system/init.montana-node.rc" "$DEVICE_DIR/init.montana-node.rc"
|
|
cp "$MONTANAOS_ROOT/system/montana-watchdog.sh" "$DEVICE_DIR/montana-watchdog.sh"
|
|
|
|
DEVICE_MK="$DEVICE_DIR/device.mk"
|
|
if ! grep -q "init.montana-node.rc" "$DEVICE_MK" 2>/dev/null; then
|
|
cat >> "$DEVICE_MK" <<MK
|
|
|
|
PRODUCT_COPY_FILES += \\
|
|
\$(LOCAL_PATH)/init.montana-node.rc:system/etc/init/montana-node.rc \\
|
|
\$(LOCAL_PATH)/montana-watchdog.sh:system/bin/montana-watchdog.sh
|
|
MK
|
|
fi
|
|
|
|
echo
|
|
echo "MontanaOS patches applied to GrapheneOS tree"
|
|
echo "Next step: ./scripts/build-montanaos.sh $DEVICE"
|