Esto ha sido un infierno para entender. Podría también ponerlo aquí para ayudar a cualquier otra persona que busque en Google.
Para el Samsung Galaxy S7, primero el script:
#!/system/bin/sh
# Script to reboot the system as soon as the charger is inserted
# https://android.googlesource.com/kernel/common/+/android-trusty-3.10/Documentation/sysrq.txt
# Enable kernel commands.
su -c "echo 1 > /proc/sys/kernel/sysrq"
# Send an immediate reboot request.
echo b > /proc/sysrq-trigger
Y para instalarlo, primero hay que hacer una copia de seguridad y reemplazar el archivo /system/bin/lpm. Como OP ya mencionó, reemplazar el archivo hará que no funcione (explicado aquí )
El inodo (identificador único del archivo) del archivo lpm tiene que seguir siendo el mismo para que Android lo acepte, por lo que tenemos que sustituir el contenidos del archivo existente.
Eso es bastante fácil de hacer:
echo /system/bin/lpm > /system/bin/lpm.bak
Y volcar nuestro código script en él:
echo /sdcard/reboot_on_charge.sh > /system/bin/lpm
Por supuesto, esto requerirá Root, y volver a montar la carpeta del sistema como lectura-escritura:
su
mount -o rw,remount /system
Y eso es todo. Así es como he conseguido que esto funcione para el S7.
Deshacer los cambios debería ser tan sencillo como hacerlo:
cat /system/bin/lpm.bak > /system/bin/lpm
rm /system/bin/lpm.bak
Editar: - Para añadir un detalle extra, asegúrese de que el archivo está utilizando los finales de línea de Linux (LF) en lugar de CR_LF (Windows). Mi git repo los cambió por debajo de mí y me quedé depurando por qué el teléfono de repente comenzó a ir al modo de recuperación de nuevo cuando se reinicia.