linuxOS_AP06/device/rockchip/common/scripts/post-overlay.sh

65 lines
1.5 KiB
Bash
Raw Normal View History

2025-06-03 04:28:32 +00:00
#!/bin/bash -e
source "${RK_POST_HELPER:-$(dirname "$(realpath "$0")")/post-helper}"
RK_RSYNC="rsync -av --chmod=u=rwX,go=rX --copy-unsafe-links --exclude .empty --exclude .git"
RK_OVERLAY_ALLOWED="$@"
[ "$RK_OVERLAY" ] || exit 0
do_install_overlay()
{
OVERLAY="$(realpath "$1")"
if [ -x "$OVERLAY/install.sh" ]; then
notice "Handling overlay: $OVERLAY)..."
RK_RSYNC="$RK_RSYNC" \
"$OVERLAY/install.sh" "$TARGET_DIR" "$POST_OS"
else
notice "Installing overlay: $OVERLAY to $TARGET_DIR..."
$RK_RSYNC "$OVERLAY/" "$TARGET_DIR/"
fi
}
install_overlay()
{
# For debugging only
if [ "$RK_OVERLAY_ALLOWED" ]; then
for d in $RK_OVERLAY_ALLOWED; do
basename "$d"
done | grep -wq "$(basename "$1")" || return 0
fi
# Install common and chip overlays
for d in "$RK_COMMON_DIR" "$RK_CHIP_DIR"; do
OVERLAY="$d/overlays/$1"
if [ -d "$OVERLAY" ]; then
do_install_overlay "$OVERLAY"
fi
done
}
# Install overlays for recovery, etc.
if [ -z "$POST_ROOTFS" ]; then
install_overlay $POST_OS
exit 0
fi
# No overlays for rootfs without RK_ROOTFS_OVERLAY
[ "$RK_ROOTFS_OVERLAY" ] || exit 0
# Install basic rootfs overlays
for d in "$RK_COMMON_DIR" "$RK_CHIP_DIR"; do
[ -d "$d/overlays/rootfs" ] || continue
for overlay in $(ls "$d/overlays/rootfs/"); do
install_overlay "rootfs/$overlay"
done
done
# Install OS-specific overlays
install_overlay $POST_OS
# Install extra rootfs overlays
for overlay in $RK_ROOTFS_EXTRA_OVERLAY_DIRS; do
install_overlay "$overlay"
done