Charts

Conclusion

  • 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).

Data & screenshots

date OS SOT (h) main full_apps full_systems
2024-02-21 Stock Android 07:26 link link -
2024-02-24 Stock Android 06:59 link - -
2024-02-26 Stock Android 05:07 link - -
2024-02-28 Stock Android 05:22 link link -
2024-03-02 Stock Android 03:56 link - -
2024-03-04 Stock Android 05:10 link - -
2024-03-05 Stock Android 07:16 link link -
2024-03-06 Stock Android 04:56 link link -
2024-03-08 Stock Android 04:31 link link -
2024-03-09 Stock Android 05:26 link link -
2024-03-11 Stock Android 08:06 link link -
2024-03-12 Stock Android 10:24 link album -
2024-03-14 Stock Android 02:33 link link -
2024-03-16 Stock Android 04:28 link link -
2024-03-18 Stock Android 03:55 link link -
2024-03-20 Stock Android 06:34 link link -
2024-03-22 Stock Android 05:41 link link -
2024-03-23 Stock Android 07:35 link link -
2024-04-16 GrapheneOS 04:16 link link -
2024-04-18 GrapheneOS 05:29 link link -
2024-04-19 GrapheneOS 04:20 link link -
2024-04-21 GrapheneOS 03:04 link link -
2024-04-23 GrapheneOS 05:12 link link -
2024-04-24 GrapheneOS 02:13 link link -
2024-04-26 GrapheneOS 04:56 link link link
2024-04-27 GrapheneOS 09:03 link link link
2024-04-29 GrapheneOS 05:56 link link link
2024-05-01 GrapheneOS 04:03 link link link
2024-05-03 GrapheneOS 07:13 link link link
2024-05-05 GrapheneOS 03:20 link link link
2024-05-08 GrapheneOS 08:45 link link link
2024-05-11 GrapheneOS 04:27 link link link
2024-05-13 GrapheneOS 06:09 link link link
2024-05-15 GrapheneOS 02:56 link link link
2024-05-16 GrapheneOS 04:45 link link link

    • Discover7343@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      15
      ·
      6 months ago

      Yes, screen on time is not the best metric to gauge battery life, but it can still be a useful metric to look at.

    • Discover7343@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      6
      ·
      6 months ago

      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.

  • IllNess@infosec.pub
    link
    fedilink
    English
    arrow-up
    11
    ·
    6 months ago

    Thank you for this.

    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.

    • Discover7343@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      6 months ago

      That would indeed be the perfect way to test my hypothesis of adaptive battery being responsible for better battery on stock.

      But I’m perfectly happy with Graphene now, and I don’t want to go back to stock for a month for more data collection.

      But I would love to see some data and testing for the hypothesis if someone else who is on stock is willing to do the work.

  • jacktherippah@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    6 months ago

    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!

  • BearOfaTime@lemm.ee
    link
    fedilink
    English
    arrow-up
    7
    ·
    6 months ago

    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.

    • Discover7343@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      8
      ·
      6 months ago

      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?

  • jetA
    link
    fedilink
    English
    arrow-up
    6
    ·
    6 months ago

    Top tier writeup, really well done! Thank you for your detailed work.