Files
fuckKomet/lib/screens/tos_screen.dart

177 lines
14 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:url_launcher/url_launcher.dart';
class TosScreen extends StatelessWidget {
const TosScreen({super.key});
final String tosText = """
### 1. Статус и отношения
1.1. «Komet» (далее — «Приложение») — неофициальное стороннее приложение, не имеющее отношения к ООО «Коммуникационная платформа» (правообладатель сервиса «MAX»).
1.2. Разработчики Приложения не являются партнёрами, сотрудниками или аффилированными лицами ООО «Коммуникационная платформа».
1.3. Все упоминания торговых марок «MAX» и связанных сервисов принадлежат их правообладателям.
### 2. Условия использования
2.1. Используя Приложение «Komet», вы:
- Автоматически подтверждаете согласие с официальным Пользовательским соглашением «MAX» (https://legal.max.ru/ps)
- Осознаёте, что использование неофициального клиента может привести к блокировке аккаунта со стороны ООО «Коммуникационная платформа»;
- Принимаете на себя все риски, связанные с использованием Приложения.
2.2. Строго запрещено:
- Использовать Приложение «Komet» для распространения запрещённого контента;
- Осуществлять массовые рассылки (спам);
- Нарушать законодательство РФ и международное право;
- Предпринимать попытки взлома или нарушения работы оригинального сервиса «MAX».
2.3. Техническая реализация соответствует принципу добросовестного использования (fair use) и не нарушает исключительные права правообладателя в соответствии с статьёй 1273 ГК РФ.
2.4. Особенности технического взаимодействия:
- Приложение «Komet» использует публично доступные методы взаимодействия с сервисом «MAX», аналогичные веб-версии (https://web.max.ru)
- Все запросы выполняются в рамках добросовестного использования для обеспечения совместимости;
- Разработчики не осуществляют обход технических средств защиты и не декомпилируют оригинальное ПО.
### 3. Технические аспекты
3.1. Приложение «Komet» использует только публично доступные методы взаимодействия с сервисом «MAX» через официальные конечные точки.
3.2. Все запросы выполняются в рамках добросовестного использования (fair use) для обеспечения совместимости.
3.3. Разработчики не несут ответственности за:
- Изменения в API оригинального сервиса;
- Блокировку аккаунтов пользователей;
- Функциональные ограничения, вызванные действиями ООО «Коммуникационная платформа».
### 4. Конфиденциальность
4.1. Приложение «Komet» не хранит и не обрабатывает персональные данные пользователей.
4.2. Все данные авторизации передаются напрямую серверам ООО «Коммуникационная платформа».
4.3. Разработчики не имеют доступа к логинам, паролям, переписке и другим персональным данным пользователей.
### 5. Ответственность и ограничения
5.1. Приложение «Komet» предоставляется «как есть» (as is) без гарантий работоспособности.
5.2. Разработчики вправе прекратить поддержку Приложения в любой момент без объяснения причин.
5.3. Пользователь обязуется не использовать Приложение «Komet» в коммерческих целях.
### 6. Правовые основания
6.1. Разработка и распространение Приложения «Komet» осуществляются в соответствии с:
- Статья 1280.1 ГК РФ — декомпилирование программы для обеспечения совместимости;
- Статья 1229 ГК РФ — ограничения исключительного права в информационных целях;
- Федеральный закон № 149-ФЗ «Об информации» — использование общедоступной информации;
- Право на межоперабельность (Directive (EU) 2019/790) — обеспечение взаимодействия программ.
6.2. Взаимодействие с сервисом «MAX» осуществляется исключительно через:
- Публичные API-интерфейсы, доступные через веб-версию сервиса;
- Методы обратной разработки, разрешённые ст. 1280.1 ГК РФ для целей совместимости;
- Открытые протоколы взаимодействия, не защищённые техническими средствами охраны.
6.3. Приложение «Komet» не обходит технические средства защиты и не нарушает нормальную работу оригинального сервиса, что соответствует требованиям статьи 1299 ГК РФ.
### 7. Заключительные положения
7.1. Используя Приложение «Komet», вы соглашаетесь с тем, что:
- Единственным правомочным способом использования сервиса «MAX» является применение официальных клиентов;
- Все претензии по работе сервиса должны направляться в ООО «Коммуникационная платформа»;
- Разработчики Приложения не несут ответственности за любые косвенные или прямые убытки.
7.2. Настоящее соглашение может быть изменено без предварительного уведомления пользователей.
### 8. Функции безопасности и конфиденциальности
8.1. Приложение «Komet» включает инструменты защиты приватности:
- Подмена данных сессии — для предотвращения отслеживания пользователя;
- Система прокси-подключений — для обеспечения безопасности сетевого взаимодействия;
- Ограничение телеметрии — для минимизации передачи диагностических данных.
8.2. Данные функции:
- Направлены исключительно на защиту конфиденциальности пользователей;
- Не используются для обхода систем безопасности оригинального сервиса;
- Реализованы в рамках статьи 152.1 ГК РФ о защите частной жизни.
8.3. Разработчики не несут ответственности за:
- Блокировки, связанные с использованием инструментов конфиденциальности;
- Изменения в работе сервиса при активации данных функций.
### 8.4. Функции экспорта и импорта сессии
8.4.1. Приложение «Komet» предоставляет возможность экспорта и импорта данных сессии для:
- Обеспечения переносимости данных между устройствами пользователя
- Резервного копирования учетных данных
- Восстановления доступа при утере устройства
8.4.2. Особенности реализации:
- Экспорт сессии осуществляется без привязки к номеру телефона
- Данные сессии защищаются паролем и шифрованием по алгоритмам AES-256
- Ключ шифрования известен только пользователю и не сохраняется в приложении
8.4.3. Техническая реализация экспорта сессии:
- Экспорт сессии осуществляется через токен авторизации для идентификации в сервисе
- Используется подмена параметров сессии для сохранения контекста аутентификации
- Интеграция настроек прокси для обеспечения единой конфигурации подключения
- Импортированная сессия маскирует источник подключения через указанные прокси-настройки
- Серверы оригинального сервиса не получают данных о смене устройства пользователя
- Шифрование применяется ко всему пакету данных (сессия + прокси-конфиг)
8.4.4. Правовые основания:
- Статья 6 ФЗ-152 «О персональных данных» — обработка данных с согласия субъекта
- Статья 434 ГК РФ — право на выбор формы сделки (электронная форма хранения учетных данных)
- Принцип минимизации данных — сбор только необходимой для работы информации
- Использование токена не является несанкционированным доступом (ст. 272 УК РФ не нарушается)
- Подмена сессии — легитимный метод сохранения аутентификации (аналог браузерных cookies)
- Маскировка IP-адреса — законный способ защиты персональных данных (ст. 6 ФЗ-152)
8.4.5. Ограничения ответственности:
- Пользователь самостоятельно несет ответственность за сохранность пароля и резервных копий
- Разработчики не имеют доступа к зашифрованным данным сессии
- Восстановление утерянных паролей невозможно в целях безопасности
- Ключи шифрования не хранятся в приложении и известны только пользователю
""";
@override
Widget build(BuildContext context) {
final textTheme = Theme.of(context).textTheme;
final markdownStyleSheet = MarkdownStyleSheet.fromTheme(Theme.of(context))
.copyWith(
h3: textTheme.titleMedium?.copyWith(
fontWeight: FontWeight.bold,
fontFamily: GoogleFonts.manrope().fontFamily,
height: 2.2,
),
p: textTheme.bodyMedium?.copyWith(
fontFamily: GoogleFonts.manrope().fontFamily,
height: 1.5,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
listBullet: textTheme.bodyMedium?.copyWith(
fontFamily: GoogleFonts.manrope().fontFamily,
height: 1.6,
),
a: TextStyle(
color: Theme.of(context).colorScheme.primary,
decoration: TextDecoration.underline,
decorationColor: Theme.of(context).colorScheme.primary,
),
);
return Scaffold(
appBar: AppBar(title: const Text('Пользовательское соглашение')),
body: Markdown(
data: tosText,
padding: const EdgeInsets.fromLTRB(16, 8, 16, 24),
styleSheet: markdownStyleSheet,
selectable: true,
onTapLink: (text, href, title) async {
if (href != null) {
final uri = Uri.tryParse(href);
if (uri != null && await canLaunchUrl(uri)) {
await launchUrl(uri, mode: LaunchMode.externalApplication);
}
}
},
),
);
}
}