arc-addons/nvmevolume/install.sh

64 lines
2.4 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env ash
#
# Copyright (C) 2023 AuxXxilium <https://github.com/AuxXxilium> and Ing <https://github.com/wjz304>
#
# Fromhttps://github.com/007revad/Synology_enable_M2_volume
# From: https://github.com/PeterSuh-Q3/tcrp-addons/blob/main/nvmevolume-onthefly/src/install.sh
#
if grep -qw "/addons/nvmesystem.sh" "/addons/addons.sh"; then
echo "nvmevolume is not required if nvmesystem exists!"
exit 0
fi
if [ "${1}" = "late" ]; then
echo "Installing addon nvmevolume - ${1}"
mkdir -p "/tmpRoot/usr/arc/addons/"
cp -pf "${0}" "/tmpRoot/usr/arc/addons/"
SO_FILE="/tmpRoot/usr/lib/libhwcontrol.so.1"
[ ! -f "${SO_FILE}.bak" ] && cp -pf "${SO_FILE}" "${SO_FILE}.bak"
cp -pf "${SO_FILE}" "${SO_FILE}.tmp"
xxd -c $(xxd -p "${SO_FILE}.tmp" 2>/dev/null | wc -c) -p "${SO_FILE}.tmp" 2>/dev/null |
sed "s/803e00b801000000752.488b/803e00b8010000009090488b/" |
xxd -r -p >"${SO_FILE}" 2>/dev/null
rm -f "${SO_FILE}.tmp"
# Create storage pool page without RAID type.
cp -vpf /usr/bin/nvmevolume.sh /tmpRoot/usr/bin/nvmevolume.sh
[ ! -f "/tmpRoot/usr/bin/gzip" ] && cp -vpf /usr/bin/gzip /tmpRoot/usr/bin/gzip
mkdir -p "/tmpRoot/usr/lib/systemd/system"
DEST="/tmpRoot/usr/lib/systemd/system/nvmevolume.service"
{
echo "[Unit]"
echo "Description=Modify storage panel(nvmevolume)"
echo "Wants=smpkg-custom-install.service pkgctl-StorageManager.service"
echo "After=smpkg-custom-install.service"
echo "After=storagepanel.service" # storagepanel
echo "After=nvmesystem.service" # nvmesystem
echo
echo "[Service]"
echo "Type=oneshot"
echo "RemainAfterExit=yes"
echo "ExecStart=/usr/bin/nvmevolume.sh"
echo
echo "[Install]"
echo "WantedBy=multi-user.target"
} >"${DEST}"
elif [ "${1}" = "uninstall" ]; then
echo "Installing addon nvmevolume - ${1}"
SO_FILE="/tmpRoot/usr/lib/libhwcontrol.so.1"
[ -f "${SO_FILE}.bak" ] && mv -f "${SO_FILE}.bak" "${SO_FILE}"
rm -f "/tmpRoot/usr/lib/systemd/system/multi-user.target.wants/nvmevolume.service"
rm -f "/tmpRoot/usr/lib/systemd/system/nvmevolume.service"
# rm -f /tmpRoot/usr/bin/gzip
[ ! -f "/tmpRoot/usr/arc/revert.sh" ] && echo '#!/usr/bin/env bash' >/tmpRoot/usr/arc/revert.sh && chmod +x /tmpRoot/usr/arc/revert.sh
echo "/usr/bin/nvmevolume.sh -r" >>/tmpRoot/usr/arc/revert.sh
echo "rm -f /usr/bin/nvmevolume.sh" >>/tmpRoot/usr/arc/revert.sh
fi