Как заставить Android-устройство загружаться при включенном питании?
Мне нужно использовать это для планшета Samsung.
Обычно, если устройство отключено и подключен USB-кабель, дисплей на несколько секунд просыпается, показывая анимированный аккумулятор. Вместо этого я хочу дать ему загрузиться.
Я подозреваю, что это близко к металлу. Где я должен сделать модификацию? В ядре, на платформе Android, или это скрыто в каком-то фирменном коде производителя?
6 ответов
Член XDA опубликовал решение для этого, которое, похоже, работает на некоторых устройствах Samsung.
Идея состоит в том, чтобы заменить скрипт для значка батареи (который, разумеется, появится, как только устройство будет подключено), на собственный скрипт, который будет загружать телефон. Чтобы сделать эту работу найти /system/bin/playlpm
, Переименовать старый playlpm
в playlpm.bak
и замените его следующим скриптом:
#!/system/bin/sh
/system/bin/reboot
Для получения дополнительной информации читайте ветку на XDA
У меня рутированный Samsung S4 mini. Следующие шаги работали для меня:
mount -o remount,rw /system
mv /system/bin/lpm /system/bin/lpm.orig
Создайте
/system/bin/lpm
следующее:#!/system/bin/sh /system/bin/lpm.orig & while [ true ]; do sleep 1 ps | grep lpm.orig && sleep 3 && /system/bin/reboot done
chown root.shell /system/bin/lpm
Это будет функция встроенного ПО на очень низком уровне, которое, если устройство выключено, работает без какой-либо части Android.
Изменение, которое вам нужно сделать, находится в загрузчике.
Это первое, что запускается, это происходит задолго до того, как среда C инициализируется, или ядро загружается, или даже что-нибудь из пространства пользователя или из Android...
Загрузчики могут значительно различаться в зависимости от аппаратного обеспечения, для которого они были написаны, но секретов о них мало, и вы сможете найти нужную информацию - теперь, когда вы знаете, какие ключевые слова использовать.
На моем S4 mini GT-i9291 процедура, описанная выше Торстеном, работала только с одной модификацией: добавьте "su".
#!/system/bin/sh
su
mount -o remount,rw /system
/system/bin/lpm.orig &
while [ true ]; do
sleep 1
ps | grep lpm.orig && sleep 3 && /system/bin/reboot
chown root.shell /system/bin/lpm
done
Tks!!!!!
Эти ответы привели меня к моему решению. Я использую это на Samsung Galaxy Tab S. Для других планшетов путь к системному монтированию будет другим. Чтобы найти его, используйте эту команду в оболочке adb.
cat /proc/mounts | grep system
Одна проблема, с которой я столкнулся, была загрузка планшета в режим восстановления после того, как я изменил файл lpm, но это потому, что я mv'd старый и создал новый файл lpm и не установил правильные права доступа и владельца. Использование cp вместо этого исправило это. Моя однострочная настройка для планшета:
mount -o remount,rw /dev/block/platform/dw_mmc.0/by-name/SYSTEM /system && cp /system/bin/lpm /system/bin/lpm_orig && echo "#!/system/bin/sh\n/system/bin/reboot" > /system/bin/lpm