
Многие считают Android-устройства, особенно бюджетные модели, устаревшими и бесполезными спустя 5-10 лет после выпуска. Часто их отправляют на свалку, пополняя ряды электронных отходов. Однако находчивые энтузиасты находят старым смартфонам и планшетам новое применение, превращая их в полезные инструменты. Одна из распространенных задач — заставить устройство автоматически включаться при подключении к источнику питания, что особенно актуально, если физическая кнопка питания неисправна или недоступна. В этой статье мы подробно разберем методы реализации автозапуска на различных чипсетах, от простых перемычек до глубокого реверс-инжиниринга загрузчика.
Зачем это нужно? Сценарии использования старых Android-устройств
Прежде чем перейти к технической части, стоит понять, почему старые гаджеты могут быть полезны. Их возможности выходят далеко за рамки роли простых часов или медиаплеера. Вот несколько практических примеров:
Панель управления (HMI): Планшет с большим экраном может стать интеллектуальным дисплеем для управления умным домом, промышленным оборудованием или автомобильными системами. Преимущество перед специализированными HMI-панелями — мощная графическая составляющая, поддержка анимации и 3D-визуализаций.
Сбор и обработка данных: Встроенная память eMMC в планшетах зачастую надежнее и долговечнее, чем карты MicroSD в микроконтроллерах. Устройство может выступать в роли логирующего сервера, собирая информацию с датчиков, обрабатывая её и отправляя в облако.
Шлюз для связи: Многие планшеты имеют доступные UART-порты на плате, что позволяет использовать их как мост для общения между микроконтроллерами и сетью, или даже программировать МК напрямую через Java-приложение.
Нестандартные проекты: Ограничений почти нет — от создания ретро-игровой консоли до специализированного контроллера для умного дома.
Таким образом, старые устройства могут получить вторую жизнь в качестве недорогих, но функциональных компонентов различных систем. Однако для автономной работы часто требуется решить задачу автоматического включения при подаче питания.
Проблема автозапуска и базовые подходы
Простейший способ — подать питание напрямую на контакты аккумулятора (VBat), используя DC-DC преобразователь на ~4.2В. Но ключевая сложность — заставить систему загрузиться, а не уйти в режим зарядки. Реализация сильно зависит от чипсета и схемы кнопки питания.

На некоторых устройствах (например, старых Sony с Qualcomm) достаточно просто замкнуть контакты кнопки питания перемычкой. Однако на многих других, особенно на MediaTek, удержание контакта в замкнутом состоянии приводит к циклической перезагрузке каждые несколько секунд. Именно такой случай и стал отправной точкой для более глубокого исследования.

В качестве примера рассматривается китайский клон iPhone 7 Plus на Android с неработающей кнопкой питания. После решения проблем с зарядкой (оказалось, дело было в неоригинальном кабеле) встал вопрос о реализации автозапуска. Простая перемычка на контактах кнопки привела к постоянным перезагрузкам, поэтому был выбран путь модификации загрузчика.




Цель — заставить устройство думать, что кнопка питания нажата в момент подключения зарядки, и запускать обычную загрузку системы, а не показывать анимацию батареи.

Метод 1: Реверс-инжиниринг и патчинг загрузчика (для MediaTek)
На устройствах MediaTek загрузка происходит в два этапа: Preloader и lk (Little Kernel). Нас интересует второй этап — lk, который отвечает за инициализацию дисплея и загрузку ядра Linux. Именно в нём происходит проверка состояния кнопки питания перед показом экрана зарядки.
Алгоритм действий:
- С помощью SP Flash Tool снимаем образ загрузчика (lk) с устройства.
- Открываем его в дизассемблере IDA Pro. Загрузчик загружается по адресу 0x0, что упрощает анализ.
- Ищем в строках отладочные сообщения, например,
"[%s] PowerKey Pressed in Kernel Charging Mode Before Jump to Kernel, Reboot Os". IDA Pro покажет все обращения к этой строке.

4. Находим условный переход (инструкция BNE), который выполняется, если кнопка НЕ нажата (значение в регистре R0 равно 0), и уводит выполнение в режим зарядки.

5. Меняем эту инструкцию на NOP (No Operation — пустая операция) с помощью шестнадцатеричного редактора в той же IDA. Это заставляет загрузчик всегда вести себя так, будто кнопка нажата.

6. Прошиваем модифицированный загрузчик обратно на устройство.

После этого устройство при подключении питания будет сразу загружаться в обычном режиме, имитируя нажатие кнопки.
Метод 2: Модификация boot.img (универсальный подход)
Если патчинг загрузчика невозможен (например, из-за блокировки), можно изменить образ загрузочного раздела (boot.img). Он содержит ядро Linux и ramdisk со скриптами инициализации (файлы *.rc). Даже в режиме зарядки система загружает ядро и запускает начальные процессы.
Конкретная реализация зависит от производителя. Например, на старых смартфонах Sony Ericsson в скрипте init.rc запускается утилита /system/bin/chargemon, которая отвечает за анимацию зарядки и ожидание нажатия кнопки. Достаточно закомментировать строку её запуска в ramdisk, и система продолжит загрузку.
Для устройств на MediaTek можно аналогично патчить init.rc внутри boot.img, убирая проверки, связанные с режимом зарядки. Этот метод требует распаковки boot.img, редактирования ramdisk и последующей сборки образа.
Итоги и заключение
Реализация автозапуска на старом Android-устройстве — вполне решаемая задача. Выбор метода зависит от конкретной аппаратной платформы и уровня доступа:
- Простой способ: Замыкание контактов кнопки питания (работает на некоторых Qualcomm).
- Продвинутый способ: Реверс-инжиниринг и патчинг загрузчика lk (эффективно для MediaTek).
- Альтернативный способ: Модификация скриптов в boot.img (более универсален, но требует работы с образами).

Эти techniques открывают широкие возможности для вдохновения в жизнь старых гаджетов, превращая их в автономные информационные панели, серверы сбора данных или элементы умного дома. Экспериментируйте, но помните о рисках: всегда имейте резервную копию оригинальных образов.
Надеемся, материал был полезен. Делитесь своим опытом в комментариях! Если у вас завалялись старые «китайские» устройства, которым вы не можете найти применение, возможно, они обретут новую жизнь в руках энтузиастов.
Всего голосов: Всего голосов: Статья написана при поддержке Time Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!
Больше интересных статей здесь: Гаджеты.
Источник статьи: Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому.