Включение планшета при подаче питания
Сразу оговорюсь: первая часть (автовключение) темы не относится к андроидбоксам, на них, в виду отсутствия батареи, автовключение можно реализовать только аппаратно, или покупать такой, который включается при подаче питания.
Итак, суть вопроса: включить (полная загрузка) планшет/смартфон в момент подачи зарядного тока, и отключение при отключении от зарядки (важно для встроенных планшетов).
Немного теории.
Когда вы подключаете выключенный планшет/смартфон к ЗУ, происходят следующие события: просыпается процессор; происходит инициализация бутлоадера; происходит начало загрузки init; стартует главный стартовый скрипт /init.rc; в init.rc есть секция on charger, в которой прописаны нужные действия и запуск системного процесса, который и отвечает за отображение батарейки с процентами, которую мы и видим на экране.
Итак, как мы видим, происходит частичная загрузка системы. Процесс в секции on charger всегда указывает на какой-то исполняемый файл (бинарник) лежащий где-то в системе. Выглядит примерно это так:
В init.rc объявлен сервис типа charger: service charger /system/bin/charger
Ок. Бинарник мы нашли, переименовать во что-то другое, а под его именем создаем скрипт (без расширений, в точности как назывался сам бинарник) с таким содержимым:
Сохраняем и присваиваем ему права 755. Все. Аппарат будет включатся и ребутится в андроид сразу после подачи напряжения.
Тут еще можно добавить секцию, в которой можно описать автозапуск каких либо программ по умолчанию в авто. Хотелось бы узнать каких? И по какому условию (как определить, что ваш аппарат находится именно в машине, вариантом может быть подключение какого-то оборудования, ГПС например, или запуск какой-то программы, любые другие события, придумайте), попробую реализовать?
а в файл 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 и тому подобное. Как Вы считаете нужным идентифицировать наличия подключения к машине, соответственно важность автоматического выключения? Жду советов, по возможности, попробую реализовать условия.
и еще страшновато, если внесу изменения и оно ошибочное(как подстраховаться) может есть спец проги тестирования, ИЛИ просто поможет СБРОС К ЗАВОДСКИМ НАСТРОЙКАМ.
Есть "спец проги" для бэкапа и последующего восстановления. И они вам очень скоро понадобятся, как я полагаю, потому что
Для начала идите в тему своего девайса и узнайте, как, в случае чего, восстанавливать аппарат.
P.S. А для включения по подаче питания, варианты такие:
1) емнип, можно собрать новое ядро, что совсем не тривиальная задача.
2) девайсы на процессоре RockChip (RK3066, RK3188. ) включаются так "из коробки".
3) реле, которое "нажмёт кнопку" при подаче питания.
Спасибо за ответ.
можно поподробнее: 2) девайсы на процессоре RockChip (RK3066, RK3188. ) включаются так "из коробки".
что означает: включается "из коробки"?
Kapystin, означает, что это их особенность - без всяких доработок (т.е. "из коробки") включаться при подаче питания.
Проверил на выключенном устройстве, при подаче энергии высвечивается ЛОГОТИП DNS, потом показывается индикатор заряда. Полноценного включения не происходит.
остается надежда (то что возможно я смогу сделать сам) найти файлик "загрузчика" который запускает появлении ЛОГОТИПА и в него добавить строку на полное включение смартфона.
можешь подсказать программку для редактирования системных файлов андроида.
Самому не удалось найти файлик в котором можно внести изменения для автоматического включения смартфона.
буду благодарен за помощь, огромное спасибо.
Самому не удалось найти файлик в котором можно внести изменения для автоматического включения смартфона.
а что на счет вот этого варианта?
2) девайсы на процессоре RockChip (RK3066, RK3188. ) включаются так "из коробки".
Проверил на выключенном устройстве, при подаче энергии высвечивается ЛОГОТИП DNS, потом показывается индикатор заряда. Полноценного включения не происходит.
может я чтот неверно делаю?
lunjan,
Если еще актуально:
adb reboot bootloader
boot.img распаковать смог, есть папка рамдиск, в ней sbin и тут лежит healthd. Подскажите пожалуйста, как (чем) этот файл отредактировать? Сам файл распаковывается зипом, там есть файл .rodata, вот в нем и лежит весть код анимации батареи
. <4>charger: --------------- STARTING CHARGER MODE ---------------
/sys/class/power_supply/battery/charging_enabled <4>charger: android charging is disabled, exit! .4>
1. Как отредактировать и собрать healthd? Подскажите, в какую хоть сторону гуглить?
ПС - в папке рамдиск, в корне, есть еще один файл, charger. В нем код прочитать блокнотом не получается, блокнот пишет вот что
Плюсую, тоже интересует возможность включения телефона при подключении зарядки.
Всё таки решил вопрос с автоматическим включением Samsung galaxy tab s 8.4 Т-705, на кастомной прошивке на базе СМ 12.1 - Pak-man 5.1.1. Думаю на любом Самсунг с Cyanogen mod будет работать. Делов на 20минут, великих знаний програмирования не требуется, постараюсь изложить всё по полкам.
ПРЕЖДЕ ВСЕГО ДЕЛАЕМ ПОЛНЫЙ БЕКАП. У меня в процессе эксперементов было столько неудач, что без бекапа можно было с ума сойти заного систему переустанавливать!
Что потребуется:
На компе.
1. Программа Android Image Kitchen (найти на 4PDA).
2.Notepad++.
3.Total Comander.
4. 7zip
На телефоне/планшете
1.Total Comander.
Действия на компе:
1. Скачиваем кастомную прошивку CM, распаковываем ее с помощью архиватора 7zip. В распакованной папке ищем фаил boot.img. Копируем его в отдельную папку. Папку лучше переименовать к примеру CM Boot.
2. Скачиваем Официальную прошивку Самсунг, распаковываем ее с помощью архиватора 7zip. В распакованной папке ищем фаил boot.img. Копируем его в отдельную папку. Папку лучше переименовать к примеру Samsung Boot.
on property:ro.bootmode=charger
wait /dev/block/platform/dw_mmc.0/by-name/EFS
check_fs /dev/block/platform/dw_mmc.0/by-name/EFS ext4
mount ext4 /dev/block/platform/dw_mmc.0/by-name/EFS /efs nosuid nodev noatime noauto_da_alloc,discard,journal_async_commit
on property:ro.bootmode=charger
class_start sec-charger
service playlpm /system/bin/lpm
class sec-charger
critical
4. После того, как скопировали в буфер обмена вышеуказанные строки, папку ramdisk и файл boot.img нужно удалить из папки с программой Android Image Kitchen.
mkdir /data/log 0777
chmod 0666 /dev/log/radio
chmod 0666 /dev/log/main
chmod 0666 /dev/log/event
ifup lo
hostname localhost
domainname localdomain
service charger /sbin/healthd -c
class charger
critical
seclabel u:r:healthd:s0
6. Жмем на иконку repackimg.bat и видим появление нового ядра image-new.img. Ядро копируем на телефон/планшет, его будем ставить через рекавери. На всякий случай, нужно скопировать и нормальное не правленное ядро boot.img на случаё если девайс не загрузится.
8. Копируем файл lpm по пути system/bin, ставим разрешения 755.
9. Устанавливаем новое ядро через рекавери. Проверяем. С начала просто после установки перезагружаемся, если загрузились, то пробуем выключать девайс и подключать зарядку. Если нет, то идем в рекавери и ставим заранее скопированное "оригинальное" ядро.
ПС - возможно, не у всех будут в точности совпадать строки и даже файлы. В таком случае ищем поиском по всем файлам в рамдиске слово lpm или playlpm и подменяем. Думаю смысл понятен.
Автоматическое включение при подключении зарядки Asus ZenPad 8 (Z380KL) с прошивкой Cyanogen Mod 13
on property:ro.bootmode=charger
class_start sec-charger
service playlpm /system/bin/reboot
class sec-charger
critical
Способ нашел. Не нужно создавать никаких дополнительных файлов lpm, ссылаться в ядре можно на файл system/bin/reboot. Этот файл есть в прошивке по дефолту. Всё работает, при подключении зарядки планшет включается. Инструкцию подправил.
Файл lpm можно обозвать как угодно(естественно изменив название в ядре)?
sandr2010,
Да, всё верно. И всё просто, получается делаю ссылку на файл lpm который создаю в system/bin, или на любой файл который там есть. Это может быть любой созданный файл xxxx.
БелыйТезис,
Хм,тогда,возможно,в /system/bin/ есть файлик charger - если в нем внести сразу эти изменения + сделать задержку секунд на 5-10(на всякий случай),то по идее должно сработать,без ковыряния ядра.
БелыйТезис,
Asus ZenPad 8 (Z380KL) с прошивкой Cyanogen Mod 13 использую как CAR PC.
Внес изменения в ядро, создал и вставил LPM. После перезагрузки некоторое время весит логотип батарейки затем пару секунд начальная картинка загрузки Asusa и переход в TWRP. После принудительного Reboota TWRP загрузка на начальный экран СМ. И еще перестал работать MacroDroid Pro (на нем реализован макрос выключения при отключении питания).Вернул старое ядро включение (кнопкой) и выключение (макросом) востановилось. Будь добр подскажи что не так делаю.
mogolev, сложно ответить почему так получается. Как вариант проверить заного всё, что заменили и создали. lpm должен быть прописан маленькими буквами в коде и название самого файла. Но мой скромный опыт подсказывает, что перезагружается в TWRP из за неправильной упаковки ядра, у меня так было когда использовал какой то из запаковщиков. А лучше пробуйте ядро ниже, я нашел более легкий способ реализации включения (инструкцию подправил).
Вот ядро для Asus ZenPad 8 (Z380KL) с прошивкой Cyanogen Mod 13 Номер сборки Thu Apr 7 10:56:29 MSK 2016. Ставить через TWRP и никаких дополнительных файлов lpm создавать не нужно. Предварительно сохранить рабочее ядро на случай если что то пойдет не так.
Пора и мне внести небольшой вклад в этот прекрасный сайт. Спасибо всем за советы по авто и не только. Ну и мои 5 копеек для таких энтузиастов. ВНИМАние много БУКАВ
И так дорогой друг, если ты это читаешь и решился сделать, тут я опишу все проблемы с которыми я столкнулся
p.s. 1 руб = 5,5тг
Содержание
Вступление и выбор планшета
А зачем оно
Пробуем
Звук с AUX Yatour
Как избавиться от помех при зарядке. NSD 15
Снимаем батарею, что бы в мороз не сдохла и летом не бабахнуло
Блок питание планшета
Авто включение планшета при подачи питания через зарядку
Где взять постоянные +12?
Собираем
Корпус своими руками
Чертим в Corel Draw
Где все разрезать
Моторы для открытия
Перетяжка под кожу
Пулть ДУ, что бы не тянуться
Микрофон петличка
tasker
Вступление и выбор планшета
Еще до покупки машины я хотел поставить планшет Galaxy Tab S 8.4 или 10.5, не люблю Samsung но эти планшеты одни из первых с экраном super Amoled, что значит ночью он не подсвечивает темные участки, и рамок планшета не видно, ну и бесконеная контрастность. Совет проще взять nexus 7 как и все. Причина вместиться вместо штатного монитора, большое комюнити, есть все схемы, работает OTG и зарядка одновременно (Еще не проверял на samsung, но думаю не заработает), можно подрубиться к датчику холла(На самсе, тоже можно, но сложно ). Совет
А почему тогда Samsung. Плюсы: Лучше экран, больше экран, 4G
Я купил БУ планшет на 8,4", берите лучше на 10,5 встанет идеально.
А зачем оно
Если у кого не хватает фантизии, то вот пару идей:
1. Яндекс Карты или Навигатор, не потому что вы плохо знаете город, а просто ставим большой масштаб на 10 улиц вперед к примеру, и видим где впереди пробки и как объехать, вообще самое нужное в планшете, бонус предупреждение камер. 2. Показания авто. Я для красоты использую прогу Real Dash + скин итого 4000тг. Не нашел бесплатно.
3. Онлайн музыка, ютуб. 4. Forscan. 5. MusixMatch караоке в машине 6. Android + Arduino адская смесь, тут уже на что хватит фантизий, можно даже сделать что бы машина подъехала по звонку. Кстати, в планах удаленное управление климатом
Пробуем
Звук к AUX тут нечего добавить, в машине уже был Ятур
Как избавиться от помех при зарядке. NSD 15 Итак первая серьезная проблема, помеи генератора, ищете по словам гальваническая развязка. Совет
купите на ALI готовый блок DC-DC 12>5V NSD 15.
Снимаем батарею, что бы в мороз не сдохла и летом не бабахнуло
Снял батарею, запитал от NSD + еще один понижающий DC на схеме lm, чтобы снизить с 5В до 4,4В. Проблема 2. Планшет не включался пока не переподключишь руками разьем от контроллера батареи в плату (Я тупо подал питание в места куда была подключена батарея) А все дело в том что, при отлючении внешнего питания, контроллер батареи выключался постепенно, и последним его значением оставалось наименьшее напряжение. А при малом вольтаже планшет не включится. В итого подпоялся напрямую в ножкам, в обход платы контроллера. Проблема 3. Хоть и нет АКБ в планшете, он все равно медленно теряет заряд, решил только подключением зарядки. Читать ниже
Блок питания
Схема такая Постоянные +12 на > NSD тут 2 выхода> 1. USB для Питание зарядки (перед ним стоит реле, то есть заряжается от nsd, но через реле, который открывается через acc, нужно чтобы при появлении напряжения на acc подавалась зарядка) >2 параллеьно зарядке подключено само питание планшета.
Авто включение планшета при подачи питания через зарядку
И так у меня планшет включен постоянно, просто экран не горит, а при подачи acc появляется зарядка планшета, и тогда загорается экран, таскером выставил максимальное время активности дисплея, включается музыка и запускается навигатор. При отключении acc (взял с прикурителя) экран гаснет.
А когда планшет совсем выключен: Авто включение планшета при подаче питания
Где взять постоянные +12? Нашел в проводах бортового компьютера, там же и есть ACC и масса.
Собираем
Корпус своими руками
Проблема №324. Вот реально хрен знает как вместить этот планшет что бы открывался… уже отчаялся, и тут случайно нашел в интернете статью ссылку дам позже если найду, статья с сайта pccar. Где чувак сделал корпус из ПВХ, а открывался планшет очень просто, нужно было лишь сместить ось вращение. Продолжив поиски нашел на драйве статью от ZXPRSL, написал ему а он скинул мне чертежи своего чудо ориентируясь по которым я начертил свои. Чертил все в корел, в части позже выложу их в облако, сможете просто дать рекламщикам они вам вырежут его из ПВХ или акрила.
Постораюсь завтра дописать. Писать много, как оказалось не мое, даже перечитывать лень
Отдельная благодарность ZXprSL, за чертежи, Statisilok за советы, воробью за его статьи и вообще всем
Всем доброго времени суток. Интересует такой вопрос, Гуру Андроида — есть ли прога на автоматическое включение /выключение телефона /планшета при подачи /снятии напряжения с питающего кабеля?
Смысл какой : надоело вручную включать и. выключать планшет в авто. Как ведь было бы не плохо, как с регистратором, -завелся и планшет включился, заглушил и открыл дверь (на машине при этом автоматом отрубает питание на прикуриватель) и планшет отключился, м? Как вам. Конечно это при условии постоянного подключения таблетки к прикуривателю.
Заранее всем ОГРОМНОЕ СПАСИБО.
Комментарии 32
у меня другая теперь нужда чтоб появлялось окно с отсчетом и выключался при отсутствии питания )
есть команда в adb доступе прописываешь ее и будет включаться при подаче питания
включения планшета при подаче питания на USB разъём
Обязательно отключать планшет при уходе? Ставишь тайм-аут экрана 15-30сек он гасит оставаясь ждущим режиме . При подачи питании зарядки на планшете не тухнит пока идет заряд акб(используя функцию "параметры разработчика" — "мониторинг" — "Строгий режим"), а тут питаться мож либо от зажигание или разрыв питание в режиме "Охраны" (xn--2111-43da1a8c.xn--p1a…tola-ot-signalizacii.html) только в место магнитолы естественно питание планшета
Мысль такова . Снимаешь авто с охраны, загорается экран и не потухнет, пока она снова не в станет на охрану . 30сек и уходит в ждущий режим (аккумулятор в таком режиме ну 3 дня думаю точно хватит. У меня 5%акб 2 дня держался tab2.
Попробуй поищи прогу, которая будет тебя оповещать звуковым сигналом при вкл/выкл внешнего питания. Мне кажется это из более рельного чегото… И ещё на соньках и других смартфонах/планшетах есть фишка — метки NFC. которые вешаются там где надо и срабатывают на то, что нужно включить/выключить… Прояви пытливость ума, как говорил Задорнов… Удачи!
Эт сложно для меня. Я с прогами на Вы
Однако всем спасибо за отзывы. Может кому еще запись пригодиться
а для чего вообще нужно его выключать совсем? я пользуюсь уже пол года…при отключении зарядки прога вырубает дисплей, останавливает воспроизведение и сворачивает все приложения. в таком состоянии планшет простаивает сутки и все впорядке…ну если хотите сделайте отдельно кнопку питания…типа on-off (ну в том случае если планшет встраивается в консоль) и будет вам счастье. при чем я использую китайское устройство и мне не доступны все функции tasker*а . в более дорогих "фирменных" устройствах я думаю будет больше функций
Здесь процесс решения и результат, а не только готовый результат.
Прежде всего хочется сказать, что если в интернете нет готового решения для конкрентного телефона, то нужно копаться в коде, а если не понимать что код делает, то ничего не получится. К счастью если на информатике были азы delphi или чего-то подобного и знать основы if else, то разобраться и сделать можно.
Расписываю не только мой метод, но и пути решения, так как когда я сам искал способ, то очень помогали решения и домыслы других в построении схемы работы этого всего.
Сначала метод №1 c fastboot, который у меня не получился:
fastboot oem off-mode-charge 0
Далее метод №2 по парвке загрузчика.
Получаем boot.img
boot.img получен, ура, теперь его нужно разобрать.
Распаковка boot.img
Сначала сложный способ, затем лёгкий :)
СЛОЖНЫЙ для windows юзера:
Есть такой split_bootimg.pl на перл. Для split_bootimg.pl (разбивалка бута) требуется perl, в принципе можно поставить на windows и из винды запустить разбивалку бута, но собиралки, то нет( поэтому есть более правильный способ через cygwin (описание на русском на хабре очень хорошее) — в нём можно работать как в linux (либо если нет возможности скачать и поставить cygwin можно запустить виртуалку virtualbox или сервак) так:
-разбираем boot или с помощью split_bootimg.pl или с помощью unpackbootimg+mkbootimg (найти можно легко по имени файла, например тут), можно воспользоваться инструкциями например такой инструкцией
ЛЁГКИЙ для windows юзера:
На 4pda парень молодец сделал суперлёгкую программу для windows, которая разбивает и собирает бут. Качаем, читаем описание как работать =>boot.img разбит! ramdisk получен!
Правка системных файлов в boot.img (точнее в ramdisk):
Итак начинается самое муторное если нет конкретного решения под конкрентный телефон. А всё потому, что поправив код проверить можно только подключив зарядник, а отладки и логов я не нашёл и если не работает, то не поймёшь почему не работает.
Сначала работал вот с этим кодом в init.star.rc (в разных телефонах называется по разному, но шаблон у всех у них один init.XXX.rc):
(НАЗОВУ ЭТО сервисом charger)
service charger /charger
class charger
user root
group root
oneshot
По коду: сервис charger: класс charger запускает файл /charger
Пробовал (не помогло, забегая вперёд напишу что если бы знал про монтирование /system, то часть вариантов сработало бы):
— с работающего телефона скопировал через root explorer себе файл reboot из /system/bin/reboot (нужен root) и затем подменил файл /charger в корне ramdisk
— вместо "/charger" писал "/sbin/reboot" а в /sbin/ копировал reboot файл, играл с правами на него
— вместо "/charger" писал "/system/bin/reboot"
— вставлял дополнительные строки (от пользователей с 4pda): on property:ro.bootmode=charger…(далее много кода, это только начало) и тд
Всё это не приносило успеха, но по совету по on property:ro.bootmode=charger как я вижу сейчас есть доля истины, так как в полном коде есть монтирование /system — забегая вперёд скажу что монтирование /system — это развязка.
Задался вопросом почему charger исполняется, а reboot нет. Иметь бы исходники их. Права одинаковые. Видимо внутри функции в reboot не исполняются, но почему?
Ну и на 3-ий день с утра я уже держал в голове, что начну я с того, что возьму весь код в другом файле уже init.star.model.rc (обратил на него внимание потому что в нём много монтирований похожих на загрузку ос) из строки функции:
(ВСЕ on — НАЗОВУ ФУНКЦИЕЙ ДЛЯ УДОБСТВА)
on fs
(там ниже идёт куча монтирований всех систем и ещё всего при загрузке ОС) — думаю ОС при моей функции:
on charger
должно выполнить всё то же что и при загрузке ОС чтобы мой reboot работал точно и вставил всё что ниже функции:
on fs
в мою функцию:
on charger
и так как там в функции on fs было exec /system/bin/какой-то_бинарник, то попробовал его заменить на exec /system/bin/reboot
и при подключении зарядки телефон перезагрузился! То что я обрадовался — это ничего не сказать:)
Далее построчно поудалял строки и выявил, что главное это монтирование /system:
mount ext4 /dev/block/mmcblk0p1 /system wait ro
/dev/block/mmcblk0p1 — у разных прошивок может быть свой! Чтобы узнать его нужно на работающем телефоне в терминале (Terminal Emulator в play market) на рутованном телефоне глануть точки монтирования (fstab ещё в linux называется):
cat /proc/mounts
и найти строку по /system
То есть главное ДОЛЖЕН БЫТЬ ПОДМОНТИРОВАН РАЗДЕЛ /system
Всё это будет работать только если подмонтирован /system
2-х дневная разработка сократилась бы в 100 раз если бы я сообразил про монтирование с самого начала, потому что все мои попытки правки и класса charger и функции on charger работали бы в большинстве вариантов если бы при этом был подмонтирован /system.
PS: при решении вопроса уже ближе к концу мне не давал покоя умный тезис из интернета:
"Файл charger — это небольшое приложение, единственная задача которого — вывести на экран значок батареи. Он не имеет никакого отношения к Android и используется тогда, когда устройство подключается к заряднику в выключенном состоянии. В этом случае загрузки Android не происходит, а система просто загружает ядро, подключает RAM-диск и запускает charger. Последний выводит на экран иконку батареи, изображение которой во всех возможных состояниях хранится в обычных PNG-файлах внутри каталога res." размышляя над которым я пытался сначала скопировать в бут всю папку /system/bin а потом уже перешёл на более простой метод монтирования.
Читайте также: