[Galaxy S I9000 Q&A, Help & Troubleshooting] Soryuu:
Unsure about your kernels and battery life as well?

Chaper Three: Kernels

Now we move onto the next part of the custom rom experience:

kernels

.

So let's have another definition, again from neverendingxsin...

What's a kernel?

Kernels are essential to having a great custom rom experience because they are the very core of the Android system. No kernel? No can do.

What's important to note is that you must flash the right kernel. What do I mean by this?

For example,

don't

flash a kernel for Gingerbread on a Jelly Bean rom! All kinds of things can go wrong.

NOTE: A lot of roms come with the option of allowing

Bigmem

, short for "Bigger memory". Quite often there are questions as to what this does.

This

increases the amount of ram

available on the phone, but gradually breaks video recording and playback capability!

The reason for this is that in the system, some ram is reserved for video drivers, both in terms of recording and playback. Increasing the ram means that there is less space available for these and so the functionality is broken.

To give a general idea:

Stock 2.3.6 and the general CM kernel

come with roughly 368MB of ram.

Some kernels and roms come with 392~398MB of ram, though they are patched to still allow for 720p recording.

Then there is an option for roughly 407MB of ram, though that breaks HD playback and 720p recording.

Then finally, if you really want that much ram, there is an option of roughly 439MB of RAM which breaks video capability entirely.

There isn't much else to talk about here; however, these are links to all

actively updated

kernels which are still being supported:

Kitkat 4.4.4

Arrow Kernel (which I believe is bundled by default with Paranoid builds)

Semaphore (Jelly Bean 4.3, 4.2 and 4.1, as well as ICS and Gingerbread builds are available as well)

Mackay kernel (JB 4.3, 4.2 and 4.1 builds are available)

Cyancore (JB 4.3 and 4.2 available as well)

Stock CM11 kernel + Linaro 4.8 and Mackay TWRP

GearKernel (Builds for JB 4.3, 4.2, 4.1 and ICS 4.0 are available as well and all versions are updated)

NeatKernel (builds from 4.1.2 to. 4.4.2 are available in the thread)

Neo

Domnesu Kernel (supports all JB and Kitkat 4.4.4)

Gingerbread 2.3.6

DMore kernel

Chapter Four: Battery life

This is perhaps one of the most frequently asked questions in any forum, regardless of device: What's the best rom for battery life?

Before I delve into this further, I want to make something abundantly clear.

Be realistic about your battery life.

Don't expect miracles to occur on a three and a half year old device running software not optimised for one core, especially if you've got a battery that's just as old as your device. Yes, an option is buying an extended battery such as Powercell or Anker batteries, and there are ways of squeezing that extra bit of juice from your device, but even then, please, just be realistic about how much battery you can get.

And another disclaimer: Your mileage will vary no matter what.

So. here are a few ways you can improve your battery life...

Usage - it begins with you

This one is quite self-explanatory. How do you use your device? Are you a heavy web surfer, gamer and a video watcher? Or are you the kind of person who uses their phone only every so often? How you use your phone will obviously affect how the device's battery life goes. Some basic, but helpful tricks that others and myself have found to just get a bit more charge in:

Turn down your brightness. The display is one of the leading causes of battery usage. When you're inside, chances are you won't need to have your brightness on max in order to read. In that case, turn the brightness down to something that's still comfortable for you. I've found that half brightness or quarter brightness works well for me.

Turn Wifi and 3G off when you don't need them.

Turn Auto-Sync off if you don't need it as much. Auto-sync will constantly run in the background every so often and so it may drain your battery, especially if you're syncing large amounts at a time. On Gingerbread, this option is found in Settings -> Accounts and Sync; on ICS and above, this option is found under Data Usage (press the menu key). Alternatively, under Settings -> Accounts and Sync (Gingerbread + ICS) or under your list of accounts (JB+) you can control which apps sync and which don't.

Use apps like Greenify or even the stock application manager to disable apps running in the background, or at all. Memory-hungry apps such as Facebook tend to run in the background even after you've exited the app. Greenify can "hibernate" the app, meaning that it won't run in the background at all.

Rom choice

Some roms, especially those optimised for gaming performance (take a look at 6A in the post above), will have tweaks that optimise battery life. Usually this is more of a non-issue, but different roms will have different battery lives.

Kernel choice

Kernels are another direct influence on the battery life in many ways. The kernel will allow you to change how the phone behaves and performs using "profiles" known as governors. Some governors are based around performance while others, such as the common "conservative" or "powersave" governor, are intended for saving battery.

Alternatively, underclocking in an option - reducing the core's clock speed. This will sacrifice performance, but because the phone is simply not working as hard as it was before, more battery can be saved.

As well as this, kernels may have specific tweaks and options.

Coverage and signal

While its not something that can be easily changed, try not to have the phone in areas of poor reception, both with wifi and cellular reception. If the phone is constantly searching for an access point this will drain battery in the background. This is also more of a non-issue but does apply more to poor wifi signals.

Wakelocks

What are wakelocks? Essentially, they are apps, processes or services that prevent the phone entering a state called deep sleep. Deep sleeping preserves battery life, much in the same way that a computer left alone for some period of time will enter a sleep mode to conserve power. Wakelocks will keep the phone active, which will continue to use more battery.

Thankfully, apps on the Play Store such as betterbatterystats allow you to monitor any wakelocks present and often allow you to change the behaviour of it. Most of the time, wakelocks are caused by the phone syncing data back and forth.

Buy a new battery!

This one is probably one of the easiest ways to extend battery life - simply get a new battery. Extended batteries for the Galaxy S are relatively inexpensive and usually provide you with enough juice to last the day.

Chapter Five... For you gamers out there

Its probably one of the most frequently asked questions when it comes to rom choice... What's the best rom/kernel/setup for gaming?

Let's review what we know about the Galaxy S.

Android 2.3.6 officially, unofficial roms going up to Kitkat 4.4.4 available

480x800 resolution screen.

1GHz Cortex-A8 processor, single core.

512MB of RAM, in which a general amount of 368MB or 396MB is useable.

Also, for the S Plus users out there:

Same Android 2.3.6, with unofficial support for 4.4.4

Same 480x800 screen

1.4GHz Scorpion processor, single core

Same 512MB RAM

In human terms, what does it all mean?

It means that the devices don't have killer specs. The S Plus is a little bit better off having a slightly stronger processor, but still, its important to understand that we are dealing with older devices here. Don't be too surprised if that new game doesn't run smoothly, if at all on the Galaxy S because chances are it won't. The Galaxy S' hardware is nigh upon 4 or 5 years old so don't expect smooth sailing at all with newer games, especially those that are graphics-intensive like Minion Rush or Asphalt (or anything by Gameloft really)

That being said, here are some ways to maximise gaming performance on the Galaxy S.

Step One - Choose the right rom

First off, you want to choose the right rom for gaming. If that's the case,

take a look at section 6A

in my first post, which lists a few roms for gaming and performance. To repeat myself, these games are optimised for gaming and so on by scripts or tweaks to the system as well as getting rid of apps that may be deemed unneccesary.

In that case you probably don't want a rom with too many features for customisation. These kinds of things do tend to slow the rom down and impact performance (except on roms such as Slim or Illusion).

ICS and Jelly Bean also feature something called hardware acceleration, where the processor is pushed to essentially smoothen things out. This can allow for some serious speed even out of the S/S+ with the right tweaking.

Gingerbread however has stability - the stock rom is really stable and a solid performer, whereas ICS and JB will allow for some pretty insane performance.

Kitkat, being somewhat easier on the system, should have some effect on gaming and performance in general. For more ongoing information about how Kitkat performs, make sure you follow this thread on Kitkat discussion by [MENTION=4586061]xsenman[/MENTION].

EDIT: It seems Kitkat roms can be quite hit-and-miss for some users. Performance, both for gaming and for normal tasks, is reportedly best on ICS.

Step Two - Choose the right kernel

What's the point of trying to optimise the system for gaming if you don't have the right kernel?

Kernels allow for three things:

Overclocking/underclocking. This changes the clock speed of the processor, and overclocking is probably going to be an option you'll want if you want gaming performance. Its simple, increase clock speed, increase power exerted by the processor/chipset. Warning though, the safe limit for the Galaxy S is around 1300~1400MHz. Anything higher than this will cause frequent crashes or bootloops.

Overvolting/undervolting. This changes the voltage delievered to the chipset. Simply said, if you overvolt, in turn you overclock as the core is able to push more. Overvolting can be dangerous if not applied correctly - like overclocking, there are certain limits to overvolting. (If someone could give me values it'd be much appreciated)

Bigmem. This increases the available RAM at the cost of video playback/recording. Refer to my post above to see what kinds of bigmem configurations you can have.

Semaphore is a kernel that is quite popular with gamers here - another one is Devil Kernel.

If you install a rom that's built for games, the kernel will already most likely be heavily optimised to deliver maximum performance (eg. Devil Kernel in Gamerzrom, Cyancore in CyanAOSP). However if you plan on installing this on another rom such as Cyanogenmod, custom kernels will allow you to finetune the above to your liking.

Use apps such as Semaphore Manager (guess which kernel that belongs to), Devil Tools (guess) or NSTools (generic application) or apps such as the built in Performance Control to customise and tweak to your heart's content.

Step Three - Check what's in the background

Apps running in the background are going to use RAM and processing power while you run your game, and even a minimal thing such as data syncing can have an impact on your games. Make it a habit to regularly swipe away apps from the Recents menu that you don't need, or use an app like Clean Master to ensure that your RAM is cleared out mostly for games. Little things can go a long way, and this is one of them.

It may also help to turn wifi off to stop auto-syncing going on in the background, as well as lengthening battery a bit.

More to come!

This part of the thread is still under construction, and as such I'm still in the process of collating more things to add here for gamers. This isn't the end!

~~~~~~~~~~~

That wraps up my thread for now - I'm sure I'll keep adding to this as time goes by and more questions are raised :)

If you also found this part of the thread helpful, please press the Thanks button! :D