Говнокод взрывающий смартфоны

archive view archive save

govnokod_2.jpgОпять 25-ть, снова про апгрейд и взрывоопасный говнокод. Однажды утром обнаружил, что мой андрон (андроид тобишь) находится в коме, а корпус смартфона невероятно горячий - приболел значит барановирусом наверное...

Из-за полностью разряженного аккумулятора, включить устройство не получилось - уровень заряда был = 0% ;( Хотя перед тем, как мы с андроном придремали, уровень заряда был в пределах 70% и дремали мы не долго, - примерно 3-4 часа.

Что вызвало полный разряд и перегрев аккумулятора за 3-4 часа спящего режима, было неизвестно, но телефон был очень горячий...

Думаю многие слышали о неоднократных случаях, когда у кого-то взорвался смартфон. У одного смартфон выгорел дотла будучи поставленным на зарядку, у другого смартфон разорвало прямо в руках или ещё куда хуже возле уха во время разговора.

Например:

Мобильник – бомба. Почему смартфоны могут стать опасными для их владельцев - yamal-media.ru
...
Казалось бы, юная жительница одного из поселков Заларинского района всего лишь заряжала телефон и одновременно играла на нем. Однако после взрыва ей понадобилась срочная помощь медиков.

Местные врачи прооперировали девочку, удалив из кистей куски пластика. Кроме того, у ребенка травмы на теле и голове.

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

Тогда, по информации Tengrinews.kz, 14-летняя школьница уснула с включенным на зарядку мобильником. Рано утром аккумуляторная батарея смартфона взорвалась, а девочка получила травмы, несовместимые с жизнью.

  1. Почему взрываются смартфоны
  2. Взрывной говнокод
  3. Explosion by demand via Rething & Tor
  4. org.mozilla.fennec_fdroid
  5. Как не подорваться на смартфоне
    1. Используйте оригинальную зарядку
    2. Полностью выключайте смартфон перед зарядкой
    3. Что делать
  6. Эпилог

Почему взрываются смартфоны

Так почему же взрываются смартфоны?

Давайте спросим у наших «экспертов» и «специалистов», - щас они нам всё расскажут:

В результате, по-словам «экспертов» и «специалистов», а также согласно обзора от ИИ, - основные причины взрыва смартфона:

  1. Неисправности аккумулятора;
  2. Длительное воздействие высоких температур, включая прямые солнечные лучи или зарядку в жарких условиях;
  3. Физические повреждения, удары или сильные изгибы могут повредить внутренние компоненты, в том числе аккумулятор, что может привести к взрыву;
  4. Поддельные или некачественные батареи. Перезарядка смартфона может привести к чрезмерному нагреву батареи и в конечном итоге к взрыву;
  5. Производственные дефекты, несмотря на контроль качества;
  6. Не протёртый экран смартфона и прочая...

Однако, у нас на данную проблему сформировалась совсем иная точка зрения...

Взрывной говнокод

govnokod_6.jpg

Они смотрят, но не видят. Слушают,но не слышат.., - и тут сразу вспоминается Герман:) ...а всё потому, что жрут отраву...

Бывает читаешь говнокод и глазюки на лоб лезут.., и думаешь: за такое нужно руки выдёргивать, а им награды вручают!

Говно-код - это такая конструкция (сооружение, организация), примерно как пятая колона, являющаяся частью программы/приложения и работающая на разрушение выполняющего её устройства изнутри. Говно-код обычно состоит из избыточного, а иногда и наоборот недостающего кода, что почти всегда приводит к деструктивным последствиям иногда с летальным исходом.

Больше говнокода на сайте govnokod.ru

Итак, по уже многолетней традиции, на бортовой панели среди прочих датчиков, у нас всегда есть кардиограмма центрального процессора (ака диспетчер задач) - в андроиде это вполне может быть CPU Stats, и как только его показания залипают на максимально допустимых, тогда запускаем top и начинаем копать ширше и глубже.

Когда начали копать, то обнаружили аномальную активность многими используемой программы orbot, а точнее процесса org.torproject.android являющегося составной частью тор-сервера.

Orbot была установлена и регулярно обновлялась с F-Droid, на момент обнаружения проблемы была уже глючная версия v17.5.0-rc-1-tor-0.4.8.16.

Explosion by demand via Rething & Tor

Разрыв смартфона с выносом мозгов по-требованию...

У программы Орбот в настройках есть то ли фича, то ли бага, - называется Разрешить фоновую загрузку: Позволить любому приложению требовать от Orbot запускать Tor и относящиеся к нему службы.

Так вот, когда Orbot с включенной фичей Разрешить фоновую загрузку используется в тандеме с RethinkDNS, а в настройках Rethink - Прокси - Настройка Orbot (в одно нажатие) выбрано Прокси-сервер только для ТСР, то -

  • Когда нет подключения к сети, начинается активная движуха RethinkDNS и по его запросу Orbot (Позволить любому приложению требовать от Orbot запускать Tor и относящиеся к нему службы.);
  • RethinkDNS постоянно клянчит от Orbot запуска Tor;
  • Tor в конечном итоге сходит с ума, возможно в результате запуска по-требованию многочисленных потоков процесса, начинает грызть ЦП и поджаривать аккумулятор.

Такое поведение, на момент написания статьи, замечено в версиях

TOR сервис (org.torproject.android) входит в состав многих программ, среди которых браузеры, брандмауэры, сетевые шлюзы / комплексы типа InviZible / Rethink.

InviZible, например, кроме TOR включает в себя ещё DNSCrypt и I2P, что якобы должно обеспечивать юзеру некую безопасность, - якобы...

Однако, на практике от таких программных тандемов вместо пользы может быть намного больше вреда - вплоть до разрыва мозга и/или отрыва конечностей в прямом смысле этого слова!

Проблема с процессом org.torproject.android примерно такая:

  1. Проблема особо ярко выражена ПОСЛЕ ОБНОВЛЕНИЯ в версии orbot v17.5.0-rc-1-tor-0.4.8.16;
  2. При сбоях в wifi подключении, org.torproject.android может зависнуть и начать грызть все имеющиеся в наличии ядра центрального процессора, - если ядер 8, то НАГРУЗКА НА ЦП будет под 700-800%;
  3. Зависнуть org.torproject.android может ещё сразу и после загрузки/перезагрузки, когда никакой wifi сети ещё не подключалось;
  4. Кнопками Выкл (Отключить) и Выход, процесс org.torproject.android НЕ ОСТАНОВИТЬ;
  5. Убить org.torproject.android можно только от пользователя root выполнив команду kill -9 PID;

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

org.mozilla.fennec_fdroid

Похожие проблемы наблюдались с процессами веб-браузера org.mozilla.fennec_fdroid:tabxx - где tabxx это ИД открытой в браузере вкладки.

В данном случае обычно виноват говно-кодер говно-сайта, который любит пихать невпихуемое, например:

  • почти никому накуй ненужная анимация типа падающих снежинок и т.п., которая выжирает приличную долю ресурсов ЦП;
  • «мега-навороченные» анимированные баннеры-шманеры и прочие аномально-активные медиа-элементы;
  • засранная ХТМЛ-разметка, лишний яваскрпт-код (ака фреймворки) и хрен знает что ещё...

По-этому, за активность процессов браузера тоже нужно следить!

Как не подорваться на смартфоне

Поочерёдно проанализируем все рекомендации, которыми засран интернет и в итоге попробуем сделать сводку объективных выводов по-данной проблеме.

Используйте оригинальную зарядку

Ага, обязательно используйте оригинальную зарядку, но с условием, - ВКЛЮЧАЙТЕ МОЗГИ СНАЧАЛА!

Не все оригинальные зарядки одинаково полезны.

На одном гаджете (рекламу делать не будем), куплено с рук у производителя, от оригинальной зарядки 2А ОЩУТИМО ГРЕЕТСЯ батарея с заявленной ёмкостью 5000 mAh (китайцы любят шутить), но по-факту ёмкость около 3500 mAh.

Время полной зарядки (2 часа) при этом не особо отличается от времени (3 часа) при зарядке от зарядного устройства 0,5А (считай от USB порта компьютера), - АККУМУЛЯТОР НЕ ПЕРЕГРЕВАЕТСЯ сохраняя нормальную комнатную температуру!

Как видим, - БОЛЬШЕ, НЕ ОЗНАЧАЕТ ЛУЧШЕ!

Справедливости ради отметим, что другие модели смартфонов с аккумуляторами разной ёмкости существенно ниже и выше 3500 mAh, от зарядного устройства 2А зарядку принимают одинаково с ощутимым нагревом даже при полностью отключенном телефоне, - это значит, что зарядное устройство и его мощность должно соответствовать качеству (особенностям, мощности) самого аккумулятора и/или его управляющего контроллера независимо от "оригинальности".

Тобишь, для долгосрочной щадящей зарядки аккумулятора (на ночь например) вполне достаточно зарядного устройства мощностью 0,5-1А, а для кратковременной и быстрой подзарядки (в дороге например) можно использовать зарядное устройство мощностью 2А.

Полностью выключайте смартфон перед зарядкой

Рекомендация в теории верная, но на практике мало выполнимая, - сами понимаете по каким таким причинам.

Кроме того, проблема взрывного говнокода в корне не решается!

Что делать

Сымитируем ситуацию:

  1. Отключаешься ты от вай-вая и ставишь смартфон на моцную (2 А) зарядку возле кровати у изголовья;
  2. В это время org.torproject.android глючит и начинает сношать все 8 ядер ЦП твоего смартфона;
  3. Нагрузка на ЦП максимальная - 800%, аккумулятор бешенными темпами отдаёт заряд от чего его температура стремительно повышается;
  4. В это самое время идёт активная мощная зарядка, от чего температура аккумулятора поднимается ещё больше;
  5. Подобно перетягиванию каната, если тянущие стороны сильнее каната, от одновременного сильной разрядки-зарядки содержимое батареи смартфона может закипеть с выходом наружу;
  6. Вероятный результат вполне предсказуем, взрыв смартфона с выносом мозга и/или отрывом конечностей.

Из вышеизложенного, согласно по-нашему субъективному мнению-суждению, можно сделать выводы о том, что основной причиной почему взрываются смартфоны является:

  1. Среди подозреваемых лидирует взрывной говнокод (shit code), который пишут террористы говно-кодеры (shit coders);
  2. На втором месте слабые (некачественные) аккумуляторы с некачественными контроллерами;
  3. Слишком мощные (ака фаст чаржинг) зарядные устройства завершают список.

На вопрос Как не подорваться на смартфоне?, ответ очевиден, -

  1. Устанавливайте по-меньше говно-кода в свой смартфон и будете живы-здоровы - это главное! Например, прожорливого троглодита Rethink (если нужна только фильтрация ДНС) можно заменить великолепной программой personalDNSfilter - f-droid которая весит всего 700 КБ, но своё предназначение отрабатывает на все 1000%!
  2. Не разрешайте процессам (О приложении -> Батарея) работать Без ограничений, всегда устанавливайте С оптимизацией или Ограничено, - лучше пусть закроется программа, чем вылетят мозги на стену;
  3. Следите за нагрузкой на CPU (CPU Stats for android), а чтобы иметь больше информации смартфон должен быть рутирован;
  4. Используйте зарядные устройства меньшей мощности, особенно когда оставляете заряжаться на ночь, 0,5А вполне будет достаточно;
  5. Старайтесь избегать активного использования смартфона в процессе его зарядки, а в идеале он должен быть полностью отключен;
  6. Не спешите с обновлениями своих устройств.

Эпилог

govnokod_1.jpg

Под занавес, пара тематических ссылок о говнокоде:

orbot is draining battery even when not working. · Issue #297 · guardianproject/orbot-android

@itmagpro
on Aug 16, 2025

    @syphyr
    The apk doubled in size after the minSdk was changed to 24 in tor-android and Orbot.

I that and guessed... :) But for what I need minSdk in apk when Sdk included in android?!
Any way, with EACH DAY SHIT CODE GROWING IN MANY SOFTWARE AND I NOT SEE ANY PROFIT FROM GROWING CPU/RAM CAPACITY ON DEVICES - when him eat huge shit code ROGUE BUGY SOFTWARE!!!


Комментарии в блоге
Новое на форуме