Remarque: la solution ci-dessous nécessite que votre Android soit rooté.
Je pense que l'automatisation sans root ne résoudrait pas directement le problème, car elle ne change rien ou ne remplace rien, mais fait ses propres trucs sur les changements existants. J'étais sur le point de publier sur des lignes similaires jusqu'à ce que je réalise que la clé de la solution est un fichier nommé max_brightness
, un fichier sous /sys
, donc une partie du noyau Linux et directement géré par lui. J'ai trouvé que définir la limite de luminosité dans ce fichier est la meilleure façon d'aller ici. Vous pouvez être en désaccord avec une meilleure solution.
J'ai remarqué qu'une fois que votre luminosité maximale personnalisée est définie, ni Android ni une application n'a été en mesure de régler la luminosité au-delà de ce niveau personnalisé, sauf s'ils ont changé le contenu de ce fichier, ce qui souvent une application n'a aucune raison de changer et aucun d'eux n'a changé non plus. En outre, le fichier appartient à root et fait partie du groupe root, donc toute application ou même system_server aurait besoin du privilège root pour apporter des modifications à ce fichier.
Trouver ce fichier est un peu délicat. Dans mon appareil MTK avec Android 4.2, ce fichier semble être sous /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/
.
Dans mon appareil Qualcomm avec Android 5.0.2 et supérieur, le fichier semblait être /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/
.
Je suppose que la meilleure façon de trouver ce fichier est d'exécuter une requête de recherche (configuration adb pour cela), comme:
(Nécessite une boîte occupée )
adb shell su -c 'find /sys/ -type f -iname "max_brightness"'
Dans mon appareil Qualcomm, la sortie qu'il donne est:
/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 / bouton-rétro-éclairage / max_brightness
L'endroit où lcd-backlight
est mentionné était le seul qui avait du sens pour moi et c'est ainsi que j'ai trouvé le fichier dans mon appareil. Ne vous inquiétez pas de poser des questions sur les autres. J'ai essayé de changer la luminosité de l'écran et j'ai cherché les changements dans le fichier nommé brightness
(également situé sous ces emplacements). Aucun d'eux ne reflète la sortie correcte autre que celle de /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight
.
Uniquement pour la démonstration, essayez de définir une limite dans 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).
Essayez maintenant de maximiser la luminosité en utilisant le curseur de luminosité ou une application tierce et vous remarquerez que la luminosité de votre écran ne dépasse pas un certain point, même lorsque le curseur ou la configuration de l'application semble être au maximum. La luminosité de ce "certain point" serait certainement inférieure à celle par défaut à laquelle vous êtes habitué.
Notez que la valeur maximale dans max_brightness se trouve souvent être 255 et la luminosité varie de 0 à 255. Souvent, ce n'est pas toujours vrai. Et ne craignez pas de définir la limite à 0. Cela empêcherait l'écran de s'allumer jusqu'à ce que vous annuliez les modifications ou redémarriez l'appareil.
Trouvez une limite qui ne vous dérangerait pas dans votre sommeil ou qui épuise fortement la batterie lorsque la batterie est faible.
Automatisation
Pour automatisation, utilisez n'importe quelle application d'automatisation qui peut exécuter une commande avec le privilège root et lorsque le contexte de votre déclencheur préféré est respecté. Je recommande un déclencheur basé sur le temps.
Quelques exemples pratiques:
Dans Tasker , configurez un profil avec votre contexte préféré, créez une tâche et utilisez l'action: Code → Exécuter le shell:
- Commander:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- check Utiliser la racine
Dans MacroDroid , configurez votre déclencheur préféré et pour installer les paramètres sécurisés , choisissez-le → Actions → Exécuter la commande:
- Commander:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
- check Utiliser la racine
Dans Automate , dans le cadre de votre flux, lors de la configuration d'une action pour votre déclencheur, sélectionnez superutilisateur de commande Shell sous Applications et procédez comme suit:
- Ligne de commande:
echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Assurez-vous d'installer toutes les autorisations requises par le flux.
Dans DroidAutomation , configurez votre déclencheur et sous tâche, sélectionnez Racine → Exécuter une ligne de commande et tapez:echo LIMIT > PATH_TO_MAX_BRIGHTNESS
Comme vous l'auriez deviné, vous devrez configurer deux profils pour chaque application. L'un pour définir une limite et l'autre pour définir la luminosité maximale à la valeur par défaut à laquelle vous êtes habitué.
Déclencheurs explicites de batterie faible:
Tasker
- État → Niveau de la batterie → définir la plage
- Alternative: Événement → Système → Intention reçue → laissez tout intact, mais définissez l'action sur
android.intent.action.BATTERY_LOW
.
MacroDroid
Suivez la réponse des abeilles pour configurer le déclencheur
Automatiser
Accédez à Applications → Réception de diffusion → laissez tout intact, mais sélectionnez Batterie faible en action
Droid Automation
Sélectionnez Batterie faible dans Ajouter un déclencheur
J'aimerais que vous gardiez cela à l'esprit que l'utilisation d'une batterie faible ou d'un déclencheur à 100% de la batterie irait à l'encontre du but de cette réponse, qui est de remplacer les modifications qu'Android souhaite apporter. Par exemple, si vous configurez LIMIT à 0 chaque fois que la batterie atteint 100%, ce qui se passerait, c'est que votre Android allumerait l'écran au maximum comme d'habitude et en quelques millisecondes (vous lisez correctement), votre application d'automatisation s'exécuterait et fixerait la limite. Votre sommeil peut être interrompu dans ces millisecondes.
Dans une autre situation, lorsque l'intention de batterie faible est diffusée par le système, la tablette de Cool Guy peut se retrouver avec un écran allumé au maximum et en quelques millisecondes, la luminosité retombera à LIMIT.
La solution de contournement consiste à configurer le niveau de la batterie à 16 ou plus pour un déclenchement de batterie faible et à 99 ou moins pour une charge complète de la batterie.