Merge branch 'dev' of github.com:amnezia-vpn/amnezia-client into bugfix/split-tunneling

This commit is contained in:
vladimir.kuznetsov
2023-10-18 11:55:24 +05:00
12 changed files with 235 additions and 104 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.25.0 FATAL_ERROR)
set(PROJECT AmneziaVPN) set(PROJECT AmneziaVPN)
project(${PROJECT} VERSION 4.0.8.2 project(${PROJECT} VERSION 4.0.8.3
DESCRIPTION "AmneziaVPN" DESCRIPTION "AmneziaVPN"
HOMEPAGE_URL "https://amnezia.org/" HOMEPAGE_URL "https://amnezia.org/"
) )
+92 -30
View File
@@ -119,13 +119,17 @@
<name>HomeContainersListView</name> <name>HomeContainersListView</name>
<message> <message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="58"/> <location filename="../ui/qml/Components/HomeContainersListView.qml" line="58"/>
<source>Unable change protocol while there is an active connection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="69"/>
<source>The selected protocol is not supported on the current platform</source> <source>The selected protocol is not supported on the current platform</source>
<translation>Выбранный протокол не поддерживается на данном устройстве</translation> <translation>Выбранный протокол не поддерживается на данном устройстве</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="76"/>
<source>Reconnect via VPN Procotol: </source> <source>Reconnect via VPN Procotol: </source>
<translation>Переподключение через VPN протокол: </translation> <translation type="vanished">Переподключение через VPN протокол: </translation>
</message> </message>
</context> </context>
<context> <context>
@@ -267,6 +271,11 @@ Already installed containers were found on the server. All installed containers
<source>Servers</source> <source>Servers</source>
<translation>Серверы</translation> <translation>Серверы</translation>
</message> </message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="480"/>
<source>Unable change server while there is an active connection</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PageProtocolAwgSettings</name> <name>PageProtocolAwgSettings</name>
@@ -611,7 +620,7 @@ Already installed containers were found on the server. All installed containers
<message> <message>
<location filename="../ui/qml/Pages2/PageProtocolRaw.qml" line="177"/> <location filename="../ui/qml/Pages2/PageProtocolRaw.qml" line="177"/>
<source>All users who you shared a connection with will no longer be able to connect to it.</source> <source>All users who you shared a connection with will no longer be able to connect to it.</source>
<translation>Все пользователи, с которыми вы поделились этим VPN-протоколом, больше не смогут к нему подключаться.</translation> <translation type="unfinished">Все пользователи, с которыми вы поделились этим VPN-протоколом, больше не смогут к нему подключаться.</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageProtocolRaw.qml" line="178"/> <location filename="../ui/qml/Pages2/PageProtocolRaw.qml" line="178"/>
@@ -765,7 +774,7 @@ Already installed containers were found on the server. All installed containers
<message> <message>
<location filename="../ui/qml/Pages2/PageServiceSftpSettings.qml" line="251"/> <location filename="../ui/qml/Pages2/PageServiceSftpSettings.qml" line="251"/>
<source>Remove SFTP and all data stored there?</source> <source>Remove SFTP and all data stored there?</source>
<translation>Удалить SFTP-хранилище и все хранящиеся на нем данные?</translation> <translation>Удалить SFTP-хранилище и все хранящиеся на нем данные?</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageServiceSftpSettings.qml" line="252"/> <location filename="../ui/qml/Pages2/PageServiceSftpSettings.qml" line="252"/>
@@ -985,8 +994,8 @@ Already installed containers were found on the server. All installed containers
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApplication.qml" line="73"/> <location filename="../ui/qml/Pages2/PageSettingsApplication.qml" line="73"/>
<source>Launch the application every time %1 starts</source> <source>Launch the application every time the device is starts</source>
<translation>Запускать приложение при каждом включении %1</translation> <translation>Запускать приложение при каждом включении</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApplication.qml" line="93"/> <location filename="../ui/qml/Pages2/PageSettingsApplication.qml" line="93"/>
@@ -1085,7 +1094,7 @@ Already installed containers were found on the server. All installed containers
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsBackup.qml" line="106"/> <location filename="../ui/qml/Pages2/PageSettingsBackup.qml" line="106"/>
<source>Backup file saved</source> <source>Backup file saved</source>
<translation type="unfinished"></translation> <translation>Бэкап файл сохранен</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsBackup.qml" line="122"/> <location filename="../ui/qml/Pages2/PageSettingsBackup.qml" line="122"/>
@@ -1184,52 +1193,52 @@ Already installed containers were found on the server. All installed containers
<translation>DNS сервер</translation> <translation>DNS сервер</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="49"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="50"/>
<source>If AmneziaDNS is not used or installed</source> <source>If AmneziaDNS is not used or installed</source>
<translation>Эти адреса будут использоваться, если не включен или не установлен AmneziaDNS</translation> <translation>Эти адреса будут использоваться, если не включен или не установлен AmneziaDNS</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="56"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="57"/>
<source>Primary DNS</source> <source>Primary DNS</source>
<translation>Первичный DNS</translation> <translation>Первичный DNS</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="68"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="69"/>
<source>Secondary DNS</source> <source>Secondary DNS</source>
<translation>Вторичный DNS</translation> <translation>Вторичный DNS</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="86"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="87"/>
<source>Restore default</source> <source>Restore default</source>
<translation>Восстановить по умолчанию</translation> <translation>Восстановить по умолчанию</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="89"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="90"/>
<source>Restore default DNS settings?</source> <source>Restore default DNS settings?</source>
<translation>Восстановить настройки DNS по умолчанию?</translation> <translation>Восстановить настройки DNS по умолчанию?</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="90"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="91"/>
<source>Continue</source> <source>Continue</source>
<translation>Продолжить</translation> <translation>Продолжить</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="91"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="92"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Отменить</translation> <translation>Отменить</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="99"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="100"/>
<source>Settings have been reset</source> <source>Settings have been reset</source>
<translation>Настройки сброшены</translation> <translation>Настройки сброшены</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="111"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="112"/>
<source>Save</source> <source>Save</source>
<translation>Сохранить</translation> <translation>Сохранить</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="120"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="121"/>
<source>Settings saved</source> <source>Settings saved</source>
<translation>Сохранить настройки</translation> <translation>Сохранить настройки</translation>
</message> </message>
@@ -1244,7 +1253,7 @@ Already installed containers were found on the server. All installed containers
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="54"/> <location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="54"/>
<source>Save logs</source> <source>Save logs</source>
<translation>Сохранить логи</translation> <translation>Сохранять логи</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="86"/> <location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="86"/>
@@ -1264,7 +1273,7 @@ Already installed containers were found on the server. All installed containers
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="118"/> <location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="118"/>
<source>Logs file saved</source> <source>Logs file saved</source>
<translation type="unfinished"></translation> <translation>Файл с логами сохранен</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="127"/> <location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="127"/>
@@ -1700,12 +1709,12 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="62"/> <location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="62"/>
<source>Amnezia has detected that your server is currently </source> <source>Amnezia has detected that your server is currently </source>
<translation type="unfinished"></translation> <translation>Amnezia обнаружила, что ваш сервер в настоящее время </translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="63"/> <location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="63"/>
<source>busy installing other software. Amnezia installation </source> <source>busy installing other software. Amnezia installation </source>
<translation type="unfinished"></translation> <translation>занят установкой другого программного обеспечения. Установка Amnezia </translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="64"/> <location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="64"/>
@@ -2424,7 +2433,15 @@ While it offers a blend of security, stability, and speed, it&apos;s essential t
* Minimal configuration * Minimal configuration
* Recognised by DPI analysis systems * Recognised by DPI analysis systems
* Works over UDP network protocol, ports 500 and 4500.</source> * Works over UDP network protocol, ports 500 and 4500.</source>
<translation type="unfinished"></translation> <translation>IKEv2 в сочетании с уровнем шифрования IPSec это современный и стабильный протокол VPN.
Он может быстро переключаться между сетями и устройствами, что делает его особенно адаптивным в динамичных сетевых средах.
Несмотря на сочетание безопасности, стабильности и скорости, необходимо отметить, что IKEv2 легко обнаруживается и подвержен блокировке.
* Доступно в AmneziaVPN только для Windows.
* Низкое энергопотребление, на мобильных устройствах
* Минимальная конфигурация
* Распознается системами DPI-анализа
* Работает по сетевому протоколу UDP, порты 500 и 4500.</translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="215"/> <location filename="../containers/containers_defs.cpp" line="215"/>
@@ -2470,7 +2487,7 @@ While it offers a blend of security, stability, and speed, it&apos;s essential t
<message> <message>
<location filename="../containers/containers_defs.cpp" line="111"/> <location filename="../containers/containers_defs.cpp" line="111"/>
<source>AmneziaWG - Special protocol from Amnezia, based on WireGuard. It&apos;s fast like WireGuard, but very resistant to blockages. Recommended for regions with high levels of censorship.</source> <source>AmneziaWG - Special protocol from Amnezia, based on WireGuard. It&apos;s fast like WireGuard, but very resistant to blockages. Recommended for regions with high levels of censorship.</source>
<translation type="unfinished"></translation> <translation>AmneziaWG - Специальный протокол от Amnezia, основанный на протоколе WireGuard. Он такой же быстрый, как WireGuard, но очень устойчив к блокировкам. Рекомендуется для регионов с высоким уровнем цензуры.</translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="115"/> <location filename="../containers/containers_defs.cpp" line="115"/>
@@ -2502,7 +2519,14 @@ It employs its unique security protocol, leveraging the strength of SSL/TLS for
* Flexible customisation to suit user needs to work with different operating systems and devices * Flexible customisation to suit user needs to work with different operating systems and devices
* Recognised by DPI analysis systems and therefore susceptible to blocking * Recognised by DPI analysis systems and therefore susceptible to blocking
* Can operate over both TCP and UDP network protocols.</source> * Can operate over both TCP and UDP network protocols.</source>
<translation type="unfinished"></translation> <translation>OpenVPN однин из самых популярных и проверенных временем VPN-протоколов.
В нем используется уникальный протокол безопасности, опирающийся на протокол SSL/TLS для шифрования и обмена ключами. Кроме того, поддержка OpenVPN множества методов аутентификации делает его универсальным и адаптируемым к широкому спектру устройств и операционных систем. Благодаря открытому исходному коду OpenVPN подвергается тщательному анализу со стороны мирового сообщества, что постоянно повышает его безопасность. Благодаря оптимальному соотношению производительности, безопасности и совместимости OpenVPN остается лучшим выбором как для частных лиц, так и для компаний, заботящихся о конфиденциальности.
* Доступность AmneziaVPN для всех платформ
* Нормальное энергопотребление на мобильных устройствах
* Гибкая настройка под нужды пользователя для работы с различными операционными системами и устройствами
* Распознается системами DPI-анализа и поэтому подвержен блокировке
* Может работать по сетевым протоколам TCP и UDP.</translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="145"/> <location filename="../containers/containers_defs.cpp" line="145"/>
@@ -2514,7 +2538,12 @@ It employs its unique security protocol, leveraging the strength of SSL/TLS for
* Configurable encryption protocol * Configurable encryption protocol
* Detectable by some DPI systems * Detectable by some DPI systems
* Works over TCP network protocol.</source> * Works over TCP network protocol.</source>
<translation type="unfinished"></translation> <translation>Shadowsocks, создан на основе протокола SOCKS5, защищает соединение с помощью шифра AEAD. Несмотря на то, что протокол Shadowsocks разработан таким образом, чтобы быть незаметным и сложным для идентификации, он не идентичен стандартному HTTPS-соединению. Однако некоторые системы анализа трафика все же могут обнаружить соединение Shadowsocks. В связи с ограниченной поддержкой в Amnezia рекомендуется использовать протокол AmneziaWG, или OpenVPN over Cloak.
* Доступен в AmneziaVPN только на ПК ноутбуках.
* Настраиваемый протокол шифрования
* Обнаруживается некоторыми DPI-системами
* Работает по сетевому протоколу TCP.</translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="155"/> <location filename="../containers/containers_defs.cpp" line="155"/>
@@ -2536,7 +2565,24 @@ If there is a extreme level of Internet censorship in your region, we advise you
* Not recognised by DPI analysis systems * Not recognised by DPI analysis systems
* Works over TCP network protocol, 443 port. * Works over TCP network protocol, 443 port.
</source> </source>
<translation type="unfinished"></translation> <translation>OpenVPN over Cloak - это комбинация протокола OpenVPN и плагина Cloak, разработанного специально для защиты от блокировок.
OpenVPN обеспечивает безопасное VPN-соединение за счет шифрования всего интернет-трафика между клиентом и сервером.
Cloak защищает OpenVPN от обнаружения и блокировок.
Cloak может изменять метаданные пакетов. Он полностью маскирует VPN-трафик под обычный веб-трафик, а также защищает VPN от обнаружения с помощью Active Probing. Это делает ее очень устойчивой к обнаружению
Сразу же после получения первого пакета данных Cloak проверяет подлинность входящего соединения. Если аутентификация не проходит, плагин маскирует сервер под поддельный сайт, и ваша VPN становится невидимой для аналитических систем.
Если в вашем регионе существует экстремальный уровень цензуры в Интернете, мы советуем вам при первом подключении использовать только OpenVPN через Cloak
* Доступность AmneziaVPN на всех платформах
* Высокое энергопотребление на мобильных устройствах
* Гибкие настройки
* Не распознается системами DPI-анализа
* Работает по сетевому протоколу TCP, 443 порт.
</translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="174"/> <location filename="../containers/containers_defs.cpp" line="174"/>
@@ -2549,7 +2595,15 @@ WireGuard is very susceptible to blocking due to its distinct packet signatures.
* Minimum number of settings * Minimum number of settings
* Easily recognised by DPI analysis systems, susceptible to blocking * Easily recognised by DPI analysis systems, susceptible to blocking
* Works over UDP network protocol.</source> * Works over UDP network protocol.</source>
<translation type="unfinished"></translation> <translation>WireGuard - относительно новый популярный VPN-протокол с упрощенной архитектурой.
Обеспечивает стабильное VPN-соединение, высокую производительность на всех устройствах. Использует жестко заданные настройки шифрования. WireGuard по сравнению с OpenVPN имеет меньшую задержку и лучшую пропускную способность при передаче данных.
WireGuard очень восприимчив к блокированию из-за особенностей сигнатур пакетов. В отличие от некоторых других VPN-протоколов, использующих методы обфускации, последовательные сигнатуры пакетов WireGuard легче выявляются и, соответственно, блокируются современными системами глубокой проверки пакетов (DPI) и другими средствами сетевого мониторинга.
* Доступность AmneziaVPN для всех платформ
* Низкое энергопотребление
* Минимальное количество настроек
* Легко распознается системами DPI-анализа, подвержен блокировке
* Работает по сетевому протоколу UDP.</translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="187"/> <location filename="../containers/containers_defs.cpp" line="187"/>
@@ -2562,7 +2616,15 @@ This means that AmneziaWG keeps the fast performance of the original while addin
* Minimum number of settings * Minimum number of settings
* Not recognised by DPI analysis systems, resistant to blocking * Not recognised by DPI analysis systems, resistant to blocking
* Works over UDP network protocol.</source> * Works over UDP network protocol.</source>
<translation type="unfinished"></translation> <translation>AmneziaWG - усовершенствованная версия популярного VPN-протокола Wireguard. AmneziaWG опирается на фундамент, заложенный WireGuard, сохраняя упрощенную архитектуру и высокопроизводительные возможности работы на разных устройствах.
Хотя WireGuard известен своей эффективностью, у него были проблемы с обнаружением из-за характерных сигнатур пакетов. AmneziaWG решает эту проблему за счет использования более совершенных методов обфускации, благодаря чему его трафик сливается с обычным интернет-трафиком.
Таким образом, AmneziaWG сохраняет высокую производительность оригинала, добавляя при этом дополнительный уровень скрытности, что делает его отличным выбором для тех, кому нужно быстрое и незаметное VPN-соединение.
* Доступность AmneziaVPN на всех платформах
* Низкое энергопотребление
* Минимальное количество настроек
* Не распознается системами DPI-анализа, устойчив к блокировке
* Работает по сетевому протоколу UDP.</translation>
</message> </message>
<message> <message>
<source>AmneziaWG container</source> <source>AmneziaWG container</source>
@@ -2873,7 +2935,7 @@ This means that AmneziaWG keeps the fast performance of the original while addin
<message> <message>
<location filename="../containers/containers_defs.cpp" line="309"/> <location filename="../containers/containers_defs.cpp" line="309"/>
<source>Medium or High</source> <source>Medium or High</source>
<translation>Спедний или Высокий</translation> <translation>Средний или Высокий</translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="310"/> <location filename="../containers/containers_defs.cpp" line="310"/>
@@ -2921,7 +2983,7 @@ This means that AmneziaWG keeps the fast performance of the original while addin
<message> <message>
<location filename="../ui/qml/main2.qml" line="172"/> <location filename="../ui/qml/main2.qml" line="172"/>
<source>Private key passphrase</source> <source>Private key passphrase</source>
<translation>Кодовая фраза для закрытого ключа</translation> <translation>Кодовая фраза для закрытого ключа</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/main2.qml" line="191"/> <location filename="../ui/qml/main2.qml" line="191"/>
+106 -38
View File
@@ -74,17 +74,17 @@
<message> <message>
<location filename="../ui/qml/Components/ConnectionTypeSelectionDrawer.qml" line="30"/> <location filename="../ui/qml/Components/ConnectionTypeSelectionDrawer.qml" line="30"/>
<source>Add new connection</source> <source>Add new connection</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Components/ConnectionTypeSelectionDrawer.qml" line="38"/> <location filename="../ui/qml/Components/ConnectionTypeSelectionDrawer.qml" line="38"/>
<source>Configure your server</source> <source>Configure your server</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Components/ConnectionTypeSelectionDrawer.qml" line="52"/> <location filename="../ui/qml/Components/ConnectionTypeSelectionDrawer.qml" line="52"/>
<source>Open config file, key or QR code</source> <source>Open config file, key or QR code</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Server IP, login and password</source> <source>Server IP, login and password</source>
@@ -130,13 +130,17 @@
<name>HomeContainersListView</name> <name>HomeContainersListView</name>
<message> <message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="58"/> <location filename="../ui/qml/Components/HomeContainersListView.qml" line="58"/>
<source>Unable change protocol while there is an active connection</source>
<translation>Невозможно изменить протокол при наличии активного соединения</translation>
</message>
<message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="69"/>
<source>The selected protocol is not supported on the current platform</source> <source>The selected protocol is not supported on the current platform</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="76"/>
<source>Reconnect via VPN Procotol: </source> <source>Reconnect via VPN Procotol: </source>
<translation>VPN基于协议: </translation> <translation type="vanished">VPN基于协议: </translation>
</message> </message>
</context> </context>
<context> <context>
@@ -301,6 +305,11 @@ Already installed containers were found on the server. All installed containers
<source>Servers</source> <source>Servers</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="480"/>
<source>Unable change server while there is an active connection</source>
<translation>Невозможно изменить сервер при наличии активного соединения</translation>
</message>
</context> </context>
<context> <context>
<name>PageProtocolAwgSettings</name> <name>PageProtocolAwgSettings</name>
@@ -860,7 +869,7 @@ Already installed containers were found on the server. All installed containers
<message> <message>
<location filename="../ui/qml/Pages2/PageServiceTorWebsiteSettings.qml" line="112"/> <location filename="../ui/qml/Pages2/PageServiceTorWebsiteSettings.qml" line="112"/>
<source>When configuring WordPress set the this onion address as domain.</source> <source>When configuring WordPress set the this onion address as domain.</source>
<translation type="unfinished"></translation> <translation> WordPress </translation>
</message> </message>
<message> <message>
<source>When configuring WordPress set the domain as this onion address.</source> <source>When configuring WordPress set the domain as this onion address.</source>
@@ -1046,9 +1055,13 @@ And if you don&apos;t like the app, all the more support it - the donation will
<translation type="obsolete"> </translation> <translation type="obsolete"> </translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApplication.qml" line="73"/>
<source>Launch the application every time %1 starts</source> <source>Launch the application every time %1 starts</source>
<translation>%1</translation> <translation type="vanished">%1</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsApplication.qml" line="73"/>
<source>Launch the application every time the device is starts</source>
<translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsApplication.qml" line="93"/> <location filename="../ui/qml/Pages2/PageSettingsApplication.qml" line="93"/>
@@ -1151,7 +1164,7 @@ And if you don&apos;t like the app, all the more support it - the donation will
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsBackup.qml" line="106"/> <location filename="../ui/qml/Pages2/PageSettingsBackup.qml" line="106"/>
<source>Backup file saved</source> <source>Backup file saved</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsBackup.qml" line="122"/> <location filename="../ui/qml/Pages2/PageSettingsBackup.qml" line="122"/>
@@ -1266,52 +1279,52 @@ And if you don&apos;t like the app, all the more support it - the donation will
<translation>DNS服务器</translation> <translation>DNS服务器</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="49"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="50"/>
<source>If AmneziaDNS is not used or installed</source> <source>If AmneziaDNS is not used or installed</source>
<translation>使AmneziaDNS</translation> <translation>使AmneziaDNS</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="56"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="57"/>
<source>Primary DNS</source> <source>Primary DNS</source>
<translation> DNS</translation> <translation> DNS</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="68"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="69"/>
<source>Secondary DNS</source> <source>Secondary DNS</source>
<translation> DNS</translation> <translation> DNS</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="86"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="87"/>
<source>Restore default</source> <source>Restore default</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="89"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="90"/>
<source>Restore default DNS settings?</source> <source>Restore default DNS settings?</source>
<translation>DNS配置</translation> <translation>DNS配置</translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="90"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="91"/>
<source>Continue</source> <source>Continue</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="91"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="92"/>
<source>Cancel</source> <source>Cancel</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="99"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="100"/>
<source>Settings have been reset</source> <source>Settings have been reset</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="111"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="112"/>
<source>Save</source> <source>Save</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="120"/> <location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="121"/>
<source>Settings saved</source> <source>Settings saved</source>
<translation></translation> <translation></translation>
</message> </message>
@@ -1346,7 +1359,7 @@ And if you don&apos;t like the app, all the more support it - the donation will
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="118"/> <location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="118"/>
<source>Logs file saved</source> <source>Logs file saved</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="127"/> <location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="127"/>
@@ -1701,7 +1714,7 @@ It&apos;s okay as long as it&apos;s from someone you trust.</source>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="44"/> <location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="44"/>
<source>Configure your server</source> <source>Configure your server</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="51"/> <location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="51"/>
@@ -1716,7 +1729,7 @@ It&apos;s okay as long as it&apos;s from someone you trust.</source>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="66"/> <location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="66"/>
<source>Login to connect via SSH</source> <source>Login to connect via SSH</source>
<translation>ssh账号</translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="76"/> <location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="76"/>
@@ -1732,7 +1745,8 @@ It&apos;s okay as long as it&apos;s from someone you trust.</source>
<location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="115"/> <location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="115"/>
<source>All data you enter will remain strictly confidential <source>All data you enter will remain strictly confidential
and will not be shared or disclosed to the Amnezia or any third parties</source> and will not be shared or disclosed to the Amnezia or any third parties</source>
<translation type="unfinished"></translation> <translation>
Amnezia </translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="125"/> <location filename="../ui/qml/Pages2/PageSetupWizardCredentials.qml" line="125"/>
@@ -1799,12 +1813,12 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="62"/> <location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="62"/>
<source>Amnezia has detected that your server is currently </source> <source>Amnezia has detected that your server is currently </source>
<translation type="unfinished"></translation> <translation>Amnezia </translation>
</message> </message>
<message> <message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="63"/> <location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="63"/>
<source>busy installing other software. Amnezia installation </source> <source>busy installing other software. Amnezia installation </source>
<translation type="unfinished"></translation> <translation>Amnezia安装</translation>
</message> </message>
<message> <message>
<source>Amnesia has detected that your server is currently </source> <source>Amnesia has detected that your server is currently </source>
@@ -2013,7 +2027,7 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<message> <message>
<location filename="../ui/qml/Pages2/PageShare.qml" line="175"/> <location filename="../ui/qml/Pages2/PageShare.qml" line="175"/>
<source>Access to server management. The user with whom you share full access to the connection will be able to add and remove your protocols and services to the server, as well as change settings.</source> <source>Access to server management. The user with whom you share full access to the connection will be able to add and remove your protocols and services to the server, as well as change settings.</source>
<translation type="unfinished"></translation> <translation>访VPN外</translation>
</message> </message>
<message> <message>
<source>Access to server management. The user with whom you share full access to the connection will be able to add and remove your protocols and services to the servers, as well as change settings.</source> <source>Access to server management. The user with whom you share full access to the connection will be able to add and remove your protocols and services to the servers, as well as change settings.</source>
@@ -2574,7 +2588,7 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="111"/> <location filename="../containers/containers_defs.cpp" line="111"/>
<source>AmneziaWG - Special protocol from Amnezia, based on WireGuard. It&apos;s fast like WireGuard, but very resistant to blockages. Recommended for regions with high levels of censorship.</source> <source>AmneziaWG - Special protocol from Amnezia, based on WireGuard. It&apos;s fast like WireGuard, but very resistant to blockages. Recommended for regions with high levels of censorship.</source>
<translation type="unfinished"></translation> <translation>AmneziaWG - Amnezia WireGuard WireGuard </translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="115"/> <location filename="../containers/containers_defs.cpp" line="115"/>
@@ -2606,7 +2620,14 @@ It employs its unique security protocol, leveraging the strength of SSL/TLS for
* Flexible customisation to suit user needs to work with different operating systems and devices * Flexible customisation to suit user needs to work with different operating systems and devices
* Recognised by DPI analysis systems and therefore susceptible to blocking * Recognised by DPI analysis systems and therefore susceptible to blocking
* Can operate over both TCP and UDP network protocols.</source> * Can operate over both TCP and UDP network protocols.</source>
<translation type="unfinished"></translation> <translation>OpenVPN VPN
SSL/TLS OpenVPN 使OpenVPN 广OpenVPN
* AmneziaVPN 使
*
* 使
* DPI分析系统识别
* TCP UDP </translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="145"/> <location filename="../containers/containers_defs.cpp" line="145"/>
@@ -2618,7 +2639,14 @@ It employs its unique security protocol, leveraging the strength of SSL/TLS for
* Configurable encryption protocol * Configurable encryption protocol
* Detectable by some DPI systems * Detectable by some DPI systems
* Works over TCP network protocol.</source> * Works over TCP network protocol.</source>
<translation type="unfinished"></translation> <translation>Shadowsocks SOCKS5 使 AEAD Shadowsocks HTTPS Shadowsocks Amnezia支持有限使AmneziaWG协议
* AmneziaVPN
*
*
* DPI
* TCP </translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="155"/> <location filename="../containers/containers_defs.cpp" line="155"/>
@@ -2640,7 +2668,23 @@ If there is a extreme level of Internet censorship in your region, we advise you
* Not recognised by DPI analysis systems * Not recognised by DPI analysis systems
* Works over TCP network protocol, 443 port. * Works over TCP network protocol, 443 port.
</source> </source>
<translation type="unfinished"></translation> <translation> OpenVPN Cloak
OpenVPN Internet VPN
Cloak OpenVPN
Cloak 便 VPN Web VPN 使
Cloak VPN
使 OpenVPN over Cloak
* AmneziaVPN 使
*
*
* DPI
* TCP 443 </translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="174"/> <location filename="../containers/containers_defs.cpp" line="174"/>
@@ -2653,7 +2697,15 @@ WireGuard is very susceptible to blocking due to its distinct packet signatures.
* Minimum number of settings * Minimum number of settings
* Easily recognised by DPI analysis systems, susceptible to blocking * Easily recognised by DPI analysis systems, susceptible to blocking
* Works over UDP network protocol.</source> * Works over UDP network protocol.</source>
<translation type="unfinished"></translation> <translation> VPN
VPN 使 WireGuard OpenVPN
WireGuard VPN WireGuard (DPI)
* AmneziaVPN 使
*
*
* DPI分析系统识别
* UDP </translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="187"/> <location filename="../containers/containers_defs.cpp" line="187"/>
@@ -2666,7 +2718,15 @@ This means that AmneziaWG keeps the fast performance of the original while addin
* Minimum number of settings * Minimum number of settings
* Not recognised by DPI analysis systems, resistant to blocking * Not recognised by DPI analysis systems, resistant to blocking
* Works over UDP network protocol.</source> * Works over UDP network protocol.</source>
<translation type="unfinished"></translation> <translation>AmneziaWG VPN WireGuard
WireGuard AmneziaWG 使使
AmneziaWG 使 VPN
* AmneziaVPN 使
*
*
* DPI分析系统识别
* UDP </translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="203"/> <location filename="../containers/containers_defs.cpp" line="203"/>
@@ -2679,7 +2739,15 @@ While it offers a blend of security, stability, and speed, it&apos;s essential t
* Minimal configuration * Minimal configuration
* Recognised by DPI analysis systems * Recognised by DPI analysis systems
* Works over UDP network protocol, ports 500 and 4500.</source> * Works over UDP network protocol, ports 500 and 4500.</source>
<translation type="unfinished"></translation> <translation>IKEv2 IPSec 使 VPN
使
IKEv2 IKEv2
* Windows AmneziaVPN
*
*
* DPI分析系统认可
* UDP 500 4500 </translation>
</message> </message>
<message> <message>
<source>OpenVPN container</source> <source>OpenVPN container</source>
@@ -3010,27 +3078,27 @@ While it offers a blend of security, stability, and speed, it&apos;s essential t
<message> <message>
<location filename="../containers/containers_defs.cpp" line="309"/> <location filename="../containers/containers_defs.cpp" line="309"/>
<source>Medium or High</source> <source>Medium or High</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="310"/> <location filename="../containers/containers_defs.cpp" line="310"/>
<source>Extreme</source> <source>Extreme</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="318"/> <location filename="../containers/containers_defs.cpp" line="318"/>
<source>I just want to increase the level of my privacy.</source> <source>I just want to increase the level of my privacy.</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="319"/> <location filename="../containers/containers_defs.cpp" line="319"/>
<source>I want to bypass censorship. This option recommended in most cases.</source> <source>I want to bypass censorship. This option recommended in most cases.</source>
<translation type="unfinished"></translation> <translation>使</translation>
</message> </message>
<message> <message>
<location filename="../containers/containers_defs.cpp" line="321"/> <location filename="../containers/containers_defs.cpp" line="321"/>
<source>Most VPN protocols are blocked. Recommended if other options are not working.</source> <source>Most VPN protocols are blocked. Recommended if other options are not working.</source>
<translation type="unfinished"></translation> <translation> VPN </translation>
</message> </message>
<message> <message>
<source>High</source> <source>High</source>
+1 -1
View File
@@ -184,7 +184,7 @@ void InstallController::installContainer(DockerContainer container, QJsonObject
} }
if (ContainerProps::containerService(container) == ServiceType::Vpn) { if (ContainerProps::containerService(container) == ServiceType::Vpn) {
m_containersModel->setData(m_containersModel->index(0, 0), container, ContainersModel::Roles::IsDefaultRole); m_containersModel->setData(m_containersModel->index(container), true, ContainersModel::Roles::IsDefaultRole);
} }
emit installContainerFinished(finishMessage, ContainerProps::containerService(container) == ServiceType::Other); emit installContainerFinished(finishMessage, ContainerProps::containerService(container) == ServiceType::Other);
return; return;
@@ -50,34 +50,26 @@ ListView {
imageSource: "qrc:/images/controls/download.svg" imageSource: "qrc:/images/controls/download.svg"
showImage: !isInstalled showImage: !isInstalled
checkable: isInstalled checkable: isInstalled && !ConnectionController.isConnected && isSupported
checked: isDefault checked: isDefault
onPressed: function(mouse) {
if (!isSupported) {
PageController.showErrorMessage(qsTr("The selected protocol is not supported on the current platform"))
}
}
onClicked: { onClicked: {
if (checked) { if (ConnectionController.isConnected && isInstalled) {
var needReconnected = false PageController.showNotificationMessage(qsTr("Unable change protocol while there is an active connection"))
if (!isDefault) { return
needReconnected = true }
}
if (checked) {
isDefault = true isDefault = true
menuContent.currentIndex = index menuContent.currentIndex = index
containersDropDown.menuVisible = false containersDropDown.menuVisible = false
if (needReconnected && (ConnectionController.isConnected || ConnectionController.isConnectionInProgress)) {
PageController.showNotificationMessage(qsTr("Reconnect via VPN Procotol: ") + name)
PageController.goToPageHome()
ConnectionController.openConnection()
}
} else { } else {
if (!isSupported && isInstalled) {
PageController.showErrorMessage(qsTr("The selected protocol is not supported on the current platform"))
return
}
ContainersModel.setCurrentlyProcessedContainerIndex(proxyContainersModel.mapToSource(index)) ContainersModel.setCurrentlyProcessedContainerIndex(proxyContainersModel.mapToSource(index))
InstallController.setShouldCreateServer(false) InstallController.setShouldCreateServer(false)
PageController.goToPage(PageEnum.PageSetupWizardProtocolSettings) PageController.goToPage(PageEnum.PageSetupWizardProtocolSettings)
+2
View File
@@ -81,6 +81,7 @@ RadioButton {
Text { Text {
text: root.headerText text: root.headerText
wrapMode: Text.WordWrap
color: "#D7D8DB" color: "#D7D8DB"
font.pixelSize: 25 font.pixelSize: 25
font.weight: 700 font.weight: 700
@@ -110,6 +111,7 @@ RadioButton {
Text { Text {
text: root.footerText text: root.footerText
wrapMode: Text.WordWrap
visible: root.footerText !== "" visible: root.footerText !== ""
color: "#878B91" color: "#878B91"
font.pixelSize: 13 font.pixelSize: 13
+6
View File
@@ -471,10 +471,16 @@ PageType {
} }
checked: index === serversMenuContent.currentIndex checked: index === serversMenuContent.currentIndex
checkable: !ConnectionController.isConnected
ButtonGroup.group: serversRadioButtonGroup ButtonGroup.group: serversRadioButtonGroup
onClicked: { onClicked: {
if (ConnectionController.isConnected) {
PageController.showNotificationMessage(qsTr("Unable change server while there is an active connection"))
return
}
serversMenuContent.currentIndex = index serversMenuContent.currentIndex = index
ServersModel.currentlyProcessedIndex = index ServersModel.currentlyProcessedIndex = index
@@ -70,7 +70,7 @@ PageType {
Layout.margins: 16 Layout.margins: 16
text: qsTr("Auto start") text: qsTr("Auto start")
descriptionText: qsTr("Launch the application every time %1 starts").arg(Qt.platform.os) descriptionText: qsTr("Launch the application every time the device is starts")
checked: SettingsController.isAutoStartEnabled() checked: SettingsController.isAutoStartEnabled()
onCheckedChanged: { onCheckedChanged: {
@@ -94,7 +94,7 @@ PageType {
DividerType {} DividerType {}
LabelWithButtonType { LabelWithButtonType {
visible: !GC.isMobile() visible: GC.isDesktop()
Layout.fillWidth: true Layout.fillWidth: true
@@ -108,11 +108,11 @@ PageType {
} }
DividerType { DividerType {
visible: !GC.isMobile() visible: GC.isDesktop()
} }
LabelWithButtonType { LabelWithButtonType {
visible: false//!GC.isMobile() visible: false
Layout.fillWidth: true Layout.fillWidth: true
@@ -125,7 +125,7 @@ PageType {
} }
DividerType { DividerType {
visible: !GC.isMobile() visible: false
} }
} }
} }
+1
View File
@@ -46,6 +46,7 @@ PageType {
} }
ParagraphTextType { ParagraphTextType {
Layout.fillWidth: true
text: qsTr("If AmneziaDNS is not used or installed") text: qsTr("If AmneziaDNS is not used or installed")
} }
+1 -1
View File
@@ -320,7 +320,7 @@ PageType {
if (index === ContainerProps.containerFromString("amnezia-openvpn")) { if (index === ContainerProps.containerFromString("amnezia-openvpn")) {
root.connectionTypesModel.push(openVpnConnectionFormat) root.connectionTypesModel.push(openVpnConnectionFormat)
} else if (index === ContainerProps.containerFromString("amnezia-awg")) { } else if (index === ContainerProps.containerFromString("amnezia-wireguard")) {
root.connectionTypesModel.push(wireGuardConnectionFormat) root.connectionTypesModel.push(wireGuardConnectionFormat)
} }
} }
+9 -9
View File
@@ -96,16 +96,16 @@ if [ "${MAC_CERT_PW+x}" ]; then
security find-identity -p codesigning security find-identity -p codesigning
echo "Signing App bundle..." echo "Signing App bundle..."
/usr/bin/codesign --deep --force --verbose --timestamp -o runtime --sign "Developer ID Application: Privacy Technologies OU (X7UJ388FXK)" $BUNDLE_DIR /usr/bin/codesign --deep --force --verbose --timestamp -o runtime --sign "$MAC_SIGNER_ID" $BUNDLE_DIR
/usr/bin/codesign --verify -vvvv $BUNDLE_DIR || true /usr/bin/codesign --verify -vvvv $BUNDLE_DIR || true
spctl -a -vvvv $BUNDLE_DIR || true spctl -a -vvvv $BUNDLE_DIR || true
if [ "${NOTARIZE_APP+x}" ]; then if [ "${NOTARIZE_APP+x}" ]; then
echo "Notarizing App bundle..." echo "Notarizing App bundle..."
/usr/bin/ditto -c -k --keepParent $BUNDLE_DIR $PROJECT_DIR/Bundle_to_notarize.zip /usr/bin/ditto -c -k --keepParent $BUNDLE_DIR $PROJECT_DIR/Bundle_to_notarize.zip
xcrun altool --notarize-app -f $PROJECT_DIR/Bundle_to_notarize.zip -t osx --primary-bundle-id "$APP_DOMAIN" -u "$APPLE_DEV_EMAIL" -p $APPLE_DEV_PASSWORD xcrun notarytool submit $PROJECT_DIR/Bundle_to_notarize.zip --apple-id $APPLE_DEV_EMAIL --team-id $MAC_TEAM_ID --password $APPLE_DEV_PASSWORD
rm $PROJECT_DIR/Bundle_to_notarize.zip rm $PROJECT_DIR/Bundle_to_notarize.zip
sleep 600 sleep 300
xcrun stapler staple $BUNDLE_DIR xcrun stapler staple $BUNDLE_DIR
xcrun stapler validate $BUNDLE_DIR xcrun stapler validate $BUNDLE_DIR
spctl -a -vvvv $BUNDLE_DIR || true spctl -a -vvvv $BUNDLE_DIR || true
@@ -130,15 +130,15 @@ $QIF_BIN_DIR/binarycreator --offline-only -v -c $BUILD_DIR/installer/config/maco
if [ "${MAC_CERT_PW+x}" ]; then if [ "${MAC_CERT_PW+x}" ]; then
echo "Signing installer bundle..." echo "Signing installer bundle..."
security unlock-keychain -p $TEMP_PASS $KEYCHAIN security unlock-keychain -p $TEMP_PASS $KEYCHAIN
/usr/bin/codesign --deep --force --verbose --timestamp -o runtime --sign "Developer ID Application: Privacy Technologies OU (X7UJ388FXK)" $INSTALLER_BUNDLE_DIR /usr/bin/codesign --deep --force --verbose --timestamp -o runtime --sign "$MAC_SIGNER_ID" $INSTALLER_BUNDLE_DIR
/usr/bin/codesign --verify -vvvv $INSTALLER_BUNDLE_DIR || true /usr/bin/codesign --verify -vvvv $INSTALLER_BUNDLE_DIR || true
if [ "${NOTARIZE_APP+x}" ]; then if [ "${NOTARIZE_APP+x}" ]; then
echo "Notarizing installer bundle..." echo "Notarizing installer bundle..."
/usr/bin/ditto -c -k --keepParent $INSTALLER_BUNDLE_DIR $PROJECT_DIR/Installer_bundle_to_notarize.zip /usr/bin/ditto -c -k --keepParent $INSTALLER_BUNDLE_DIR $PROJECT_DIR/Installer_bundle_to_notarize.zip
xcrun altool --notarize-app -f $PROJECT_DIR/Installer_bundle_to_notarize.zip -t osx --primary-bundle-id "$APP_DOMAIN" -u "$APPLE_DEV_EMAIL" -p $APPLE_DEV_PASSWORD xcrun notarytool submit $PROJECT_DIR/Installer_bundle_to_notarize.zip --apple-id $APPLE_DEV_EMAIL --team-id $MAC_TEAM_ID --password $APPLE_DEV_PASSWORD
rm $PROJECT_DIR/Installer_bundle_to_notarize.zip rm $PROJECT_DIR/Installer_bundle_to_notarize.zip
sleep 600 sleep 300
xcrun stapler staple $INSTALLER_BUNDLE_DIR xcrun stapler staple $INSTALLER_BUNDLE_DIR
xcrun stapler validate $INSTALLER_BUNDLE_DIR xcrun stapler validate $INSTALLER_BUNDLE_DIR
spctl -a -vvvv $INSTALLER_BUNDLE_DIR || true spctl -a -vvvv $INSTALLER_BUNDLE_DIR || true
@@ -151,13 +151,13 @@ hdiutil create -volname AmneziaVPN -srcfolder $BUILD_DIR/installer/$APP_NAME.app
if [ "${MAC_CERT_PW+x}" ]; then if [ "${MAC_CERT_PW+x}" ]; then
echo "Signing DMG installer..." echo "Signing DMG installer..."
security unlock-keychain -p $TEMP_PASS $KEYCHAIN security unlock-keychain -p $TEMP_PASS $KEYCHAIN
/usr/bin/codesign --deep --force --verbose --timestamp -o runtime --sign "Developer ID Application: Privacy Technologies OU (X7UJ388FXK)" $DMG_FILENAME /usr/bin/codesign --deep --force --verbose --timestamp -o runtime --sign "$MAC_SIGNER_ID" $DMG_FILENAME
/usr/bin/codesign --verify -vvvv $DMG_FILENAME || true /usr/bin/codesign --verify -vvvv $DMG_FILENAME || true
if [ "${NOTARIZE_APP+x}" ]; then if [ "${NOTARIZE_APP+x}" ]; then
echo "Notarizing DMG installer..." echo "Notarizing DMG installer..."
xcrun altool --notarize-app -f $DMG_FILENAME -t osx --primary-bundle-id $APP_DOMAIN -u $APPLE_DEV_EMAIL -p $APPLE_DEV_PASSWORD xcrun notarytool submit $DMG_FILENAME --apple-id $APPLE_DEV_EMAIL --team-id $MAC_TEAM_ID --password $APPLE_DEV_PASSWORD
sleep 600 sleep 300
xcrun stapler staple $DMG_FILENAME xcrun stapler staple $DMG_FILENAME
xcrun stapler validate $DMG_FILENAME xcrun stapler validate $DMG_FILENAME
fi fi