LINUX.ORG.RU
ФорумMobile

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

 , , ,


1

1

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

/system/bin/reboot
Что получилось: При подключении Андройда к зарядке запускается модуль отображения картинки зарядки на экране, который инициализирует файл /system/bin/ipod (как я понял, демон быстрой загрузки). И я был рад, все работало. На Aндройд 4.4 этот фокус не прокатывает. Иерархия файлов сохранена и они присутствуют. Как мне подсказал человек, проблема может быть в проверке целостности файла ipod (я сам к этому склоняюсь, т.к. любая правка /system/bin/ipod - приводит к не работающей анимации заряда батареи, только статичная картинка). На сколько я могу судить, файлы ipod на 4.2 и 4.4 тождественны. Прошу помочь мне реализовать такую задачу, включать Андройд, при подключении usb кабеля. Может быть, я изначально выбрал не тот путь. Прошу вашей помощи.

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

everest2014 ()

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

illide ()
Ответ на: комментарий от illide

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

everest2014 ()
Ответ на: комментарий от illide

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

everest2014 ()
Ответ на: комментарий от everest2014

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

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

tlx ★★★★★ ()

Андройд

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

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

Valkeru ★★★★ ()
Ответ на: комментарий от tlx

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

everest2014 ()
Ответ на: комментарий от illide

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

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

everest2014 ()
24 января 2015 г.

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

Третий день с этим делом бодаюсь уже, тоже ничего толкового сделать не могу. Есть еще кстати такой нюанс, когда запускаешь этот файл вручную он пишет(у меня по крайней мере) следующее: 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, я его заменил на свой. Действительно, вызывается, но только не при подключении питания а при загрузке системы. Чувак, если у тебя что-то получилось, отпишись пожалуйста!

bigbn ()
5 апреля 2015 г.

Перешарил весь инет единственное дельное что нашел - «В поисках решения проблемы автоматического включения 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 и приложение «Выключение», при отключении зарядки запуск приложения «выключения».

anonymous ()
7 декабря 2015 г.
Ответ на: комментарий от anonymous

Аndroid 4.4 charging

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

AlexDVH ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.