Nota: la solución a continuación requiere que su Android esté rooteado.
Creo que la automatización sin root no trataría directamente el problema, ya que no está cambiando ni anulando nada, sino haciendo sus propias cosas sobre los cambios existentes. Estaba a punto de publicar en líneas similares hasta que me di cuenta de que la clave de la solución es un archivo llamado max_brightness
, un archivo debajo /sys
, por lo tanto, una parte del kernel de Linux y administrado directamente por él. Descubrí que establecer el límite de brillo en ese archivo es la mejor manera de hacerlo aquí. Puede estar en desacuerdo con una mejor solución.
Noté que una vez que se establece su brillo máximo personalizado, ni Android ni una aplicación pudieron establecer el brillo más allá de ese nivel personalizado a menos que cambiaran el contenido de ese archivo, que a menudo una aplicación no tiene razón y ninguno de ellos cambió. Además, el archivo es propiedad de root y es parte de la raíz del grupo, por lo que cualquier aplicación o incluso system_server requeriría privilegios de root para realizar cambios en ese archivo.
Encontrar ese archivo es un poco complicado. En mi dispositivo MTK con Android 4.2, ese archivo parece estar debajo /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/
.
En mi dispositivo Qualcomm con Android 5.0.2 y superior, el archivo parecía estar en /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/
.
Supongo que la mejor manera de encontrar ese archivo es ejecutar una consulta de búsqueda (configuración adb para eso), como:
(Requiere busybox )
adb shell su -c 'find /sys/ -type f -iname "max_brightness"'
En mi dispositivo Qualcomm, el resultado que da es:
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/red/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/blue/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/green/max_brightness
/sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight / max_brightness
/sys/devices/qcom,camera-led-flash.81/leds/torch-light/max_brightness
/sys/devices/msm_sdcc.1/leds/mmc0::/max_brightness
/sys/devices/msm_sdcc.2/leds/mmc1::/max_brightness
/ sys / devices / 01-qcom, leds-d300 / leds / led: flash_torch / max_brightness
/ sys / devices / 01-qcom, leds-d300 / leds / led: flash_0 / max_brightness
/ sys / devices / 01-qcom, leds-d300 / leds / led: flash_1 / max_brightness
/ sys / devices / 01-qcom, leds-e200 / leds / kpdbl-lut-2 / max_brightness
/ sys / devices / 01-qcom, leds-e200 / leds / kpdbl-pwm-3 / max_brightness
/ sys / devices / 01-qcom, leds-e200 / leds / kpdbl-pwm-4 / max_brightness
/ sys / devices / 01-qcom, leds-e200 / leds / button-backlight / max_brightness
La ubicación donde lcd-backlight
se menciona fue la única que tenía sentido para mí y así es como encontré el archivo en mi dispositivo. No te preocupes por preguntar por los demás. Intenté cambiar el brillo de la pantalla y busqué los cambios en el archivo nombrado brightness
(también ubicado debajo de dichas ubicaciones). Ninguno de ellos reflejaba el resultado correcto, excepto el de /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight
.
Solo para demostración, intente establecer un límite en max_brightness
adb shell su -c 'echo LIMIT > PATH_TO_MAX_BRIGHTNESS' # in my case PATH_TO_MAX_BRIGHTNESS is /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/ and set LIMIT to a value less than 30 (not limited to).
Ahora intente maximizar el brillo utilizando el control deslizante de brillo o una aplicación de terceros y notará que el brillo de su pantalla no excede un cierto punto, incluso cuando el control deslizante o la configuración de la aplicación parece estar al máximo. El brillo para ese "cierto punto" ciertamente sería menor que el predeterminado al que está acostumbrado.
Tenga en cuenta que el valor máximo en max_brightness a menudo se encuentra en 255 y el brillo oscila entre 0-255. A menudo, no siempre es cierto, eso es. Y no tema establecer el límite en 0. Haría que la pantalla no se ilumine hasta que revierta los cambios o reinicie el dispositivo.
Encuentre un límite que no lo moleste mientras duerme o que agote la batería cuando la batería se agota.
Automatización
por automatización, use cualquier aplicación de automatización que pueda ejecutar un comando con privilegio de root y cuando se cumpla el contexto de su activador preferido. Recomiendo un disparador basado en el tiempo.
Algunos ejemplos de trabajo:
En Tasker , configure un perfil con su contexto preferido, cree una tarea y use la acción: Código → Ejecutar Shell:
- Mando:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- marque Usar raíz
En MacroDroid , configure su activador preferido y para la acción instale Configuración segura , elíjalo → Acciones → Ejecutar comando:
- Mando:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- marque Usar raíz
En Automatizar , como parte de su flujo, al configurar una acción para su desencadenador, seleccione Superusuario de comandos de Shell en Aplicaciones y haga lo siguiente:
- Línea de comando:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Asegúrese de instalar todos los permisos que requiere el flujo.
En DroidAutomation , configure su activador y, bajo la tarea, seleccione Root → Ejecutar una línea de comando y escriba:echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Como habrías adivinado, tendrías que configurar dos perfiles para cada aplicación. Uno para configurar un límite y el otro para establecer el brillo máximo al valor predeterminado al que está acostumbrado.
Disparadores explícitos de batería baja:
Tasker
- Estado → Nivel de batería → establecer el rango
- Alternativa: Evento → Sistema → Intención recibida → deje todo intacto pero configure la Acción en
android.intent.action.BATTERY_LOW
.
MacroDroid
Siga la respuesta de beeshayms para configurar el disparador
Automatizar
Vaya a Aplicaciones → Recepción de transmisión → deje todo intacto pero seleccione Batería baja en acción
Automatización de droides
Seleccione Batería baja en Agregar un disparador
Me gustaría que tenga esto en cuenta que el uso de una batería baja o un disparador de batería al 100% anularía el propósito de esta respuesta, que es anular los cambios que Android quiere hacer. Como ejemplo, si configura LIMIT a 0 cada vez que la batería alcanza el 100%, lo que sucedería es que su Android iluminaría la pantalla al máximo como de costumbre y en pocos milisegundos (leyó correctamente) su aplicación de automatización se ejecutará y establecerá el límite. Su sueño puede interrumpirse en esos milisegundos.
En otra situación, cuando el sistema transmite la intención de batería baja, la tableta de Cool Guy puede terminar con una pantalla encendida al máximo y en pocos milisegundos, el brillo volverá a LIMIT.
La solución alternativa es configurar el nivel de la batería en 16 o más para el disparador de batería baja y 99 o menos para la carga completa de la batería.