Oh, you'll love this.. So what actually is different in this kernel?
Core
- Updated to 2.6.39.1
- Brain F*ck Scheduler implemented for fast task switching, smooth scrolling and possible power saving
- Code cleaned and optimized in the right places
- Updated Android Binder, Ashmem and Timed GPIO drivers from 3.10-rc5 upstream sources
- Compressed with the fastest compressor on the market: LZ4
Processor
- Updated CPUFREQ drivers
- Voltage Control (undervolted by default to a range of stable values)
- Aggressive Overclock
- PLL2 Overclock possible inside the app
- Updated all the governors to their latest versions
- Zen Governor written exclusively for our SoC
Zen
- Borrows part of its scaling logic from SmartassV2
- Adds Zen Dynamics
- This feature makes the governor's parameters completely dynamic. The parameters change by themselves based on various system information (cpu load, suspended state etc.) This ensures that the governor will not bump to high frequencies when it is not needed, and that it will provide enough computational power in high workload cases.
- Performance Bias parameter
- This is a simple number between 0 and 15 and the only tunable parameter of the Zen governor. When this is changed every other parameter is recalculated through different formulas based on this value. A higher value will make your phone snappier, at the cost of some battery life and viceversa.
- TouchPulse and SweepPulse interfaces
- TouchPulse is the updated and much more accurate version of the older BoostPulse. This works by giving a slight boost on user input (key or touch).
- SweepPulse shoots the CPU frequency to the maximum value when a Sweep function is activated to ensure best responsivity. Don't worry, this happens very fast, so no battery life is wasted in the process.
- Suspend profile
- When the screen is turned off, the governor keeps the power usage at minimum by re-tuning its parameters
Memory
- LowMemoryKiller updated from 3.10-rc5 upstream sources
- LMK Whitelist
- This is a list of apps which will never be killed by the system, unless you do it intentionally.
- I didn't have time to implement a better way for adding apps to this list, so I'll explain the primitive and only usable way right now.
- In /system/etc/Badass you will find a file called whitelist. This file can only contain apps in java class path form, separated by commas. Like this:
- com.touchtype.swiftkey, org.adw.launcher, com.whatever.app
- All the apps that you add to this list, will be written to the LowMemoryKiller at every boot.
- LMK Aggressivity: this parameter makes app-killing more or less aggressive. It can be controlled inside the app.
- Latest ZRam driver with LZ4 compression (activated at boot so you won't have to bother)
Sweep functions
- When the screen is off...
- Sweep2Wake
- This gesture wakes the phone by sliding your finger from left to right in the middle of the screen
- Its sensitivity is controlled by a single parameter (factor) which can be modified inside the app
- DoubleTap2[Wake/Play/Pause]
- This gesture wakes the phone with a double tap on the screen if the lock timeout of 5 seconds hasn't passed yet. If the timeout has passed, double tapping the screen will Play/Pause the music.
- The Media Control feature (Play/Pause) can be disabled, making DoubleTap2Wake work even after the lock timeout has passed.
- Pocket Keyguard
- This feature prevents accidental unlocks when the phone is inside your pocket.
- Sweep2Wake
- When the screen is on...
- Sweep2Lock
- Sweep4Menu
- SweepKeys
- All these functions work by swiping up from the first 3 pixels at the bottom of the screen(deadzone).
- The Deadzone and the Sweep sensitivity are changeable in the app.
Internet
- Westwood+ TCP Congestions Algorithm
- Adaptive RED net scheduler backported from 3.4 upstream sources
- Congestion window values tweaked
- TCP Proportional Rate Reduction
Performance
- Zen and ROW I/O schedulers
- Triple Buffering
- TinyRCU
- Dynamic Filesync
- Using the 20-50x faster frandom generator instead of the default random.
- Never depleting entropy using Haveged and some new kernel code.
- Dynamically changing kernel values based on suspend profiles (writeback ratios, cache pressure etc)
- System cleaning every 3 days:
- Zipalign every apk
- Vacuum and Reindex every SQLite database
- Clean the garbage data created by the system
- Clean app caches
- SpeedMod (disable kernel debugging)
- Remove 98% of the active debugging code
- USB Fast Charge
Native Multitask Enhancer
- Replace services.jar Supercharging with a more native approach
- Make Home app unkillable
- Raise PreviousApp priority to make task switching faster
- Handle CPU time allowed for the foreground app
- Raise priority of the following processes
- Kernel Threads
- ALSA driver (audio playback)
- Keyboard
- SystemUI
- Restrict resources used by the media scanner
Dev's last words (a.k.a. read this carefully before saying anything stupid)
- This is a stable version and I call it final. I won't update it, unless there are some major bugs like setting phones on fire, giving them artificial intelligence or sh*t like that.
- DON'T USE ANY OTHER TWEAK ON THIS KERNEL. These tweaks include, but are not limited to:
- Performance Pack
- Fly-On Mod
- CrossBreeder
- I/O Tweaks
- V6 Supercharger
- Whatever else with a cool name which has the words script, pack or mod in it
- Don't get me wrong, these mods are good (most of them), but what's good is already included in the kernel itself
- Use Greenify. It is an awesome app, and it does its job very well. I couldn't fully replicate its' features inside the kernel because I don't have access to Android APIs.
- The first boot will be slow, due to the zipaligning and SQLite optimizing. Don't freakin' panic. This will happen only once in three days.
- If you feel that the system is slow with the kernel, raise the Performance Bias, the LMK Aggressivity and maybe your max CPU frequency. The default values are optimized for ICS, not JB. Play with those values until you find that sweet spot.
- Change your damn Superuser app. Use SuperSU or an insecure SU binary. The original SU binaries found on ROMs are freakin' slow nowadays.
- Even better, use ICS. JellyBean is not for our low-end phones. But, your choice..
- The key settings for the SweepKeys are ROM dependant. For example Recents SweepKey might not work on some JB ROMs. I can't do anything to fix this.
- Don't be lazy. I'm here to help, but please show me that you've made some effort on the research for your questions.
And the thanks go to..
- Androidarmv6 Team
- Erikcas
- psyke
- A_U
- Franco
- Boype
- Benee
- AOKP Team
- Paul Reioux (Faux)
- Stratosk
- zeppelinrox
- Ezekeel
Downloads
- Badass.v2(AOKB-JB).zip - 6.65 MB
- Badass.v2(AOKP-ICS).zip - 6.63 MB
- Badass.v2(AOSP-ICS).zip - 8.29 MB
- Badass.v2(CM9.2).zip - 6.62 MB
- Badass.v2(CM10.1).zip - 6.65 MB
- Badass.v2(CM10).zip - 8.89 MB (UMS not working)
Installation
- Boot into recovery
- Wipe data
- Re-flash your current ROM to avoid conflicts
- Flash the appropriate kernel zip
- Reboot and wait 5-10 minutes for the first boot to complete
- Use the integrated app to control the kernel
Ramdisk sources:
Ramdisk-tass
XDA:DevDB Information
Badass.v2, a Kernel for the Samsung Galaxy Mini
Contributors
alin.p
Kernel Special Features: Sweep2Wake, DoubleTap2Wake, Native MultitaskEnhancer, Brain F*ck Scheduler
Version Information
Status: Stable
Created 2013-09-27
Last Updated 2013-09-27