100 lines
2.7 KiB
Bash
Executable File
100 lines
2.7 KiB
Bash
Executable File
keytest() {
|
|
ui_print " - Vol Key Test -"
|
|
ui_print " Press Vol Up:"
|
|
(/system/bin/getevent -lc 1 2>&1 | /system/bin/grep VOLUME | /system/bin/grep " DOWN" > $TMPDIR/events) || return 1
|
|
return 0
|
|
}
|
|
|
|
chooseport() {
|
|
#note from chainfire @xda-developers: getevent behaves weird when piped, and busybox grep likes that even less than toolbox/toybox grep
|
|
while (true); do
|
|
/system/bin/getevent -lc 1 2>&1 | /system/bin/grep VOLUME | /system/bin/grep " DOWN" > $TMPDIR/events
|
|
if (`cat $TMPDIR/events 2>/dev/null | /system/bin/grep VOLUME >/dev/null`); then
|
|
break
|
|
fi
|
|
done
|
|
if (`cat $TMPDIR/events 2>/dev/null | /system/bin/grep VOLUMEUP >/dev/null`); then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
chooseportold() {
|
|
# Calling it first time detects previous input. Calling it second time will do what we want
|
|
$KEYCHECK
|
|
$KEYCHECK
|
|
SEL=$?
|
|
if [ "$1" == "UP" ]; then
|
|
UP=$SEL
|
|
elif [ "$1" == "DOWN" ]; then
|
|
DOWN=$SEL
|
|
elif [ $SEL -eq $UP ]; then
|
|
return 0
|
|
elif [ $SEL -eq $DOWN ]; then
|
|
return 1
|
|
else
|
|
ui_print " Vol key not detected!"
|
|
abort " Use name change method in TWRP"
|
|
fi
|
|
}
|
|
|
|
# Keycheck binary by someone755 @Github, idea for code below by Zappo @xda-developers
|
|
KEYCHECK=$TMPDIR/keycheck
|
|
chmod 755 $KEYCHECK
|
|
|
|
if keytest; then
|
|
FUNCTION=chooseport
|
|
else
|
|
FUNCTION=chooseportold
|
|
ui_print " ! Legacy device detected! Using old keycheck method"
|
|
ui_print " "
|
|
ui_print "- Vol Key Programming -"
|
|
ui_print " Press Vol Up Again:"
|
|
$FUNCTION "UP"
|
|
ui_print " Press Vol Down"
|
|
$FUNCTION "DOWN"
|
|
fi
|
|
|
|
ui_print " "
|
|
ui_print " Vol+ = Replace previous config (mandatory for first install)"
|
|
ui_print " "
|
|
ui_print " Vol- = Use previous config"
|
|
ui_print " "
|
|
|
|
CONFIG_FILE=/data/media/0/dnscrypt-proxy/dnscrypt-proxy.toml
|
|
|
|
if $FUNCTION; then
|
|
ui_print "Replace old config"
|
|
ui_print " "
|
|
cp -af /data/media/0/dnscrypt-proxy/example-dnscrypt-proxy.toml $CONFIG_FILE
|
|
sed -i -e 's/127.0.0.1:53/127.0.0.1:5354/g' $CONFIG_FILE
|
|
sed -i -e 's/\[::1\]:53/\[::1\]:5354/g' $CONFIG_FILE
|
|
else
|
|
if [ -f "$CONFIG_FILE" ]; then
|
|
ui_print "* Backing up config file"
|
|
cp -af $CONFIG_FILE $TMPDIR
|
|
ui_print "* Restoring config files"
|
|
cp -af $TMPDIR/dnscrypt-proxy.toml $CONFIG_FILE
|
|
else
|
|
abort "First install have to choose replace mode"
|
|
fi
|
|
fi
|
|
|
|
ui_print " "
|
|
ui_print " Vol+ = Auto redirect DNS request with iptables"
|
|
ui_print " "
|
|
ui_print " Vol- = Set DNS manually with 3rd-party app"
|
|
ui_print " "
|
|
|
|
if $FUNCTION; then
|
|
ui_print " "
|
|
ui_print " Auto mode"
|
|
else
|
|
ui_print " "
|
|
ui_print " Manual mode"
|
|
ui_print " deleting iptables rules"
|
|
sed -i -e '/#IPTABLES/,$d' $TMPDIR/service.sh
|
|
sed -i -e "s/'127.0.0.1.*'/'127.0.0.1:53', '[::1]:53'/g" /data/media/0/dnscrypt-proxy/dnscrypt-proxy.toml
|
|
fi
|