Commit Graph
2998 Commits
Author SHA1 Message Date
yp 786354bfa9 forward xray logs via LibXraySetLogCallback instead of stdout pipe 2026-10-02 15:05:26 +03:00
yp 7b78b32506 fix(ios): serialize log record writes and pin log date format locale 2026-10-02 13:22:29 +03:00
vkamn 94b51df247 chore: bump version (#3187) 2026-09-18 20:44:38 +08:00
Mezooz de93650a90 fix: make Conan recipes parse on Python < 3.12 (#2870)
Three recipes use f-string syntax that is only valid on Python 3.12+
(PEP 701): reusing the same quote character inside an f-string
expression, and using a backslash inside one.

  recipes/amnezia-xray-bindings/conanfile.py:115
  recipes/tun2socks/conanfile.py:118
  recipes/hev-socks5-tunnel/conanfile.py:63-65

On older interpreters Conan fails to load the recipe with a SyntaxError
before resolving a single dependency, so the build cannot start:

  SyntaxError: unexpected character after line continuation character

This is not platform specific. It is invisible in CI only because
ubuntu-latest ships Python 3.12+. Debian 12 (bookworm), current stable
and the base for Raspberry Pi OS, ships Python 3.11.

Hoist the expressions out of the f-strings, and use single quotes for
the nested string literals. Behaviour is unchanged on every version.

Verified with python3 -m py_compile on Python 3.11.2 (aarch64,
Debian 12): all three fail before this change and pass after.
5.0.3.0
2026-09-18 13:59:14 +08:00
vkamn 448baad3e1 chore: bump version (#3185)
* chore: bump version

* feat: update translations
2026-09-18 13:52:33 +08:00
vkamn aca1b7dc5c feat: add format version for future config refactoring (#3184) 2026-09-18 13:31:07 +08:00
vkamn de36a81b58 chore: change android aqt host (#3182) 2026-09-17 13:43:35 +08:00
vkamn 76b81b43c1 chore: pin install-qt-action to v4.3.1 (#3180) 2026-09-16 22:24:34 +08:00
MrMirDan bea2f5f7db feat: clickable notification (#3178) 2026-09-16 22:22:51 +08:00
Yaroslav Gurov a4d38b5642 fix: windows certificate signing issues (#3175)
* fix: windows certificate signing issues

* fix: add has_ui option and phys/cloud opts
2026-09-16 22:22:19 +08:00
NickVs2015andMrMirDan b76c88bba3 feat: migrate test to main repo (#3172)
* basic tests  adaptation

* fix: ui servers model and controller test awg config

* fix: platforms test builds

* build dirs inspection

* fix: changed paths for tests and tests artifacts

* fix: 'deploy' parent dir

* windows ctest configuration and macos dependencies inspection

* windows check executable and macos copy openssl libs

* windows test executables check and macos copy openssl

* changed some path on windows

* android apk list

* fix: updated android apk path

* Verify Android test files

* fix: build tests only with AMNEZIA_BUILD_TESTS

* fix: copy openssl runtime next to test_openssl_library

* fix: awg2 test config and inverted description checks

* chore: move run_android_tests.sh to client/tests and drop personal paths

* chore: gate tests by option, scope secrets and drop global concurrency in ci

* chore: serialized vps test job, scoped secrets, backup secret guard, test data lookup

---------

Co-authored-by: MrMirDan <8mirdan8@gmail.com>
2026-09-16 17:05:43 +08:00
vkamn eab14fd957 chore: add define for app update (#3164) 2026-09-14 12:37:58 +08:00
SPTApyo 2a8242d306 feat: add French (fr_FR) localization (#3135)
* feat: add French (fr_FR) localization

* fix: align french catalogue with current telegram link
2026-09-09 21:44:51 +08:00
vkamn e60842bd9d chore: cleanup entitlements (#3149)
* chore: cleanup entitlements for macos ne

* chore: bump version
2026-09-09 21:12:03 +08:00
vkamn 327e5985df chore: bump version (#3120) 5.0.2.1 2026-09-03 21:02:31 +08:00
MrMirDan 124da5a499 feat: amnezia.host website button (#3102)
* added amnezia.host website button

* added desktop platform check

* check for IsMacOsNeBuild
2026-09-03 19:10:13 +08:00
NickVs2015 2ee02bc893 fix: log purchaseToken on successful Play purchase (#3108) 2026-09-03 14:02:49 +08:00
MrMirDan 398697c101 chore: added utm for amnezia.org website link in app (#3101) 2026-09-02 21:17:37 +08:00
MrMirDan c8810dde5f chore: changed tg.me links to telegram.me (#3111) 2026-09-02 20:02:35 +08:00
Yaroslav Gurov 9a7db3475f fix: adjust awg selfhosted defaults (#3115) 2026-09-02 20:02:02 +08:00
vkamn 628dd5b6d3 chore: bump version (#3103) 5.0.2.0 2026-08-31 22:52:55 +08:00
vkamn 71b99c799c feat: new update page (#3092) 2026-08-31 20:54:30 +08:00
NickVs2015 0643a2424b fix: fallback to default file picker instead documentsui (#3087) 2026-08-31 20:51:37 +08:00
yp dedfc08cc2 feat: add TProxy (#3034)
* server-side container stack

* core model, enums and install pipeline

* settings UI and setup wizard

* fix workers

* remove debug logs

* address review findings

* fix validate email

* update docker

* remove write port & add default port 443/80
2026-08-31 19:29:48 +08:00
yp dddc181299 feat: server country code l10n (#3069) 2026-08-28 23:10:41 +08:00
vkamn 5689706fd9 fix: various fixes (#3077)
* fix: post install cleanup

* fix: wg show output parsing

* chore: update translations

* fix: finish already expired transactions
2026-08-28 23:09:59 +08:00
5501fbd54e feat: google play iap (#2682)
* Add Google Play Billing Library

* Disable Qt debugger sleep

* Add billing module, provide a separate build for Google Play

* Add a method to detect Google Play build

* Add method to get the list of offers

* Add methods to verify and purchase subscriptions

* refactor: modify response json

* feat: add purchase to UI

* feat: add test purchase android

* fix: merge with new structure, fix payment flow

* fix: build flow for new conan structure

* fix: add build android via Win

* fix: fix multi-ABI filter

* fix: split payment to detect payment type

* fix: add artifact apk

* fix: add check purchase on restore

* fix: release keystore

* fix: copy apk to right path

* fix: separate oss/play build

* fix: simply build AAB

* fix: add custom target for Play billing

* fix: add logs billing

* fix: add support market types, add logs

* fix: revert market field, up android GP version, fix subscription plan parser

* fix: add support getSubscriptionInfo and subscriptions/restore

* fix: update api endpoint and pay logic

* fix: add logs and rename restore func

* fix: add ios logs

* fix: rename restore function, fix icon resource error

* fix: double purchase android

* fix: update Google Play Billing Library to 8.0.0

* fix: prefer free trial subscription offer on Android purchase

Bump APP version to 2137.

* fix: up kotlin version compiler

* fix: sync price for PlayMarket from GP

* fix: add logs for Google Play price merge

* fix: show App Store intro offer discount price in catalog

* feat: add trial support for multi platform, redesign PageSetupWizardApiPremiumInfo

* feat: add logs android

* fix: tighten spacing Change plan and test period tag

* fix: UI text changes

* fix: upgrade existing android subscription and add renew logic

* feat: add support upgrade CP plan without call subscription

* fix: add billing logs for plan

* fix: show upgrade success as notification

* fix: call getSubscriptionInfo/importServiceFromMarket on upgrade instead of skipping

* fix: restore ios prod var

* fix: remove noisy debug logs

* chore: up version code

* fix: getSubscriptionInfo used removed GatewayRequestData after rebase

* fix: aab in sep tasks

* fix: warn before subscription upgrade/downgrade purchase

* chore: add acknowledgePlayPurchase

* refactor: add store purchase controller

* feat: use same acknowledge method as appstore

* fix: IOS add upgrade

* fix: change QML warn message

* refactor: dedupe Play purchase validation and startup billing query

* chore: log purchaseToken through the Android purchase flow

* fix: resolve Android active plan by base plan id

* fix: remove comment

* fix: subscribe to Transaction.updates before Transaction.unfinished

* fix: update days values

* fix: genuine restore failure when another transaction was a duplicate

* fix: remove debug lines and comment

* chore: cleanup logs

---------

Co-authored-by: albexk <albexk@proton.me>
Co-authored-by: vkamn <vk@amnezia.org>
2026-08-28 11:24:38 +08:00
NickVs2015 fc4bf3eb2b chore: bump android version code to 2157 (#3074) 2026-08-28 11:23:05 +08:00
Дневник UNIX'оида c8722c619a chore: added StartupWMClass line to the Desktop Entry (#2968) 2026-08-27 23:18:31 +08:00
HugoFiermein 4c5bb29ab0 fix: fixed wgshow parsing (#3046) 2026-08-27 23:05:51 +08:00
Yaroslav Gurov 4976828914 fix: do not force warning loglevel on Android (#3070) 2026-08-27 16:41:46 +02:00
Zak 5d74b2cbcf fix: preserve app signature and scope launchd socket (#3062)
* fix(macos): preserve signed service plist resource

* fix(macos): bind service socket to loopback
2026-08-27 22:33:28 +08:00
Yaroslav Gurov 7072661244 chore: update xray (#3012)
* chore: update xray

* chore: update xray on mobiles
2026-08-24 16:19:52 +02:00
vkamn 7d4f3e0f50 fix: various fixes (#3015)
* fix: fixed ios brandings

* chore: bump version

* chore: update translations

* fix: fixed ios awg3.1 parser

* chore: bump version

* fix: remove awg 3.1 params from native config if disbaled

* chore: bump version

* chore: remove comment
5.0.1.5
2026-08-21 22:43:01 +08:00
NickVs2015andvkamn b1a37b3779 feat: add brandings (#2839)
* feat: move amnezia hardcode from sources to cmake

* feat: move amnezia hardcode from sources to cmake

* refactor: remove prem v1 migration

* chore: move more branding

* fix: use host-matching architecture for iOS simulator builds

x86_64 was hardcoded; Apple Silicon Macs run arm64 simulators and Xcode 26
has no Rosetta simulator destinations, so simulators showed as unsupported.

* fix: mark the branded media assets catalog as a bundle resource

MACOSX_PACKAGE_LOCATION was set on the upstream Media.xcassets path while
target_sources uses CLIENT_IOS_MEDIA_ASSETS_PATH, so a branded catalog was
never compiled by actool and the app got a blank icon.

* fix: parametrize the Swift app-group identifier used by Log.swift

Log.swift hardcoded Amnezia's own app-group instead of the branded one,
since Swift -D flags can't carry the string value like the ObjC++ side
does. Generate a small Swift constants file instead, same pattern as
version.h.in, wired into all four targets that compile Log.swift.

* fix: use APPLICATION_NAME instead of hardcoded Amnezia in log line format

Every log line printed "Amnezia" regardless of branding; the log file name
two lines above this already used APPLICATION_NAME correctly.

* fix: restore branding fixes dropped by rebase, rename swiftInterop to swiftBridge

* fix: move more branding variables to cmake

* feat: move macOS branding from sources to cmake

- macos/app/Info.plist.in: app group, camera usage text, UTI ids and
  descriptions now come from CLIENT_APPLICATION_NAME / BUILD_* variables,
  mirroring ios/app/Info.plist.in
- macos/networkextension/Info.plist.in: bundle names and app group ids are
  templated; the plist is configured by CMake into the binary dir because
  Xcode only expands its own $(...) settings
- new knobs: CLIENT_MACOS_MEDIA_ASSETS_PATH, CLIENT_MACOS_APP_ICNS_PATH,
  CLIENT_MACOS_PROVISIONING_PROFILE_SPECIFIER(_DEBUG),
  CLIENT_MACOS_NE_PROVISIONING_PROFILE_SPECIFIER(_DEBUG)

* fix: resolve macOS pf template paths relative to the client source dir

CMAKE_SOURCE_DIR points at the wrapper project when the client is built as a
subproject, so the pf template lookup failed there.

* chore: separate brandings defaults

---------

Co-authored-by: vkamn <vk@amnezia.org>
2026-08-18 20:41:45 +08:00
vkamn 86ae77e3d0 fix: treat the “off” toggle as a “missing” parameter (#3003) 2026-08-18 17:42:38 +08:00
vkamn 541a6e07d6 fix: return qml translations (#3002) 2026-08-18 16:48:56 +08:00
f135400d3b chore: update translations (#2999)
* chore: update translations

* feat: add Korean translation (#2971)

* update(i18n): add Korean translation

* fix: add full QML catalog for Korean

---------

Co-authored-by: ParkSnoopy <ParkSnoopy@users.noreply.github.com>

* feat: add Spanish translation (#2035)

* feat: add spanish translation

* feat: add spanish translations to client

* fix: fix grammar

---------

Co-authored-by: vkamn <vk@amnezia.org>

* chore: update es and kr translations

---------

Co-authored-by: ParkSnoopy <117149837+ParkSnoopy@users.noreply.github.com>
Co-authored-by: ParkSnoopy <ParkSnoopy@users.noreply.github.com>
Co-authored-by: Stageddat <121111148+Stageddat@users.noreply.github.com>
2026-08-18 15:17:29 +08:00
Kushida da184c0ddf fix: config import parsing and VPN route edge cases (#2820)
* fix: harden config import parsing

* fix: handle vpn route edge cases
2026-08-17 18:22:01 +08:00
vkamn 4116c5c4bc refactor: now iap and test purchase flags ships from backend (#2995) 2026-08-17 13:46:47 +08:00
yp 667d98f7d7 fix: remove dead code & save config (#2975) 2026-08-14 13:56:44 +08:00
vkamn 44c10b39e3 feat: awg3.1 support (#2984)
* feat: add awg3.1 support

* fix: add warning for big native awg qr codes

* fix: show default subnet address if not exist in server config

* fix: use range keep alive only with awg3 params

* chore: update awg go versions in conan

* chore: update awg-go version
2026-08-14 13:55:56 +08:00
vkamn e4b7e09f86 feat: add distribution filed to api calls (#2983)
* feat: add distribution filed to api calls

* chore: remove debug log
2026-08-14 13:55:40 +08:00
NickVs2015 04c2b2af33 chore: bump android version code to 2148 (#2977) 2026-08-14 13:04:10 +08:00
NickVs2015 e643fa008c fix: ipc input validation (#2852)
* fix: resolve critical IPC security vulnerabilities

- Validate IP/CIDR values from IPC before passing to Linux firewall
- Replace shell interpolation with direct execve in firewall update functions
- Block dangerous OpenVPN/WireGuard arguments in sanitizeArguments()
- Add programId bounds check in IpcServerProcess::setProgram()
- Add SO_PEERCRED peer authentication for IPC connections on Linux

* fix: extend IPC security validation to macOS firewall

* fix: suppress linux firewall errors and add missing 400.allowPIA anchor

* fix: review changes

* fix: review changes next

* fix: remove UID check from IPC server

* fix: IPC security review fixes

* fix: address IPC review fixes
2026-08-13 14:24:54 +08:00
vkamn b575df05c7 fix: fixed adding subnet to ip split tunnel (#2973) 2026-08-11 00:19:42 +08:00
vkamn 85bd102efa fix: return vcredist to windows bundle (#2949) 2026-08-11 00:18:21 +08:00
Маэстро автоматизации 717323f138 fix: restore ios condition for paste menu item to avoid clipboard permission prompt (#2955) 2026-08-10 18:46:55 +08:00
vkamn 8ed7a5a1d3 fix: android icons (#2953) 2026-08-10 18:44:49 +08:00
NickVs2015 6ece4e0ac5 chore: bump android version code to 2144 (#2961) 2026-08-10 12:10:52 +08:00