From f2af98a47053c6c56ae43546b5d1e443bc696dbd Mon Sep 17 00:00:00 2001 From: Vlad <150745492+ooovlad@users.noreply.github.com> Date: Mon, 27 Oct 2025 12:26:51 +0000 Subject: [PATCH 1/9] Tor and Mullvad: bring new stable community builds - Update install-64 and uninstall scripts to use new community builds - Move Mullvad installation from home directory to "~/.local/share" - Update icons, metadata and description for the browsers - Change update scripts to use new source - Remove update logic for arm32 versions --- .github/workflows/updates/Mullvad.sh | 6 +-- .github/workflows/updates/Tor.sh | 75 +-------------------------- apps/Mullvad/description | 4 +- apps/Mullvad/install-64 | 58 ++++++++++----------- apps/Mullvad/uninstall | 51 ++++++++++++++---- apps/Mullvad/website | 2 +- apps/Tor/credits | 4 +- apps/Tor/description | 9 ++-- apps/Tor/icon-24.png | Bin 1709 -> 1380 bytes apps/Tor/icon-64.png | Bin 5486 -> 4063 bytes apps/Tor/install-64 | 10 ++-- apps/Tor/uninstall | 2 +- apps/Tor/website | 2 +- 13 files changed, 89 insertions(+), 134 deletions(-) diff --git a/.github/workflows/updates/Mullvad.sh b/.github/workflows/updates/Mullvad.sh index e6f0edf36a..3f50b79401 100755 --- a/.github/workflows/updates/Mullvad.sh +++ b/.github/workflows/updates/Mullvad.sh @@ -1,8 +1,6 @@ #!/bin/bash - -webVer="$(wget -qO- https://sourceforge.net/projects/tor-browser-ports/rss?path=/ | grep mullvad-browser-linux -m1 | sed 's/.*\[\/mullvad-//g ; s/\/mullvad-browser-linux.*//g')" -armhf_url="https://sourceforge.net/projects/tor-browser-ports/files/mullvad-${webVer}/mullvad-browser-linux-armhf-${webVer}.tar.xz/download" -arm64_url="https://sourceforge.net/projects/tor-browser-ports/files/mullvad-${webVer}/mullvad-browser-linux-arm64-${webVer}.tar.xz/download" +webVer="$(get_release ooovlad/tor-mullvad-aarch64)" +arm64_url="https://github.com/ooovlad/tor-mullvad-aarch64/releases/download/${webVer}/mullvad-browser-linux-aarch64-${webVer}.tar.xz" source $GITHUB_WORKSPACE/.github/workflows/update_github_script.sh diff --git a/.github/workflows/updates/Tor.sh b/.github/workflows/updates/Tor.sh index 065c814587..d98ed77001 100755 --- a/.github/workflows/updates/Tor.sh +++ b/.github/workflows/updates/Tor.sh @@ -1,77 +1,6 @@ #!/bin/bash -# Extract versions from the specific structure: -# Lines look like: -# tbb-nightly.2025.09.24/ 2025-09-24 14:28 - -# Then sort by YYYYMMDD numerically to be portable (no reliance on sort -V). -# Then retrieve current pi-apps version and compare those to be 5 days off each other. -get_latest_nightly_version() { - wget -qO- "https://nightlies.tbb.torproject.org/nightly-builds/tor-browser-builds" 2>/dev/null \ - | sed -nE 's@.*href="tbb-nightly\.([0-9]{4}\.[0-9]{2}\.[0-9]{2})/".*@\1@p' \ - | sort \ - | tail -n 1 -} - -get_installed_version() { - # Expect a line like: version=2025.09.24 - if [[ -f install-64 ]]; then - sed -nE 's/^version=([0-9]{4}\.[0-9]{2}\.[0-9]{2})\s*$/\1/p' install-64 | head -n1 - fi -} - -days_between() { - # Args: date1 date2 (YYYY.MM.DD) - local d1="$1" d2="$2" - local e1 e2 - e1=$(date -d "${d1//./-}" +%s) || return 1 - e2=$(date -d "${d2//./-}" +%s) || return 1 - local diff=$(( e1 - e2 )) - echo $(( diff / 86400 )) -} - -choose_version() { - local remote installed - remote=$(get_latest_nightly_version || true) - installed=$(get_installed_version || true) - - # If no remote, nothing to do - if [[ -z $remote ]]; then - echo "" - return - fi - - # If no installed version, just use remote - if [[ -z $installed ]]; then - echo "$remote" - return - fi - - # Validate formats - if [[ ! $remote =~ ^[0-9]{4}\.[0-9]{2}\.[0-9]{2}$ ]] || \ - [[ ! $installed =~ ^[0-9]{4}\.[0-9]{2}\.[0-9]{2}$ ]]; then - echo "$remote" # fall back to let update script call an error - return - fi - - local delta - delta=$(days_between "$remote" "$installed") - - if (( delta >= 5 )); then - echo "$remote" - else - echo "$installed" - fi -} - -# update arm64 version -version="$(choose_version)" -arm64_url="https://nightlies.tbb.torproject.org/nightly-builds/tor-browser-builds/tbb-nightly.${version}/nightly-linux-aarch64/tor-browser-linux-aarch64-tbb-nightly.${version}.tar.xz" - -source $GITHUB_WORKSPACE/.github/workflows/update_github_script.sh - -# update armhf version -# Older unofficial build -version="$(wget -qO- https://sourceforge.net/projects/tor-browser-ports/files | grep -F 'Download Latest Version' --after 1 | tail -n -1 | tr '<>\-_' '\n' | sed -n 8p | sed 's/\.tar\.xz.*//g')" -armhf_url="https://sourceforge.net/projects/tor-browser-ports/files/${version}/tor-browser-linux-armhf-${version}.tar.xz/download" +webVer="$(get_release ooovlad/tor-mullvad-aarch64)" +arm64_url="https://github.com/ooovlad/tor-mullvad-aarch64/releases/download/${webVer}/tor-browser-linux-aarch64-${webVer}.tar.xz" source $GITHUB_WORKSPACE/.github/workflows/update_github_script.sh diff --git a/apps/Mullvad/description b/apps/Mullvad/description index 1b9a31f614..7a38f3e768 100644 --- a/apps/Mullvad/description +++ b/apps/Mullvad/description @@ -4,4 +4,6 @@ Default settings will block trackers, browser fingerprinting, ads, insecure HTTP Mullvad Browser is a fork of the Tor browser, and includes uBlock Origin and the Mullvad extensions preinstalled. To run: Menu -> Internet -> Mullvad Browser -To run in a terminal: ~/mullvad-browser/Browser/start-mullvad-browser +To run in a terminal: `~/.local/share/mullvad-browser/start-mullvad-browser.desktop` + +To remove user-data after uninstall use `rm -rf ~/.local/share/mullvad-browser` \ No newline at end of file diff --git a/apps/Mullvad/install-64 b/apps/Mullvad/install-64 index dbcb1006e8..c90674920f 100755 --- a/apps/Mullvad/install-64 +++ b/apps/Mullvad/install-64 @@ -1,40 +1,38 @@ #!/bin/bash -version=13.0.9 +version=14.5.8 +INSTALL_DIR="$HOME/.local/share" -#if ~/mullvad-browser_en-US folder exists, prepare to import its user-data -if [ -d ~/mullvad-browser_en-US/Browser/MullvadBrowser/Data/Browser ];then - mv -f ~/mullvad-browser_en-US ~/mullvad-browser.temp -fi +status 'Looking for previous installations and remaining user data…' -#if ~/mullvad-browser folder exists, prepare to import its user-data +#[OLD] if ~/mullvad-browser folder exists (old installdir), prepare to import its user-data if [ -d ~/mullvad-browser/Browser/MullvadBrowser/Data/Browser ];then - mv -f ~/mullvad-browser ~/mullvad-browser.temp + mv -f ~/mullvad-browser "$INSTALL_DIR"/mullvad-browser.temp + status_green 'Found user data in ~/mullvad-browser ' fi -rm -f ~/mullvad.tar.xz -wget -O ~/mullvad.tar.xz https://sourceforge.net/projects/tor-browser-ports/files/mullvad-${version}/mullvad-browser-linux-arm64-${version}.tar.xz/download || error "Failed to download!" -tar -xf ~/mullvad.tar.xz || error "Failed to extract!" -rm -f ~/mullvad.tar.xz - -#if ~/mullvad-browser.temp folder exists, import its user-data -if [ -d ~/mullvad-browser.temp ];then - rm -rf ~/mullvad-browser/Browser/MullvadBrowser/Data/Browser - mv -f ~/mullvad-browser.temp/Browser/MullvadBrowser/Data/Browser ~/mullvad-browser/Browser/MullvadBrowser/Data && rm -rf ~/mullvad-browser.temp +#if "$INSTALL_DIR"/mullvad-browser folder exists, prepare to import its user-data +if [ -d "$INSTALL_DIR"/mullvad-browser/Browser/MullvadBrowser/Data/Browser ];then + mv -f "$INSTALL_DIR"/mullvad-browser "$INSTALL_DIR"/mullvad-browser.temp + status_green "Found user data in $INSTALL_DIR/mullvad-browser" fi -#copy icon for wayfire -mkdir -p ~/.local/share/icons -cp -f $HOME/mullvad-browser/Browser/browser/chrome/icons/default/default128.png ~/.local/share/icons/mullvad-browser.png - -echo "[Desktop Entry] -Type=Application -Name=Mullvad Browser -GenericName=Web Browser -Comment=Mullvad Browser is +1 for privacy and −1 for mass surveillance -Categories=Network;WebBrowser;Security; -Exec=$HOME/mullvad-browser/Browser/start-mullvad-browser --class 'mullvad-browser' --name 'mullvad-browser' -X-MullvadBrowser-ExecShell=./Browser/start-mullvad-browser --detach -Icon=mullvad-browser -StartupWMClass=mullvad-browser" > ~/.local/share/applications/mullvad.desktop +status 'Downloading and extracting Mullvad Browser archive…' +rm -f /tmp/mullvad-browser-aarch64.tar.xz +wget -O /tmp/mullvad-browser-aarch64.tar.xz "https://github.com/ooovlad/tor-mullvad-aarch64/releases/download/${version}/mullvad-browser-linux-aarch64-${version}.tar.xz" || error "Failed to download!" +tar -xpJf /tmp/mullvad-browser-aarch64.tar.xz "$INSTALL_DIR"/mullvad-browser --strip-components=1 || error "Failed to extract!" +rm -f /tmp/mullvad-browser-aarch64.tar.xz +status_green 'Done' + +#if "$INSTALL_DIR"/mullvad-browser.temp folder exists, import its user-data +if [ -d "$INSTALL_DIR"/mullvad-browser.temp ];then + status -n 'Importing user-data… ' + rm -rf "$INSTALL_DIR"/mullvad-browser/Browser/MullvadBrowser/Data/Browser + mv -f "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data/Browser "$INSTALL_DIR"/mullvad-browser/Browser/MullvadBrowser/Data && rm -rf "$INSTALL_DIR"/mullvad-browser.temp + status_green 'Done' +fi +status -n 'Registering Mullvad Browser as a desktop app for this user… ' +cd "$INSTALL_DIR"/mullvad-browser || error 'Fatal error! Cannot cd to app!' +"$INSTALL_DIR"/mullvad-browser/start-mullvad-browser.desktop --register-app || error 'Failed to register a desktop app' +status_green 'Done' diff --git a/apps/Mullvad/uninstall b/apps/Mullvad/uninstall index bc687ce359..b8b94fe4d2 100755 --- a/apps/Mullvad/uninstall +++ b/apps/Mullvad/uninstall @@ -1,27 +1,56 @@ #!/bin/bash -#remove the menu launcher -rm -f ~/.local/share/applications/mullvad.desktop +# Command blocks that are left for backwards-compatibility of this uninstall script are marked as: +# [OLD] for installations from https://sourceforge.net/projects/tor-browser-ports/files/ -#before removing the mullvad-browser folder, move the browser configuration like bookmarks, etc +INSTALL_DIR="$HOME/.local/share" + +status 'Unregistering Mullvad Browser desktop app… ' +cd "$INSTALL_DIR"/mullvad-browser || error 'Fatal error! Cannot cd to app!' +"$INSTALL_DIR"/mullvad-browser/start-mullvad-browser.desktop --unregister-app || error 'Failed to unregister a desktop app' +status_green 'Removed from applications menu' + +status 'Looking for previous installations and remaining user data… ' + +#[OLD] check old installation path for remaining user-data if [ -d ~/mullvad-browser ];then - mkdir -p ~/mullvad-browser.temp/Browser/MullvadBrowser/Data - mv -n ~/mullvad-browser/Browser/MullvadBrowser/Data/Browser ~/mullvad-browser.temp/Browser/MullvadBrowser/Data + mkdir -p "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data + mv -n ~/mullvad-browser/Browser/MullvadBrowser/Data/Browser "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data + status_green 'User-data found in ~/mullvad-browser. Copied to temporary folder.' +fi + +#before removing the mullvad-browser folder, move the browser configuration like bookmarks, etc +if [ -d "$INSTALL_DIR"/mullvad-browser ];then + mkdir -p "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data + mv -n "$INSTALL_DIR"/mullvad-browser/Browser/MullvadBrowser/Data/Browser "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data + status_green "User-data found in $INSTALL_DIR/mullvad-browser. Copied to temporary folder." fi +status -n 'Removing all browser internals… ' + +#[OLD] remove all browser internals from old installation path +[ -d ~/mullvad-browser ] && rm -rf ~/mullvad-browser + #remove all browser internals (except for user-data which we moved already) -rm -rf ~/mullvad-browser +rm -rf "$INSTALL_DIR"/mullvad-browser -#remove icon -rm -f ~/.local/share/icons/mullvad-browser.png +status_green 'Done' #move back the temporary folder containing user-data -if [ -d ~/mullvad-browser.temp ];then - mv ~/mullvad-browser.temp ~/mullvad-browser +if [ -d "$INSTALL_DIR"/mullvad-browser.temp ];then + status -n 'Moving user data files back… ' + mv "$INSTALL_DIR"/mullvad-browser.temp "$INSTALL_DIR"/mullvad-browser + status_green 'Done' #let the user know where configuration is echo "Mullvad Browser has been uninstalled, but user-data like settings and bookmarks remain intact. To remove these files, run this command: -rm -rf ~/mullvad-browser" +rm -rf ${INSTALL_DIR}/mullvad-browser" fi + +#[OLD] remove the menu launcher +rm -f ~/.local/share/applications/mullvad.desktop + +#[OLD] remove icon +rm -f ~/.local/share/icons/mullvad-browser.png diff --git a/apps/Mullvad/website b/apps/Mullvad/website index fb97c1bbcf..3f59f0c060 100644 --- a/apps/Mullvad/website +++ b/apps/Mullvad/website @@ -1 +1 @@ -https://sourceforge.net/projects/tor-browser-ports/files/ +https://github.com/ooovlad/tor-mullvad-aarch64 \ No newline at end of file diff --git a/apps/Tor/credits b/apps/Tor/credits index a876414e2e..74bf00f04d 100644 --- a/apps/Tor/credits +++ b/apps/Tor/credits @@ -1,5 +1,5 @@ Tor Browser is developed by The Tor Project, Inc. https://www.torproject.org/about/people/ -Tor Browser ARM64 Nightly was put to Pi-Apps by oovlad -https://github.com/ooovlad +Tor Browser ARM64 was built and put to Pi-Apps by oovlad +https://github.com/ooovlad \ No newline at end of file diff --git a/apps/Tor/description b/apps/Tor/description index 0ffd086069..dd1b8a50d8 100644 --- a/apps/Tor/description +++ b/apps/Tor/description @@ -1,11 +1,10 @@ The Tor Browser is a free web browser built on Firefox that helps you surf the web anonymously by routing your connection through a secure, global network of volunteer servers known as Tor network. Your data is encrypted, and your IP address is hidden by onion routing, protecting you from trackers, advertisers, and prying eyes. With built-in features like tracker blocking and script protection, Tor Browser ensures a safer online experience. Perfect for private browsing, accessing restricted sites, or exploring the web without leaving a trace. -Native aarch64 builds are coming! This is an official nightly aarch64 Linux build. -Note: if you use armhf system (32-bit OS), it will install older (2024-02-12) stable community build (updates for armhf are abandoned by mainainer). Aarch64 nightly version for 64-bit OS is updated in pi-apps every 5 days. +Community ARM builds for Tor Browser. +Note: arm64 (aarch64) version is up-to-date but arm32 (armhf) version is deprecated since 2024-02-12 and unsafe. +Note: arm64 models are Raspberry Pi 3/4/400/5/500 and newer. -WARNING! This is a build that is currently in development. It is mainly for testing purposes, you should expect bugs. However, this is the only up-to-date Tor Browser package that is available for arm64 at this moment. Once a stable version is released, it will replace the nightly build in one of the next app updates. - -To run: Menu -> Internet -> Tor Browser Nightly +To run: Menu -> Internet -> Tor Browser To run from terminal: `~/.local/share/tor-browser/start-tor-browser.desktop` To remove user-data after uninstall use `rm -rf ~/.local/share/tor-browser` \ No newline at end of file diff --git a/apps/Tor/icon-24.png b/apps/Tor/icon-24.png index 20f178806cea1c4d923b873f8f54fd3ef01d935e..e8843629fdb9b78f3f4bbbf4e8390a79f92426cf 100644 GIT binary patch delta 1361 zcmV-X1+Mz74de=tB!3BTNLh0L006N7006N8#w|&W0000PbVXQnQ*UN;cVTj60C#tH zE@^ISb7Ns}WiD@WXPfRk8UO$U@kvBMR7i=9m04^RRT#&AXJ+o)+fFaEEP~KhiUwQ& zx47VriUx73gkaGJH`Ewy)L49QH!*@raI4W56XHTKVG|;#Xn*wq#ia_OjT)@YEdr$* zm)pC|oO3=O00Tl>{*(X1$$a_$&U}-6pAr!U((B_}sy)xG^^?wgYgDxIeRr(lJnmIu>AQ)wkmlLE@z-tLv>%U-OeeB3ZbPfFr=iniu%w!G0sI+aH$Bv$Gze0ayj zuN(zfH15k6oWz123iN#lX;BbJT2C_R1Cb9s;lQCv5I*Y3FN3y=*Xa4%C6W4c&QQn#O zOxMg^4uGFfFGnWwjkajQK|OETbne}BB{QF$LU5u_ZhxMY^;<}N-_5npPa|0wCoG0> zzrrj5P=Ak)`=~l5Ub_N?aR$9TK+Vh%RGoeTXVy+cDOmOB7E&!;B!dwJR1JH$q_#3%$iqHVjnC1UIP9f%Q5xne9@ zBD}z@b0QN?&^AKL@%i!xrm>)D7KsX%{k<7lR{g&=-<~*=byctIAsKeh)5S} zoO~f)ZX`lWcw7cZjw)r!>ckuT&cJd4JNW#EZ) zq<;?8Su6&P!5%zo3>rE37&Hn8Px)$}j-oMx%)Fxz>8>n4uKx`!5tUO%Q_P0+?CHaZ zW%$^D?vC_by+Dq$Nt;);pz|*!soqXo=XL z?*Gs$7`@7O>{6?&5<4_t>LrtzIJKIK=bVEGyi>n|?p-|ut#@}4I;?yi2JDW4DPtR0##|M}~2t;bKBT3Pqjm-OyV<9aT4y)p;ScUk%Br+;W7 zf@De4vi7HTdH|VRz9HtRTdXy4YX*nBaBCwy9T`ky04OUj<-R5JIraP+-mHI*J*mC8 zzFX|;%032%jqACi8g8;8tF5(42Kkai;1lI7$?|}UZaA0g@4bqc@A3A+57_!uD=5VE z+?zk@TKw@50D!vj3m?nn3ooHW8Gn6jNd2pKGPZIICruuYauh#&zKy0O>)6}T4GKw= zB^p-jT)gB^{ZT9P#)=1Ta%1iat;4vs7O_XZfAZaWa(xBbeoOJg=iBJ)=mNm=y`r&Z z?z-N_b%)m<3KYNEo91uhVYlV2+Cn}i35|EOhbX7iGcuHtv_MP4T z&pIaHkY<$LUYUsdw*=*7bw-<$!dy5~tl*dWJ#Nfx&+gBDSS*BVnse{(94O;oo5teT T$NuTp00000NkvXXu0mjfu=trp delta 1693 zcmV;O24eZ-3at&0B!2{FK}|sb0I`n?{9y$E001CkNK#Dz0D2|>0Dy!50Qvv`0D$NK z0Cg|`0P0`>06Lfe02gqax=}m;000JJOGiWi000000Qp0^e*gdg32;bRa{vGf6951U z69E94oEQKA00(qQO+^Rk2^bFm2wT3`5BVRuF?Y?WI8&>01k|Cn-Nu2vJ z!fuc?d7hT9jbEY2^Q2a;O*hMp^YwD=jZ#!Pp=$GS0M8#^`*47lkKBZA>S#5O5Cty~ z$U%_!uH9?K^ukrLG$Ymu6{*uG)w3v!&KSG`b_(z>o_}0_Kftdao50c{3I;0AN-25? z=hobpZ`HfwQ?2LtFm%EqB|=9w+(wyjn@Uqe{;GI5&-<_&<$3m+Aba*_$j6E zHFItVF-#1@Py++zNwQYG$nWW`BQENSrrAogCF5IH&@>JY}}i!_2X2 zpu%9IhMC~aD7=y9#=uC#=#x#h9d1AX=T9zhb!>$lk2h(Kgk)Y16>3j;Gu%oqjXeBF zoy2NJ?iJPkn>y!E18;^mBTbbn?=N%itqxZ&tgv~s!srtXa<7b?>|kbW*;A!3iwm=7 z5`XU_N8r{MuvZxfEdr^GgXUNs2c`&5!_E>-)AVA1rg}oh7#Jt+RGZiJ8fa zYnOX${8ojqBII6otFhh{#wKqzqV%H#$M8^tWI7xs z%Gfg9CC}y^RdTP~_@qm1AfPhf$h@v8RDU;xg=!1cvN!7wg+Ulb46kaUs)z`J!>b|I zFWvB0O3dCA<|Yc}rZNUcN?2fY=5s`ZxaKHSD^8>p=4P1JzJq(`S_C1$4AlC_V)mI? z&G2d%U%sKh1SIfgY_fHu7v%8W!5rzSA96hj7&OsPD zrY93FpHFGeILf6OkN;pbyS_KbKmIh$t%(HZ|1lZd%6uU1H1~%bGP-6ZNGpxoT>cG;I+WH zdbL)jTq)u1>0Pfmo#p>ht|*UeZL#aSYZ)FM;N8;;ymz`yp4&3Q^Wyj;ioSVq=jViT zZ2JX($dG4&mj#BSIHX*PiGSh<=NwVVvvF&ixNMZmHI_RupZ+^zW-dtD%Z z^U~=3lzD9X1^Uw^M+{y74hY2Jgupq1P$*Y(3J+N#WC@s&iQ{d7S4`{_h918-`f$>J zdgq6zIs}G*qrfu;yMPg(e5bv72)6~sfIkB#5bKx<$1m-CIO%^On}5-(;8y^N4b}mh zfYu#zTVULTTY_cIH~IVJ%@6eRe+VKNwhhZsi~s-tC3HntbYx+4WjbSWWnpw>05UK# zH7zhXEiyDzF*G_gH99jeD=;uRFfiR5JE{Nx03~!qSaf7zbY(hiZ)9m^c>ppnGBqtQ nIW00YR4_3*FflqXF%~N@Fgh?Wd?nEw00000NkvXXu0mjf6@3e6 diff --git a/apps/Tor/icon-64.png b/apps/Tor/icon-64.png index 25ae65fb0d6176760933ad2d013d67758233c97c..3f3151b0b593c95224e40d995a08779a3dc80894 100644 GIT binary patch delta 4058 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 M07*qoM6N<$g0%1pO#lD@ literal 5486 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 diff --git a/apps/Tor/install-64 b/apps/Tor/install-64 index 8807e9337b..6b347cf33d 100755 --- a/apps/Tor/install-64 +++ b/apps/Tor/install-64 @@ -1,10 +1,10 @@ #!/bin/bash -version=2025.10.25 +version=14.5.8 INSTALL_DIR="$HOME/.local/share" -rm -f /tmp/tbb-nightly.tar.xz -wget -O /tmp/tbb-nightly.tar.xz "https://nightlies.tbb.torproject.org/nightly-builds/tor-browser-builds/tbb-nightly.$version/nightly-linux-aarch64/tor-browser-linux-aarch64-tbb-nightly.$version.tar.xz" || error "Failed to download Tor Browser Nightly ver. $version" +rm -f /tmp/tor-browser-aarch64.tar.xz +wget -O /tmp/tor-browser-aarch64.tar.xz "https://github.com/ooovlad/tor-mullvad-aarch64/releases/download/${version}/tor-browser-linux-aarch64-${version}.tar.xz" || error "Failed to download Tor Browser ver. $version" status -n 'Looking for previous installations and remaining user data… ' if [ -d "$INSTALL_DIR"/tor-browser ]; then @@ -19,8 +19,8 @@ fi status_green 'Done' status -n "Extracting Tor Browser to $INSTALL_DIR/tor-browser … " -tar -xpJf /tmp/tbb-nightly.tar.xz -C "$INSTALL_DIR"/tor-browser --strip-components=1 || error 'Failed to extract Tor Browser' -rm -f /tmp/tbb-nightly.tar.xz +tar -xpJf /tmp/tor-browser-aarch64.tar.xz -C "$INSTALL_DIR"/tor-browser --strip-components=1 || error 'Failed to extract Tor Browser' +rm -f /tmp/tor-browser-aarch64.tar.xz status_green 'Done' #if tor-browser.temp folder exists, import its user-data diff --git a/apps/Tor/uninstall b/apps/Tor/uninstall index 54a9fdf9a2..3cb5839fd1 100755 --- a/apps/Tor/uninstall +++ b/apps/Tor/uninstall @@ -18,7 +18,7 @@ fi status_green 'Done' status -n 'Removing all browser internals… ' -rm -rfv "$INSTALL_DIR"/tor-browser || error "Cannot remove $INSTALL_DIR/tor-browser directory" +rm -rf "$INSTALL_DIR"/tor-browser || error "Cannot remove $INSTALL_DIR/tor-browser directory" status_green 'Done' #move back the temporary folder containing user-data diff --git a/apps/Tor/website b/apps/Tor/website index 92cbc91f75..3f59f0c060 100644 --- a/apps/Tor/website +++ b/apps/Tor/website @@ -1 +1 @@ -https://nightlies.tbb.torproject.org/nightly-builds/tor-browser-builds/ \ No newline at end of file +https://github.com/ooovlad/tor-mullvad-aarch64 \ No newline at end of file From 32d5302b2ddd992ee8868bce3a0b0c6d022c77cc Mon Sep 17 00:00:00 2001 From: Vlad <150745492+ooovlad@users.noreply.github.com> Date: Mon, 27 Oct 2025 13:47:18 +0000 Subject: [PATCH 2/9] Fix and enhance Mullvad install-uninstall scripts --- apps/Mullvad/install-32 | 34 ++++++++++++++++++---------------- apps/Mullvad/install-64 | 1 + apps/Mullvad/uninstall | 24 ++++++++++++++---------- 3 files changed, 33 insertions(+), 26 deletions(-) diff --git a/apps/Mullvad/install-32 b/apps/Mullvad/install-32 index 480a0c3c6c..8579ef5cd4 100755 --- a/apps/Mullvad/install-32 +++ b/apps/Mullvad/install-32 @@ -1,31 +1,33 @@ #!/bin/bash version=13.0.9 - -#if ~/mullvad-browser_en-US folder exists, prepare to import its user-data -if [ -d ~/mullvad-browser_en-US/Browser/MullvadBrowser/Data/Browser ];then - mv -f ~/mullvad-browser_en-US ~/mullvad-browser.temp -fi +INSTALL_DIR="$HOME/.local/share" #if ~/mullvad-browser folder exists, prepare to import its user-data if [ -d ~/mullvad-browser/Browser/MullvadBrowser/Data/Browser ];then - mv -f ~/mullvad-browser ~/mullvad-browser.temp + mv -f ~/mullvad-browser "$INSTALL_DIR"/mullvad-browser.temp +fi + +#if "$INSTALL_DIR"/mullvad-browser folder exists, prepare to import its user-data +if [ -d "$INSTALL_DIR"/mullvad-browser/Browser/MullvadBrowser/Data/Browser ];then + mv -f "$INSTALL_DIR"/mullvad-browser "$INSTALL_DIR"/mullvad-browser.temp fi -rm -f ~/mullvad.tar.xz -wget -O ~/mullvad.tar.xz https://sourceforge.net/projects/tor-browser-ports/files/mullvad-${version}/mullvad-browser-linux-armhf-${version}.tar.xz/download || error "Failed to download!" -tar -xf ~/mullvad.tar.xz || error "Failed to extract!" -rm -f ~/mullvad.tar.xz +rm -f /tmp/mullvad.tar.xz +wget -O /tmp/mullvad.tar.xz https://sourceforge.net/projects/tor-browser-ports/files/mullvad-${version}/mullvad-browser-linux-armhf-${version}.tar.xz/download || error "Failed to download!" +mkdir -p "$INSTALL_DIR"/mullvad-browser +tar -xf /tmp/mullvad.tar.xz "$INSTALL_DIR"/mullvad-browser --strip-components=1 || error "Failed to extract!" +rm -f /tmp/mullvad.tar.xz -#if ~/mullvad-browser.temp folder exists, import its user-data -if [ -d ~/mullvad-browser.temp ];then - rm -rf ~/mullvad-browser/Browser/MullvadBrowser/Data/Browser - mv -f ~/mullvad-browser.temp/Browser/MullvadBrowser/Data/Browser ~/mullvad-browser/Browser/MullvadBrowser/Data && rm -rf ~/mullvad-browser.temp +#if "$INSTALL_DIR"/mullvad-browser.temp folder exists, import its user-data +if [ -d "$INSTALL_DIR"/mullvad-browser.temp ];then + rm -rf "$INSTALL_DIR"/mullvad-browser/Browser/MullvadBrowser/Data/Browser + mv -f "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data/Browser "$INSTALL_DIR"/mullvad-browser/Browser/MullvadBrowser/Data && rm -rf "$INSTALL_DIR"/mullvad-browser.temp fi #copy icon for wayfire mkdir -p ~/.local/share/icons -cp -f $HOME/mullvad-browser/Browser/browser/chrome/icons/default/default128.png ~/.local/share/icons/mullvad-browser.png +cp -f "$INSTALL_DIR"/mullvad-browser/Browser/browser/chrome/icons/default/default128.png ~/.local/share/icons/mullvad-browser.png echo "[Desktop Entry] Type=Application @@ -33,7 +35,7 @@ Name=Mullvad Browser GenericName=Web Browser Comment=Mullvad Browser is +1 for privacy and −1 for mass surveillance Categories=Network;WebBrowser;Security; -Exec=$HOME/mullvad-browser/Browser/start-mullvad-browser --class 'mullvad-browser' --name 'mullvad-browser' +Exec=$INSTALL_DIR/mullvad-browser/Browser/start-mullvad-browser --class 'mullvad-browser' --name 'mullvad-browser' X-MullvadBrowser-ExecShell=./Browser/start-mullvad-browser --detach Icon=mullvad-browser StartupWMClass=mullvad-browser" > ~/.local/share/applications/mullvad.desktop diff --git a/apps/Mullvad/install-64 b/apps/Mullvad/install-64 index c90674920f..9d68205702 100755 --- a/apps/Mullvad/install-64 +++ b/apps/Mullvad/install-64 @@ -20,6 +20,7 @@ fi status 'Downloading and extracting Mullvad Browser archive…' rm -f /tmp/mullvad-browser-aarch64.tar.xz wget -O /tmp/mullvad-browser-aarch64.tar.xz "https://github.com/ooovlad/tor-mullvad-aarch64/releases/download/${version}/mullvad-browser-linux-aarch64-${version}.tar.xz" || error "Failed to download!" +mkdir -p "$INSTALL_DIR"/mullvad-browser tar -xpJf /tmp/mullvad-browser-aarch64.tar.xz "$INSTALL_DIR"/mullvad-browser --strip-components=1 || error "Failed to extract!" rm -f /tmp/mullvad-browser-aarch64.tar.xz status_green 'Done' diff --git a/apps/Mullvad/uninstall b/apps/Mullvad/uninstall index b8b94fe4d2..a1ae98644c 100755 --- a/apps/Mullvad/uninstall +++ b/apps/Mullvad/uninstall @@ -6,14 +6,24 @@ INSTALL_DIR="$HOME/.local/share" status 'Unregistering Mullvad Browser desktop app… ' -cd "$INSTALL_DIR"/mullvad-browser || error 'Fatal error! Cannot cd to app!' -"$INSTALL_DIR"/mullvad-browser/start-mullvad-browser.desktop --unregister-app || error 'Failed to unregister a desktop app' -status_green 'Removed from applications menu' +if [ -d "$INSTALL_DIR"/mullvad-browser ]; then + cd "$INSTALL_DIR"/mullvad-browser || error 'Fatal error! Cannot cd to app!' + "$INSTALL_DIR"/mullvad-browser/start-mullvad-browser.desktop --unregister-app || error 'Failed to unregister a desktop app' + status_green 'Removed from applications menu' +elif [ -d ~/mullvad-browser ] + warning 'You either use old installation path (~/mullvad-browser) or deprecated arm32 app version that uses this old installation path.\nThis uninstall script can handle that anyways.' + #[OLD] remove the menu launcher + rm -f ~/.local/share/applications/mullvad.desktop + #[OLD] remove icon + rm -f ~/.local/share/icons/mullvad-browser.png +else + error "Installation path not found neither in "$INSTALL_DIR"/mullvad-browser nor in ~/mullvad-browser\nAre you sure the app is installed?" +fi status 'Looking for previous installations and remaining user data… ' #[OLD] check old installation path for remaining user-data -if [ -d ~/mullvad-browser ];then +if [ -d ~/mullvad-browser/Browser/MullvadBrowser/Data/Browser ]; then mkdir -p "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data mv -n ~/mullvad-browser/Browser/MullvadBrowser/Data/Browser "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data status_green 'User-data found in ~/mullvad-browser. Copied to temporary folder.' @@ -48,9 +58,3 @@ To remove these files, run this command: rm -rf ${INSTALL_DIR}/mullvad-browser" fi - -#[OLD] remove the menu launcher -rm -f ~/.local/share/applications/mullvad.desktop - -#[OLD] remove icon -rm -f ~/.local/share/icons/mullvad-browser.png From 4f90fe4641690b6e99882d5e677af266ecfba427 Mon Sep 17 00:00:00 2001 From: Vlad <150745492+ooovlad@users.noreply.github.com> Date: Mon, 27 Oct 2025 13:51:57 +0000 Subject: [PATCH 3/9] Fix syntax in uninstall Mullvad --- apps/Mullvad/uninstall | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/Mullvad/uninstall b/apps/Mullvad/uninstall index a1ae98644c..e50e893d62 100755 --- a/apps/Mullvad/uninstall +++ b/apps/Mullvad/uninstall @@ -10,7 +10,7 @@ if [ -d "$INSTALL_DIR"/mullvad-browser ]; then cd "$INSTALL_DIR"/mullvad-browser || error 'Fatal error! Cannot cd to app!' "$INSTALL_DIR"/mullvad-browser/start-mullvad-browser.desktop --unregister-app || error 'Failed to unregister a desktop app' status_green 'Removed from applications menu' -elif [ -d ~/mullvad-browser ] +elif [ -d ~/mullvad-browser ]; then warning 'You either use old installation path (~/mullvad-browser) or deprecated arm32 app version that uses this old installation path.\nThis uninstall script can handle that anyways.' #[OLD] remove the menu launcher rm -f ~/.local/share/applications/mullvad.desktop From 1881970aa304ce91df9d119dffa025679f766565 Mon Sep 17 00:00:00 2001 From: Vlad <150745492+ooovlad@users.noreply.github.com> Date: Mon, 27 Oct 2025 14:01:47 +0000 Subject: [PATCH 4/9] Fix tar syntax in install Mullvad --- apps/Mullvad/install-32 | 2 +- apps/Mullvad/install-64 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/Mullvad/install-32 b/apps/Mullvad/install-32 index 8579ef5cd4..4743ea3174 100755 --- a/apps/Mullvad/install-32 +++ b/apps/Mullvad/install-32 @@ -16,7 +16,7 @@ fi rm -f /tmp/mullvad.tar.xz wget -O /tmp/mullvad.tar.xz https://sourceforge.net/projects/tor-browser-ports/files/mullvad-${version}/mullvad-browser-linux-armhf-${version}.tar.xz/download || error "Failed to download!" mkdir -p "$INSTALL_DIR"/mullvad-browser -tar -xf /tmp/mullvad.tar.xz "$INSTALL_DIR"/mullvad-browser --strip-components=1 || error "Failed to extract!" +tar -xf /tmp/mullvad.tar.xz -C "$INSTALL_DIR"/mullvad-browser --strip-components=1 || error "Failed to extract!" rm -f /tmp/mullvad.tar.xz #if "$INSTALL_DIR"/mullvad-browser.temp folder exists, import its user-data diff --git a/apps/Mullvad/install-64 b/apps/Mullvad/install-64 index 9d68205702..abd9869476 100755 --- a/apps/Mullvad/install-64 +++ b/apps/Mullvad/install-64 @@ -21,7 +21,7 @@ status 'Downloading and extracting Mullvad Browser archive…' rm -f /tmp/mullvad-browser-aarch64.tar.xz wget -O /tmp/mullvad-browser-aarch64.tar.xz "https://github.com/ooovlad/tor-mullvad-aarch64/releases/download/${version}/mullvad-browser-linux-aarch64-${version}.tar.xz" || error "Failed to download!" mkdir -p "$INSTALL_DIR"/mullvad-browser -tar -xpJf /tmp/mullvad-browser-aarch64.tar.xz "$INSTALL_DIR"/mullvad-browser --strip-components=1 || error "Failed to extract!" +tar -xpJf /tmp/mullvad-browser-aarch64.tar.xz -C "$INSTALL_DIR"/mullvad-browser --strip-components=1 || error "Failed to extract!" rm -f /tmp/mullvad-browser-aarch64.tar.xz status_green 'Done' From fb177ef7d3dc1ce905625901f65664b20c2ed6f9 Mon Sep 17 00:00:00 2001 From: Vlad <150745492+ooovlad@users.noreply.github.com> Date: Mon, 27 Oct 2025 14:25:25 +0000 Subject: [PATCH 5/9] Fix logic in uninstall Mullvad --- apps/Mullvad/uninstall | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/Mullvad/uninstall b/apps/Mullvad/uninstall index e50e893d62..ea37c44056 100755 --- a/apps/Mullvad/uninstall +++ b/apps/Mullvad/uninstall @@ -12,12 +12,8 @@ if [ -d "$INSTALL_DIR"/mullvad-browser ]; then status_green 'Removed from applications menu' elif [ -d ~/mullvad-browser ]; then warning 'You either use old installation path (~/mullvad-browser) or deprecated arm32 app version that uses this old installation path.\nThis uninstall script can handle that anyways.' - #[OLD] remove the menu launcher - rm -f ~/.local/share/applications/mullvad.desktop - #[OLD] remove icon - rm -f ~/.local/share/icons/mullvad-browser.png else - error "Installation path not found neither in "$INSTALL_DIR"/mullvad-browser nor in ~/mullvad-browser\nAre you sure the app is installed?" + error "Installation path not found neither in $INSTALL_DIR/mullvad-browser nor in ~/mullvad-browser\nAre you sure the app is installed?" fi status 'Looking for previous installations and remaining user data… ' @@ -58,3 +54,8 @@ To remove these files, run this command: rm -rf ${INSTALL_DIR}/mullvad-browser" fi + +#[OLD] remove the menu launcher +rm -f ~/.local/share/applications/mullvad.desktop +#[OLD] remove icon +rm -f ~/.local/share/icons/mullvad-browser.png \ No newline at end of file From db07966fdbccdc2f7f65f85a556d29b1a4794437 Mon Sep 17 00:00:00 2001 From: Botspot <54716352+Botspot@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:51:20 -0500 Subject: [PATCH 6/9] only copy user data if it exists Signed-off-by: Botspot <54716352+Botspot@users.noreply.github.com> --- apps/Mullvad/uninstall | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/Mullvad/uninstall b/apps/Mullvad/uninstall index ea37c44056..9763fe55da 100755 --- a/apps/Mullvad/uninstall +++ b/apps/Mullvad/uninstall @@ -26,7 +26,7 @@ if [ -d ~/mullvad-browser/Browser/MullvadBrowser/Data/Browser ]; then fi #before removing the mullvad-browser folder, move the browser configuration like bookmarks, etc -if [ -d "$INSTALL_DIR"/mullvad-browser ];then +if [ -d "$INSTALL_DIR"/mullvad-browser/Browser/MullvadBrowser/Data/Browser ];then mkdir -p "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data mv -n "$INSTALL_DIR"/mullvad-browser/Browser/MullvadBrowser/Data/Browser "$INSTALL_DIR"/mullvad-browser.temp/Browser/MullvadBrowser/Data status_green "User-data found in $INSTALL_DIR/mullvad-browser. Copied to temporary folder." @@ -58,4 +58,4 @@ fi #[OLD] remove the menu launcher rm -f ~/.local/share/applications/mullvad.desktop #[OLD] remove icon -rm -f ~/.local/share/icons/mullvad-browser.png \ No newline at end of file +rm -f ~/.local/share/icons/mullvad-browser.png From f460eba578b49d1b124b0aa540d40607543e7130 Mon Sep 17 00:00:00 2001 From: Botspot <54716352+Botspot@users.noreply.github.com> Date: Mon, 27 Oct 2025 11:53:00 -0400 Subject: [PATCH 7/9] use tor v13+ icons --- apps/Tor/icon-24.png | Bin 1380 -> 1322 bytes apps/Tor/icon-64.png | Bin 4063 -> 5814 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/Tor/icon-24.png b/apps/Tor/icon-24.png index e8843629fdb9b78f3f4bbbf4e8390a79f92426cf..bf57cc646a3783b45ae976a2b5a010090aa8deb5 100644 GIT binary patch delta 1296 zcmV+r1@HRg3aSc_D}M_U000XU0RWnu7ytkS+(|@1R7i=9l}l`0)fI-nwa>ZtJnqAe zZyd)?OI{)m97H>?2Pl&?Vo<57S_(ucQD#U$TdC>*gb=8r5-2D|R6=3Gqe2;w3{tg1 zDub#~(-x3g9s%D#5^$n`sUI_6yXYai_@J$>iw&^cz?SHc$XZ>sad#$~NRq)o{ z*)2g5?lVUAATkKLu3G&FQKsU2I+Etge+zSk?UsDI~?`#$J8x+1}`;n~NdZu6W30%&Jhmu#D@oFQK{RJInSGEgRHlyvMZ zsDI^9Kvkc3@WY-%w-6k?>+*rP621}SmMC&dyw#BfiPB<$+lG4B^|M~O)~E968%-Vi z*HusjuLlo|tUY?2;Po9do1$+0Bwr2+D_dW{=a)VvtA8tblaSlylG7g3L)am8`w zM4h!eb5hzEV4a#Q^!rR^?Op9x6qp;xdSa$rFc=kcnjs#xb$6+-8AvNiAe!^m9!e<{h0{Q_)L_0s7U&c#%= z=6|s*bap($Ii<8Nq%rL@a~@zS%&f0AYPLTqhyPEOGWt$azdq9x+mLym2`dnD;H{P~#) zof-GUrGVl6-SXw>c^&&~9uV&{j+w))9T$M(&6=fIv)?Mwoj)u|{~eKh{YhK@^qX-V ztIlIW;m1#}Cn*K|_4iX9pZtjz+uKJ&fUC|w83pD?m;c)?_Ju-}1S=ApdUaY`bAKMu zh(HPyy8?dl)Bu}@5_$X3q)vR%2BqP>e+<9?ywuupL6JvQm5Hxft47kCb$Ac?#IWn0 z5(kfbm)pJ{%iD*h^z>im01%OfUu^BX2sdT^uM6iN2Yn78ErqOE8xiK0K6<&Wqf+R~ zY5(@JR0hg4Cu81ut*#TJ?amH);(vw4?YBNSizJ^NK+Vet1rXxYkQPF6u^|YAzTK0O zH3H4%VlJN#n7-t%8LBJ((H9y!R(>+C;aBmen~X8fBj#REvslr~!UM;zI{)NL3kkCX z%Mx5Ciq38^A^QaRfx@6bZ|CNi1geUhG|s(wcp1aj@IR2+)wE^pqXqx~00{s|MNUMn GLSTZxpN6>r delta 1354 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 At^fc4 literal 4063 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 RWZeJ&002ovPDHLkV1oPe03rYY From 87b14a3947d2ba868b6cd2b95c920cbacdddb97b Mon Sep 17 00:00:00 2001 From: Vlad <150745492+ooovlad@users.noreply.github.com> Date: Mon, 27 Oct 2025 16:20:57 +0000 Subject: [PATCH 8/9] Mullvad: update icons (less borders) --- apps/Mullvad/icon-24.png | Bin 1110 -> 920 bytes apps/Mullvad/icon-64.png | Bin 3526 -> 2563 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/Mullvad/icon-24.png b/apps/Mullvad/icon-24.png index 5ae40cb7740a792cfb73fd951765a9d52d5fe0b5..e858e443ad352d4c88f91305b3430ba464ec9ff3 100644 GIT binary patch delta 897 zcmV-{1AhG02$%WQw6G0OFfFBMUqB!f z(o*UA(xNf(BY4@~=$#+J#KhaiYa8!0egusdnvkHZX+;_nT7PQQlr{#daoNu9%<~*C zX6FqNy;x6jGI?gs^FRM{{%7VHIr-)X(-?abSO8qQV+N?BT=Q($ya`neVgS8AJ?|BILEZOGFIWjsSPBE zQ$dow3Pnsu~AGwUpEjssAeTBoSx89FwM_$s;o(QKm8OwIt=j|IU z)I{Y9P>PryMRRiYsbI#!8}AHr{)_`wvH`fYX)!i^2NY3BrqI#6$FL^>+9_2^^S!cR zSbEto{G+ApJEZpGTu4AZc6)*kG|{BJ2PP9pYDy$8_(o-)qJJ>i-is2y2cw<{H8($*)GY%pk0anCpK5 XG|{0Dy!50Qvv`0D$NK z0Cg|`0P0`>06Lfe02gqax=}m;000JJOGiWi{{a60|De66lK=n!2XskIMF;2w2?Y`# za2!l{000A8Nkl&!6vsd3zSrq=W-Kv-2^5ExT7N81B@kSx(GZNvQe)iV z-{2qM#x<}o{s9_`JGUA`b!S}JM2u-Pg-Kf~ZEBS;FmKxT=APr?-8Vl<%f^+S#arBW z&-wni=bj7y^$>u@d!Jy~Ga~K-;90=_MZLS2&I5nm{pv$v0P`83R}8rZU^#A|!4vR? z_gYvp5#&0M1Al1RCNKwJG|GrXF@s$l!J8W>Ll4r4QFbXJhPQ}aKT`ZYR#1uoe3~F3 zDH7$i`mY?XZsRTD$L(2`9vsCDsIb6%_Ru|EIs7|Ll(nSJ!p2#=$q<>KAn7eQr<^;n z!AldHct1jUd5q@$8lA4|duA{eD;JNh^YXDRpv&Txaes5Ijj9_`+6M@U7At2?-sjc1 zZ8UXMs}+7&ZSd2^2ok87!RdO&+b6e}oA?_wXi>$o1obY|vH^fB>1kJ0a9t=V=HS%y z25-%_SlX!ZXxAe^Z8YM|={Bd1Z&Di1aKPARiWUF^jo}IfnkM;%G{NvW3xP^4;f)uX zoIRZH^M7f=i*>m4{0fyrZE%J-L!{fUlO|}|+5ZeQR?q^#Fb6Y}D_lM^!_RBEg3GfV zW*Vyy8)#@`^Jv;Zy&P}`1%N7M9>nnGFcr$RHkZ!bX5rQxW^i%tH_GE}(yl`cVh5%^ zXTAr(7589JnwbX&t+r!fv5H5Snr!mUdB?lw9e>l4O;q6fUn;bcD6e9^XK`WofPzl% zSRysB+#+vqYL7BTNAKb5ewGRpjSV_cZtLBxVZ3EGvx5fBt)Iih6= znss^r&MC{Qp3lE7qasXBHJLhb2NPj_p~UiHE){wvuLZrmK@$kPg9y@o(Nro$s81`rV}Tns5bA<;S5{43(xm(|Ax-9%k` zL=K8vf$f==lA9+IKn0u|-lL&CMXaylAb>#yX3*{k4<8Dxw&0Zm!z(;Ugi;Lco&AS; zymz7N;iFH-x%yd+tSdCvW1M?D(K+MJy?==JKOQHJp!G=T`X>YYQ7Bkmi?N_OFTVeS z)7gbvw__|=<@z?Q7na4nbdfKDPYowF_)ra5xSx_er?)P`JpY^c2R0|wKeGqOLjV8( zC3HntbYx+4WjbSWWnpw>05UK#G%YYSEigG$Ff}?cG&(gjD=;uRFfiIFkVpUk06Haf zMObuXVRU6WZEs|0W_bWIFfcGJFflDKF;p-xIxsLgFfc1HFgh?W>D?S|00000NkvXX Hu0mjfmR9G> diff --git a/apps/Mullvad/icon-64.png b/apps/Mullvad/icon-64.png index 5e5b68de498ecf564c4bd97e982895f8b2ac4ae9..b4e4d4157ba29f45c3ac65db341b399a4e7e6e68 100644 GIT binary patch delta 2553 zcmVcckE%{4VbLaTHdp_>D=bn4tSX31NIegd*yw!0? zR364Kj?&Km7p8#|Dm;GXsqg((6$KDgW%Dw8NpHnFgz5T@ZFS&B~ zuo+lrxt)v$xPO0Pfu}_Hk_>$Lrw^*gleN~U7EsZzxv2jLDz(<7CJ=bo4g6r7+tYqP zcevnZ!+dyKqTSWNzisCq5LW{~kt^45p25siBHv3h!(8>#tD#s`WSj+dwVg`jd-rNL zlUKSD`CKd<(4W4*?zWSOd=5T;nYuHP?^dw4^G!bAc7HmN@49c8oJ+3dT-9U;Kw!ZG zY|p-D$sJ&0o7EC1mdn-QfH)X&*w^tce|mq!QpuHJf9Gi& z;{pQe1J!j`RcvgtS^{Xb2rwWH;D&u1#@a6Ouk)9go?qQ4XiLvCmi-9u3UW>OsXnn0 zssT2(S${>qowY;Ci`fxdGX@u>3x z#=2)v6x9GFKm!dwfnu;uBoJ|B+tdo(x8OFzEL&H@r*f9t|nwj?RmrJOM#N6=X@3Vjt9MY5SzHrTF}TzbsHFo4e3DvyIvW2D{C-yCNB z-2?AnM3FilX}(^TkXg!4h5qKtbE{Ve#D7AlNDZWY#CI9$d7tj=EK@U`+?Rv5FXRal zYl%`A;6N?~Ds(k|#8CDe2uNeTAYZ9C#z$x(VpRuNErAjN-})KmB^2=syI0oax9ZznINH(Rzyk>fq~8s=zniN z4{A7&tH&X*PJD)dd)C*38v2^2>2I9^qtIBUOLRhFXm+yHC%MJUcw7_|`r-y4uy6Dj zAhe`iw)dnhBwD_M3CU@V0eX>JI>P6JbxWlz8ODWRu!6H839&dSuP+U^e{jwoUOaZj$(iY z*I{RGW1_6x>zZgtIS9g@!I#5vGxdJzh=|H$V(zn`RjvI1Osp zmusWmp{krZ1A7LtpoWp2)3i0rB1SQFfqf2&(yWr8`Xsej;Wm!&LdExNJ%5T3C2c(R zu5Yg@=k8oPb&iKY*){ZXnE4xmiX2lZtCA){qFrj81LAH?tAt*ZCT>`^HZ{yKHux5( zu)DvLrj%15qtP|&>hA;yuEd=hnlUFcQN97T*$pT5Rjn_dMKw)b_D ztxMe)za{Olt*;wY*fumlrtS)Oig-bMq?H>VOS3%;+3d~MLStwGk`8mhj;%+jOD*Ey za9}WZWBe}+ZNR~$&Rb-B)63yw^?t>;RqyX({t%uBSE~-N4802(%9#&ac>07Xp~dmt zz^c^&#O%W{p{MHe$fLd0`BLG`j%}WxrEwNjgQ}sa;SyViUJZHcqM;voR)z2UvI|we z`j%K;4cgQJHeQl)L2<$h9{=Z?@b+XjmQM_bs~F?6ciZ1V4S%R%|6R}GIDS|-l^=Ht z&z_ph^4uFiWkfC)1*^IZ#tA5+75N`L+>WZm^A)0CWbh3-+s@O`I?eEgH^aZx`6c5O z4b?#S)?=-eNx95PB~ZH@V0|MLmXBeddJ|9%f%JK4_XwoI4u6)QSd;X3Tw_P4^= zL3oc~miVIMPJf(g=k>{arRca@sfa8a+pOLTRBV4*pcSvAinPdBhko3^Tfe!8n3$`p zQ~-I0q4g&V?->;Fd@579qQ2qlkJiQ4Bf7+gN-0f))qF1y5nAD#rEc_@_ojSac%?Iz zPoz-g6~Cu->CT}nq5Wf`lgab>SbZcxr`1~m#orQAaDQ->&?_J7D?f5L`$vOgg34&| z0?3edeKwiAl{nSQ5GFI+@6$<#oP-Qu;bS`c= z2S{8vt|e|UFWE=HXKnji-6aqe6ho?c4v6_`IX5?52YmVypPdJ+O5vYB(a6D_X$r@} z!uXN?O$5@d;K^q?3icI@Ea`_ez+Yc+VxKLCc&+PdoX%^D;w{|m3N^q?t+l8jrj3Xk zuX42(wSp+e3_BW!FK44T;7iIpCC`W3o)LKE5 zrx%@T52>okjenmPkyOjNuVVBORT&35mmlUchYO;59OPGvAD{ib77YI%nK-jKD@7*b P00000NkvXXu0mjf)j`sv delta 3524 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 Date: Sat, 1 Nov 2025 00:38:17 +0000 Subject: [PATCH 9/9] Update Mullvad and Tor versions to 15.0 --- apps/Mullvad/install-64 | 2 +- apps/Tor/install-64 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/Mullvad/install-64 b/apps/Mullvad/install-64 index abd9869476..5d06ca6d28 100755 --- a/apps/Mullvad/install-64 +++ b/apps/Mullvad/install-64 @@ -1,6 +1,6 @@ #!/bin/bash -version=14.5.8 +version=15.0 INSTALL_DIR="$HOME/.local/share" status 'Looking for previous installations and remaining user data…' diff --git a/apps/Tor/install-64 b/apps/Tor/install-64 index 6b347cf33d..2c2aed16e4 100755 --- a/apps/Tor/install-64 +++ b/apps/Tor/install-64 @@ -1,6 +1,6 @@ #!/bin/bash -version=14.5.8 +version=15.0 INSTALL_DIR="$HOME/.local/share" rm -f /tmp/tor-browser-aarch64.tar.xz