Меню

Автоматическое включение android при подаче питания



Автоматическое включение android при подаче питания

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

Итак, суть вопроса: включить (полная загрузка) планшет/смартфон в момент подачи зарядного тока, и отключение при отключении от зарядки (важно для встроенных планшетов).


Немного теории.
Когда вы подключаете выключенный планшет/смартфон к ЗУ, происходят следующие события: просыпается процессор; происходит инициализация бутлоадера; происходит начало загрузки init; стартует главный стартовый скрипт /init.rc; в init.rc есть секция on charger, в которой прописаны нужные действия и запуск системного процесса, который и отвечает за отображение батарейки с процентами, которую мы и видим на экране.
Итак, как мы видим, происходит частичная загрузка системы. Процесс в секции on charger всегда указывает на какой-то исполняемый файл (бинарник) лежащий где-то в системе. Выглядит примерно это так:
В init.rc объявлен сервис типа charger: service charger /system/bin/charger

То есть, порядок действий такой: смотрим секцию on charger в init.rc, видим там что-то типа start charger или что-то другое, типа class_start charger, могут быть и другие варианты; потом, по имени сервиса, находим в том же init.rc сам сервис service charger /. и смотрим на какой бинарник он указывает.
Нужно иметь в виду, что нужный сервис может быть объявлен не в init.rc, а в любом другом init.****.rc на вашем устройстве, придется пересмотреть все. Иногда существует даже отдельный скрипт init.charge.rc.

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

Сохраняем и присваиваем ему права 755. Все. Аппарат будет включатся и ребутится в андроид сразу после подачи напряжения.

Тут еще можно добавить секцию, в которой можно описать автозапуск каких либо программ по умолчанию в авто. Хотелось бы узнать каких? И по какому условию (как определить, что ваш аппарат находится именно в машине, вариантом может быть подключение какого-то оборудования, ГПС например, или запуск какой-то программы, любые другие события, придумайте), попробую реализовать?

Тут есть несколько вариантов реализации, к примеру можно в своем бут включить поддержку скриптов init.d, добавив в конце init.rc (надо разбирать свой boot.img. Как это делать — смотрите на 4pda.ru в теме своего устройства, или обратитесь к РОМоделам. Часто эта функция уже присутствует в большинстве кастомных РОМов.) такие строки:

а в файл defaul.prop или /system/build.prop в самом низу дописать строку sys.initd=1
Аналогичным init.d образом работает папка со скриптами /system/su.d, если у вас рут на основе SuperSu. Тогда бут разбирать не надо.
В любом случае, в системе должен быть установлен busybox, иначе скрипты работать НЕ БУДУТ!

Итак, init.d, busybox у нас есть. Создаем скрипт с таким содержимым:

Помещаем его в папку /system/init.d или /system/su.d с любым названием и присваиваем ему права 755. Нужно помнить, что скрипту не нужно присваивать никакое расширение имени файла, в том числе и sh. Не выполняются в init.d скрипты, имеющие расширение имени файла. После перезагрузки, планшет будет выключаться автоматически, при пропадании напряжения зарядки. Скрипт безусловен, работает по умолчанию.

Ниже рассмотрим примеры условного выключения, и варианты самих условий. Хотелось бы от Вас услышать возможные условия автоматического выключения, например по наличию подключенной EasyCAP, DAC и тому подобное. Как Вы считаете нужным идентифицировать наличия подключения к машине, соответственно важность автоматического выключения? Жду советов, по возможности, попробую реализовать условия.

Источник

Автоматическое включение Android телефона при подключении зарядки

Всем доброго времени суток. Есть телефон, из которого я хотел бы сделать видео-регистратор для моего автомобиля. Програмку то написал, которая будет видео записывать, сохранять и т.д. Но как сделать так, чтобы телефон включался при подключении USB-зарядки, провод которой вставлен в розетку 220B?

ROOT доступ полный. Модель телефона — ZTE Blade Q Lux 3G PRO . Android 4.4.2.

В интернете читал статьи как это сделать на телефонах Samsung . Как сказано тут в одном из ответов, необходимо изменить содержимое файлов /system/bin/playlpm или /system/bin/lpm , но ни того, ни другого файла в моём телефоне не существует. Насколько я понял принцип, надо найти файл, который запускает анимацию батарейки

Читайте также:  Раздельное питание помидоры со сметаной

и добавить строчки включения системы:

Пробовал менять всё содержимое на эти строки в следующих файлах:

  • /system/bin/bootanimation
  • /system/bin/ipod
  • /system/bin/chcon

Безрезультатно. Может какие-то другие файлы надо изменить? Или вообще в другой папке копаться надо? Подскажите.

Когда попробовал проделать такой трюк с файлом /system/bin/chcon у меня перестала работать кнопка отключения дисплея. То есть, короче, как я включил телефон, так дисплей и работает, не отключается и не реагирует на кнопку выключения. Только после восстановления прежнего файла всё стало нормально после перезагрузки телефона. Так что делаю вывод, что автоматическое включение реализовать возможно. Каждый системный файл действительно запускает скрипты, каждый свой, и отвечает каждый сам за себя. Необходимо лишь понять где нужный файл анимации заряда батареи телефона и где в нём именно надо вписать команду включения.

Ответы (2 шт):

Если я правильно помню, такая фишка зависит от загрузчика, типа TWRP. Но в старых версиях при подключении usb-зарядки, загрузка начинается и заканчивается только на самом загрузчике. Чтобы запустить далее андройд, нужно вручную выбрать пункт system reboot. Покопайте в этом направлении.

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

  • Скачать и установить на компьютер программу Adb Run. Она необходима для установки соединения с телефоном по USB-проводу.
  • Скачать и установить на компьютер программу Bootimg. Она необходима для редактирования файла boot.img прошивки телефона. Патч программы должен быть C:\Users\Admin\ .

Скачать прошивку (ZIP-архив) на компьютер. Из архива достать файл boot.img и положить в папку с программой Bootimg. Открыть системную консоль (Меню пуск -> cmd). Ввести следующую команду:

Открыть создавшуюся папку initrd , найти в ней файлы init.rc и init.charging.rc . Открыть их. В каждом из них находим строки:

и после них ниже пишем:

Сохраняем и закрываем оба файла. Возвращаемся в консоль. Пишем следующую команду:

Запускаем программу Adb Run. По умолчанию она устанавливается в C:\adb\ . Выбираем пункт 5, затем 0. Телефон должен войти в режим Fastboot. Затем выбираем пункт 1, и затем 1. В консоли должны отобразится как минимум две строки:

Если вы видите только это:

то у Вас могут быть следующие ошибки:

  • Не включена отладка USB в режиме разработчика
  • Некорректно подключён USB-провод или, возможно, повреждён
  • В диспетчере устройств (Правой кнопкой мыши по ярлыку «Мой компьютер»; Свойства; Диспетчер устройств) телефон отображается как неизвестное устройство, например, как на скриншоте здесь

Затем выбираем пункт 5, затем 0. Ждём, когда на экране телефона появится надпись FASTBOOT mode.. или что-то наподобие. Выбираем пункт 7, затем 1, и затем пишем:

Ждём, когда в консоли появится надпись Done. в конце в случае успешной установки boot.img . Затем опять пишем в консоли:

Закрываем программу Adb Run (консоль). Отключаем телефон от компьютера. После загрузки телефона выключаем его. Подключаем телефон к зарядке 220В, и, в течение 10 секунд телефон сам включится. На этом всё готово.

Если у Вас произошли какие-то ошибки или что-то пошло не так, я прошу написать в комментариях. Буду рад помочь!

Я хочу ещё дать людям совет: Если с первой попытки выполнить процедуру не получилось по какой-либо причине, попробуйте ещё несколько раз внимательно выполнить все выше перечисленные действия.

Если версия Android — 4.4 и выше, то могут возникнуть ошибки и, возможно, ничего не получится. Как мне, например, ответила поддержка корпорации ZTE на вопрос «возможно ли хоть как-то реализовать автовключение телефона при. » мне ответили, что видите ли на данном лаунчере такая функция недоступна. И я понял, что решить проблему можно лишь откатом версии Android с 4.4 на 4.2.

Источник

Автоматическое включение Android, при подключении usb кабеля.

Здравствуйте. Мне необходимо было реализовать автоматическое включение устройства на ОС Андройд B-бренда (не самсунг и другие гиганты). Решение для Android 4.2 было топорным: в бинарный файл /system/bin/ipod я просто добавил строчку

В андроиде 4.4.х selinux привинтили и может стоит порыть в эту сторону?

К сожалению, я даже примерно не знаю копать относительно selinux. Но я вижу следующее решение проблемы. Есть такой файл: init.charing.rc Как видно он инициализируется при загрузке системы, а также по триггеру on ipo, вызывает демона быстрой загрузки /system/bin/ipod Т.е. достаточно изменить/дописать reboot, и я добьюсь нужного результата. Вопрос в том, что как и все init.rc он грузится с ramdisk’a. Подскажите или дайте, пожалуйста, ссылку на руководство, как изменить boot.img, ramdisk, init.*.rc Я искал в этих интернетах, к сожалению внятного не нашел. Можно ли делать такие операции (редактирование RAMDISK) из под винды (сейчас скачиваю Cygwin)?

Утилку по разборке/сборке дампа boot.img звать split_bootimg.pl. Легко нагугливается. Удачи как бы.

split_bootimg.pl это перловый скрипт, для потрошения рамдиска присутствия перловки недостаточно. Ссылку на мануал не прилепил, там даже с картинками и более другая утилита.
http://www.imajeenyus.com/computer/20130301_android_tablet/android/unpack_rep.

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

Тогда я воспользовался Android kitchen. Может и ТСу поможет.

Прошу вашей помощи

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

Будет, не лень, погляжу в ноуте, у меня там все автоматом разбирает/собирает boot.img. Усилия мысли минимальное. ТС, только боюсь тебе эта утиль не пойдет, она линуксовая.

http://www.fayloobmennik.net/4320753
По ссылке тулза, указываешь boot.img выхлом, каталог boot.765 в нем рамдиск и ядро. После глумления этими штуками вкармливаешь скрипту путь до каталога с распакованным, оно пакует обратно в boot.765.img.

P.S. Пока писал, вспомни под оффтопик есть uberizer — могучая тулузень по потрошению прошивок. Ну если верить отзвам.

Ну как успехи?

Третий день с этим делом бодаюсь уже, тоже ничего толкового сделать не могу. Есть еще кстати такой нюанс, когда запускаешь этот файл вручную он пишет(у меня по крайней мере) следующее: root@PMT5008_3G:/system/bin #

./ipod could not open /data/misc/ipod_save_log, No such file or directory Broadcasting: Intent < act=android.intent.action.ACTION_BLANK_IPO >Broadcast completed: result=0

И этот intent вызывается, когда устройство включено. Я написал программу которая просто вешается на него, и запускает reboot через системный вызов exec. Когда устройство включено, после запуска /system/bin/ipod устройство замечательно перезапускается. Но при выключенном устройстве и подключении зарядки все так же ничего не происходит. Пробовал на все возможные навеситься intent-ы связанные с питанием ничего не вызывается когда устройство выключено. Я пробовал делать совсем уже непотребные вещи типа cp reboot ipod, но это так же, только ломает анимацию и накого ребута не происходит. Пробовал найти другие файлы, в init.charge.rc написано что вызывается update_boot_logo, я его заменил на свой. Действительно, вызывается, но только не при подключении питания а при загрузке системы. Чувак, если у тебя что-то получилось, отпишись пожалуйста!

Перешарил весь инет единственное дельное что нашел — «В поисках решения проблемы автоматического включения android р подключении зарядки, нашел для себя выход: в файл /system/bin/ipod добавляю строчку /system/bin/reboot На android 4.2 — все работало замечательно. Сейчас перешел на 4.4 Kitkat, данный фокус не прокатил. Подскажите, в чем может быть проблема и как добиться конечной цели: включить телефон при подключении к зарядке?». Проверить свой планшет на андройде 4.2 не успел, так как перепрошил его на 4.4, но день убил и нашел решение. Мой планшет iconbit SKY 3G QUAD NT-3704S v4.2.2 прошил fw_SKY_3G_QUAD_NT-3708S_v4.4_(15.07.2014).zip , рутанул его, пошарил по системным файлам нашел poweroff_charging как я понял он при зарядке запускает картинку с зарядкой батареи и не дает включатся планшету. единственная проблема — при зарядке планшет выключить не получится, он включится заново.

Включение андройда при зарядке: Аndroid 4.2 вносим изменения в файл /system/bin/ipod добавляю строчку /system/bin/reboot(сам не проверял, но чувак пишет что работает); Аndroid 4.4 Kitkat, переменовыем файл /system/bin/poweroff_charging, чтобы он не использовался(проверено); Выключение андройда при отключении зарядки: организовал через программу trigger и приложение «Выключение», при отключении зарядки запуск приложения «выключения».

Аndroid 4.4 charging

У кого нибудь, получилось разобраться на Android 4.4, с включением при зарядке? нашел только фаил charging, ну если его открываешь там ничего не понятно и куда добавить reboot непонятно.

Источник

Автоматическое включение Android телефона при подключении зарядки

Всем доброго времени суток. Есть телефон, из которого я хотел бы сделать видео-регистратор для моего автомобиля. Програмку то написал, которая будет видео записывать, сохранять и т.д. Но как сделать так, чтобы телефон включался при подключении USB-зарядки, провод которой вставлен в розетку 220B?

ROOT доступ полный. Модель телефона — ZTE Blade Q Lux 3G PRO . Android 4.4.2.

В интернете читал статьи как это сделать на телефонах Samsung . Как сказано тут в одном из ответов, необходимо изменить содержимое файлов /system/bin/playlpm или /system/bin/lpm , но ни того, ни другого файла в моём телефоне не существует. Насколько я понял принцип, надо найти файл, который запускает анимацию батарейки

и добавить строчки включения системы:

Пробовал менять всё содержимое на эти строки в следующих файлах:

  • /system/bin/bootanimation
  • /system/bin/ipod
  • /system/bin/chcon

Безрезультатно. Может какие-то другие файлы надо изменить? Или вообще в другой папке копаться надо? Подскажите.

Когда попробовал проделать такой трюк с файлом /system/bin/chcon у меня перестала работать кнопка отключения дисплея. То есть, короче, как я включил телефон, так дисплей и работает, не отключается и не реагирует на кнопку выключения. Только после восстановления прежнего файла всё стало нормально после перезагрузки телефона. Так что делаю вывод, что автоматическое включение реализовать возможно. Каждый системный файл действительно запускает скрипты, каждый свой, и отвечает каждый сам за себя. Необходимо лишь понять где нужный файл анимации заряда батареи телефона и где в нём именно надо вписать команду включения.

2 ответа 2

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

  • Скачать и установить на компьютер программу Adb Run. Она необходима для установки соединения с телефоном по USB-проводу.
  • Скачать и установить на компьютер программу Bootimg. Она необходима для редактирования файла boot.img прошивки телефона. Патч программы должен быть C:\Users\Admin\ .

Скачать прошивку (ZIP-архив) на компьютер. Из архива достать файл boot.img и положить в папку с программой Bootimg. Открыть системную консоль (Меню пуск -> cmd). Ввести следующую команду:

Открыть создавшуюся папку initrd , найти в ней файлы init.rc и init.charging.rc . Открыть их. В каждом из них находим строки:

и после них ниже пишем:

Сохраняем и закрываем оба файла. Возвращаемся в консоль. Пишем следующую команду:

Запускаем программу Adb Run. По умолчанию она устанавливается в C:\adb\ . Выбираем пункт 5, затем 0. Телефон должен войти в режим Fastboot. Затем выбираем пункт 1, и затем 1. В консоли должны отобразится как минимум две строки:

Если вы видите только это:

то у Вас могут быть следующие ошибки:

  • Не включена отладка USB в режиме разработчика
  • Некорректно подключён USB-провод или, возможно, повреждён
  • В диспетчере устройств (Правой кнопкой мыши по ярлыку «Мой компьютер»; Свойства; Диспетчер устройств) телефон отображается как неизвестное устройство, например, как на скриншоте здесь

Затем выбираем пункт 5, затем 0. Ждём, когда на экране телефона появится надпись FASTBOOT mode.. или что-то наподобие. Выбираем пункт 7, затем 1, и затем пишем:

Ждём, когда в консоли появится надпись Done. в конце в случае успешной установки boot.img . Затем опять пишем в консоли:

Закрываем программу Adb Run (консоль). Отключаем телефон от компьютера. После загрузки телефона выключаем его. Подключаем телефон к зарядке 220В, и, в течение 10 секунд телефон сам включится. На этом всё готово.

Если у Вас произошли какие-то ошибки или что-то пошло не так, я прошу написать в комментариях. Буду рад помочь!

Я хочу ещё дать людям совет: Если с первой попытки выполнить процедуру не получилось по какой-либо причине, попробуйте ещё несколько раз внимательно выполнить все выше перечисленные действия.

Если версия Android — 4.4 и выше, то могут возникнуть ошибки и, возможно, ничего не получится. Как мне, например, ответила поддержка корпорации ZTE на вопрос «возможно ли хоть как-то реализовать автовключение телефона при. » мне ответили, что видите ли на данном лаунчере такая функция недоступна. И я понял, что решить проблему можно лишь откатом версии Android с 4.4 на 4.2.

Источник