Summary:
A simple application that uses a transparent overlay to dim the device brightness, effectively removing PWM.
Download PWMfree
More Information:
Why PWM is such a headache
Brief explanation about PWM
Default brightness control:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
PWMfree brightness control:
Thanks, runs on my S9 on AOSP 8.1. Affects auto-brightness a bit but seems to work as intended. Great work!
Wrong section man
Can someone explain to me what this app on s9 does?
Its suspicious
@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
The brightness does not change while sliding the slider, only after releasing the slider. Please fix, thx.
Can this work on other models (like my Galaxy A3 2017 AMOLED) ?
vratnik said:
The brightness does not change while sliding the slider, only after releasing the slider. Please fix, thx.
Click to expand...
Click to collapse
Unfortunately not possible.
victo24dord said:
Can this work on other models (like my Galaxy A3 2017 AMOLED) ?
Click to expand...
Click to collapse
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.
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.
@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.
Trying out on s8+. But weird thing is, when enabled, if you lower the brightness to 0% the screen becomes completely dark. It should not happen like this, I presume. The app has root access too.
@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: (link in the original post)
It locks the device brightness at 100% and uses it's own slider to control it.
Wootever said:
@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.
Click to expand...
Click to collapse
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?
Wootever said:
@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.
Click to expand...
Click to collapse
Hmm, well than I hope you make this wonderful app s8/+ compatible too
Thanks for your work mate. Would love to use it :good:
qb74 said:
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?
Click to expand...
Click to collapse
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.
Wootever said:
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.
Click to expand...
Click to collapse
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?
@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.
Wootever, you're BEST!
P.S. I sold my Note 8
I installed it but it won't run, s7 stock rooted.
Related
I was tired with the stock autobrightness sensor always setting screen too bright for my eyes - i read in the darkness at night. So i wrote this little thing (thanks to britoso).
Right now it has 4 different brightness settings depending on the ambient light.
as always - created for NEXUS One, tested on FroYo. Needs ROOT
Known issues - not smooth brightness change..
Donno how it will affect the battery life, i may change the sensor sensitivity in the future.
pre-alpha
Comments welcome.
p.s. remember to disable system auto-brightness in settings.
Just installed, I'll report back!
Sounds awesome! Will check it out after work
I will also give it a try
I have te opposit feeling i don't like auto-brightness because it's always to low for me (next to the ipod my screen is lot darker in same light condition)...
I will look into your app later today but maybe an idea to have a slider for adjusting it higher or lower by yourself to fit everyones needs
Will try later, but sounds good to me!
jaapschaap said:
I have te opposit feeling i don't like auto-brightness because it's always to low for me (next to the ipod my screen is lot darker in same light condition)...
I will look into your app later today but maybe an idea to have a slider for adjusting it higher or lower by yourself to fit everyones needs
Will try later, but sounds good to me!
Click to expand...
Click to collapse
hm ye i think ill add some customization so u can select preferred brightness for different lights.. its not hard just need time..
also i still havent decided on how much "steps" should it have..
right now its 4 - full daylight, in-home light, dark-room light, full darkness..
i can set it to a max of 255 steps.. but i guess its not needed + i think that the more sensitive the sensor is the more battery it consumes.. although im not sure
Great idea. Runs fine.
some suggestions:
1) add a progress bar (0..max_value) set to the current sensor value. Alongside the digital value.
2)show the current brightness setting next to or below the sensor value. A progress bar with 4 stops will look good here too.
Its nice to see my android react to its surroundings
Alright unfortunately doesn't work on CM 5.0.8 which is also written above
Can it be customized for it or not?
britoso said:
Great idea. Runs fine.
some suggestions:
1) add a progress bar (0..max_value) set to the current sensor value. Alongside the digital value.
2)show the current brightness setting next to or below the sensor value. A progress bar with 4 stops will look good here too.
Its nice to see my android react to its surroundings
Click to expand...
Click to collapse
does it works ok with ur led app? 2 programs abusing shell at a same time
can u also check if desire got the same path that i PMed you?
Paraglider1982 said:
Alright unfortunately doesn't work on CM 5.0.8 which is also written above
Can it be customized for it or not?
Click to expand...
Click to collapse
ill take a look tomorrow..
t0ol said:
does it works ok with ur led app? 2 programs abusing shell at a same time
can u also check if desire got the same path that i PMed you?
Click to expand...
Click to collapse
I've not been successful with the max_brightness setting for the led yet.
Does not matter how many apps open their own shell, its important that the shell is reused though.
The desire path should be similar to the path for LEDs. /sys/devices/platform/leds-microp/....
britoso said:
Does not matter how many apps open their own shell, its important that the shell is reused though.
Click to expand...
Click to collapse
guess thats why i receive random FCs sometimes with my app..
hi,
just ran across your app.
Do you think there is a way to lower the brightness below androids default low setting? It is still to bright for me at night, so would be great to have something like a "night-mode". i do not want to disable auto-brightness, that works fine for me, it is just the minimum setting that bothers me.
this might end up being very nice after a few updates....brightness level on Android NEVER goes to minimum level even at night which results in useless battery drain.
hm, so who can do this? A simple widget that sets brightness to the absolute minimum...
you can use scripter (needs root,busybox) to run a simple command that does it.
Code:
echo 0 > /sys/devices/virtual/leds/lcd-backlight/brightness
max brightness is 255
Above script as a qr-code thats scannable in "scripter"
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
watercool said:
hm, so who can do this? A simple widget that sets brightness to the absolute minimum...
Click to expand...
Click to collapse
There is a widget light that. I am personally looking for Automatic solution with possibly adjustable light sensor sensitivity
britoso said:
you can use scripter (needs root,busybox) to run a simple command that does it.
Code:
echo 0 > /sys/devices/virtual/leds/lcd-backlight/brightness
max brightness is 255
Above script as a qr-code thats scannable in "scripter"
Click to expand...
Click to collapse
.. thanks! just found out i can do this with tasker too
tasker has been released today to the market
edit: hm, ok.. screen is still to bright with value = 1
make sure auto brightness is off.
There's an app that was posted in this forum which I just found free in the Market
App Title: Dimmer (Night Mode)
Dev: geekyouup
Nothing automatic about it. Opening the app sets brightness to 10. Open again and it says brightness=90.
Sorry if this doesn't help, but seemed relevant.
This app definitely has potential. Would love the ability to fully customize the levels and cut off points (let the user define the number of brightness levels, the brighness %, and the light sensor ranges). Would be PERFECT if it also integrated with settings profiles or simply had a low battery brightness default option. Because right now I use settings profiles to lower the brightness when I reach low battery and unfortunately right now it looks like your app overrides that.
Hi,
I was not satisfied with how Android system auto-brightness work. It just don't allow me, nor us to setup maximum screen brightness level for auto-brightness just like iOS did. This problem is really bugging me about my Nexus S battery usage which is bad because of screen is just too bright while i just need maybe just half of it since i spend most of days indoor.
Then i started to learn Android development (this is my first Android app) and here is my simple app to configure my Nexus S auto-brightness. Currently app feature are:
Save battery! Service implementation is really battery friendly (not even shown on Android battery stats)
Custom maximum screen brightness level (in %) (require modify system settings permission)
Custom screen brightness threshold to apply new brightness level (in %)
Allow to use smooth screen brightness level transition
Custom ambiance level pool interval (in seconds). But when screen is awake, brightness level is calculated as soon as possible
Auto-start service on boot completed (require run at startup permission)
Auto-start service when destroyed by Android OS because of system low memory
Display live current screen brightness level (in %)
Display live current light sensor levels (in lx)
FREE!
Screenshots
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Known issues:
On my Nexus S (CyanogenMod 10.1 nightly) maximum light sensor value is 3.6 million (wow!). Each device could provide different sensor value and steps. Example, Nexus 4 Stock would provide 10.000 for maximum sensor value.
Currently using this and this as calculation method
Because of above issues, i still looking for best implementation to normalize light sensor values. Maybe anyone can help about this?
Download and try it from here
UPDATE
20120212 - Check if device has any Light Sensors
Hey! I like the idea of your app. However, I haven't found the issue of auto brightness being set at too high of a maximum value in my usage. What I have found is that auto brightness does not kick it down enough when in low light/dark situations. Are you planning on adding the feature of setting a minimum screen brightness level as well?
crashed when i start the service on my xperia active ics
kino1122 said:
Hey! I like the idea of your app. However, I haven't found the issue of auto brightness being set at too high of a maximum value in my usage.
Click to expand...
Click to collapse
Hi, sorry for my bad english, the issue is not the screen auto brightness being too high above Android maximum brightness setting (on manual brightness). But, its the same as the problem you described below
kino1122 said:
What I have found is that auto brightness does not kick it down enough when in low light/dark situations. Are you planning on adding the feature of setting a minimum screen brightness level as well?
Click to expand...
Click to collapse
To tackle this problem, auto brightness setting is mimicking how iOS implementing its auto-brightness.
By configuring maximum brightness allowed to certain amount (by %). For example, in dim indoors (light sensor lux values ranging from 201 to 400), the default Android auto-brightness will be 30% to 40% (based on this formula, which is log10(lux)/5), then in this app, I configure maximum brightness to 50%, then screen brightness will be 50% of this Android default 30%-40%, which is 15% to 20%. Exactly how iOS device did with its screen auto-brightness.
About minimum screen brightness, it always will be 0%-3%. Android system use 0 to 255 brightness value. By configuring maximum brightness to 50% (it will be 127), then your device screen brightness will be half lower than standard Android auto-brightness. Since the most battery draining items is screen, by cutting its brightness to half or more, i think it will be longer my battery cycle, as i posted above.
oldsap said:
crashed when i start the service on my xperia active ics
Click to expand...
Click to collapse
Oops sorry for that, i did not test it on other device than my Nexus S with CM 10.1 yet, would you send me your logcat? This link will show you how to get logcat
oldsap said:
crashed when i start the service on my xperia active ics
Click to expand...
Click to collapse
i just updated apk with light sensor checking. i suspect Android could not find any light sensor on your device.
the service was trying to start, check if there is no any light sensor, since it found no light sensor, service is not registering screen on/off broadcast. then when service stopped, service try to un-register a never registered screen on/off broadcast resulting a Force Close/crash.
please try to update it. thanks
Just what I was looking for. Thanks!
NOTE: I don't have physical access to a S10+, if you try the App please post photo of the physical phone as done with S10 below, thanks!
Download now from Google Play Store! And if you like, please leave a rating.
Energy Ring is exclusive for Samsung Galaxy S10e, S10, S10+.
Similar Apps for other Devices:
Energy Bar - http://bit.ly/eb_xda
Energy Bar Curved Edition for S8/S9/S10/+ - http://bit.ly/ebc_xda
Energy Bar Curved Edition for Note 8/9 - http://bit.ly/ebc8_xda
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Adds a configurable Energy Ring around the camera lens indicating current Battery level. Dive into the various configuration options, not only you can quickly glance and get the battery info but, Energy Ring adds an accent to your phone's camera lens.
Got a full charge? The Ring will be a 360 degree wrap around the front camera lens.
Battery depleting? So will the arc of Energy Ring.
Out of the box features:-
✓ Energy Ring can be configured from a width of 1 pixel to a donut thick ring
✓ Energy Ring puts almost 0% load on CPU, as it wakes up only to reflect any change in battery level
✓ Energy Ring's direction can be configured as clockwise/bidirectional/anti-clockwise
✓ Energy Ring can hide on fullscreen content (apps, videos, images, games etc)
✓ Energy Ring can be configured to change colors automatically depending on the live battery level
✓ Energy Ring could have a mono color/multiple color segments/gradient (pro)
✓ You can literally assign any color in the world for your favorite configuration
✓ Energy Ring has a number of cool animations whenever a power source is plugged into your device
All that is cool! But what about Energy Ring consuming Battery?!
This is one of the most exciting question for me to answer. Energy Ring more than anything understands that you need to utilize your battery efficiently (after all, that's why you installed the App, right? .) Energy Ring sits on the screen silently putting almost 0% load on CPU, if battery level changes, Android wakes up Energy Ring. Once awake, Energy Ring quickly updates itself and goes back to sleep. And to be that extra efficient, the Ring goes on deep sleep when you turn off the screen, meaning it doesn't even read changes in battery level when the screen is off.
Notification Access requirement:
Energy Ring does not read any Notification whatsoever, it merely relies on it to be alive. Be assured that the App does NOT access anything.
Download now from Google Play Store! And if you like, please leave a rating.
Thank you @AnthZulli for helping me out to get this version up!
jagan2 said:
I don't have physical access to a S10+, if you try the App please post photo of the physical phone as done with S10 below, thanks!
Thank you.
Confirmed working on S10+
Click to expand...
Click to collapse
also confirmed working on s10+ thanks! Anyway to make this stay on with aod? that would be cool i think
Nice! Thank you... Going to give it a go...
S10+ Tapatalk
It's a great job, thank you very much, it works very well in S10 +
Working great here will post a picture after work.
Yea it's working good on my S10+. Is it possible to make it show when you receive a notification instead?
Absolutely beautiful! Thank you for this, I was really looking forward to this!
Only one suggestion, if we could adjust the left-right alignment of the circle around the camera, that would be perfect. Right now I looks good, and is very functional, but the left edge of my circle runs a little under the camera notch.
Also, is there a way to show this on the AOD?
4.5 out of 5, would donate/purchase app to support developer.
Does it drain battery like that other app that lights for notifications.
Sent from my SM-G975F using Tapatalk
vojopd said:
Does it drain battery like that other app that lights for notifications.
Sent from my SM-G975F using Tapatalk
Click to expand...
Click to collapse
Well, it doesn't display when your screen is off, so I don't think it is going to have any MAJOR drain on it.
If any, it will be negligible. It only updates when the battery level changes.
It doesn't even show as an app when I check battery specs. I see my AOD using 1%.
OP, is there the ability to get this working with the AOD enable? I'd love to know the battery level with lockscreen/aod using the notch notification.
Also, please see if you can add the ability to reposition the notch led. The reason for that, I see that the notch ring is literally a millipixel off to the right, so the right side appears more full then the left side.
Didn't work for me initially. For some reason I had to uninstall, reboot my phone, then reinstall.
Works pretty good, but as others had stated before, it needs slight adjustment.
Another thing I would like to mention: the pixels are very noticeable, especially around the curves. Is there any way to make the ring have a better resolution?
Seems like the left side curve (toward the center of the screen) isn't as thick as the right (toward the outside edge) on my phone. Amusingly in screenshot it looks perfect so I wonder if the pixels it's trying to display in that spot don't actually exist, like it's offset slightly from the actual camera cutout?
Do we have to worry about burn in?
This is a really great app!!! Working well for me, thanks dev!!!
Should we worry about burn in?
If you leave the ring on your screen all the time, yes, you should worry about burn-in
Was excited for this, but had to get rid of it. With it running, you lose the ability to answer Yes/No when Chrome asks if the site you are on can access your location.
If the ring moves itself, i think the risk for burn-in the screen will be minimal.
10s+
Looks like my question is broader than just my phone's topic. In general: I need to adjust gamma to use with low brightness/light to not burn my (maybe weak or ill?) eyes off. I have Xiaomi Redmi 9 (galahad, MTK) and I've already tried like every obvious method: google, different apps, custom ROMs, kernels, even searched kernel sources for any clue... All I have now is some info that it's kernel feature and fact that problem is, gently speaking, not popular. KCal and LiveDisplay doesn't show any controls except RGB channels, though on other phones there's typically also hue, saturation, contrast, gamma(value/intensity). I'm assuming it's Mediatek issue, also I've heard they got their own module called GAMMA (ironic), but I can't found any info about it. Therefore, hardcoding linear gamma "curve" into kernel can be enough for me, but my most referent finding "gamma_table" appears to be just some unused template? Maybe i'm digging too deep and/or making some silly omission... I want to know!
Spoiler: If you don't know why gamma is so special...
It doesn't affect pure black and white, just curve the shades between them, so it's nothing like brightness & contrast. That means you can have your preferred display luminance with any custom level of detail nicety. On Windows you can play with gamma in Control Panel (hello Win11(XP)) - Display - Calibration (on the left). On Linux (xorg) it's # xgamma -gamma 1.0.
Logically the hash of black and white pixels must be gray, but in fact with "standard" gamma it melds with 3/4-white. So the gray point is not actually gray and real gray is dimmed away lol. Some white on real gray is like a flashbang
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
You can say that we have logarithmic vision perception, and you'll be right, but for narrow bands, like low light, it seems to be mostly irrelevant. I looks like this: if full perception range is absolute, then small inadaptable partial ranges are almost linear. Also AFAIK 2.2 was a hardware standard for CRT displays, so it may be a bigger issue than I think: HCL design standard isn't so old, and there's imperial system still used today IYKWIM...
Lol no one here too? I've thought that MTK is just a cursed chip, but assuming zero replies on similar threads about gamma... Is that topic so hard?
Problem is solved by Screen Ballance. Set Contrast and Brightness to 100%. Strenght is the gamma settings.
Screen Balance - Apps on Google Play
First Android App to allow adjustment of the screens White Balance - Finally!
play.google.com
wji999 said:
Problem is solved by Screen Ballance. Set Contrast and Brightness to 100%. Strenght is the gamma settings.
Screen Balance - Apps on Google Play
First Android App to allow adjustment of the screens White Balance - Finally!
play.google.com
Click to expand...
Click to collapse
It seens optimal to use it with Display Callibration fór maximum brighrness settings.
Display Calibration - Apps on Google Play
Calibrate your screen's tint and shades to get a clean , smooth display.
play.google.com
Use a kernel with Kcal, install smartpack kernel manager or any other kernel manager that has the option to adjust the RGB. Set the contrast and the screen value. By adjusting the screen value you are adjusting the gamma from what I've seen.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
About the app
PixelParts began as a simple High Brightness Mode (HBM) tool. Since then, it has evolved to include a detailed battery information panel, a display saturation level adjuster, charging limiter and more. The app now offers a wide range of features, transitioning from its original function as an HBM tool to a hub for device tweaks and stats on customs, with a lot more planned going forward. The application needs to be included at build time, so this is a project for device maintainers from other ROMS to use if they'd like.
Current features
CategoryFeatureDescriptionQS TileRequired kernel changesBatteryBattery infoView various battery informationN/AN/AStart/Stop chargingStart/stop charging at specific percentagesN/AN/ADisplayHigh brightness mode (HBM)Directly enable high brightness modeYesN/AAutomatic HBMAutomatically enable high brightness mode based on sunlight intensity (lux)YesN/ASaturationControl the saturation level of the displayN/AN/ALEDsTorch strengthAdjust the brightness of the Pixel Torch flashlight QS-TilePixel TorchN/AUi-BenchJitterCalculate rendering jitter.N/AN/AUSBUSB 2.0 fast chargeEnable CDP mode for faster charging on USB 2.0 ports.YesCommit 1/1
Including PixelParts in your AOSP build
1. Remove HbmSVManager
Commit 1/2 (vendor)
Commit 2/2 (device tree)
2. Clone PixelParts to packages/apps/PixelParts in your AOSP source tree
Run the following cmd at the root of your source tree:
Code:
git clone https://github.com/Evolution-X-Devices/packages_apps_PixelParts packages/apps/PixelParts
3. Include the app at build time
Commit 1/1 (device tree)
This includes the device.mk file from the PixelParts repository, which will add the PixelParts application, its initialization script (init.rc), and the necessary security policies (sepolicies) to your AOSP build during compilation.
Testing new changes
When testing new changes, it is much faster to compile the application standalone and update it manually rather than running a full AOSP build. Please note that some changes may require you to chmod 0666 sysfs nodes and set selinux to permissive. When compiling a full AOSP build, this is not needed assuming the init cmds and sepolicies have been properly configured.
Lunch your device and run the following cmd:
Code:
m PixelParts
This also assumes you are already running an AOSP build including PixelParts as a priv-app in /system_ext.
Screenshots
Source code
GitHub - Evolution-X-Devices/packages_apps_PixelParts: Parts application for pixel 6/7 series
Parts application for pixel 6/7 series. Contribute to Evolution-X-Devices/packages_apps_PixelParts development by creating an account on GitHub.
github.com
Translations
Crowdin
crowdin.com
Credits
WorkAuthorBase preference fragment & CustomSeekBar preferenceNeobuddy89Original AutoHBMServiceHikari no Tenshi & maxwenShakeUtilsAmeChanRainFirst launch warning dialogRamyskiLeonids particle systemPlattysoftRandomized color particle effectLorD ClockaNUSB 2.0 Force CDP kernel changeeng.stk
Reserved
Thanks! this app helps so much!
Thanks. I guess it is not possible to use it on stock rom? Could not find a reason to test custom roms on this device tbh
Automatic HBM is someting I would like a lot Will be available on OP9 Pro also?
I've just checked the code and it seams to me that it could be improved in that way:
1) set HBM on immediatelly when lux > luxThreshold and hold it in time KEY_HBM_ENABLE_TIME + start timer to be sure that HBM goes off after the amount of time)
2) set HBM off when lux < luxThreshold or time KEY_HBM_ENABLE_TIME finished. Hold HBM off in the KEY_HBM_DISABLE_TIME (to release and cool a display)
This helps to protect the display - typical use case: I have turn-by-turn navigation on, the sun is shining so I want to switch HBM off after a while to protect my screen. It would be great if HBM can go off when temperature is high also (at least battery temperature, better phone temperature)
thuryn said:
I've just checked the code and it seams to me that it could be improved in that way:
1) set HBM on immediatelly when lux > luxThreshold and hold it in time KEY_HBM_ENABLE_TIME + start timer to be sure that HBM goes off after the amount of time)
2) set HBM off when lux < luxThreshold or time KEY_HBM_ENABLE_TIME finished. Hold HBM off in the KEY_HBM_DISABLE_TIME (to release and cool a display)
This helps to protect the display - typical use case: I have turn-by-turn navigation on, the sun is shining so I want to switch HBM off after a while to protect my screen. It would be great if HBM can go off when temperature is high also (at least battery temperature, better phone temperature)
Click to expand...
Click to collapse
There are some major improvements coming to the HBM aspect of the app. One of them being the ability to define a temp threshold. The entire autohbm service is being rewritten, and it's preference and sub preferences will be relocated to their own fragment/activity soon.
AnierinB said:
There are some major improvements coming to the HBM aspect of the app. One of them being the ability to define a temp threshold. The entire autohbm service is being rewritten, and it's preference and sub preferences will be relocated to their own fragment/activity soon.
Click to expand...
Click to collapse
really, really cool, thank you a lot fot this
Moved autohbm preferences into their own fragment. Finishing the AutoHBMService rewrite and adding a temperature threshold now.
PixelParts: Move autohbm preferences into their own fragment · Evolution-X-Devices/[email protected]
Signed-off-by: AnierinB <[email protected]>
github.com
PixelParts: Display the current lux level in AutoHBM fragment · Evolution-X-Devices/[email protected]
During onSensorChanged, the lux level is set as the summary for the current_lux_level preference. Listener is registered when enabling the main switch and when the fragment is resumed (only if the...
github.com
That's great. Just my experience today with my OP9Pro. I was reading PDF file outside, on the sun, HBM off and event thought, battery temperature (other sensor is not present) shows 53 °C. I don't know what makes the hear - CPU or display, but it could be good if CPU frequency goes down for a while or display goes to lower brightness. Or 53 °C is OK, I don't know.
One more experience with heating - I've found that when I ride a motorbike, turn-by-turn navigation on, even if display is on low brithness the phone heats a lot and battery is not charged because of that. So some CPU throttling is needed
thuryn said:
One more experience with heating - I've found that when I ride a motorbike, turn-by-turn navigation on, even if display is on low brithness the phone heats a lot and battery is not charged because of that. So some CPU throttling is needed
Click to expand...
Click to collapse
Most definitely not a result of the app.
AnierinB said:
Most definitely not a result of the app.
Click to expand...
Click to collapse
Of course not, it's like an advice for the next feature ;-)
thuryn said:
One more experience with heating - I've found that when I ride a motorbike, turn-by-turn navigation on, even if display is on low brithness the phone heats a lot and battery is not charged because of that. So some CPU throttling is needed
Click to expand...
Click to collapse
The problem with heat, overall, in my experience is related to one thing; the sun. If the phone is charging on my Dash and I'm in a position where the phone is in the sun, the heat goes up quickly. Otherwise, usage has never caused heat with this phone as it did with the P6P
HipKat said:
The problem with heat, overall, in my experience is related to one thing; the sun. If the phone is charging on my Dash and I'm in a position where the phone is in the sun, the heat goes up quickly. Otherwise, usage has never caused heat with this phone as it did with the P6P
Click to expand...
Click to collapse
Interesting. I've found that also - the sun. But the CPU is also the source of heat (because I ride after sunset). Anyway, I've found a solution - slow down the CPUs by Tasker.
Great app. Just curious, will adaptive charging work together with stop charging in pixel parts? (Assuming i set the stop charging at 100%) or it will disregard the adaptive charging and charge it to 100% and stop there