Как улучшить bluetooth android

Настройки Bluetooth на Android: а можно ли его обновить?

Друзья, горячо приветствую вас в этой обзорной статье по использованию технологии Bluetooth на Android телефонах. Специально для интересующихся, можно ли обновить Bluetooth на своем Android смартфоне, и просто для желающих узнать какие-то особенности его использования и тайны настройки – добро пожаловать.

А еще мы стараемся поддерживать общение с нашими читателями – смело пишите свои комментарии с вопросами или личным опытом.

Мои скриншоты выполнены на версии Android 10, но в целом они подойдут для любого смартфона на базе этой операционной системы.

Обновление

Один из самых частых вопросов наших читателей по теме этой статьи:

Можно ли обновить версию Bluetooth на Android и как это сделать? Можно ли установить Bluetooth, и какую программу для этого скачать?

Единственный правильный ответ:

Речь идет именно об обновлении версии Bluetooth. Сам Bluetooth – это железный модуль. Если хотите обновить версию – придется поменять и сам модуль. В общем случае на телефонах это не делается, поэтому для этой задачи приобрести новый телефон.

Но зачем это обновление вообще вам нужно? Для примитивных задач все версии Bluetooth обратно совместимы. Т.е. ваше устройство с поддержкой версии 4.2 легко подключится к другому устройству с поддержкой 5.2. И для большинства задач этого достаточно.

Если же вы имели ввиду обновление не версии, а списка устройств, смотрите ниже.

По проверке текущей версии Bluetooth у нас есть хорошая статья.

Включение

Самый общий случай для всех версий Android.

  1. Переходим в Настройки – Bluetooth

Всё, Bluetooth включен. Другой быстрый вариант включить – воспользоваться шторкой на телефоне:

Изменение имени устройства

Для чего нужно менять имя? Чтобы ваш телефон можно было легко найти другим устройствам по Bluetooth (например, вы ищете свой телефон на ноутбуке) или же удобно находить в списке уже подключенных устройств (например, на машине подключено несколько Bluetooth устройств, но вы хотите брать звук только со своего телефона).

Поменять имя можно здесь же:

Настройки – Bluetooth – Имя устройства

Включение видимости

Чтобы ваш смартфон видели другие устройства, нужно включить видимость устройства по Bluetooth. Как это сделать?

  1. На старых версиях Android ее нужно включать отдельно (ищем все там же – Настройки – Bluetooth и через меню смотрим похожий пункт, от версии к версии названия отличались).
  2. На новых Android достаточно просто открыть знакомые нам Настройки – Bluetooth, а телефон автоматически станет видимым.

Поиск и обновление поиска устройств

И снова знакомая нам страничка Настройки – Bluetooth (здесь вообще делается все, как вы поняли). Здесь же можно найти все обнаруженные возле вас Bluetooth устройство с видимостью, а также нажать на вот эту кнопку обновления, чтобы повторить поиск:

Отключение устройств

  1. В списке подключенных устройств (Настройки – Bluetooth) ищем нужное для удаления устройство (иногда это нужно, например, чтобы повторить подключение при первом кривом сопряжении). И напротив него щелкаем вот на эту стрелочку:

  1. Внутри нажимаем кнопку «Отключить».

Детальные настройки устройства

Для особых функций, как и в случае выше, можно детально отстроить свое устройство. Переходим в Настройки – Bluetooth, выбираем настройки своего устройства (смотрим выше), а уже тут можно творить полезные вещи:

  • Можно переименовать подключенное устройство. Ну чтобы оно называлось понятно для вас: «Мой ноутбук», «Большие наушники», «Маленькие наушники» и т.д.
  • Аудиоустройство – использовать для звонков. Через гарнитуру или автор.
  • Мультимедийное устройство – слушать музыку через гарнитуру или авто.
  • Обмен контактами – чтобы подключенное устройство видело ваши контакты. В моем случае это было полезно на авто, чтобы в звонках отображался не только номер звонящего, но и имя из списка контактов.

Сброс настроек

Еще один пункт в коллекцию полезных действий. Чтобы сбросить настройки Bluetooth на Андроиде (иногда нужно для корректной работы устройств или приложений), можно провернуть следующее:

  1. Настройки – Приложения – Все приложения (последний пункт зависит от вашей версии системы и оболочки, но нам нужно получить именно полный список установленных приложений).
  2. Ищем приложение Bluetooth (обратите внимание, что версия приложения не должна совпадать с аппаратной версией).
  3. Ищем все возможные способы очистки: «Очистить кэш», «Очистить данные», «Очистить все». У меня это так:

После сброса всегда рекомендуется перезагружать телефон.

Настройки в инженерном меню

Да, мы знаем, что есть отдельные настройки Bluetooth в инженерном меню. Но наш портал думает прежде всего о простых пользователях, которым явно не нужно лезть в инженерное меню. Большую часть проблем там точно не решить. Поэтому исключительно в целях безопасности нашего неопытного читателя данный пункт был сокращен. Остальным же рекомендую с точным пониманием проблемы идти на профильные форумы или хотя бы в наши комментарии, где мы сможем подсказать разумное направление для дальнейших поисков.

Читайте также:  Анидеск ком для андроид

Если телефон не видит другие устройства по Bluetooth

Наш классический пример с беспроводной колонкой.

Передача файлов

Мы тоже уже писали по этой теме. Рекомендую посмотреть здесь:

Видео по теме

Источник

Как улучшить bluetooth android

Многие отмечают низкое качество звука и недостаток высоких частот при использовании стандартного Bluetooth-кодека SBC, который поддерживают все наушники. Частой рекомендацией для улучшения звука является покупка устройств и наушников с поддержкой кодеков aptX и LDAC. Эти кодеки требуют лицензионных отчислений, поэтому устройства с их поддержкой стоят дороже.

Оказывается, низкое качество SBC обусловлено искусственными ограничениями Bluetooth-стеков и настроек наушников, и это ограничение можно обойти на любых существующих устройствах.
Я предлагаю всем, кого интересует Bluetooth-аудио, поучаствовать в тестировании совместимости различных наушников, ресиверов, стереосистем, автомобильных головных устройств, с высокими битрейтами.
Если по результатам теста подавляющее большинство устройств будут работать с высокими битрейтами, я сделаю патч для Android и отправлю его в AOSP и сторонние прошивки, и высокое качество Bluetooth-аудио будет доступно всем, на любых наушниках и смартфонах, независимо от поддержки кодеков с лицензионными отчислениями.

Обновление: тест окончен, см. результаты. Файлы для модификации больше не принимаются. Не загружайте библиотеки в тему!

SBC XQ интегрирован в прошивку LineageOS, в сборки LineageOS 15.1 от 31 марта 2019 года и новее, и в LineageOS 16 от 13 мая 2019 года и новее.

У кодека SBC есть множество разных параметров, которые согласуются на этапе установки соединения. Среди них:

  • Количество и тип каналов: Joint Stereo, Stereo, Dual Channel, Mono;
  • Количество частотных полос: 4 или 8;
  • Количество блоков в пакете: 4, 8, 12, 16;
  • Алгоритм распределения битов при квантовании: Loudness, SNR;
  • Максимальное и минимальное значение пула битов, используемых при квантовании (bitpool): обычно, от 2 до 53.

Декодирующее устройство обязано поддерживать любое сочетание этих параметров. Кодирующее устройство может реализовывать не все.
Существующие Bluetooth-стеки, как правило, согласуют следующий профиль: Joint Stereo, 8 полос, 16 блоков, Loudness, bitpool 2..53. Этот профиль кодирует 44.1 кГц аудио с битрейтом 328 кбит/с.
Параметр bitpool напрямую влияет на битрейт в рамках одного профиля: чем он выше, тем выше битрейт, а следовательно и качество.
Однако параметр bitpool не привязан к конкретному профилю; влияние на битрейт также в значительной степени оказывает и другие параметры: тип каналов, количество частотных полос, количество блоков. Поднять битрейт можно косвенно, путем согласования нестандартных профилей, без изменения bitpool.

Например, Dual Channel кодирует каналы раздельно, используя весь bitpool для каждого из каналов. Заставив устройство использовать Dual Channel вместо Joint Stereo, мы получим почти удвоенный битрейт при том же максимальном значении bitpool: 617 кбит/с.
По моему мнению, использование не привязанного к профилю значения bitpool на этапе согласования — недоработка стандарта A2DP, которая и привела к искусственному ограничению качества SBC. Разумней было бы согласовывать bitrate, а не bitpool.

Такие фиксированные значения Bitpool и Bitrate берут свое начало из таблицы с рекомендованными к использованию значениями для высококачественного аудио. Но рекомендация — не повод ограничиваться этими значениями.

В новой версии спецификации ограничение по битрейту отсутствует. Предполагается, что современные наушники, выпущенные после 2015 года и поддерживающие EDR, могут поддерживать битрейты до 730 кбит/с.

По какой-то причине, у проверенных мной Bluetooth-стеков Linux (PulseAudio), Android, Blackberry и macOS есть искусственные ограничения максимального значения параметра bitpool, который напрямую влияет на максимальный битрейт. Но это — не самая большая проблема, почти все наушники тоже ограничивают максимальное значение bitpool числом 53.
Как я уже успел убедиться, большинство устройств отлично работает на модифицированном Bluetooth-стеке с битрейтом в 507 кбит/с, без прерываний и треска. Но такой битрейт никогда не будет согласован в обычных условиях, на обычных Bluetooth-стеках.

Тестирование на компьютере
Совместимость наушников с высокими битрейтами проще всего тестировать на компьютере с Bluetooth-адаптером. Я подготовил образ Ubuntu с модифицированным Bluetooth-стеком, который можно запустить как в виртуальной машине (пробросив Bluetooth-адаптер как USB-устройство, сработает и с адаптерами, встроенными в ноутбуки), так и загрузившись с флешки. Этот образ использует следующий профиль: Dual Channel, 8 полос, 16 блоков, Loudness, bitpool 2..41, 44.1 кГц, что обеспечивает битрейт в 485 кбит/с.
Скачать: bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso.torrent ( 5.44 КБ )

Запуск в виртуальной машине:

  1. Скачайте Virtualbox и Virtualbox Extension Pack: https://www.virtualbox.org/wiki/Downloads;
  2. Установите Virtualbox, запустите его;
  3. Установите Extension Pack, используя меню File → Preferences → Extensions;
  4. Создайте новую виртуальную машину Linux, Ubuntu (64-bit), с 1024 мегабайтами оперативной памяти. Диск не создавайте.
  5. Зайдите в настройки виртуальной машины, в пункте Storage выберите Controller: IDE, Empty, нажмите на значок CD → Choose virtual optical disk file;
  6. Выберите bluetooth-dualchannel-test-ubuntu-18.04.1-desktop-amd64.iso;
  7. Сохраните и закройте настройки, запустите виртуальную машину;
  8. Нажмите на значок USB-кабеля внизу справа появившегося окна правой кнопкой мыши, выберите Bluetooth-адаптер;
Читайте также:  Датчики давления шин для андроид

Запуск на компьютере
Образ поддерживает BIOS/CSM и UEFI.

  1. Запишите образ на флешку с помощью программы Etcher: https://etcher.io/. Эта операция удалит все существующие файлы на флешке.
  2. Выключите компьютер;
  3. Вставьте флешку, включите компьютер, нажимая кнопку выбора устройства загрузки (обычно Esc или F12);
  4. Выберите загрузку с флешки.

Проведение тестирования

  1. (не обязательно, но желательно) Запустите скрипт «Btsnoop Dump» на рабочем столе, двойным кликом. Он запустит запись дампа трафика Bluetooth, чтобы отправить ее на сервер для анализа. Не закрывайте окно терминала.
  2. Переведите наушники в режим сопряжения;
  3. Кликните на стрелочку в правом верхнем углу, выберите значок Bluetooth → Bluetooth Settings;
  4. Выберите ваши наушники, дождитесь сопряжения и закройте окно настроек;
  5. Установите громкость в Ubuntu примерно на 2/3 максимального значения. Также уменьшите громкость на наушниках, после сопряжения громкость может быть очень высокой.
  6. Откройте папку music на рабочем столе, воспроизведите testrecord1.flac;
  7. (не обязательно, но желательно) Закройте окно плеера, закройте черное терминальное окно. Это остановит запись дампа трафика.
  8. (не обязательно, но желательно) Откройте браузер Firefox, загрузите дамп трафика (файл btsnoop_hci.btsnoop на рабочем столе) на https://btcodecs.valdikss.org.ru/
  9. Можете прослушать другие записи в папке music, или включить свои;
  10. Напишите в этой теме, с какими наушниками (или другими устройствами) вы проводили тестирование, и результат. Недостаточно только загрузить дамп на сервер!

В наушниках не должно быть треска, прерываний аудио, прочих искажений звука. Если вы слышите чистый высококачественный звук — значит, ваши наушники поддерживают аудио с битрейтом в 485 кбит/с.
Если загружаете дампы на сервер, пожалуйста, строго следуйте этому алгоритму. В частности, если выключаете наушники или Bluetooth-адаптер компьютера после сопряжения, не давайте наушникам автоматически подключаться к компьютеру, а подключайтесь всегда с компьютера к наушникам.

Сообщение отредактировал ValdikSS — 15.09.19, 16:54

Тестирование на устройстве с Android
Для тестирования со смартфона или планшета под управлением Android придется модифицировать Bluetooth-стек, для чего необходимы root-права.

Обновление: тест окончен, см. результаты. Файлы для модификации больше не принимаются. Не загружайте библиотеки в тему!

Если вы обычный пользователь
Пришлите мне библиотеки Bluetooth-стека вашего устройства (только Android 5-8): /system/lib/hw/bluetooth.default.so и /system/lib64/hw/bluetooth.default.so (если последний имеется). Я модифицирую настройки стека, и вышлю файлы вам.
Пожалуйста, присылайте библиотеки только в том случае, если вы готовы протестировать наушники, отсутствующие в списке ниже, в третьем сообщении. Мне тяжело патчить библиотеки всем желающим.
По возможности, используйте способ тестирования на компьютере, описанный в первом сообщении.

Эти файлы только для тестирования поддержки Dual Channel наушниками, не для повседневного использования.
Файлы были выложены для проведения тестирования совместимости наушников с Dual Channel в конце 2018 года, когда ещё не было понятно, сколько устройств поддерживают этот режим. Все файлы ниже уже не актуальны, не предназначены для использования, гарантированно приведут к проблемам с Bluetooth, и оставлены здесь исключительно в архивных целях.
Сделайте резервную копию библиотеки перед ее заменой. Измененные библиотеки для некоторых устройств:
Asus Zoom (Android 5, 2.26.40.108_20160520).zip ( 2.84 МБ )
Redmi Note 4x (Masik Premium, android 7.0).zip ( 2.24 МБ )
Xiaomi Mi4c (Android 7.0 NRD90M, MIUI-9.5 9.5.1.0 (NXKCNFA)).zip ( 1.49 МБ )
Xiaomi MI5s (MIUI Global 9.6.1.0, Android 7).zip ( 1.49 МБ )
LeEco Cool Changer S1 EUI_5.8.19S.zip ( 1.69 МБ )
Leeco LE2 (EUI 5.9.26s, Android 6).zip ( 1.64 МБ )
Le Max 2 Oreo Patched.zip ( 7.06 МБ )
Xiaomi Redmi 4 Prime.zip ( 884.97 КБ )
Xiaomi Redmi 4 (MiuiPro 10 8.8.2, Android 6.0.1, MMB29M).zip ( 1.66 МБ )
Xiaomi Redmi 4 pro (MIUI 9, miuipro 8.4.26).zip ( 1.65 МБ )
Xiaomi mi note 3 (MIUI 9, Android 7).zip ( 1.75 МБ )
Xiaomi Mi Note 3, MiuiPro 9.5.10.0.zip ( 1.75 МБ )
Xiaomi Mi Note (Miui 9 Miui.su usnkreal v8.4.12, Android 6.0.1).zip ( 1.63 МБ )
Xiaomi Redmi Note 3 (Resurrection Remix Android 7.1.2_r36).zip ( 772.17 КБ )
Xiaomi Redmi 3s (android 6.01, mmb29m, miui global 9.6.1.0).zip ( 1.65 МБ )
ZTE Nubia Z11 Mini, Android 6.0.1.zip ( 1.64 МБ )
ZTE blade x9 (Android 5.1, RuCommon_T07).zip ( 1.48 МБ )
Huawei P9 (Android 7).zip ( 2.23 МБ )
Samsung Galaxy S4 LTE GT-I9505 (Android 7.1.2; LineageOS 14.1-20180615-NIGHTLY-jfltexx).zip ( 2.24 МБ )
Pixel 2 XL (Pie 9.0).zip ( 12.01 МБ )
Essential Phone (9.0 Pie).zip ( 12 МБ )
Redmi 3S (LineageOS 15.1 with 9.5.8.0 MALMIFD).zip ( 7.05 МБ )
LeEco LE Pro 3 (PixelExperience_zl1-8.1.0-20180708).zip ( 3.69 МБ )
OP5-OOS-5.1.5_lib64.zip ( 2.64 МБ )
OP6-5.1.11_lib64.zip ( 3.64 МБ )
Pixel 2 (Pie).zip ( 6.49 МБ )
Leeco Cool1 Dual (JUI 7.1.1).zip ( 2.54 МБ )
Xiaomi Mi Max (Android 6.0.1).zip ( 2.45 МБ )
Xiaomi Redmi 5A Lite (AOSPExtended 7.1.2).zip ( 2.32 МБ )
Xiaomi Redmi Note 4X (9.6.2.0).zip ( 2.25 МБ )
Sharp AQUOS P1 (Android 6.0.1).zip ( 1.63 МБ )

Unrestricted/unlimited-версии согласуют режим Dual Channel и отключают ограничение битрейта (будет использоваться 617-660 кбит/с), версии 482, 486 повышают ограничение битрейта до 482 и 486 кбит/с соответственно (согласуется 474-485 кбит/с).

Патчсет, увеличивающий Bitpool и добавляющий опцию включения Dual Channel в меню Bluetooth, доступен по следующей ссылке:
LineageOS 14.1 (Android 7.1.2)

Ниже представлена устаревшая информация, оставлена только для истории.

Заменить A2D_SBC_IE_CH_MD_JOINT на A2D_SBC_IE_CH_MD_DUAL.

Читайте также:  Инстаграм для андроидов которые не поддерживают

Переместить if с A2D_SBC_IE_CH_MD_DUAL наверх, чтобы он выбирался первым.

3. Убрать или увеличить ограничение битрейта
В Bluetooth-стеке Android установлено ограничение не только на bitpool, но и на битрейт, в 328 кбит/с. Если наушники, например, поддерживают bitpool 53 при 48 кГц, то Android понизит его до 51, чтобы уместиться в ограничение битрейта. Это произойдет уже на этапе отправки кодированного аудио, а не на этапе согласования, не обращайте внимание на значение max bitpool в Bluetooth-пакете SetCapabilities.
android/platform/external/bluetooth/bluedroid/btif/src/btif_media_task.c:172

Заменить на 512.

4. (только для экспериментов) Убрать ограничение MTU.
Необходимо только для битрейтов

Патчсет, увеличивающий Bitpool и добавляющий опцию включения Dual Channel в меню Bluetooth, доступен по следующим ссылкам:

  • LineageOS 15.1 (Android 8.1)
  • LineageOS 16.0 (Android 9)
  • AOSP Master (то, что станет Android 9.1/10)

Ниже представлена устаревшая информация, оставлена только для истории.

Добавить A2DP_SBC_IE_CH_MD_DUAL в ch_mode.

Заменить A2DP_SBC_IE_CH_MD_JOINT на A2DP_SBC_IE_CH_MD_DUAL.

Переместить if с A2DP_SBC_IE_CH_MD_DUAL наверх.

Заменить на 512.

5. (только для экспериментов) Убрать ограничение MTU
Необходимо только для битрейтов от 580 кбит/с и выше.
/platform/system/bt/stack/a2dp/a2dp_sbc_encoder.cc:47

Для продвинутых пользователей и разработчиков прошивок. Необходимы минимальные знания ARM-ассемблера. Код из примера может не совпадать с кодом вашей библиотеки, в зависимости от версии компилятора, оптимизаций и опций компилирования.
Данные модификации применимы только к оригинальному стеку Android (bluedroid). Если вы видите строку «Needed Library ‘[email protected]'» или подобную в IDA Pro, с большой вероятностью, эта инструкция вам не поможет.
Вам потребуется IDA Pro (проверял на купленной версии) и любой HEX-редактор.

1. Скачайте и установите IDA Pro, откройте bluetooth.default.so, дождитесь окончания анализа файла (внизу слева должно быть AU: Idle).
Будем искать код из файла Ищем код из файла android/platform/external/bluetooth/bluedroid/btif/co/bta_av_co.c:411.
Значения констант следующие:

2. Откройте View → Open Subviews → Strings.
3. Нажмите CTRL+F, выполните поиск по строке «Cant parse src cap ret». Должна найтись одна строка. Кликните по ней дважды.

4. Выделите мышкой название переменной (слева от DB), нажмите «x» на клавиатуре.

5. Это — ссылки на нашу текстовую строку. На строку ссылается только одна функция sub_A868C, дважды. Два раза кликаем на первый или второй результат.

6. Сверху — код выбора частоты (сверяется сначала 0x10, потом 0x20). Курсор установлен на аналоге if (src_cap.ch_mode & A2D_SBC_IE_CH_MD_JOINT). По адресу loc_A871A в регистр R0 записывается значение 1 и совершается переход на loc_A8724 (отсутствует на скриншоте), который записывает значение регистра в поле структуры.

Заменив TST.W R0, #1 по адресу 0xA86FE на TST.W R0, #4, и MOVS R0, #1 по адресу 0xA871A на MOVS R0, #4, мы получим следующую конструкцию:

Чтобы это сделать, установите курсор на TST.W R0, #1, перейдите во вкладку «Hex View-1», откройте HEX-редактор и выполните поиск по подсвеченным байтам и нескольким дополнительным байтам слева и справа. Я буду искать следующее:

7. Откройте http://armconverter.com/, выберите x32 — ARM32/AArch32/ARMv7 Converter, скомпилируйте TST.W R0, #4. TST.W — инструкция из стандарта Thumb-2. Скорее всего, нужный вам результат будет в «Thumb-2 HEX».
8. Замените байты инструкции TST.W R0, #1 байтами инструкции TST.W R0, #4.
9. То же самое проделайте с MOVS R0, #1.

Файл android/platform/external/bluetooth/bluedroid/btif/co/bta_av_co.c:99.
10. Нужно заменить A2D_SBC_IE_CH_MD_JOINT на A2D_SBC_IE_CH_MD_DUAL. Можно обойтись только HEX-редактором. Ищем «10 01 10 04 01 35 02» (Если стек собран со стандартной частотой 44.1 кГц) или «20 01 10 04 01 35 02» (48 кГц), должно быть одно совпадение. Заменяем второй байт на 0x04: «10 04 10 04 01 35 02″.

Файл android/platform/external/bluetooth/bluedroid/btif/src/btif_media_task.c:653.
11. Ищем строку «non-edr a2dp sink detected», как было описано в пункте 3-5.
12. Ищем значение 0x148 (328).

13. Повторяем шаги 6-8, чтобы заменить 0x148 на 0x1E2 (482).
14. Сохраняем изменения в HEX-редакторе, загружаем библиотеку на устройство и перезагружаемся.

Запись дампа трафика на Android-устройстве

  1. Выключите Bluetooth;
  2. Включите инструменты разработчика, если ни разу их не включали: настройки → об устройстве → нажать несколько раз на «номер сборки».
  3. Откройте настройки, включите «Включить журнал трансляции операций HCI Bluetooth» в настройках разработчика;
  4. Включите Bluetooth, подключитесь со смартфона к наушникам, из настроек Bluetooth (не давайте автоматически подключиться наушникам к смартфону!);
  5. Воспроизведите небольшой отрывок аудиофайла;
  6. Откройте настройки, отключите «Включить журнал трансляции операций HCI Bluetooth» в настройках разработчика;
  7. Должен создаться файл /storage/emulated/0/btsnoop_hci.log или /data/misc/bluetooth/logs/btsnoop_hci.log. Если он не создался, то откройте текстовым редактором файл /etc/bluetooth/bt_stack.conf и посмотрите путь до лога в параметре BtSnoopFileName.
  8. Загрузите btsnoop_hci.log на https://btcodecs.valdikss.org.ru/;
  9. Напишите в этой теме, с какими наушниками (или другими устройствами) вы проводили тестирование, и результат. Недостаточно только загрузить дамп на сервер!

В наушниках не должно быть треска, прерываний аудио, прочих искажений звука. Если вы слышите чистый высококачественный звук — значит, ваши наушники поддерживают аудио с битрейтом в 474-485 кбит/с.

Сообщение отредактировал ValdikSS — 22.12.19, 13:01

Сообщение отредактировал ValdikSS — 21.09.18, 17:38

Источник

Оцените статью