|
| 1 | +#!/usr/bin/env sh |
| 2 | + |
| 3 | +[ $(id -u) -eq 0 ] || { |
| 4 | + printf "\n(!) must run as root\n\n" |
| 5 | + exit 2 |
| 6 | +} |
| 7 | + |
| 8 | +# set source code directory |
| 9 | +src="$(cd "${0%/*}" 2>/dev/null; echo "$PWD")" |
| 10 | + |
| 11 | +# for magisk |
| 12 | +SKIPUNZIP=1 |
| 13 | + |
| 14 | +patch_cfg() { |
| 15 | + if [ -f $cfg ] && [ "$1" != r ]; then |
| 16 | + if grep -Eq '^# :|mem_total' $cfg; then |
| 17 | + patch_cfg r |
| 18 | + else |
| 19 | + config_ver=0$(sed -n '/^config_ver=/s/.*=//p' $cfg) |
| 20 | + if [ $config_ver -lt 0202110290 ]; then |
| 21 | + sed -i -e '1iconfig_ver=202110290\n' -e '/^comp_a/s/=.*/=auto/' -e '/^vm=/s/e=200\"/e=200 page-cluster=0\"/' $cfg |
| 22 | + fi |
| 23 | + fi |
| 24 | + else |
| 25 | + install -m 644 $src/zram-swap-manager.conf $cfg |
| 26 | + fi |
| 27 | +} |
| 28 | + |
| 29 | +if [ -d /data/adb ]; then |
| 30 | + |
| 31 | + # android |
| 32 | + |
| 33 | + # extract flashable zip if source code is unavailable |
| 34 | + [ -f $src/TODO ] || { |
| 35 | + src=/dev/.vr25-zsm-install |
| 36 | + on_exit() { rm -rf ${src:-//} 2>/dev/null; } |
| 37 | + on_exit |
| 38 | + trap on_exit EXIT |
| 39 | + mkdir $src |
| 40 | + unzip "${3:-${ZIPFILE}}" -d $src/ >&2 |
| 41 | + } |
| 42 | + |
| 43 | + . $src/busybox.sh |
| 44 | + |
| 45 | + install_dir=/data/adb/modules/zram-swap-manager |
| 46 | + data_dir=/data/adb/vr25/zram-swap-manager-data |
| 47 | + cfg=/data/adb/vr25/zram-swap-manager-data/config.txt |
| 48 | + |
| 49 | + rm -rf $install_dir 2>/dev/null |
| 50 | + mkdir -p $install_dir/system/bin $data_dir |
| 51 | + |
| 52 | + cp $src/zram-swap-manager.sh $install_dir/ |
| 53 | + ln -sf $install_dir/zram-swap-manager.sh $install_dir/system/bin/zram-swap-manager |
| 54 | + ln -sf $install_dir/zram-swap-manager.sh $install_dir/system/bin/zsm |
| 55 | + ln -sf $install_dir/zram-swap-manager.sh /sbin/zram-swap-manager 2>/dev/null \ |
| 56 | + && ln -sf $install_dir/zram-swap-manager.sh /sbin/zsm |
| 57 | + |
| 58 | + [ -f $data_dir/config.txt ] || cp $src/zram-swap-manager.conf $data_dir/config.txt |
| 59 | + |
| 60 | + cp $src/uninstall.sh $install_dir/ |
| 61 | + ln -sf $install_dir/uninstall.sh $install_dir/system/bin/zram-swap-manager-uninstall |
| 62 | + ln -sf $install_dir/uninstall.sh /sbin/zram-swap-manager-uninstall 2>/dev/null |
| 63 | + |
| 64 | + for i in $install_dir/*.sh; do |
| 65 | + sed -i 's|^#!/.*|#!/system/bin/sh|' $i |
| 66 | + done |
| 67 | + |
| 68 | + i="$PWD" |
| 69 | + cd $src/ |
| 70 | + cp busybox.sh module.prop service.sh $install_dir/ |
| 71 | + cd "$i" |
| 72 | + unset i |
| 73 | + |
| 74 | + patch_cfg |
| 75 | + |
| 76 | + chmod +x $install_dir/*.sh |
| 77 | + [ ".$1" != .--start ] || $install_dir/service.sh |
| 78 | + |
| 79 | +else |
| 80 | + |
| 81 | + # gnu/linux |
| 82 | + |
| 83 | + cfg=/etc/zram-swap-manager.conf |
| 84 | + [ -f $cfg ] && upgrade=true |
| 85 | + |
| 86 | + sh $src/uninstall.sh --keep-config >/dev/null 2>&1 |
| 87 | + mkdir -p /usr/local/bin/ |
| 88 | + |
| 89 | + install -m 644 $src/zram-swap-manager.service /etc/systemd/system/zram-swap-manager.service |
| 90 | + |
| 91 | + install -m 755 $src/zram-swap-manager.sh /usr/local/bin/zram-swap-manager |
| 92 | + ln -s /usr/local/bin/zram-swap-manager /usr/local/bin/zsm |
| 93 | + |
| 94 | + ${upgrade:-false} || patch_cfg r |
| 95 | + install -m 755 $src/uninstall.sh /usr/local/bin/zram-swap-manager-uninstall |
| 96 | + |
| 97 | + patch_cfg |
| 98 | + |
| 99 | + systemctl enable zram-swap-manager |
| 100 | + [ ".$1" != .--start ] || zram-swap-manager -r |
| 101 | + |
| 102 | +fi |
| 103 | + |
| 104 | +echo "Done!" |
0 commit comments