mirror of
https://github.com/egor-white/zaprett.git
synced 2025-12-11 13:59:43 +05:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bcf0aa2b50 | ||
|
|
8248d43f67 | ||
|
|
f3d26d5677 | ||
|
|
2ef9ac91be | ||
|
|
b16b9e4d7a | ||
|
|
aa3dd6cce5 | ||
|
|
092cc65bbe | ||
|
|
6679a9c71a | ||
|
|
ac815f62a0 | ||
|
|
a71baaa98b | ||
|
|
db69426185 | ||
|
|
6f7eb991a7 | ||
|
|
65ff8f0661 | ||
|
|
c843494c8a |
6
.github/workflows/workflow.yml
vendored
6
.github/workflows/workflow.yml
vendored
@@ -145,7 +145,7 @@ jobs:
|
||||
{
|
||||
"version": "${{ inputs.version }}",
|
||||
"versionCode": ${{ inputs.version_code }},
|
||||
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.release_tag }}/zaprett.zip",
|
||||
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.release_tag }}zaprett.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/main/changelog.md"
|
||||
}
|
||||
EOF
|
||||
@@ -153,7 +153,7 @@ jobs:
|
||||
{
|
||||
"version": "${{ inputs.version }}",
|
||||
"versionCode": ${{ inputs.version_code }},
|
||||
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.release_tag }}/zaprett-extended.zip",
|
||||
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.release_tag }}zaprett-extended.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/main/changelog.md"
|
||||
}
|
||||
EOF
|
||||
@@ -161,7 +161,7 @@ jobs:
|
||||
{
|
||||
"version": "${{ inputs.version }}",
|
||||
"versionCode": ${{ inputs.version_code }},
|
||||
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.release_tag }}/zaprett-tv.zip",
|
||||
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.release_tag }}zaprett-tv.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/main/changelog.md"
|
||||
}
|
||||
EOF
|
||||
|
||||
173
.github/workflows/workflow_without_post.yml
vendored
Normal file
173
.github/workflows/workflow_without_post.yml
vendored
Normal file
@@ -0,0 +1,173 @@
|
||||
name: Build module (Without telegram post)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: 'Tag for the release (x.x.x)'
|
||||
required: true
|
||||
type: string
|
||||
version:
|
||||
description: 'Module version (x.x)'
|
||||
required: true
|
||||
type: string
|
||||
version_code:
|
||||
description: 'Module version code (xx)'
|
||||
required: true
|
||||
type: string
|
||||
release_name:
|
||||
description: 'Release Name'
|
||||
required: true
|
||||
type: string
|
||||
release_changes:
|
||||
description: 'Release Changes'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Make build dirs
|
||||
run: mkdir -p zaprett/system/bin zaprett-extended/system/bin zaprett-tv/system/bin zaprett/system/etc/zaprett/lists zapret-latest out lists zapret-extended/system/etc/zaprett/lists zapret-tv/system/etc/zaprett/lists
|
||||
|
||||
- name: Download latest zapret binaries
|
||||
run: |
|
||||
LATEST_RELEASE=$(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest)
|
||||
DOWNLOAD_URL=$(echo "$LATEST_RELEASE" | grep -o 'browser_download_url.*zapret-v.*\.zip"' | cut -d'"' -f3)
|
||||
wget $DOWNLOAD_URL -O zapret-latest.zip
|
||||
|
||||
- name: Unzip zapret binaries
|
||||
run: |
|
||||
unzip -o zapret-latest.zip
|
||||
ZAPRET_DIR=$(find . -maxdepth 1 -type d -name 'zapret-v*' | head -n 1)
|
||||
if [ "$(ls -A "$ZAPRET_DIR")" ]; then
|
||||
mv "$ZAPRET_DIR"/* zapret-latest/
|
||||
else
|
||||
echo "Warning: $ZAPRET_DIR is empty"
|
||||
fi
|
||||
rm -rf "${ZAPRET_DIR}"
|
||||
rm zapret-latest.zip
|
||||
|
||||
- name: Copy files to dirs
|
||||
run: |
|
||||
#copy nfqws and zaprett
|
||||
cp zapret-latest/binaries/android-arm/nfqws zaprett/system/bin/nfqws_arm32
|
||||
cp zapret-latest/binaries/android-arm64/nfqws zaprett/system/bin/nfqws_arm64
|
||||
cp zapret-latest/binaries/android-x86/nfqws zaprett/system/bin/nfqws_x86
|
||||
cp zapret-latest/binaries/android-x86_64/nfqws zaprett/system/bin/nfqws_x86_64
|
||||
cp zapret-latest/binaries/linux-mips/nfqws zaprett/system/bin/nfqws_mips
|
||||
cp zapret-latest/binaries/linux-mipsel/nfqws zaprett/system/bin/nfqws_mipsel
|
||||
#cp src/bin/zaprett zaprett/system/bin/
|
||||
|
||||
cp -a src/* zaprett/
|
||||
|
||||
#copy all files to another distributions
|
||||
cp -r zaprett/* zaprett-extended/
|
||||
cp -r zaprett/* zaprett-tv/
|
||||
- name: Download and copy actual lists
|
||||
run: |
|
||||
wget https://raw.githubusercontent.com/CherretGit/zaprett-hosts-repo/refs/heads/main/lists/list-youtube.txt -O lists/list-youtube.txt
|
||||
wget https://raw.githubusercontent.com/CherretGit/zaprett-hosts-repo/refs/heads/main/lists/list-discord.txt -O lists/list-discord.txt
|
||||
wget https://raw.githubusercontent.com/CherretGit/zaprett-hosts-repo/refs/heads/main/lists/list-extended.txt -O lists/list-extended.txt
|
||||
|
||||
cp lists/list-youtube.txt zaprett/system/etc/zaprett/lists/
|
||||
cp lists/list-youtube.txt zaprett-extended/system/etc/zaprett/lists/
|
||||
cp lists/list-youtube.txt zaprett-tv/system/etc/zaprett/lists/
|
||||
|
||||
cp lists/list-discord.txt zaprett/system/etc/zaprett/lists/
|
||||
cp lists/list-discord.txt zaprett-extended/system/etc/zaprett/lists/
|
||||
|
||||
cp lists/list-extended.txt zaprett-extended/system/etc/zaprett/lists/
|
||||
|
||||
- name: Create module.prop
|
||||
run: |
|
||||
cat > zaprett/module.prop <<EOF
|
||||
id=zaprett
|
||||
name=zaprett
|
||||
version=${{ inputs.version }}
|
||||
versionCode=${{ inputs.version_code }}
|
||||
author=egor-white, Huananzhi X99, Cherret
|
||||
description=Ускорение CDN серверов Google. ТГК: https://t.me/zaprett_module
|
||||
updateJson=https://raw.githubusercontent.com/egor-white/zaprett/refs/heads/main/update.json
|
||||
EOF
|
||||
|
||||
cat > zaprett-extended/module.prop <<EOF
|
||||
id=zaprett
|
||||
name=zaprett-extended
|
||||
version=${{ inputs.version }}
|
||||
versionCode=${{ inputs.version_code }}
|
||||
author=egor-white, Huananzhi X99, Cherret
|
||||
description=Ускорение CDN серверов Google. ТГК: https://t.me/zaprett_module
|
||||
updateJson=https://raw.githubusercontent.com/egor-white/zaprett/refs/heads/main/update-extended.json
|
||||
EOF
|
||||
|
||||
cat > zaprett-tv/module.prop <<EOF
|
||||
id=zaprett
|
||||
name=zaprett-tv
|
||||
version=${{ inputs.version }}
|
||||
versionCode=${{ inputs.version_code }}
|
||||
author=egor-white, Huananzhi X99, Cherret
|
||||
description=Ускорение CDN серверов Google. ТГК: https://t.me/zaprett_module
|
||||
updateJson=https://raw.githubusercontent.com/egor-white/zaprett/refs/heads/main/update-tv.json
|
||||
EOF
|
||||
|
||||
- name: Tree files
|
||||
run: |
|
||||
tree zaprett/ zaprett-extended/ zaprett-tv/
|
||||
- name: Create archives
|
||||
run: |
|
||||
cd zaprett && zip -r ../zaprett.zip ./* && cd ..
|
||||
cd zaprett-extended && zip -r ../zaprett-extended.zip ./* && cd ..
|
||||
cd zaprett-tv && zip -r ../zaprett-tv.zip ./* && cd ..
|
||||
|
||||
mv zaprett.zip out/
|
||||
mv zaprett-extended.zip out/
|
||||
mv zaprett-tv.zip out/
|
||||
|
||||
- name: Create release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
tag_name: ${{ inputs.tag }}
|
||||
name: ${{ inputs.release_name }}
|
||||
body: ${{ inputs.release_changes }}
|
||||
files: out/*
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Update changelog
|
||||
run: echo "${{ inputs.release_changes}}" > changelog.md
|
||||
|
||||
- name: Update update.json
|
||||
run: |
|
||||
cat > update.json <<EOF
|
||||
{
|
||||
"version": "${{ inputs.version }}",
|
||||
"versionCode": ${{ inputs.version_code }},
|
||||
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.release_tag }}zaprett.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/main/changelog.md"
|
||||
}
|
||||
EOF
|
||||
cat > update_extended.json <<EOF
|
||||
{
|
||||
"version": "${{ inputs.version }}",
|
||||
"versionCode": ${{ inputs.version_code }},
|
||||
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.release_tag }}zaprett-extended.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/main/changelog.md"
|
||||
}
|
||||
EOF
|
||||
cat > update_tv.json <<EOF
|
||||
{
|
||||
"version": "${{ inputs.version }}",
|
||||
"versionCode": ${{ inputs.version_code }},
|
||||
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.release_tag }}zaprett-tv.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/main/changelog.md"
|
||||
}
|
||||
EOF
|
||||
- name: Commit jsons and changelog
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: "Update update's.json and changelog"
|
||||
file_pattern: 'update.json update_extended.json update_tv.json changelog.md'
|
||||
|
||||
@@ -12,4 +12,6 @@
|
||||
На данный момент модуль умеет:
|
||||
+ Включать, выключать и перезапускать nfqws
|
||||
|
||||
Оригинальный автор - [notmalware](https://t.me/notmalware). Отредактировано - [egor-white](https://t.me/cheesedroid), [MT6833](https://t.me/MT6833), [Mineralka](https://t.me/Program_dayn), [Cherret](https://t.me/Cherret).
|
||||
|
||||
|
||||
Создано - [egor-white](https://t.me/cheesedroid), [Cherret](https://t.me/Cherret), [MT6833](https://t.me/MT6833).
|
||||
@@ -1 +1 @@
|
||||
Исправлен автозапуск(вроде)
|
||||
Добавлены команды (zaprett) help, module-ver, bin-ver
|
||||
|
||||
@@ -7,8 +7,8 @@ ui_print " /___\__,_| .__/|_| \\___|\__|\__|"
|
||||
ui_print " | | "
|
||||
ui_print " |_| "
|
||||
ui_print "(!) To download app, use Telegram chat"
|
||||
ui_print "Module by: egorwhite, Huananzhi X99, not_malware"
|
||||
ui_print "App by: egorwhite"
|
||||
ui_print "Module by: egorwhite, Cherret, Huananzhi X99"
|
||||
ui_print "Apps by: egorwhite, Cherret"
|
||||
ui_print "####################"
|
||||
|
||||
ui_print "Unpacking archive..."
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/system/bin/sh
|
||||
while [ -z "$(getprop sys.boot_completed)" ]; do sleep 2; done
|
||||
sleep 10
|
||||
sleep 15
|
||||
source /storage/emulated/0/zaprett/config
|
||||
if [ "$autorestart" = "true" ]; then
|
||||
su -c "zaprett start"
|
||||
|
||||
@@ -7,96 +7,84 @@ clear_iptables_rules() {
|
||||
iptables -t filter -D FORWARD -j NFQUEUE --queue-num 200 --queue-bypass 2>/dev/null
|
||||
}
|
||||
|
||||
if [ "$1" == "start" ]; then
|
||||
start_service() {
|
||||
rm -f /data/adb/modules/zaprett/tmp/*
|
||||
echo "Starting zaprett...";
|
||||
hostlist=""
|
||||
for itm in $(echo "$activelists" | tr ',' ' ' | sort -u); do
|
||||
if [ -f "$itm" ]; then
|
||||
dst="/data/adb/modules/zaprett/tmp/$(basename "$itm")"
|
||||
cp "$itm" "$dst"
|
||||
case "$hostlist" in
|
||||
*"--hostlist=$dst"*) ;;
|
||||
*) hostlist="$hostlist --hostlist=$dst" ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
config=""
|
||||
if [[ -n "$strategy" && -f "$strategy" ]]; then
|
||||
config="$(eval "echo \"$(<"$strategy")\"")"
|
||||
fi
|
||||
|
||||
if [[ -z "$config" ]]; then
|
||||
config="--filter-tcp=80 --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig,badsum $hostlist --new"
|
||||
config="$config --filter-tcp=443 $hostlist --dpi-desync=fake,split2 --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig,badsum --dpi-desync-fake-tls=${zaprettdir}/bin/tls_clienthello_www_google_com.bin --new"
|
||||
config="$config --filter-tcp=80,443 --dpi-desync=fake,disorder2 --dpi-desync-repeats=6 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig,badsum $hostlist --new"
|
||||
config="$config --filter-udp=50000-50100 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC30000000108 --new"
|
||||
config="$config --filter-udp=443 $hostlist --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic=${zaprettdir}/bin/quic_initial_www_google_com.bin --new"
|
||||
config="$config --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=6 $hostlist"
|
||||
echo "Starting zaprett..."
|
||||
|
||||
hostlist=""
|
||||
for itm in $(echo "$activelists" | tr ',' ' ' | sort -u); do
|
||||
if [ -f "$itm" ]; then
|
||||
dst="/data/adb/modules/zaprett/tmp/$(basename "$itm")"
|
||||
cp "$itm" "$dst"
|
||||
case "$hostlist" in
|
||||
*"--hostlist=$dst"*) ;;
|
||||
*) hostlist="$hostlist --hostlist=$dst" ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
config=""
|
||||
if [[ -n "$strategy" && -f "$strategy" ]]; then
|
||||
config="$(eval "echo \"$(<"$strategy")\"")"
|
||||
fi
|
||||
|
||||
if [[ -z "$config" ]]; then
|
||||
config="--filter-tcp=80 --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig,badsum $hostlist --new"
|
||||
config="$config --filter-tcp=443 $hostlist --dpi-desync=fake,split2 --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig,badsum --dpi-desync-fake-tls=${zaprettdir}/bin/tls_clienthello_www_google_com.bin --new"
|
||||
config="$config --filter-tcp=80,443 --dpi-desync=fake,disorder2 --dpi-desync-repeats=6 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig,badsum $hostlist --new"
|
||||
config="$config --filter-udp=50000-50100 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC30000000108 --new"
|
||||
config="$config --filter-udp=443 $hostlist --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic=${zaprettdir}/bin/quic_initial_www_google_com.bin --new"
|
||||
config="$config --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=6 $hostlist"
|
||||
fi
|
||||
|
||||
sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1 > /dev/null
|
||||
|
||||
fi
|
||||
sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1 > /dev/null
|
||||
|
||||
iptables -t mangle -I POSTROUTING -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
iptables -t mangle -I PREROUTING -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
iptables -t filter -A FORWARD -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
|
||||
nfqws --uid=0:0 --qnum=200 $config > /dev/null &
|
||||
echo "zaprett service started!"; return 0;
|
||||
fi
|
||||
nfqws --uid=0:0 --qnum=200 $config > /dev/null &
|
||||
echo "zaprett service started!"
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
echo "Stopping zaprett..."
|
||||
clear_iptables_rules
|
||||
kill "$(pidof nfqws)" 2>/dev/null
|
||||
rm -f /data/adb/modules/zaprett/tmp/*
|
||||
echo "zaprett service stopped!"
|
||||
}
|
||||
|
||||
if [ "$1" == "start" ]; then
|
||||
start_service
|
||||
fi
|
||||
|
||||
if [ "$1" == "stop" ]; then
|
||||
clear_iptables_rules
|
||||
kill $(pidof nfqws);
|
||||
rm -f /data/adb/modules/zaprett/tmp/*
|
||||
echo "zaprett service stopped!"; return 0; fi;
|
||||
stop_service
|
||||
fi
|
||||
|
||||
if [ "$1" == "status" ]; then
|
||||
pidof "nfqws" > /dev/null && echo "zaprett is working" || echo "zaprett is stopped"
|
||||
fi
|
||||
|
||||
if [ "$1" == "restart" ]; then
|
||||
echo "Stopping zaprett..."
|
||||
clear_iptables_rules
|
||||
kill "$(pidof nfqws)" 2>/dev/null
|
||||
rm -f /data/adb/modules/zaprett/tmp/*
|
||||
echo "Starting zaprett..."
|
||||
hostlist=""
|
||||
for itm in $(echo "$activelists" | tr ',' ' ' | sort -u); do
|
||||
if [ -f "$itm" ]; then
|
||||
dst="/data/adb/modules/zaprett/tmp/$(basename "$itm")"
|
||||
cp "$itm" "$dst"
|
||||
case "$hostlist" in
|
||||
*"--hostlist=$dst"*) ;;
|
||||
*) hostlist="$hostlist --hostlist=$dst" ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
config=""
|
||||
if [[ -n "$strategy" && -f "$strategy" ]]; then
|
||||
config="$(eval "echo \"$(<"$strategy")\"")"
|
||||
fi
|
||||
|
||||
if [[ -z "$config" ]]; then
|
||||
config="--filter-tcp=80 --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig,badsum $hostlist --new"
|
||||
config="$config --filter-tcp=443 $hostlist --dpi-desync=fake,split2 --dpi-desync-repeats=6 --dpi-desync-fooling=md5sig,badsum --dpi-desync-fake-tls=${zaprettdir}/bin/tls_clienthello_www_google_com.bin --new"
|
||||
config="$config --filter-tcp=80,443 --dpi-desync=fake,disorder2 --dpi-desync-repeats=6 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig,badsum $hostlist --new"
|
||||
config="$config --filter-udp=50000-50100 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC30000000108 --new"
|
||||
config="$config --filter-udp=443 $hostlist --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic=${zaprettdir}/bin/quic_initial_www_google_com.bin --new"
|
||||
config="$config --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=6 $hostlist"
|
||||
|
||||
fi
|
||||
sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1 > /dev/null
|
||||
|
||||
iptables -t mangle -I POSTROUTING -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
iptables -t mangle -I PREROUTING -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
iptables -t filter -A FORWARD -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
|
||||
nfqws --uid=0:0 --qnum=200 $config > /dev/null &
|
||||
stop_service
|
||||
start_service
|
||||
echo "zaprett service restarted!"
|
||||
fi
|
||||
|
||||
if [ "$1" == "help" ]; then
|
||||
echo -e "Помощь по модулю zaprett:\nzaprett start - запуск сервиса\nzaprett stop - остановка сервиса\nzaprett restart - перезапуск сервиса\nzaprett status - статус сервиса\nzaprett module-ver - версия модуля\nzaprett bin-ver - версия бинарных файлов"
|
||||
fi
|
||||
|
||||
if [ "$1" == "module-ver" ]; then
|
||||
grep 'version=' /data/adb/modules/zaprett/module.prop | sed 's/version=//'
|
||||
fi
|
||||
|
||||
if [ "$1" == "bin-ver" ]; then
|
||||
nfqws --version | grep -o 'version v[0-9]\+' | sed 's/version v//'
|
||||
fi
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "zaprett installed. Telegram: t.me/zaprett_module"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": "4.4",
|
||||
"versionCode": 44,
|
||||
"zipUrl": "https://github.com/egor-white/zaprett/releases/download//zaprett.zip",
|
||||
"version": "4.5",
|
||||
"versionCode": 45,
|
||||
"zipUrl": "https://github.com/egor-white/zaprett/releases/download/zaprett.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/egor-white/zaprett/refs/heads/main/changelog.md"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": "4.4",
|
||||
"versionCode": 44,
|
||||
"zipUrl": "https://github.com/egor-white/zaprett/releases/download//zaprett-extended.zip",
|
||||
"version": "4.5",
|
||||
"versionCode": 45,
|
||||
"zipUrl": "https://github.com/egor-white/zaprett/releases/download/zaprett-extended.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/egor-white/zaprett/refs/heads/main/changelog.md"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": "4.4",
|
||||
"versionCode": 44,
|
||||
"zipUrl": "https://github.com/egor-white/zaprett/releases/download//zaprett-tv.zip",
|
||||
"version": "4.5",
|
||||
"versionCode": 45,
|
||||
"zipUrl": "https://github.com/egor-white/zaprett/releases/download/zaprett-tv.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/egor-white/zaprett/refs/heads/main/changelog.md"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user