Add luci package

This commit is contained in:
Vadim Vetrov
2024-09-12 22:57:33 +03:00
parent ad9a337795
commit 37ae420e23
8 changed files with 297 additions and 22 deletions

View File

@@ -0,0 +1,98 @@
#!/bin/sh /etc/rc.common
# Thanks @spvkgn https://github.com/spvkgn/ByeDPI-OpenWrt/blob/main/byedpi/files/byedpi.init
# For reference
START=91
USE_PROCD=1
PROCD_DEBUG=1
PROG=/usr/bin/youtubeUnblock
# You should use uci for configuration
OPTS=""
xappend() {
local name="$1" value="$2"
OPTS="$OPTS --${name//_/-}=$value"
}
xappend_toggler() {
local name="$1"
OPTS="$OPTS --${name//_/-}"
}
append_opts() {
local name value cfg="$1"; shift
for name in $*; do
config_get value "$cfg" "$name"
[ -n "$value" ] && xappend "$name" "$value"
done
}
append_commasep_list() {
local name cfg="$1"; shift
for name in $*; do
local res=""
_handle_list() {
res="$res$1,"
}
config_list_foreach "$cfg" "$name" _handle_list
[ -n "$res" ] && xappend "$name" "$res"
done
}
append_opts_boolean() {
local name value cfg="$1"; shift
for name in $*; do
config_get_bool value "$cfg" "$name"
[ -n "$value" ] && xappend "$name" "$value"
done
}
append_opts_btoggler() {
local name value cfg="$1"; shift
for name in $*; do
config_get_bool value "$cfg" "$name" 0
[ $value -gt 0 ] && xappend_toggler "$name"
done
}
parse_options() {
local config="$1"
local value
config_get_bool value "$config" all_domains 0
if [ $value -gt 0 ]; then
xappend "sni_domains" "all"
else
append_commasep_list "$config" sni_domains
fi
append_opts "$config" queue_num fake_sni_seq_len faking_strategy faking_ttl fake_seq_offset frag frag_sni_pos fk_winsize synfake_len seg2delay packet_mark
append_commasep_list "$config" exclude_domains
append_opts_boolean "$config" fake_sni frag_sni_reverse frag_sni_faked frag_middle_sni synfake
append_opts_btoggler "$config" quic_drop silent trace no_gso no_ipv6
}
# Openwrt procd script: https://openwrt.org/docs/guide-developer/procd-init-script-example
# The program should be put into /usr/bin/
# This file should be put into /etc/init.d/
start_service() {
config_load youtubeUnblock
config_foreach parse_options youtubeUnblock
echo "$OPTS"
procd_open_instance 'youtubeUnblock'
procd_set_param command $PROG $OPTS
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
reload_service() {
stop
start
}

View File

@@ -0,0 +1,23 @@
uci -q batch << EOI
add youtubeUnblock youtubeUnblock
set youtubeUnblock.youtubeUnblock.frag='tcp'
set youtubeUnblock.youtubeUnblock.frag_sni_reverse='1'
set youtubeUnblock.youtubeUnblock.frag_middle_sni='1'
set youtubeUnblock.youtubeUnblock.frag_sni_pos='1'
set youtubeUnblock.youtubeUnblock.fk_winsize='0'
set youtubeUnblock.youtubeUnblock.seg2delay='0'
set youtubeUnblock.youtubeUnblock.packet_mark='32768'
set youtubeUnblock.youtubeUnblock.fake_sni='1'
set youtubeUnblock.youtubeUnblock.faking_strategy='pastseq'
set youtubeUnblock.youtubeUnblock.fake_sni_seq_len='1'
add_list youtubeUnblock.youtubeUnblock.sni_domains='googlevideo.com'
add_list youtubeUnblock.youtubeUnblock.sni_domains='ggpht.com'
add_list youtubeUnblock.youtubeUnblock.sni_domains='ytimg.com'
add_list youtubeUnblock.youtubeUnblock.sni_domains='youtube.com'
add_list youtubeUnblock.youtubeUnblock.sni_domains='play.google.com'
add_list youtubeUnblock.youtubeUnblock.sni_domains='youtu.be'
add_list youtubeUnblock.youtubeUnblock.sni_domains='googleapis.com'
add_list youtubeUnblock.youtubeUnblock.sni_domains='googleusercontent.com'
add_list youtubeUnblock.youtubeUnblock.sni_domains='gstatic.com'
add_list youtubeUnblock.youtubeUnblock.sni_domains='l.google.com'
EOI

View File

@@ -1,21 +0,0 @@
#!/bin/sh /etc/rc.common
USE_PROCD=1
START=50
STOP=50
# Openwrt procd script: https://openwrt.org/docs/guide-developer/procd-init-script-example
# The program should be put into /usr/bin/
# This file should be put into /etc/init.d/
start_service() {
procd_open_instance
procd_set_param command /usr/bin/youtubeUnblock
procd_set_param nice -20
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}