[Samsung Galaxy Mini] alin.p:
Hey guys. This is Badass Kernel, a modified version of AU Kernel with a little bit too many additions to fit in the Original Development section.

You'll find my ROM right here! :)

Logs are disabled in this kernel. This is not a bug, it's a feature.

Compatibility:

Android 4.2.2

CM10.1

AOSPA

PAC

AOKP

Android 4.0.4/4.1.2

CM9

CM9.2

AOSP

Touchwiz ICS V5

So.. new stuff:

1.0

CPU Undervolt down to (0-1-2-4-6).

A_U's bootsplash

Added Badass CPU Governor

Added Badass GPU control

Replace ZRAM LZO compression with Google Snappy compression which is a lot faster

Kernel Samepage Merging enabled by default

Writeback tweaked to do the work only when the screen is off

Added ROW I/O scheduler

Tweaked smartassV2 for more battery saving

Tweaked CFQ and Deadline

1.1

Added frandom support for CrossBreeder to finally work properly

Fixed memory leak in android binder

Restored and updated Lazy CPU Governor (expected: smooth UI, much better battery life and some lag in the first 20-30 seconds after boot)

Filesystem tweaks

Memory tweaks

Added SFB net scheduler and Veno TCP congestion algorithm for better use of internet

Disabled a lot of debugging

1.2

Implemented Dynamic Filesync and enabled by default

Proportional Rate Reduction for TCP

Correct AXI bus values for CPU

Re-added 825 and 844 MHz frequencies (be careful with these as they're not stable, they were left out with a reason)

Trimming /cache every 15 minutes if media playback is stopped.

Updated LowMemoryKiller driver (if you use ram manager or scripts for setting minfree, here are some really good values:3072,4096,12800,14336,15360,19200)

New bootsplash (HTC-alike)

1.2.1

Fixed Snappy

Further UV (0-1-2-3-6)

1.2.2

Enabled Compaction and linked it to LowMemoryKiller

Updated Deadline(now it's better than ROW)

Changed kernel compressor/decompressor from GZIP to the much faster LZ4.

Writeback tweaks from Linus Torvalds

Added TCP congestion algorithms: Hybla, Westwood, Highspeed-TCP. Default is Hybla because in tests, performed better than the rest.

1.3

Enabled Triple Buffering (component of Project Butter by Google)

Added Tiny RCU for smaller memory footprint

Added BoostPulse interface for SmartassV2

1.3.1

Added BoostPulse interface for SmartassH3 and updated it with a new variable(boost_freq) to suit the governors ramping policy

1.4

Lots of code optimizations

AHB Overclocking for faster R/W operations[787 MHz and higher don't have this kind of overclocking because of instability)

New 652 MHz undervolted frequency

CPU Unaligned Access (much faster booting time because of better kernel decompression)

Buffer values updated from Samsung original sources(Triple Buffering, Camera)

SmartassH3 and KSM parameters tweaked for better battery life

1.5

CPU clocks rework

Modified AXI Bus to allow lower CPU frequencies

Added completely stable 68 MHz frequency

New undervolt settings (0-0-1-2-3-5-6-7)

Rewritten Badass CPU and GPU control driver to make more use of 68 MHz frequency

Tuned SmartassH3 to make more use of low frequencies

Added fully functional zCache and ZsmAlloc, backported from 3.4 kernel

1.5.1

Added LowBattery Powersave feature for Badass governor

Badass parameters are more performance biased now

Recalculated Frame Buffer Size for Triple Buffering

Clean-up(remove deprecated CPU governors)

1.6

Add newest Adaptive RED Net Scheduler from 3.4 kernel and make it default.

Replace Snappy Compression with LZ4 Compressor(this is the fastest compressor on the market)

Make our kernel probably the first 2.6 kernel to have these two features

1.6.1

Update LZ4 Compressor from original sources and make it fully functionable

1.7

Replace zRam XvmAlloc with the better ZsmAlloc integration

Update zRam from 3.0 drivers

Make zRam LZ4 decompressor work faster in the same CPU cycles

1.8

Add SIOPlus scheduler (finally something equal or better than deadline)

Add CPU Idle driver to support C4 Deeper Sleep state

Add Wheatley governor to make more use of the new C4 state.

Change Bootsplash

1.9

New governor: WheatleyPlus

Reworked scaling down logic for less calculation

Added BoostPulse interface

Linked BoostPulse to the touchscreen driver (now the governor can really "sense" a touch and boost the frequency after a specific time threshold)

Added Triphasic scaling up logic from Badass (Phase2 is 360 MHz and Phase3 is 480 MHz)

Fixed the Deep Sleep states verification for scaling

Added GPU Control Driver

Added Sampling Down Momentum for dinamically changing the factor for scaling down

Updated OnDemand governor (it's pretty good at the moment)

Remove Badass and Lazy as they were deprecated

Link BoostPulse to the touchscreen driver for SmartassH3 and OnDemand

Optimize the CPU clock structure for WheatleyPlus

Update SIOPlus and add fluid tunables

Introduce Dynamic Cache Pressure

Revise Dynamic Writeback algorithm

Introduce Timer Slack Controller (aka Timer Coalescing, explanation below)

Deep Sleep tweaks

Backport OOM Killing algorithm from 3.8 kernel

Backport LowMemoryKiller and Timed GPIO drivers from 3.8 kernel

Add Whitelist feature to LowMemoryKiller (you can write PIDs of the processes you want to whitelist, in this file > /sys/module/lowmemorykiller/parameters/w_list ~ below you'll find the script for doing this at boot)

Android Binder update

CFS kernel scheduler optimizations

GPU driver optimizations and code cleanup

Make sure that the GPU turns off when the screen is off

Make the sleep states transitions faster

1.9.1

Finetune WheatleyPlus for better responsiveness

Optimize WheatleyPlus for overclocking on 652 MHz and 768 MHz

Fixed graphical glitches(hopefully)

1.9.2

Every bug fixed

Removed WheatleyPlus

Updated Interactive governor to the latest version from 3.8 sources

Add Dynamic Interactive governor (98% the same as Interactive, but it dynamically changes its parameters according to the load)

Dynamic PLL Overclock

Further undervolt until 768 MHz (the latter allows us to do this without losing performance)

Predefine minfree and adj values

Fully functional App Whitelist (example script here)

Forced unaligned access

Fast Charge (use this to enable it: FastCharge.apk - 1.29 MB) [Disconnect USB Cable - Turn ON - Connect USB Cable]

Timer Slack Controller: (this is a copy-paste from boype's thread)

What does the timer slack feature do?

Timer slacking aims to synchronize applications' and processes' CPU requests. The goal is to wake up the CPU less often in oder to save battery. What you need to know here is the following: waking the CPU up and putting it back to sleep again consumes power. Imagine that four apps wake the CPU up four times each in one second. While without timer slacking the CPU would be woken up 16 times, it is desirable to coordinate the wakeups. If done right, the CPU would wake up less often, effectively allowing power savings and longer sleep periods. This is what timer slacking does.

I have activated timer slacking only for background applications, so that everything else stays as responsive as you know it.

Apple has recently introduced this feature under the name 'timer coalescing' with their Mac OSX Maverick (link).

More information: How Apple does timer slacking ('Timer coalescing') (Scroll a little down to the diagrams)

LZ4 Compressor:

LZ4 is a very fast compressor, based on well-known

LZ77 (Lempel-Ziv) algorithm. Originally a fork from LZP2, it provides

better compression ratio for text files and reaches impressive decompression

speed, in the range and beyond 1GB/s per core (!), especially for binary files.

These speeds are scalable with multi-threading modes, quickly reaching

RAM speed limits on multi-core systems.

ROW I/O scheduler:

The ROW scheduling algorithm will be used in mobile devices as default

block layer IO scheduling algorithm. ROW stands for "READ Over WRITE" which

is the main requests dispatch policy of this algorithm.

The ROW IO scheduler was developed with the mobile devices needs in mind.

In mobile devices we favor user experience upon everything else, thus we want

to give READ IO requests as much priority as possible. The main idea of the ROW

scheduling policy is just that: - If there are READ requests in pipe - dispatch them,

while write starvation is considered.

Download:

AOKP ICS:BadassKernel-AICS.zip - 4.74 MB

AOKP:BadassKernel-AOKP.zip - 4.77 MB

AOSP 4.0.4:BadassKernel-ICS.zip - 6.41 MB

CyanogenMod 10:BadassKernel-CM10.zip - 7.01 MB

CyanogenMod 9.2:BadassKernel-CM9.2.zip - 4.74 MB

CyanogenMod 10.1:BadassKernel-JB.zip - 4.77 MB

Various tweaks

Script for adding apps to LowMemoryKiller's whitelist:Whitelist

(you have to edit it to add your own apps, then move it to init.d and set correct permissions. right now you can only add one app, I'll fix this in the next version)

Script to enable zRam with optimized disksize for our Mini: View attachment 2064488 (flashable zip) [UPDATED]

Jeeko's PureAudio fixed for CM10.1 and AOKP: View attachment 2066252 [ Please thank Jeeko for this awesome mod. ] :)

NOTE: This version of PureAudio is compatible with absolutely any equalizer or player.

If you have Titanium Backup installed, in the menu you'll find an option named "Integrate sys Dalvik into ROM". Use it.

This is something like odexing your system, but keeps the classes.dex files inside the apps. Don't worry if you don't have a lot of system space, Titanium will odex as much as it can until the free space runs out.

TIP: So in latest version of CrossBreeder, the OP added some system tweaking which interferes with our kernel. So I edited those parts to match our settings and device limits.

If anyone wants to install CrossBreeder:

-First uninstall by flashing this file: CrossBreeder_Uninstall_7.2.13.zip - 943.12 KB

-Then install this custom version: CrossBreeder_7.2.13-Badass.zip - 1.59 MB

Sources:

GitHub

Credits:

A_U for compiling the base kernel

franco for the various tweaks I cherry-picked from his source

androidarmv6 for fixing bluetooth

Ezekeel for his Wheatley governor