[APP] AMOLED PWMfree

Search This thread

Wootever

Senior Member
Jun 27, 2012
1,089
2,814
Summary:
  • A simple application that uses a transparent overlay to dim the device brightness, effectively removing PWM.
  • Download PWMfree

More Information:

Default brightness control:
  • FJ6ln5p.gif
  • YIbIOWt.png

PWMfree brightness control:
  • 3CmXgxz.gif
  • qyZrtt3.png
 
Last edited:

Wootever

Senior Member
Jun 27, 2012
1,089
2,814
The brightness does not change while sliding the slider, only after releasing the slider. Please fix, thx.
Unfortunately not possible.

Can this work on other models (like my Galaxy A3 2017 AMOLED) ?
The overlay itself should work on every device, only the brightness slider override that requires root is device dependent.
But this isn't particularly well-working, i will probably ditch this override and just add a widget slider so it can be used without root.
 

qb74

Senior Member
Dec 2, 2016
173
51
OnePlus 8 Pro
So is this root only? Cause I saw my screen change brightness immediately after turning accessibility access on, and I'm not rooted, stock rom.
 

Wootever

Senior Member
Jun 27, 2012
1,089
2,814
@qb74
Root permission is used to prevent liblights (android system brightness handler) from accessing the kernel brightness path (/sys/class/backlight/panel/brightness).
The brightness slider on the notification bar then only modifies the transparency of the accessibility overlay, not the display (kernel) brightness.

Without root permission it controls both the overlay and kernel brightness, but this prevents the pwmfree usage as the kernel brightness needs to be at 100% to avoid pwm dimming.
 

qb74

Senior Member
Dec 2, 2016
173
51
OnePlus 8 Pro
@parser
The lights service might be different on the S8 and is not correctly halted by the application.

Here is a first version that works without root and only relies on the accessibility service: pwmfree.apk
It locks the device brightness at 100% and uses it's own slider to control it.
So this version works with non-root? Great! Why does the brightness need to be 100%? From the looks of your graph, all brightness levels seem more consistent?
 

parser

Senior Member
@parser
The lights service might be different on the S8 and is not correctly halted by the application.

Here is a first version that works without root and only relies on the accessibility service: pwmfree.apk
It locks the device brightness at 100% and uses it's own slider to control it.

Hmm, well than I hope you make this wonderful app s8/+ compatible too :)

Thanks for your work mate. Would love to use it :good:
 

Wootever

Senior Member
Jun 27, 2012
1,089
2,814
So this version works with non-root? Great! Why does the brightness need to be 100%? From the looks of your graph, all brightness levels seem more consistent?
Only the device (kernel) brightness needs to be set at 100%, at this stage the amoled panel only uses a short 59hz vsync signal (this is the small amplitude on the graph).
Anything below ~95% uses the amoled typical 240hz pwm dimming.
The pwmfree overlay now dims the full kernel brightness by decreasing it's transparency, this is somehow similar to lcd contrast dimming.
@parser
The new version should work on all amoled devices, although the widget type brightness slider is a bit less comfortable than the android system one.
 
  • Like
Reactions: Askew_ and parser

parser

Senior Member
Only the device (kernel) brightness needs to be set at 100%, at this stage the amoled panel only uses a short 59hz vsync signal (this is the small amplitude on the graph).
Anything below ~95% uses the amoled typical 240hz pwm dimming.
The pwmfree overlay now dims the full kernel brightness by decreasing it's transparency, this is somehow similar to lcd contrast dimming.

@parser
The new version should work on all amoled devices, although the widget type brightness slider is a bit less comfortable than the android system one.

Trying it atm, the only down side is, as u said, adjusting the brightness by hand. If I am in a game and need brighter screen, have to go desktop and adjust it :/

Would it have an effect on battery efficiency too?
 

Wootever

Senior Member
Jun 27, 2012
1,089
2,814
@parser
The overlay is managed by SurfaceFlinger and shouldn't cause any impact. The amoled panel seems to work identical with the contrast dimming and i would guess the battery usage is similar, but i can't tell for sure yet.

As for the brightness slider, i think this can be placed on the notification bar instead, which should increase the usability.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 26
    Summary:
    • A simple application that uses a transparent overlay to dim the device brightness, effectively removing PWM.
    • Download PWMfree

    More Information:

    Default brightness control:
    • FJ6ln5p.gif
    • YIbIOWt.png

    PWMfree brightness control:
    • 3CmXgxz.gif
    • qyZrtt3.png
    20
    Version 1.3:
    • added proper notification layout for portrait and landscape mode.
    • adjusted brightness steps.
    • small bugfixes.
    Version 1.2:
    • added shortcut to accessibility settings on first start.
    • fixed an issue with the rotation listener.
    Version 1.1:
    • added simple interface with brightness slider and function toggle.
    Version 1.0:
    • initial release.

    Download:
    8
    Small update, brightness can now be controlled from the notification bar:

    Cj7Vx82.jpg
    5
    @amakuramio
    Not sure why the installation is prevented.
    The application itself just creates an accessibility overlay and changes the permission for /sys/class/backlight/panel/brightness to prevent access from liblights.

    Edit:
    Seems like this is the common behaviour for non-playstore apps: disable Google Play Protect
    5
    @kimush
    Found the causing issue with the help of the android emulator.
    I updated the download link on the original post, please try if it's working correctly now.