CasperSecurity

Current Path : /usr/share/initramfs-tools/hooks/
Upload File :
Current File : //usr/share/initramfs-tools/hooks/plymouth

#!/bin/sh

set -e

OPTION=FRAMEBUFFER
PREREQ=""

prereqs()
{
	echo "${PREREQ}"
}

case "${1}" in
	prereqs)
		prereqs
		exit 0
		;;
esac

. /usr/share/initramfs-tools/hook-functions

THEME_PATH="$(update-alternatives --query default.plymouth 2>/dev/null | sed -e '/^Value:/!d' -e 's/^Value: \(.*\)/\1/')"
THEME="$(basename ${THEME_PATH:-none} .plymouth || true)"
THEMES="/usr/share/plymouth/themes"

if [ -n "${THEME_PATH}" ]; then
IMAGE_PATH=$(grep "ImageDir *= *" ${THEME_PATH} | sed 's/ImageDir *= *//')
fi

if [ -n "${IMAGE_PATH}" ] && [ "${THEME_PATH}" != "${IMAGE_PATH}" ]; then
	IMAGE_NAME="$(basename ${IMAGE_PATH:-none})"
fi

mkdir -p "${DESTDIR}/${THEMES}"

if [ -n "${THEME}" ] && [ "${THEME}" != "none" ]
then
	THEME_NAME="${THEME}"
	THEME="${THEMES}/${THEME}/${THEME}.plymouth"
	# create default theme symlink
	ln -s "${THEME}" "${DESTDIR}/${THEMES}/default.plymouth"
fi

PLUGIN_PATH="$(plymouth --get-splash-plugin-path)"

# default text theme alternative
TEXTTHEME_PATH="$(update-alternatives --query text.plymouth 2>/dev/null | sed -e '/^Value:/!d' -e 's/^Value: \(.*\)/\1/')"
TEXTTHEME="$(basename ${TEXTTHEME_PATH:-none} .plymouth || true)"

if [ -n "${TEXTTHEME}" ] & [ "${TEXTTHEME}" != "none" ]
then
	TEXTTHEME_NAME="${TEXTTHEME}"
	TEXTTHEME="${THEMES}/${TEXTTHEME}/${TEXTTHEME}.plymouth"
    # create default text theme symlink
    ln -s "${TEXTTHEME}" "${DESTDIR}/${THEMES}/text.plymouth"
fi

# ensure we at least have one theme configured
if [ ! -r "${THEME}" ] && [ ! -r "${TEXTTHEME}" ]
then
    exit 0
fi

# copy base themes content
currthemes="${THEME_NAME} ${TEXTTHEME_NAME} ${IMAGE_NAME}"
for currtheme in $currthemes
do
	case "${currtheme}" in
		text|details|tribar|ubuntu-text)
			PLUGINS="text.so details.so"
			;;

		*)
			PLUGINS="details.so label.so"
			;;
	esac

	MODULE="${PLUGIN_PATH}/$(sed -n 's/^ModuleName=\(.*\)/\1/p' ${THEMES}/${currtheme}/${currtheme}.plymouth 2>/dev/null || true).so"

	if [ ! -e "$MODULE" ]
	then
		echo "W: plymouth module ($MODULE) missing, skipping that theme."
		continue
	fi

	# copy plugin and images for current theme
	copy_exec "${MODULE}"
	cp -a "${THEMES}/${currtheme}" "${DESTDIR}/${THEMES}"

	# copy base plugins if any
	for PLUGIN in ${PLUGINS}
	do
		if [ -f ${PLUGIN_PATH}/${PLUGIN} ]
		then
			copy_exec ${PLUGIN_PATH}/${PLUGIN}
		else
			echo "W: plymouth: The plugin ${PLUGIN} is missing, the selected theme might not work as expected."
			echo "W: plymouth: You might want to install the plymouth-themes and plymouth-label package to fix this."
		fi
	done

done

# copy binaries and base plugins
copy_exec /usr/bin/plymouth
copy_exec /usr/sbin/plymouthd
copy_exec /usr/libexec/plymouth/plymouthd-fd-escrow

# copy base themes and logo
cp -a "${THEMES}/details" "${DESTDIR}/${THEMES}"

if [ -f /etc/os-release ]
then
	cp /etc/os-release "${DESTDIR}/etc"
fi

case "${THEME_NAME}" in
	""|ubuntu-text|text|details)

		;;

	*)
		cp /usr/share/plymouth/ubuntu-logo.png "${DESTDIR}/usr/share/plymouth"
		if [ -d ${DESTDIR}/usr/share/plymouth/themes/spinner ]; then
			cp /usr/share/plymouth/ubuntu-logo.png "${DESTDIR}/usr/share/plymouth/themes/spinner/watermark.png"
		fi

		# fontconfig
		mkdir -p "${DESTDIR}/etc/fonts/conf.d"
		cp -a /etc/fonts/fonts.conf "${DESTDIR}/etc/fonts"
		mkdir -p "${DESTDIR}/var/cache/fontconfig"
		# This is only needed because fc-cache bellow fails if the directory doesn't exist
		mkdir -p "${DESTDIR}/usr/local/share/fonts"

		# Make Ubuntu the default sans-serif, and mono fonts.  Ubuntu
		# font is always present if we have python-label installed; if
		# not installed, then we have no graphical themes that display
		# text, so that's ok.
		if [ -e /usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf ]
		then
		    sed 's|\(<family>DejaVu Sans</family>\)|<family>Ubuntu</family>\1|;s|\(<family>DejaVu Sans Mono</family>\)|<family>Ubuntu Mono</family>\1|;' \
			/etc/fonts/conf.d/60-latin.conf > "${DESTDIR}/etc/fonts/conf.d/60-latin.conf"
		    mkdir -p "${DESTDIR}/usr/share/fonts/truetype/ubuntu"
		    cp -a /usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf "${DESTDIR}/usr/share/fonts/truetype/ubuntu"
		    cp -a /usr/share/fonts/truetype/ubuntu/UbuntuMono-R.ttf "${DESTDIR}/usr/share/fonts/truetype/ubuntu"
		fi
		fc-cache -s -y "${DESTDIR}" > /dev/null 2>&1

		# copy /etc/default/keyboard (needed for keymap detection)
		if [ -e /etc/default/keyboard ]
		then
			mkdir -p "${DESTDIR}/etc/default"
			cp /etc/default/keyboard "${DESTDIR}/etc/default"
		fi

		;;
esac

# add drm modules
if [ "$MODULES" = "dep" ]; then
	for DRM_DEVICE in "/sys/class/drm"/*; do
		DRM_DEVICE="$(readlink -f "$DRM_DEVICE")" \
			&& sys_walk_mod_add "$DRM_DEVICE" \
			|| echo "W: plymouth: couldn't include modules for '$DRM_DEVICE'"
	done
elif [ "$MODULES" = "list" ]; then
	echo "W: plymouth: not including drm modules since MODULES=list"
else
	copy_modules_dir kernel/drivers/gpu/drm mga r128 savage sis tdfx via
fi

# copy renderers
copy_exec /usr/lib/x86_64-linux-gnu/plymouth/renderers/frame-buffer.so
copy_exec /usr/lib/x86_64-linux-gnu/plymouth/renderers/drm.so

# copy config files
mkdir -p "${DESTDIR}/etc/plymouth"

if [ -r /etc/plymouth/plymouthd.conf ]
then
	cp -a /etc/plymouth/plymouthd.conf "${DESTDIR}/etc/plymouth/"
fi

# copy defaults file if exist
if [ -r /usr/share/plymouth/plymouthd.defaults ]
then
	cp -a /usr/share/plymouth/plymouthd.defaults "${DESTDIR}/usr/share/plymouth/"
fi

# temporarily include dummy root account lookup (#691598)
if ! grep -qs '^root:' "${DESTDIR}/etc/passwd"
then
	echo "root:x:0:0:root:/root:/bin/sh" >> "${DESTDIR}/etc/passwd"
fi

if ! grep -qs '^passwd: files' "${DESTDIR}/etc/nsswitch.conf"
then
	echo "passwd: files" >> "${DESTDIR}/etc/nsswitch.conf"
fi

for _LIBRARY in /lib/x86_64-linux-gnu/libnss_files*
do
	if [ -e "${_LIBRARY}" ]
	then
		copy_exec "${_LIBRARY}"
	fi
done
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY