1 votes

Reboot LPM Samsung Galaxy S7

Je cherche à faire démarrer mon téléphone Samsung Galaxy S7 en mode opération normal lorsque l'alimentation USB est activée. J'ai testé toutes les suggestions dans cette publication et plusieurs autres, mais quoi que je fasse, le téléphone ne redémarrera pas en mode opération normal. Mon résultat est aucun redémarrage ou redémarrage en mode Récupération.

J'ai également testé plusieurs ROM avec le même résultat. Il semble y avoir un problème lorsque le \system\bin\reboot est appelé en mode LPM (Mode Faible Consommation).

Script:

#!/system/bin/sh
/system/bin/lpm_orig &
while [ true ]; do
  sleep 1
  ps | grep lpm_orig && sleep 3 && /system/bin/reboot
done

(Le "lpm_orig" est le fichier lpm original). Les droits de propriétaire et d'exécution Linux ont été vérifiés. Est-ce que quelqu'un a une idée de ce qu'il faut essayer ensuite ?

4voto

Sollace Points 121

Cela a été un enfer à comprendre. Autant le mettre ici pour aider quiconque cherche sur Google.

Pour le Samsung Galaxy S7, d'abord le script :

#!/system/bin/sh

# Script pour redémarrer le système dès que le chargeur est inséré
# https://android.googlesource.com/kernel/common/+/android-trusty-3.10/Documentation/sysrq.txt

# Activer les commandes du kernel.
su -c "echo 1 > /proc/sys/kernel/sysrq"

# Envoyer une demande de redémarrage immédiat.
echo b > /proc/sysrq-trigger

Et pour l'installer, vous devez d'abord sauvegarder et remplacer le fichier /system/bin/lpm. Comme l'a déjà mentionné OP, le remplacement du fichier fera en sorte qu'il ne fonctionne pas (expliqué ici)

L'inode (identificateur unique du fichier) du fichier lpm doit rester le même avant qu'Android l'accepte, alors nous devons remplacer le contenu du fichier existant.

C'est assez facile à faire :

echo /system/bin/lpm > /system/bin/lpm.bak

Et insérons notre code de script :

echo /sdcard/reboot_on_charge.sh > /system/bin/lpm

Bien entendu, cela nécessitera les privilèges root, et de remonter le dossier système en lecture/écriture :

su
mount -o rw,remount /system

Et voilà ! C'est comme ça que j'ai réussi à faire fonctionner cela pour le S7.

Pour annuler les modifications, il suffit de faire :

cat /system/bin/lpm.bak > /system/bin/lpm
rm /system/bin/lpm.bak

Édition : - Pour ajouter un détail supplémentaire, assurez-vous que le fichier utilise des fins de lignes Linux (LF) plutôt que CR_LF (Windows). Mon dépôt git les a remplacés sous moi et j'ai dû déboguer pourquoi le téléphone se mettait soudainement en mode recovery à nouveau lorsqu'il redémarre.

0 votes

Je tente d'exécuter des scripts. Mais j'ai une erreur en lecture seule.

0 votes

@Konrad As-tu pensé à monter ta partition système en écriture ? Tu dois le faire avant de pouvoir installer les scripts. mount -o rw,remount /system

0 votes

Merci @Sollace J'ai essayé sur S6 Edge+ et ça marche #!/system/bin/sh\nécho b > /proc/sysrq-trigger (le /system/bin/reboot ne fonctionne pas pour ce téléphone).

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X