On my Pixel 8, stock seems to offer better battery life compared to GrapheneOS, with a mean SOT of 06:51 on stock, versus a mean SOT of 06:03 on GOS.
I can't be sure where the difference in battery life is coming from, but it may be due to stock's adaptive battery function that is not available on GOS.
However, the slight increase in battery life on stock is not worth the amazing privacy and security benefits that GOS provides over stock, so I will be sticking to GOS.
Context
I wrote a similar post to this one based on the tracking and analysis I did while I tested out stock Android before switching to GrapheneOS (Lemmy), and I wanted to complete my battery tracking by also seeing how GOS battery life compares to stock Android.
Similar to my testing while on stock, I used my phone as normal on GOS, with the below configurations:
LTE only (I don't have a 5G plan)
120hz refresh rate
Owner user, with separate work profile managed by Shelter
Sandboxed Google Play Services enabled for both main profile and work profile on the owner account
Dark mode
Bluetooth on, always connected to my Galaxy Watch 6 Classic and very often connected to other BT audio devices
With the above configurations, I used the phone normally, then took screenshots once I got the low battery warning notification at 20%. I started including the screenshots for the per-systems screen after seeing that the SYSTEM (IDLE) stats would be useful to track, but since I only have these datapoints for 11 charging cycles on GOS, I've excluded them from the analysis, although I am including the per-systems battery usage screen for reference.
Personal usage patterns & use-case
I try to achieve a balance between privacy and convenience, so I am using Sandboxed Google Play Services and only use one user. However, I minimize unnecessary permissions and try to install only FOSS apps on my main profile while installing as many proprietary apps into my work profile as possible.
The way I used my phone across stock Android and GOS was quite similar, although I did try to take advantage of GOS features whenever possible, such as enabling memory tagging, toggling off network permissions for apps that don't need them, etc.
Depending on your privacy threat model, you can use a more strict setup without sandboxed Google Play Services, which may actually decrease battery life due to constantly active web sockets, or you may use multiple users to compartmentalize different apps into different profiles, which may save more battery versus my compartmentalization via Shelter.
Notable observations
Although I got less SOT in general using GOS, I was still able to push the SOT past 9 hours with an idle time of 26:58 on my heaviest day (link), which is amazing battery life.
Streaming music on Spotify seems to be a huge battery hog, and other Pixel users have noticed the same (link). The worst SOT I got, which was 02:13, seems to be largely due to at least an hour of music streaming on Spotify.
On a related note, the background time tracking of Spotify is unreliable, as there were days when I was streaming music for about an hour (link), which led to a 10% battery decrease, but the battery usage screen says Spotify was active in the background for less than a minute (link).
You say you stick to open source, do you happen to block your messenger apps from using Play Services? I know from experience the fallback notification delivery mechanisms of a lot of apps will keep the radio on for much longer than it would be with Google Play Services, so I wonder if that could make up for some of the difference.
Nothing is blocked from using Play Services on my device. The biggest reason of me using sandboxed Google Play Services was actually to eliminate excessive battery drain from constantly open web sockets, since I also had a terrible experience with battery drain when using Lineage without GApps.
I don't want you to do more work than you have to but it makes me wonder the difference in SOT between Stock Android with Adaptive Battery on versus Stock Android with Adaptive Battery off. I wonder how that would look against your findings against GrapheneOS.
Haiya literally just finished studying for a statistics final so I went on Lemmy and the first post I see is more statistics =). Haha, anyway, great work!
Yea, something isn't kosher with the comparison. SOT isn't a great measure, you'd want a continuous power consumption, and is this with or without accounts/apps?
Keep in mind without Play Services, some apps will maintain their own data sync, which can really hurt battery life (part of what play Services or any Unified Comm platform aims to help).
My Pixel runs forever without Play Services. I've found it to be the single largest consumer on all my phones.
SOT isn’t a great measure, you’d want a continuous power consumption
I agree, there's so much variability in daily usage patterns, so SOT isn't a great metric, as I noted in another comment. Still, it can be useful, and that's why I waited until gathering at least 15 charging cycles per OS so that I can minimize daily variability by increasing the sample size. I also wanted to incorporate idle time in the analysis, but I only tracked idle time for 11 cycles on GOS, so I couldn't include the idle dimension in the comparison. Plus, my Pixel 8 is my daily driver, so I would have been phone-less for 2 months, which is not realistic.
is this with or without accounts/apps
This is just me using my phone as usual, with all apps and services that I usually use. It would have been more statistically accurate to test out the OSes in a vacuum without anything installed but the bare OS to eliminate confounding variables, but that wouldn't be representative of what it's like to actually use both OSes on a daily basis, so I tested both while using both normally as I would.
Keep in mind without Play Services, some apps will maintain their own data sync, which can really hurt battery life
Yes, I also noted the same in my post:
you can use a more strict setup without sandboxed Google Play Services, which may actually decrease battery life due to constantly active web sockets
And I used to get insane battery drain from Signal's websockets when I was using Lineage without GApps (link), which was one of the biggest reasons for me to use sandboxed Play Services.
My Pixel runs forever without Play Services. I’ve found it to be the single largest consumer on all my phones.
Do you use Signal and other messaging apps on your device? What's your average SOT?