Биржа забирает 35%. Copyero — публикации напрямую без посредников.

Иногда дисплей не откликается ни на прикосновения, ни на аппаратные кнопки. Карманный «микро-центр» остаётся живым: ядра крутятся, датчики шлют телеметрию, а графический стек SurfaceFlinger молчит. Причина — залипший процесс, гонка за ресурс, редкий баг прошивки. Я выхожу из ситуации по шагам. Если нужен более широкий технический разбор того, почему смартфон иногда перестаёт слушаться, полезно посмотреть на устройство как на систему.

зависания

Причины ступора

Обычно реакция пропадает из-за ненасытного приложения, поймавшего dead-loop. Ядра тратят так ты впустую, планировщик CFS выстраивает очередь, Watchdog-таймер уже перемигивается, но перезагрузки ещё нет. Картину усугубляют:

• нагрев, поднимающий частоты ближе к троттлингу,

• битый блок eMMC, где система ждёт отклика дольше тайм-аута,

• ловушка в драйвере GPU, оставившая поток в spinlock.

В отчёте logcat такая сцена выглядит как «InputDispatcher timeout» плюс «binder: undelivered transaction».

Быстрая перезагрузка

Первое средство — жёсткий сброс. У большинства моделей — удержание Power + Volume-Down от восьми секунд до вибрации. В этот момент микроконтроллер PIC обнуляет линии питания, ядро стартует заново, данные в UFS не страдают. На старых MediaTek подойдёт Power + Volume-Up, на Samsung — «тройка» Power + Volume-Down + Home. Если клавиши не срабатывают, выдёргиваю кабель аккумулятора — крайний вариант, так как размыкается BMS-датчик и прошивка «забывает» цикла зарядов.

Экстренная чистка кэша

После перезапуска открываю инженерное меню Recovery. Вход: Power + Volume-Up до логотипа. Команда «wipe cache partition» удаляет лишь временные журналы Dalvik/ART, сохраняя фотографии и контакты. При этом NV-разделы остаются нетронутыми, FRP-метка не сбрасывается. На Google A/B-схемах аналог — «adb reboot fastboot» и «fastboot erase cache».

Глубокая диагностика

Если зависание регулярно возвращается, запускаю Systrace: «adb shell perfetto -o /sdcard/trace». Файл .c trace загружает интерфейс Perfetto UI, где видно, какой поток занял CPU, а какой ожидает sem_wait. Для анализа памяти использую «dumpsys meminfo», строка «OOM adj» выше 10 намекает на жертву грядущего убийства OOM-killer’ом. Купленный через маркет VPN порой оставляет tun-интерфейс в состоянии FIN_WAIT2 — ещё один повод кристаллизовать интерфейс.

Профилактика

• Удаляю из автозапуска всё, что разгоняет сервисы до 100 % wakelock.

• Обновляю прошивку ради свежих патчей ядра и обновлённого zRAM-алгоритма LZ4HC.

• * Слежу за температурой: при 43 °C и выше наступает flight-throttle, UI дёргается.

• Оставляю свободными 15 % флеш-тома — wear-leveling быстрее ищет чистые блоки.

• * С использованием банковских клиентов включая Selinux Enforcing, audit=1 в dmesg гарантирует отчёт об отклонённой политике, вместо молчаливой блокировки.

Когда ничего не помогает

При циклическом фризе после логотипа подключаю смартфон к ПК, запускаю «adb reboot bootloader», прошиваю оригинальный образ system.img через «fastboot flash system». Если раздел GPT повреждён, восстанавливаю его с помощью «fastboot flash partition gpt.bin». В случае гибридной платёжки eSIM не теряется: профиль хранится в eUICC, прошивка Radio его не затирает. После восстановления проверяю сенсоры через «*#0*#» или «cit». Оставшийся артефакт на экране укажет на физическую неисправность PMOLED.

Слово напоследок

Зависание напоминает ледостав: сверху ровный покров, под которым шевелится вода процессов. Моя задача — аккуратно проломить корку и вернуть течение, не разлив реку данных. При соблюдении шагов выше смартфон оживает так же уверенно, как кварцевые часы после замены батарейки.