diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ad7c3a..64d318d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## v0.7.1 + +### Added +- Expanded Russian app detection: Anixart, ePN Cashback, TNT Premier, Swoo (Кошелёк), Макси, Ростелеком Личный кабинет, Проверка чеков ФНС + +### Changed +- Reduced APK size by ~93% (47 MB → 3.37 MB) by enabling R8 minification, resource shrinking, and replacing the com.google.android.material dependency with AndroidX SplashScreen; the splash screen now holds through startup until the Dashboard is ready, removing transient loading spinners on cold launch +- Show profile names (Work, Second Space, ...) next to apps installed in other user profiles, instead of raw user IDs + +### Fixed +- Kmod install recommendation no longer falsely pushes users to Zygisk on custom kernels whose `uname -r` lacks the GKI KMI tag (e.g. `android12`, `android13`). The heuristic now matches only the parsed KMI — not the phone's Android OS release, which is an unrelated label — and falls back on kernel series when the KMI is missing: 6.1 / 6.6 / 6.12 each ship a single KMI variant and are still unambiguous; 5.10 and 5.15 each have two candidates, both of which the app now surfaces (primary + alternative), with a dedicated banner when the installed variant fails to load so the user knows to try the other. An active kmod — `/proc/vpnhide_targets` present — also overrides any remaining heuristic-driven warning. +- Polish multi-profile app list: the Show system filter now classifies apps installed only in a secondary profile correctly, and the user-ID suffix no longer appears on every row for users without a secondary profile + ## v0.7.0 ### Added diff --git a/VERSION b/VERSION index faef31a..39e898a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.7.0 +0.7.1 diff --git a/changelog.d/added-expanded-russian-app-detection-anixart-epn-6b78.md b/changelog.d/added-expanded-russian-app-detection-anixart-epn-6b78.md deleted file mode 100644 index 9a39f1d..0000000 --- a/changelog.d/added-expanded-russian-app-detection-anixart-epn-6b78.md +++ /dev/null @@ -1,9 +0,0 @@ -_2026-04-20_ - -## English - -Expanded Russian app detection: Anixart, ePN Cashback, TNT Premier, Swoo (Кошелёк), Макси, Ростелеком Личный кабинет, Проверка чеков ФНС - -## Русский - -Расширено определение российских приложений: Anixart, ePN Cashback, ТНТ Premier, Swoo (Кошелёк), Макси, Ростелеком Личный кабинет, Проверка чеков ФНС diff --git a/changelog.d/changed-apk-size-splash-polish-0c43.md b/changelog.d/changed-apk-size-splash-polish-0c43.md deleted file mode 100644 index 032869c..0000000 --- a/changelog.d/changed-apk-size-splash-polish-0c43.md +++ /dev/null @@ -1,9 +0,0 @@ -_2026-04-20_ - -## English - -Reduced APK size by ~93% (47 MB → 3.37 MB) by enabling R8 minification, resource shrinking, and replacing the com.google.android.material dependency with AndroidX SplashScreen; the splash screen now holds through startup until the Dashboard is ready, removing transient loading spinners on cold launch - -## Русский - -Размер APK уменьшен на ~93% (47 МБ → 3.37 МБ) — включена минификация R8 и шринкинг ресурсов, зависимость com.google.android.material заменена на AndroidX SplashScreen; splash-экран теперь держится всю инициализацию до готовности Dashboard, промежуточные спиннеры при холодном запуске больше не мелькают diff --git a/changelog.d/changed-show-profile-names-work-second-space-ac4f.md b/changelog.d/changed-show-profile-names-work-second-space-ac4f.md deleted file mode 100644 index 5593092..0000000 --- a/changelog.d/changed-show-profile-names-work-second-space-ac4f.md +++ /dev/null @@ -1,9 +0,0 @@ -_2026-04-21_ - -## English - -Show profile names (Work, Second Space, ...) next to apps installed in other user profiles, instead of raw user IDs - -## Русский - -Рядом с приложениями, установленными в других профилях, теперь отображается имя профиля (Work, Second Space, …) вместо числового ID diff --git a/changelog.d/fixed-kmod-active-overrides-unsupported-708a.md b/changelog.d/fixed-kmod-active-overrides-unsupported-708a.md deleted file mode 100644 index eeaf3a5..0000000 --- a/changelog.d/fixed-kmod-active-overrides-unsupported-708a.md +++ /dev/null @@ -1,9 +0,0 @@ -_2026-04-20_ - -## English - -Kmod install recommendation no longer falsely pushes users to Zygisk on custom kernels whose `uname -r` lacks the GKI KMI tag (e.g. `android12`, `android13`). The heuristic now matches only the parsed KMI — not the phone's Android OS release, which is an unrelated label — and falls back on kernel series when the KMI is missing: 6.1 / 6.6 / 6.12 each ship a single KMI variant and are still unambiguous; 5.10 and 5.15 each have two candidates, both of which the app now surfaces (primary + alternative), with a dedicated banner when the installed variant fails to load so the user knows to try the other. An active kmod — `/proc/vpnhide_targets` present — also overrides any remaining heuristic-driven warning. - -## Русский - -Рекомендация установки модуля ядра больше не подталкивает ложно к Zygisk на кастомных ядрах, в `uname -r` которых нет GKI KMI-метки (`android12`, `android13` и т.д.). Эвристика теперь сопоставляет только распарсенный KMI — версия Android OS телефона к этому не относится — и при отсутствии KMI делает fallback по серии ядра: для 6.1, 6.6 и 6.12 существует по одному KMI-варианту, рекомендация однозначна; у 5.10 и 5.15 по два кандидата, приложение теперь показывает оба (основной + альтернативный) и отдельный баннер, когда установленный вариант не загрузился — чтобы было понятно, что нужно попробовать второй. Активный kmod (`/proc/vpnhide_targets` существует) также имеет приоритет над любыми эвристическими предупреждениями. diff --git a/changelog.d/fixed-polish-multi-profile-app-list-the-408e.md b/changelog.d/fixed-polish-multi-profile-app-list-the-408e.md deleted file mode 100644 index 35d3fb8..0000000 --- a/changelog.d/fixed-polish-multi-profile-app-list-the-408e.md +++ /dev/null @@ -1,9 +0,0 @@ -_2026-04-21_ - -## English - -Polish multi-profile app list: the Show system filter now classifies apps installed only in a secondary profile correctly, and the user-ID suffix no longer appears on every row for users without a secondary profile - -## Русский - -Полировка мультипрофильного списка: фильтр System теперь корректно классифицирует приложения, установленные только во втором пространстве; суффикс user-ID больше не показывается в каждой строке у пользователей без второго пространства diff --git a/kmod/module/module.prop b/kmod/module/module.prop index e463157..7f99e22 100644 --- a/kmod/module/module.prop +++ b/kmod/module/module.prop @@ -1,6 +1,6 @@ id=vpnhide_kmod name=VPN Hide (kernel) -version=v0.7.0 -versionCode=700 +version=v0.7.1 +versionCode=701 author=okhsunrog description=Hides VPN interfaces from selected apps at the kernel level via kretprobe. Invisible to anti-tamper SDKs. Manage targets via VPN Hide app. diff --git a/lsposed/app/build.gradle.kts b/lsposed/app/build.gradle.kts index 1dfae14..eb96626 100644 --- a/lsposed/app/build.gradle.kts +++ b/lsposed/app/build.gradle.kts @@ -30,7 +30,7 @@ android { applicationId = "dev.okhsunrog.vpnhide" minSdk = 29 targetSdk = 35 - versionCode = 700 + versionCode = 701 versionName = buildVersion ndk { diff --git a/lsposed/app/src/main/assets/changelog.json b/lsposed/app/src/main/assets/changelog.json index 6afae13..41b4033 100644 --- a/lsposed/app/src/main/assets/changelog.json +++ b/lsposed/app/src/main/assets/changelog.json @@ -1,5 +1,45 @@ { "history": [ + { + "version": "0.7.1", + "sections": [ + { + "type": "added", + "items": [ + { + "en": "Expanded Russian app detection: Anixart, ePN Cashback, TNT Premier, Swoo (Кошелёк), Макси, Ростелеком Личный кабинет, Проверка чеков ФНС", + "ru": "Расширено определение российских приложений: Anixart, ePN Cashback, ТНТ Premier, Swoo (Кошелёк), Макси, Ростелеком Личный кабинет, Проверка чеков ФНС" + } + ] + }, + { + "type": "changed", + "items": [ + { + "en": "Reduced APK size by ~93% (47 MB → 3.37 MB) by enabling R8 minification, resource shrinking, and replacing the com.google.android.material dependency with AndroidX SplashScreen; the splash screen now holds through startup until the Dashboard is ready, removing transient loading spinners on cold launch", + "ru": "Размер APK уменьшен на ~93% (47 МБ → 3.37 МБ) — включена минификация R8 и шринкинг ресурсов, зависимость com.google.android.material заменена на AndroidX SplashScreen; splash-экран теперь держится всю инициализацию до готовности Dashboard, промежуточные спиннеры при холодном запуске больше не мелькают" + }, + { + "en": "Show profile names (Work, Second Space, ...) next to apps installed in other user profiles, instead of raw user IDs", + "ru": "Рядом с приложениями, установленными в других профилях, теперь отображается имя профиля (Work, Second Space, …) вместо числового ID" + } + ] + }, + { + "type": "fixed", + "items": [ + { + "en": "Kmod install recommendation no longer falsely pushes users to Zygisk on custom kernels whose `uname -r` lacks the GKI KMI tag (e.g. `android12`, `android13`). The heuristic now matches only the parsed KMI — not the phone's Android OS release, which is an unrelated label — and falls back on kernel series when the KMI is missing: 6.1 / 6.6 / 6.12 each ship a single KMI variant and are still unambiguous; 5.10 and 5.15 each have two candidates, both of which the app now surfaces (primary + alternative), with a dedicated banner when the installed variant fails to load so the user knows to try the other. An active kmod — `/proc/vpnhide_targets` present — also overrides any remaining heuristic-driven warning.", + "ru": "Рекомендация установки модуля ядра больше не подталкивает ложно к Zygisk на кастомных ядрах, в `uname -r` которых нет GKI KMI-метки (`android12`, `android13` и т.д.). Эвристика теперь сопоставляет только распарсенный KMI — версия Android OS телефона к этому не относится — и при отсутствии KMI делает fallback по серии ядра: для 6.1, 6.6 и 6.12 существует по одному KMI-варианту, рекомендация однозначна; у 5.10 и 5.15 по два кандидата, приложение теперь показывает оба (основной + альтернативный) и отдельный баннер, когда установленный вариант не загрузился — чтобы было понятно, что нужно попробовать второй. Активный kmod (`/proc/vpnhide_targets` существует) также имеет приоритет над любыми эвристическими предупреждениями." + }, + { + "en": "Polish multi-profile app list: the Show system filter now classifies apps installed only in a secondary profile correctly, and the user-ID suffix no longer appears on every row for users without a secondary profile", + "ru": "Полировка мультипрофильного списка: фильтр System теперь корректно классифицирует приложения, установленные только во втором пространстве; суффикс user-ID больше не показывается в каждой строке у пользователей без второго пространства" + } + ] + } + ] + }, { "version": "0.7.0", "sections": [ diff --git a/lsposed/native/Cargo.toml b/lsposed/native/Cargo.toml index c1aeb14..11f99c3 100644 --- a/lsposed/native/Cargo.toml +++ b/lsposed/native/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vpnhide_checks" -version = "0.7.0" +version = "0.7.1" edition = "2024" rust-version = "1.85" license = "MIT" diff --git a/portshide/module/module.prop b/portshide/module/module.prop index 056cc04..fa0eab9 100644 --- a/portshide/module/module.prop +++ b/portshide/module/module.prop @@ -1,6 +1,6 @@ id=vpnhide_ports name=VPN Hide (Ports) -version=v0.7.0 -versionCode=700 +version=v0.7.1 +versionCode=701 author=okhsunrog description=Blocks selected apps from reaching localhost ports — hides locally-bound VPN/proxy from probe attempts via netfilter. Manage observers via VPN Hide app. diff --git a/update-json/changelog.md b/update-json/changelog.md index 064edba..d1bf145 100644 --- a/update-json/changelog.md +++ b/update-json/changelog.md @@ -1,3 +1,16 @@ +## v0.7.1 + +### Added +- Expanded Russian app detection: Anixart, ePN Cashback, TNT Premier, Swoo (Кошелёк), Макси, Ростелеком Личный кабинет, Проверка чеков ФНС + +### Changed +- Reduced APK size by ~93% (47 MB → 3.37 MB) by enabling R8 minification, resource shrinking, and replacing the com.google.android.material dependency with AndroidX SplashScreen; the splash screen now holds through startup until the Dashboard is ready, removing transient loading spinners on cold launch +- Show profile names (Work, Second Space, ...) next to apps installed in other user profiles, instead of raw user IDs + +### Fixed +- Kmod install recommendation no longer falsely pushes users to Zygisk on custom kernels whose `uname -r` lacks the GKI KMI tag (e.g. `android12`, `android13`). The heuristic now matches only the parsed KMI — not the phone's Android OS release, which is an unrelated label — and falls back on kernel series when the KMI is missing: 6.1 / 6.6 / 6.12 each ship a single KMI variant and are still unambiguous; 5.10 and 5.15 each have two candidates, both of which the app now surfaces (primary + alternative), with a dedicated banner when the installed variant fails to load so the user knows to try the other. An active kmod — `/proc/vpnhide_targets` present — also overrides any remaining heuristic-driven warning. +- Polish multi-profile app list: the Show system filter now classifies apps installed only in a secondary profile correctly, and the user-ID suffix no longer appears on every row for users without a secondary profile + ## v0.7.0 ### Added @@ -61,9 +74,3 @@ - Fixed LinkProperties filtering so VPN routes are stripped more reliably from app-visible network snapshots. - Fixed SIOCGIFCONF filtering on some Android 12/13 5.10 kernels where the previous hook could succeed but never fire. - Fixed debug log collection so app logcat entries are captured reliably on devices where logcat via su misses them. - -## v0.5.3 - -### Added -- Debug log export — open the Diagnostics tab and tap "Collect debug log" at the bottom. The app gathers dmesg, check results, device info, module status, kernel symbols, targets, interfaces, routing tables, and logcat into a zip. Save to disk or share directly. -- Kernel module debug logging toggle — all 6 kretprobe hooks now log detailed info (UID, target status, interface name, filter decisions) when debug mode is active. Enabled automatically during debug log collection. diff --git a/zygisk/Cargo.toml b/zygisk/Cargo.toml index d851e7e..02f60d6 100644 --- a/zygisk/Cargo.toml +++ b/zygisk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vpnhide_zygisk" -version = "0.7.0" +version = "0.7.1" edition = "2024" rust-version = "1.85" license = "MIT" diff --git a/zygisk/module/module.prop b/zygisk/module/module.prop index 6327ce3..83ba85b 100644 --- a/zygisk/module/module.prop +++ b/zygisk/module/module.prop @@ -1,6 +1,6 @@ id=vpnhide_zygisk name=VPN Hide (Zygisk native) -version=v0.7.0 -versionCode=700 +version=v0.7.1 +versionCode=701 author=okhsunrog description=Hides active VPN interfaces from selected apps by inline-hooking libc ioctl via shadowhook. Covers the native detection path (Flutter, JNI, raw C/C++) that Java-level LSPosed modules can't reach. Manage targets via VPN Hide app.