Чини свою Теслу сам, тыжпрограммист +51


AliExpress RU&CIS

Тыжпрограммист, честь тебе и хвала. Возможно, твоя юность прошла в растянутом шерстяном свитере, но сейчас ты гордо смеешься в лицо любому приколу об айтишниках. Возможно, прошло время ремонта автомобилей с ДВС с мужиками в гаражах, но....Валера, настало твое время.

Ты айтишник, на тебя с обожанием смотрят женщины и с завистью мужчины. Хорошо, что ты уже за компьютером, будем в две клавиатуры хакать Теслу.


Для начала следует разобраться с hardware в Вашей Tesla. Нас интересует MCU (Media Control Unit), Бывает MCU1(Tegra) и MCU2(Intel).

В Тесла есть специальный диагностический режим, в котором видны все текущие ошибки, 100 последних ошибок. Есть возможность открытия сервисного меню для калибровки отдельных узлов.

Если у Вас Tesla model S дорестайлинговая на MCU1. Подключаемся вместо приборной панели в Fakro-Lan и запускаем скрипт перевода в factory. Factory mode отличается от Developer mode тем, что после перезагрузки не слетает.

#!/bin/bash
#
# Put Tesla MCU1 in factory mode
#
# Call over diagnostics port with seceth enabled
#
# Reboot MCU afterwards
#

VALUE=true

if [ ! -z "$1" ]; then
    VALUE=$1
fi

CID="192.168.90.100"

curl "http://${CID}:4070/_data_set_value_request_?name=GUI_factoryMode&value=${VALUE}"

Для получения обновлений и управления автомобилем через приложение нужно, чтобы на машине были живые сертификаты. Сертификаты можно утерять, если автомобиль в период их смены долгое время будет без интернета или в случае рутования машины.

Сертификаты живут здесь /var/lib/car_creds/car.{crt,key}.

Каждому автомобилю выдаются уникальные клиентские сертификаты для Hermes/OpenVPN, и они периодически меняются. Это усложняет захват образов прошивки или проверку бэкенда Tesla, так как сначала вам нужно получить root-доступ к автомобилю.

Получение root-прав позволяет Вам загружать любую модифицированную прошивку. Например, превратить Ваш авто в бэтмобиль.

Иногда это вынужденная мера, так как eMMC от Hynix на Тегре не очень хорошего качества и живет около 5 лет, потому что запись в /var очень активная. Для замены чипа памяти на Swissbit eMMC Вам потребуются root-права.

Я уже писал как снять дамп с NAND, здесь процесс абсолютно идентичный. Если память не поменять заблаговременно, то eMMC будет изнашиваться, процессор Tegra не сможет загрузиться, а ваш экран MCU не будет включаться или MCU будет перезагружаться и перезагружаться.

Конечно удалять и заменять этот чип, рискованно. Но как только MCU мертв, маловероятно, что вы сможете восстановить раздел /var, который является разделом 3 на чипе.

MMC/SD на самом деле является стандартом интерфейса, который позволяет различным производителям создавать чипы. Если вы не хотите сейчас заменять чип и просто хотите получить дамп, вы можете припаяться к колодкам на задней панели CID, подключить их к выводам ридера и прочитать eMMC таким образом.

Если Вы будете использовать такой способ - смотрите инструкцию к Вашему ридеру.

Получение root-доступа

Есть возможность получения root доступа через уязвимости софта, но они легко закрываются. Есть железный вариант и он надежнее. Это работает на Теграх без автопилота и с автопилотом 1 поколения. CID - центральный дисплей это дочерняя плата к MCU.

CID сделан Nvidia, процессор на MCU так же Nvidia. Поскольку это сделано nVidia, они использовали типичную систему на своих высококлассных видеокартах, то есть обновление прошивки идет попеременно в раздел 1 или 2, в зависимости от того, что в данный момент не активно, новая прошивка проверяется, затем автомобиль перезагружается на новую прошивку и развертывает поэтапные компоненты в остальной части автомобиля.

Загрузочный сопроцессор живет в чипе Tegra 3, отличном от реального процессора T3, и при сбросе этот сопроцессор инициализируется. Это довольно большой чип для встроенного устройства (512 МБ), и причина в том, что он отслеживает, какой раздел в eMMC является активным, а затем грузит ОС из него в оперативной памяти при каждой загрузке. После завершения работы сопроцессор цепочкой загружается в процессор T3, который загружается в файловую систему в оперативной памяти, и монтирует раздел eMMC 3 как /var и 4 как /home.

Более подробно на английском https://unofficial-tesla-tech.com/index.php?title=Rooting_MCU1

Если у тебя model3, значит ты умеешь отделять зерна от плевел, тебе маркетинговый шит что слону дробина, не бьет прямиком в мозг, то ты понимаешь, что Tesla model 3 это лучший электромобиль на текущий момент. Это многократно подтверждается владельцами с опытом эксплуатации разных моделей.

Возможно, Вам как и мне, с первого взгляда на интерьер model3 захотелось эту видеодвойку на шифонэре прикрыть салфеточкой.

Но, это только на первый взгляд. Чем дольше ты будешь пользоваться этим авто - тем более ты проникнешься гениальностью исполнения.

Недавно я получил Tesla Model 3, и так как я обожаю ковыряться в системах и пытаясь выяснить, как устроен мой компьютер (моя машина).

Я работаю над инфраструктурой машинного обучения ( https://golf-robotics.com/, сами понимаете, будущее за роботами), поэтому мне хотелось бы иметь возможность взглянуть на то, как автопилот FSD работает под капотом и что он на самом деле может делать за пределами той ограниченной информации, которую показывает пользовательский интерфейс.

Если Вы хотите повторить мои действия или испытывать что-то новое стоит зарегистрироваться в Tesla bug bounty https://bugcrowd.com/tesla

Одобренные участники программы могут взламывать автомобили Tesla без боязни юридических последствий или отзыва гарантии. Тесла поможет Вам оживить кирпич, но это не точно!

cid/ice - это компьютер, который управляет дисплеем и всеми медиа-системами, такими как звук.
192.168.90.100
первичный и вторичный компьютеры автопилота.
192.168.90.103 - ap/ape
192.168.90.105 - ap-b/ape-b
Шлюз - это в первую очередь UDP-сервер, который управляет коммутатором, конфигурацией автомобиля и прокси-запросами между стороной ethernet (cid/автопилот) и
192.168.90.102 CAN-ШИНА к контроллерам и датчикам двигателя.
Модем - это LTE-модем
192.168.90.60
Тюнер - это для AM/FM-радио. Не присутствует на более новых автомобилях модели 3, включая мои. Отсутствие AM/FM-радио действительно кажется проблемой безопасности, поэтому я был удивлен, увидев, что оно было удалено.
192.168.90.60

Внутренняя автомобильная сеть использует Marvel 88EA6321 в качестве коммутатора. Это автомобильный гигабитный коммутатор.

Большинство соединений используют 100BASE-T1, который является 2-проводным PHY для Ethernet. Компьютеры автопилота, модем, тюнер, шлюз, CID-все используют 100Base-T1. Есть два стандартных порта Ethernet. Один из них расположен на материнской плате CID и имеет стандартный разъем Ethernet. Другой расположен в пространстве для ног со стороны водителя и имеет специальный разъем.

Tcam

TCAM-это особый тип памяти, который может выполнять очень быстрые поиски/фильтры за один цикл. Это позволяет Шлюзу задавать пакетные фильтры для применения коммутатором. По умолчанию порт ethernet в пространстве для ног со стороны водителя отключен этими правилами. Диагностический разъем на материнской плате CID может получить доступ только к портам 8080 (Odin) и 22 (SSH) на CID.

Дорестовые Model S используют постоянное соединение OpenVPN для связи с “материнским кораблем”, как называет его Тесла. Все коммуникации с Tesla проходят через это VPN-соединение, так что нет никакой возможности получить файл обновлений.

Вместо использования OpenVPN M3 запускает прокси-сервис под названием Hermes. Hermes-это относительно простая служба, которая может передавать неаутентифицированные запросы по CID на материнский корабль. Предположительно, поддержание постоянных соединений OpenVPN на 500 000+ автомобилях не было масштабируемым, поэтому они переключились на более простое решение.

Бинарники

Есть куча разных двоичных файлов hermes. Все они, кажется, написаны на Go :). Приятно видеть, как мой любимый язык программирования работает в моей машине.

$ ls opt/hermes/
hermes_client*     hermes_fileupload*  hermes_historylogs*  hermes_teleforce*
hermes_eventlogs*  hermes_grablogs*    hermes_proxy*

$ file /opt/hermes/hermes_client
opt/hermes/hermes_client: sticky ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=JRZRLflVY89A6p67rwkt/nb9KmeWMLadrBGvRVujH/aJPtciQz8Xldpa7VcVy_/XzIY9KY7sZI0KdwLYOK5, stripped

Odin

Odin-это сервис python 3, работающий на каждом автомобиле. Он используется для различных действий по техническому обслуживанию автомобиля, таких как калибровка радара и камер. Если вы подключитесь к внутренней карточной сети, то сможете получить к ней доступ по адресу 192.168.90.100:8080.

Если вы попытаетесь выполнить какое-либо из действий на Odin, он просто выдаст ошибку.

Odin реализован довольно интересным способом. Есть список задач и сетей. Задачи-это действия высокого уровня, которые могут быть выполнены кем-то с определенными разрешениями.

LIB-файлы-это “сети”, которые, по-видимому, являются специфичной для домена программой языка/пользовательского интерфейса только для создания служебных задач.

Сети очень близки к JSON, но хранятся в файлах .py.

Вот отрывок из одного:

network = {
...
    "get_success": {
	"default": {"datatype": "Bool", "value": False},
	"position": {"y": 265.22259521484375, "x": 108.96072387695312},
	"variable": {"value": "success"},
	"value": {"datatype": "Bool"},
	"type": "networks.Get",
    },
    "IfThen": {
	"position": {"y": 340.1793670654297, "x": 297.02069091796875},
	"expr": {"datatype": "Bool", "connection": "get_success.value"},
	"if_true": {"connection": "exit.exit"},
	"type": "control.IfThen",
	"if_false": {"connection": "capturemetric.capture"},
    },
...
}

Kernel / Secure Boot

Я не очень много знаю об используемом Intel SOC, но он поддерживает некоторую безопасную загрузку. У меня нет возможности проверить, включен ли он, но я не удивлюсь, если это так. Если он не включен, то должна быть возможность изменить kernel, чтобы отключить dm-verity и загрузить неподписанный образ.

Updater

Все прошивки блоков подписаны Tesla. Программа обновления проверяет подпись перед обновлением, чтобы убедиться, что ничего странного не происходит. Это означает, что мы не можем использовать программу обновления для установки модифицированной прошивки.

CAN Bus

В автомобиле есть несколько шин CAN, до которых можно добраться. CAN-шина не зашифрована, поэтому мы можем извлечь из них изрядное количество внутренних данных. Было несколько проектов по реинжинирингу значений CAN.

Есть пара готовых диагностических инструментов, которые вы можете использовать для их чтения.

Сервисы и приложения

Spotify работает под управлением пользователя spotify как сервис. Похоже, нет никакого способа развернуть новые изолированные приложения в системе. Я думал, что будет что-то похожее на Android APKs для чего-то вроде Spotify, но это просто приложение Qt.

Я продолжаю разбираться, если Вы считаете пост интересным - дайте знать и я напишу продолжение.

Большое спасибо ребятам из сервиса Tesla в Москве https://teesla.ru/ за оказанную помощь в попытках собрать воедино возможные варианты самостоятельного обслуживания своего автомобиля.

Просто для справки, перевод в factory в СНГ оценивается где-то в $200, теперь Вы можете это делать бесплатно! За смену памяти на Тегре в сервисах могут попросить до $1000, но Вы во всеоружии!




Комментарии (42):

  1. Imbecile
    /#22911794 / +3

    Python — удивил. Не ожидал его увидеть внутри.

    Статья интересная, продолжайте. Больше деталей.

  2. DrMefistO
    /#22911818 / +1

    Сначала читалось нормально, а потом так, будто это автоматический перевод: нестыковки в словах, обрывки мыслей, предложений.

    • SergeyMax
      /#22911884 / +1

      Наверное потому что это и есть автоматический перевод fn.lc/post/tesla-model-3

      • MPaul
        /#22911950

        А как же

        Большое спасибо ребятам из сервиса Tesla в Москве
        ?

        • webzuweb
          /#22912070

          Мне передали часть информации и около 50 ссылок. Я выбрал самую полезную часть и перевел как смог, часть машинным способом, но смысл явно не утерян.

          Эта информация на английском в открытых источниках, но не сказать, что прямо все гуглится с первого раза.

          Мне это кажется очень интересным, думаю найдется много людей, которые хотят знать как все устроено в Тесла. В этом и сила нашего комьюнити.

          • itsoft
            /#22912524 / +3

            Только тогда это называется плагиат, вы же не пометили статью как перевод и не указали ссылку на первоисточник.

  3. PCFreeNow
    /#22911954

    Informative Article!!!

  4. webzuweb
    /#22912786
  5. progmanrus
    /#22913560

    … что Tesla model 3 это лучший электромобиль на текущий момент.

    OMG назвать кастированную до нельзя машину с самым дешевыми материалами салона, самым дешевым двигателем и батарей лучшим электромобилем?
    Автор точно запрещенные вещества не принимает?

    • webzuweb
      /#22913582

      Я же говорю, имея опыт эксплуатации Вы скорее всего поменяете свое мнение. Я адепт церкви Святого Илона, с М3 Dual motor Performance экстаз без веществ.

      • progmanrus
        /#22913722 / -2

        Ну после комфортной машины пересаживаться в M3 где просто все дышит, простите, бюджетностью… нет.
        Сравните салон SLС 300 и Model 3. Машины ± в одном ценовом диапазоне. Только у мерседеса садишься в салон и понимаешь что отделка дорогая и глаз радуется. А у M3 от бедности плакать хочется.

        PS у нас 2 недели назад открыли первый салон Теслы. И там только М3 были. Я тоже фанат электриечства и имею три электробайка и мечтаю о машине поэтому взял тестдрайв. Вобщем разочарование. Причины описал выше.
        У нас М3 стоит 3 миллиона бат — это 90000$ Model S стоит 7 миллионов — это 220000$
        За 7 миллионов можно взять Porsche 718 roadster или Jaguar F-Type и кайфа от вождения на порядок больше будет

        за 3 миллиона можно SLC купить годовалый.

        • darthmaul
          /#22913762

          Бедность исполнения — фундаментальный недостаток электромобилей. ДВС стоит недорого в производстве, в районе 7-8 килобаксов за V8 а батарея Теслы 3 13500 долларов + ещё двигатели с инверторами нужны. Чтобы электромобиль оставался в рамках одного ценового сегмента с ДВС, производитель вынужден экономить на всём. Единственное исключение — спорткары: электрическая силовая установка масштабируется линейно, а вот ДВС приходится с нуля разрабатывать и выпускать его малой серией т.к. спрос на авто с 700+сил невелик.

          • progmanrus
            /#22913814 / -1

            ок — давайте сравнивать тот же SLC 300 ( или Porsche 718 ) и Model S по качеству исполнения салона. Можно GLE 350 взять для сравнения хотя это SUV. Но он почти в два раза дешевле эски

    • Zangasta
      /#22913652 / +1

      OMG назвать кастированную до нельзя машину с самым дешевыми материалами салона, самым дешевым двигателем и батарей лучшим электромобилем?

      Конечно можно. Самый лучший автомобиль — не является самым дорогим автомобилем.
      Одним из важнейших параметров является соотношение цена-качество. При сопоставимых эксплуатационных качествах более дешевый автомобиль будет лучшим, просто потому, что он дешевле.

      • progmanrus
        /#22913728 / -1

        SLC 300 и Model 3 имеют одинаковую цену.
        качество мерседеса на порядок выше. Хотя это и не корректно сравнивать бензиновое авто с электрическим.

        • Zangasta
          /#22913774 / +2

          качество мерседеса на порядок выше.

          Не уверен. Как по мне — так качество отделки салона — не является значимой характеристикой автомобиля. Я им, простите, езжу — а не любуюсь. Поэтому наличие автопилота и интегрированной системы безопасности — мне кажется значимым преимуществом.

          • progmanrus
            /#22913804

            Начнем с того что полноценного автопилота у Теслы нет.
            А по интегрированным системам безопасности все современные машины ( начиная с определенного ценового диапазона ) отличий практически не имеют.

            • Zangasta
              /#22913828

              Начнем с того что полноценного автопилота у Теслы нет.

              А закончим тем, что сопоставимого с ним по качеству круиз котроля нет у SLC 300.

              Одно это полностью перекрывает все качество отделки салона — если сравнивать с точки зрения водителя, а не коллекционера.

              А что по системам безопасности — вероятность гибели в тесле существенно ниже, чем в мерседесе. Это означает что система безопасности всё же отличается.

              • progmanrus
                /#22913862

                опять же смотря для чего машина. SLC это кабриолет — по городу покататься и на пляж девочек свозить. На дальняк в нем не удобно — два места и багажный отсек ни самый большой. Поэтому и круиз контроль наверное в него и не стали заливать навороченный. Лично я даже и не пытался ни разу пользоваться.

                Но если мы возьмем GLE 350 или замахнемся на GLS то там совсем другой расклад.

                • wrewolf
                  /#22914500

                  А если сравнивать на дальняк, да в тесле, да по России, то вообще не в её пользу будет счёт.

                  • progmanrus
                    /#22915040 / +1

                    Тогда сравниваем Model 3 c GLC — цешка дешевле. Но качество значительно выше.
                    Model S давайте с GLS сравним. Тоже не в пользу первой по качеству и комфорту. А по ценнику Тесла дороже процентов на 30.
                    Можно даже Model S с Porsche E-Performance сравнить. Оба электрички, эска дороже порша. Но качество… Тут вообще без комментариев.

        • Kelsink
          /#22915622

          А зачем сравнивать родстер с седаном? Конкуренты скорее C класс или трешка BMW.
          В моих краях Long Range m3 стоит около 45к$. SLC 300 начинается с 50к.
          В теслу я могу посадить двух детей в автокреслах и закинуть кучу вещей в два доступных багажника.
          На данный момент владею седаном от BMW в эти же деньги. Могу сказать что салон у меня может и лучше, но также поскрипывает и вообще не блещет «премиальностью». Про салоны от мерседеса. Ну на любителя.
          Сравнивать же динамику теслы и двухлитрового турбомотора… Это просто две разные лиги.
          А про другие элктромобили. Вопрос инфрастуктуры. Может тесла где-то и хуже, но вокруг меня очень много суперчаржеров и это решает.

          • progmanrus
            /#22916466

            Конкуренты скорее C класс или трешка BMW

            У меня опыта владения BMW нет. Есть мерседес, порш и приценивался к M3. Поэтому так категорично и отозвался в комментарии про M3 и про эску.
            У нас в тайланде M3 продается по цене GLC и по цене годовалой SLC 300 поэтому и сравнил.
            Model S продается дороже и GLE и GLS и уже сопоставима в цене с Porsche 718 и Jaguar f-type

            Сравнивать же динамику теслы и двухлитрового турбомотора… Это просто две разные лиги.

            Если мы про М3 говорим то у обоих разгон до сотки за 5.5-6.0 секунд. Поэтому никакой разницы в динамике нет.
            Если берем цену Model S то за такие же деньги можно взять Porsche 718 boxter GTS 4.0 с разгоном до сотни 3,5 секунды.

            В теслу я могу посадить двух детей в автокреслах и закинуть кучу вещей в два доступных багажника.

            на мой взгляд GLE 350 тут предпочтиетльнее. Хотя он дороже M3

            • Kelsink
              /#22916500

              Зачем сравнивать машины разных классов?
              У вас есть бабки и хочется побыстрее и побохаче. Берите тайкан он валит с места, он классный внутри. Кататься будет, правда, вокруг дома. Даже по меркам Калифорнии зарядок для не Тесел довольно мало. Вернее мало, чтобы это было удобным.

              Про динамику у вас странные данные m3 long range едет (0-60 миль) за 4.2, performance за 3.1. Первая стоит ~45, вторая ~55. Новые. Не б\у.
              Седанов в данные деньги с подобными характеристиками просто нет.
              Аналогично с mY. Бешенный семейный SUV по цене GLC (в последнем багажника совсем нет).
              Машины очень интересно сбалансирована по цене\параметрам. Отличная сеть зарядок.
              В этом вся фишка. В моих краях уже куда не плюнь — тесла припаркована.

              Про model S\X ничего не скажу. Брал их на прокат. Для меня дороговато и не вижу смысла зачем.

              • progmanrus
                /#22917104

                обратите внимание — я сравниваю машины в одинаковом ценовом сегменте

                по динамике M3 на оффсайте написано от 2,3 секунды до 6,5 секунды до сотни. Очевидно, что это от комплектации зависит.
                Те М3 которые в Бангкоке в салоне стоят за почти 100 тысяч долларов 5,5с имеют разгон. С запасом хода 280км. По крайней мере так инфа гласит на стенде.
                На тестдрайве я не почуствовал прям супер разгона — мой двухлитровый SLC намного резвее.

                Model S уже за 220000$ у нас стоит и по ней у дилера написано 4,5с разгон до сотни. Запас хода 540 км. на нее не дали тестдрайв и поэтому ничего не могу сказать за ощущения во время езды. Только негативное впечатление от салона осталось.

                Естственно я их сравниваю с импортными машинами ( потому что весь импорт 330% налог ), кторые у нас продаются за такую же цену или даже дешевле.

  6. naso4ek
    /#22913908

    На второй картинке в статье ошибка, Model 3 априори не существовало с AP1. И если не ошибаюсь, все Model Y поставляются с HW3 железом автопилота.

    • webzuweb
      /#22913942

      Так на картинке и показано, что M3 все с intel

      • naso4ek
        /#22913964

        Я говорю про «Autopilot version 1», а не про процессор мультимедийной системы.

        • webzuweb
          /#22913966

          • naso4ek
            /#22913992

            Еще раз повторяю, я говорю про версию автопилота, причем здесь процессор Intel, который используется в мультимедийной системе?
            Model 3 должна быть ниже, и находится в разделе с Autopilot version 2, а не Autopilot version 1, потому что с Autopilot version 1 их априори не существовало.
            Удивляет факт того, что автор статьи даже не знает о чем он пишет :))
            image

            • webzuweb
              /#22914010

              Понял, правы.
              Не сообразил, перерисую

  7. FrolMax
    /#22914492

    сделать из теслы бетмобиль, хоть и виртуально- круто. Илон оценил бы, наверно. Статья супер, спасибо

  8. v1000
    /#22914824

    Смотрел видео про ремонт двигателей теслы, удивился, что в первой версии они электродвигатель охлаждали жидкостью, которая могла через сальники попадать внутрь, вызывая коррозию двигателя и электроники. Только в новой версии догадались залить все маслом, тем более что это один блок с редуктором, в котором и там было масло, и охлаждать через теплообменник.
    Уж если в обычных машинах были попытки заправлять двигатель и трансмиссию одинаковым маслом, на там слишком разные условия его работы были, поэтому не получилось сделать универсальную формулу, то почему сразу не догадались это сделать на электромоторе, я не понимаю. А теперь это проблема еще и на гибридных мэрсах и тойотах, у которых стоят такие агрегаты.

    • iShrimp
      /#22914980

      Как защищают обмотки двигателя от попадания стружки с редуктора? Там принудительная циркуляция с фильтром? Можно источник?

    • DMGarikk
      /#22915064

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

      p.s. сугубо imho как электрика стакивавшимся с промышленными электромашинами в прошлом… охлаждение жидкостью (любой) электромашин меня чето вообще несколько пугает… и потенциальные проблемы которые это может вызывать тоже

      • webzuweb
        /#22915296

        А почему нельзя иммерсионную жидкость использовать? Белое минеральное масло.
        С присадками температура замерзания -30. Горит, если весь объем нагреть до 300'С. Теплоемкость меньше, вязкость чуть больше. Все патрубки можно сделать масло стойкими.
        Попадание антифриза в батарею и двигатель на S очень большая проблема.

        • DMGarikk
          /#22917682

          С присадками температура замерзания -30

          Это мало, машинное масло например при -25 превращается по консистенции в густой мёд уже.

          но вообще спорить не буду, может и хорошая идея, меня концептуально жидкостное охлаждение немного пугает.
          по поводу температуры горения… обычно мощные электродвигатели если горят то горят капитально, с вытеканием расплавленной меди (температура плавления 1000+ градусов) и всякими визуальными эффектами (если это происходит в процессе работы)

  9. Sanctuary_s
    /#22915160 / +1

    Когда плашка нудная появится? Это же не оригинальная статья.

  10. Sanctuary_s
    /#22923820 / +1

    Плашку так и не поставил, мелкий воришка.