¿Es posible encender automáticamente el dispositivo una vez que el cargador está conectado dado que el dispositivo está inicialmente apagado?
El gráfico de carga de la batería se muestra por /system/bin/playlpm
archivo en los dispositivos Samsung.
Si es root, puede editar este archivo para:
#!/system/bin/sh
/system/bin/reboot
Y asegúrese de agregar esos permisos al archivo:
chmod 0755 /system/bin/playlpm
chown root.shell /system/bin/playlpm
Su dispositivo ahora se iniciará cuando esté enchufado
fastboot oem off-mode-charge 0
es el método genuino si su dispositivo lo admite. Es el método recomendado por Google, pero no todos los OEM/proveedores implementan el comando en el gestor de arranque. O en algunos dispositivos se reinicia en el próximo reinicio. Si off-mode-charge
está deshabilitado, el cargador de arranque no pasará androidboot.mode=charger
el parámetro de la línea de comandos al núcleo cuando se inserte el cargador, por lo que el dispositivo se inicia normalmente.
De lo contrario, cuando ro.bootmode
la propiedad se establece en charger
el arranque, init
no continúa el proceso de arranque normal . En su lugar, se inicia un número limitado de servicios y se muestra una animación de carga. Por lo tanto, puede indicar init
que reinicie el dispositivo cada vez que se detecte el modo de cargador. Cree un nuevo .rc
archivo o edite uno existente:
# /system/etc/init/off_mode_charge.rc
on charger
setprop sys.powerctl reboot,leaving-off-mode-charging
O ejecutar reboot
binario:
on charger
exec - -- /system/bin/reboot leaving-off-mode-charging
Pero si se aplica SELinux, es posible que la política de existencias no permita la init
ejecución /system/bin/reboot
. Entonces use el contexto de Magisk (o cualquier solución de enraizamiento que use):
on charger
exec u:r:magisk:s0 -- /system/bin/reboot
No olvide establecer permisos en el *.rc
archivo ( chown 0.0
, chmod 0644
, chcon u:object_r:system_file:s0
).
También es posible continuar el proceso de arranque en lugar de reiniciar el dispositivo reemplazándolo class_start charger
con trigger late-init
el /init.rc
archivo:
on charger
#class_start charger
trigger late-init
O configurando la propiedad sys.boot_from_charger_mode
:
on charger
setprop sys.boot_from_charger_mode 1
playlpm
, battery_charging
, chargeonlymode
, zchgd
, kpoc_charger
etc.healthd
, que se encargan de muchas cosas relacionadas con la batería, el almacenamiento, etc. En este caso, si el servicio se ejecuta en modo charger
y normal
, el dispositivo puede entrar en bootloop./system
partición (por ejemplo, si no desea interrumpir dm-verity
para que funcionen las actualizaciones OTA). Simplemente descomprima boot.img
y edite /init.rc
el archivo en formato ramdisk
.init.d
script desde un .rc
archivo. Para referencia, consulte ¿Cómo ejecutar un ejecutable en el arranque? y ¿Cómo se apaga cuando se retira el cargador? .RELACIONADO:
init
el .rc
archivo de al menos desde Android 7. Y siempre funcionó. Por lo general, SELinux es la parte más problemática. Debería haber visto los registros del núcleo ( dmesg
) justo después del primer intento fallido. init
registra sus eventos en el registro del kernel. Así es como se puede identificar el problema.gta3xlwifi:/etc/init $ cat > off-mode-charge.rc /system/bin/sh: can't create off-mode-charge.rc: Read-only file system
boot.img
o /system
desde allí. Ninguno de los métodos para encender automáticamente cuando el cargador está conectado puede funcionar sin root, excepto fastboot oem off-mode-charge
(si es compatible con su dispositivo).fastboot oem off-mode-charge
y fallé estrepitosamente al rootear el dispositivo (Samsung SM-T510), seguí todas las guías que pude encontrar y me quedé atascado con errores o fallé en diferentes partes de los pasos (debo estar omitiendo algo) . Logré cargar en TWRP, ¿podría modificar boot.img desde allí? Podría buscar eso y ver si puedo hacerlo de esa manera. ¿¡Quién hubiera pensado que sería tan difícil!?Entonces, hay muchas maneras de hacerlo. El más adecuado, como siempre respaldado por Google (y cada vez más por otros, por ejemplo, nvidia de nougat) es este comando fastboot
fastboot oem off-mode-charge 0
De lo contrario, puede secuestrar el binario de carga (no se garantiza que sea posible en todos los dispositivos, pero solo requiere root) o parchear su ramdisk (teóricamente universal, pero requerirá un gestor de arranque desbloqueado).
Para la primera solución, deberá encontrar algún lugar en la partición de su sistema (generalmente la carpeta bin ) donde reside el programa a cargo de la animación de la batería y todo. Algunos nombres comunes :
charge_only_mode
kpoc_charger
oipod
chargemon
ozchgd
playlpm
olpm
chargemon
obattery_charging
healthd
Una vez encontrado, puede reemplazarlo con un script como el anterior de IET_DEMO.
En cambio, tocar el kernel es algo que no tengo ganas de explicar y recomendar si no sabes lo que estás haciendo.
Entonces, solo para que conste, me gustaría subrayar que la carga fuera de línea existe porque el proceso de arranque consume bastante energía, y especialmente en teléfonos más antiguos sin siquiera una carga rápida, el consumo de energía del sistema podría ser mayor que el del enchufe.
Acabo de hacer que esto funcione para ZTE Force (Boost Force, Sprint Force, etc.).
Usé la respuesta de IET_DEMO, pero reemplacé el archivo ubicado en /system/bin/battery_charging
con este código:
#!/system/bin/sh
/system/bin/reboot
¡ Para algunos dispositivos Samsung más antiguos, esto se puede lograr a través de NoMoarPowah! :
NoMoarPowah! puede reiniciarse automáticamente en Android cuando se realiza la carga. Ya sea cuando está completamente cargado o cuando el nivel de la batería alcanza el 15% y Android tiene suficiente energía para funcionar.
Necesita root y probablemente no quiera hacerlo a menos que realmente sepa lo que está haciendo, ya que espero que esto modifique archivos importantes del sistema.
Parece que esto se eliminó de Play Store, pero probablemente puedas encontrar el APK alojado en otro lugar. (No tengo un enlace de confianza por adelantado).
Si desea hacer lo contrario, apague cuando cargue, use esto: "Apagado automático cuando no haya carga" https://play.google.com/store/apps/details?id=com.zeroFactorial.probattle bueno para el dispositivo de mi automóvil y tambien tenia roto el boton
El kernel se carga en una etapa posterior del proceso de arranque , por lo que cualquier modificación que se le haga no tendrá ningún efecto cuando el dispositivo esté apagado.
Esta funcionalidad realmente depende del hardware de cada dispositivo, muy probablemente en el gestor de arranque (los editores con más conocimientos no duden en corregirme). Por ejemplo, mi teléfono Motorola Atrix 4G comienza a arrancar cuando conecto un cargador, mientras que mi Samsung Galaxy Tab no. muestra el gráfico "Cargando la batería" y requiere que se encienda manualmente.
init
se inicia. La única diferencia es que /data
(y posiblemente otros sistemas de archivos) no están montados y se inicia un conjunto limitado de servicios en comparación con el espacio de usuario normal.
m0j1
IET_DEMO
ZorroDeLaArena