Как заставить Android-устройство загружаться при включенном питании?

Мне нужно использовать это для планшета Samsung.

Обычно, если устройство отключено и подключен USB-кабель, дисплей на несколько секунд просыпается, показывая анимированный аккумулятор. Вместо этого я хочу дать ему загрузиться.

Я подозреваю, что это близко к металлу. Где я должен сделать модификацию? В ядре, на платформе Android, или это скрыто в каком-то фирменном коде производителя?

6 ответов

Член XDA опубликовал решение для этого, которое, похоже, работает на некоторых устройствах Samsung.

Идея состоит в том, чтобы заменить скрипт для значка батареи (который, разумеется, появится, как только устройство будет подключено), на собственный скрипт, который будет загружать телефон. Чтобы сделать эту работу найти /system/bin/playlpm, Переименовать старый playlpm в playlpm.bak и замените его следующим скриптом:

#!/system/bin/sh
/system/bin/reboot

Для получения дополнительной информации читайте ветку на XDA

У меня рутированный Samsung S4 mini. Следующие шаги работали для меня:

  1. mount -o remount,rw /system
  2. mv /system/bin/lpm /system/bin/lpm.orig
  3. Создайте /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
    
  4. 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
Другие вопросы по тегам