[Samsung Galaxy S22] dragos281993:
Sorry, @NisseGurra for not getting back here last night, like I said I would.

I also realized afterwards that you were on a GSI build but I intended to help you clean up the stock firmware.

The best advice I can give you right now though is to try doing what I did. Please don't take it personally if I explain or define stuff that you might already know or actually know even better than me. If someone else reads this, they might learn something from it or do some tweaking even if they're on the stock ROM or something custom. You take only what you need from this.

The whole thing starts with the process of opening the Apps section in the Settings, checking/turning on the "system apps" option and opening everything in there one by one. You'll have both apps and services showing up in there and what you wanna look for is the "Battery" section, or whatever it's named on your GSI. You basically need to see how much battery it's wasted since the last charge. High battery usage=no bueno. In that case, you google that app/service, weird name or not and see if it's rudimentary for the proper functioning of your phone. If it's not essential or it's used as a service for some apps that you don't even use but it's there just in case, then you can get rid of it. And obviously, you have to do this for every single app and service in there. It's a pretty time-consuming job but if you want to keep your sanity in the end, then it's a good activity. After that, for the remaining things, you can use "Servicely" from the Play Store and force the stuff you don't need at all times to sleep/Standby when the screen is off or even prevent it from running in the background altogether.

You should also download Naptime and use it to activate Aggressive Doze and disable Motion Detection too so the phone stays in doze mode even when you're moving around, a scenario in which by default the phone comes out of doze whenever it detects motion.

Stuff like "Find my phone" I had to turn off. There was one option for this thing somewhere in the google account section and also in the Samsung provided services in the Settings, on the stock firmware. Talk about a huge mess. I don't really need those. If I lose my phone, which never happened to me so far, it is what it is, but I'd rather have better battery life than have a service running at all times just for the moment I lose this crap if that ever happens.

This whole thing above is mainly meant to improve the standby time when the phone is idling.

And to not forget to mention this, I have Battery Saver active at all times. Normally, everything should be crippled while this thing is on including the refresh rate of the screen which gets stuck at 60Hz. For that, there's Galaxy Max Hz. It offers the ability to activate something called "Keep smoothness on power saving mode" and you won't even know that the thing Is even on. The essential part is that the OS is supposed to be less active, decrease the background BS and also the power of the CPU down to 75%. This part doesn't really matter because I already planned on downclocking it but if there's anything applied by default to make the CPU less aggressive along with the stock decrease to 75%, then downclocking it would make it even better because now you have lower frequencies which now jump up and down at a slower rate. I mean I hope it's done like that. I haven't monitored the difference in the activity of the CPU with Power Saver on/off so I can't tell for sure. It would be logical to happen that way though. Another important little part is that I installed "Universal GMS Doze" which allowed me to put the Google Play Services on "Restricted" in the Battery section. I had to restrict the "play services framework" too cause they liked to molest my battery too when I wasn't looking. But I digress.

On the stock firmware, I also use Battery Tracker made by Samsung. I really like it because I can easily select the period of time of activity/battery drain by dragging 2 sliders from one side to another and see what happened during that time, and you get background activity stats and what percentage of the battery it's wasted.

For the much better and more detailed Screen on/Screen off stats or charge/discharge information which all show in a useful notification, I use Battery Guru. It barely drains any battery so it's very well optimized.

Back to the technical part, the other important thing was to downclock the CPU, and this is essential for the active time which later translates into better SOT.

I'm using Smart-Pack Kernel Manager for the tweaks because it's the most detailed of them all and well rounded in my opinion and it's also the lightest on the battery, while in use, of course. It's got a side panel with all the sections that have the tweaks I'll mention in this post.

The following part is gonna be a bit more detailed. It's just a few tweaks in the end but I'll throw in some basic information here and there to make it a little more informative and nice to read. Keep in mind that even if I tweaked the stock firmware here, the tweaks are essentially the same for the kernel or at least similar. The values and options shown in the kernel manager can differ in terms of naming or the way you can change them, but they should be overall similar.

Note that this is more like a presentation of what I did on my phone, not a tutorial. You can open that kernel manager, look around and see for yourself the range of tweaks that are available of which a few are the ones I changed.

Now to business.

The stock max frequencies for the 8 Gen 1 on my S22 are something like this:

- 1785MHz for the 4 LITTLE Cores, 2496 for the 3 Middle cores, and 2995 for Core 8, which is also the big core (terribly inefficient "fat" bastard).

So we've got: 1785, 2496 and 2995 respectively.

My phone is running smoothly with all these downclocked right above the border between noticing and not noticing a difference in the UX department if you get what I'm saying.

So my current maximum clocks for all 3 clusters are 1363, 1555 and 1401 respectively. They're lowered pretty drastically, I know, but I don't care about benchmarks, in which you'd probably see a difference. In the real world, opening and closing apps among other regular things, are not gonna be noticeable. It's not like you're gonna sit with 2 phones next to you, a stopwatch in your hand and cheer when your phone is half a second faster than mine. It's just not gonna happen. That 30% increase and performance. blah blah, when a new generation of a CPU is announced you're not gonna notice especially when we're talking about CPUs that are only 1 generation apart.

Anyway, these lower frequencies will obviously help with thermals mainly but also with the battery life, although the difference for the latter is not that huge it's still better than before.

The CPU Governor for all 3 clusters is set "walt" by default. I couldn't find any information on how it's supposed to work and behave but because it's the default, I'm sure it's focused on something in between performance and battery savings. So I set it to "conservative" for all 3 clusters. This governor likes to get the frequencies back down as soon as possible after a task is done. So this is also gonna help with thermals.

Now to the CPU Hotplug. In the past when big.Little became mainstream, a whole performance cluster was called in for the heavy tasks and they followed a basic routine: when a certain threshold is crossed, the big cores take charge of the situation and when they cross a second threshold, which is a lower value, those big cores step away and they hand over the steering wheel back to the Little cores for the light tasks until they're needed again. They still pitched in but a bit more lightly. Now just one big core appears to be able to do that on its own, however, this time the job is split between the big core and the middle ones. So there's a bit more control over a situation because you've got those middle cores that are pitching in for the medium intensive tasks.

Anyway, I decided to up that threshold and basically make the CPU ask for the big core's help when the job gets a bit more difficult, heavier, essentially making it contribute less often. I don't want to reboot my phone to see what the default values were but now they're basically higher: "Busy down Threshold = 50", and "Busy up=70". I just explained what this threshold is, so you probably already got how this is supposed to work looking at these numbers.

And the last thing tweaked is the GPU. Sadly, the stock kernel doesn't allow for the downclock to stick. It's missing the parts which allow for this sort of functionality because it's stock and wasn't meant to be tweaked. The only thing I could do was to change the power level. You haven't got anything in there other than an option to let you change a value. The essence of it though is that the lower the number, the better the GPU performs. It's not gonna work outside of the defined parameters though. It only gets more active. Anyway, the default value is 10. I set mine to 12, which is the last level. This way I basically put the GPU in a more "conservative" state, so to speak. While gaming, I haven't noticed any performance loss, so hooray. It is doing its job but it's a bit less aggressive.

To finish this long a$$ post, I gotta say that after doing all this above, my battery life has improved quite drastically.

3, 3.5h SOT was what I consistently got without tweaking anything. Right now I'm at 4h49m SOT for only 64% wasted. I charged the phone only to 85% and the battery is down to 15%. The idle drain is only 0.3%/h.

I'll post a screenshot for the hell of it. Anyway, so far so good. One thing's for sure though. I'll do some research and if I manage to find any battery from another Samsung phone that's bigger but is very close in size to the one in this phone, it doesn't matter if I have to cut some of the lips inside to make it fit, I'll do it. I'll make that a project.

Edit: Everything I mentioned above is getting balanced out by other things somehow and 3.5h is the definitive SOT on average I have been getting since forever now. I therefore stopped trying anything, relocked the bootloader and I haven't done anything to the OS anymore. The SOT stayed the same and there aren't any improvements with any update. So this is pretty much how it is and there's nothing we can do about it. The phone is simply pure trash regarding the battery life.