Android OS Forum banner
1 - 1 of 1 Posts

17 Posts
Discussion Starter · #1 ·


Based off SONY ICS latest sources 4.1.B.0.587 / 4.1.B.1.13


Originally developed for ARC, and the rest of the 2011 line, its about time I brought it to the play, this is based on LuPuS v10 from the ARC thread.Works on both GingerBread and Ice Cream Sandwich, Kernel will include ramdisk for CDMA also so far has not been tested so please report wether it works or not please let me know.


#include std.h
* Your warranty is now void.. LOL I guess you knew it already.
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, you getting dumped or you getting fired because your phone*
* bootloops and alarm does not go off. Please do some research if you have any *
* concerns about features included in my kernel before using it! YOU and only*
* YOU are choosing to make these modifications.

You have a question post it in the thread,
Instead of Pm'ing me, as other users may
experience your problems

Included in kernel
Added Io-schedulers --
- Noop
- Anticipatory
- Deadline

Added Governors --
- lagfree
- brazillianwax
- smoothass
- scary
- savagedzen
- smartass
- smartassv2
- smartassH3
- interactivex
- minmax
- powersave
- performance
- conservative
- ondemand
- interactive
- userspace
Lulzactive - Thanks to Tegrak
Based on Interactive and Smartass. When workload is greater than or equal to 60%, the governor scales up
CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step.
When screen is off, frequency is locked to global scaling minimum frequency

Virtuous is a modded smartassV2 which gives even more battery time then smartassV2:)

Intellidemand - Thanks to faux123
This is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling,
and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such.
Intellidemand does not jump to highest frequency when screen is off.

Lazy - Thanks to Ezekeel
The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand.
Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state
on a step overriding sampling interval.
Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always
select the maximum frequency while the screen is off.

Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.

Is a conservative-based governor. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.

To 'experience' Lionheart using conservative, try these tweaks:
sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).
Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.

BadAss Governor:
Badass removes all of this "fast peaking" to the max frequency. Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1024Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.

Superbad -
A "superbad" super smooth rendition of a highly optimized "smartass" governor!

Darkside -
A "slightly more agressive smart" optimized governor!

What else-----

-SLQB - (SLAB allocator with Queue)-(both)
This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate).

- Added Cleancache
- Supports ext 2,3
- Updated zRam
- Lzo compression/decompression speed has doubled on average.
- Init.d support
- Fudgeswap
- And much more :D see changelog in post #2


To Run LuPuS Menu use either ScriptManager get it HERE on google playstore


Use Terminal Emulator get it HERE on google playstore.


* information is in lupus menu

1/ CIFS Menu *

2/ zRam Menu *
Set zRam size ( default is 60)

3/ Frandom Menu *

4/ Clean and Remove tweaks
Remove init.d's

5/ Tweak Menu
Note all tweaks are preset from here and option to set as init.d's
Clean all temp files
SQLITE optimizations
LMK Optimizations
Network optimizations
Defend against ARP spoofing
Remove android logger
SDcard speed tweak
Flag blocks as non-rotational

6/ Performance Menu
Note all options are se by user input from here and option to set as init.d's
Set CPU frequencies
Set Governor
Set IO-Scheduler
Voltage Control
VM tweaks (explained below)

VM Tweaks

dirty ratio and dirty background ratio 1 & 2
This controls how often the kernel writes data to "disk" (in our case the internal microSD system card, not the removable microSD card). When your apps write data to disk, Linux actually doesn't write the data out to the disk right away, it actually writes the stuff to system memory and the kernel handles when and how the data is actually going to be flushed to the disk. These values represent a percentage, the higher the percentage, the longer it waits to flush, the lower the percentage, the more often flushes will occur. Now remember, we are dealing with solid state storage, not the traditional disk platter and spindle. So we are actually able to delay flushes a little longer with solid state versus a traditional hard drive disk.

How old "dirty" data should be before the kernel considers it old enough to be written to disk. It is expressed in 100ths of a second.

This is the interval of when the writeback daemons periodically wake up and write "old" data out to disk. It is expressed in 100ths of a second.

min free kbytes
This is used to force the Linux VM to keep a minimum number of kilobytes free. The VM uses this number to compute a pages_min value for each lowmem zone in the system. Each lowmem zone gets a number of reserved free pages based proportionally on its size. Default is 2048kb.

This controls overcommit of system memory, possibly allowing processes to allocate (but not use) more memory than is actually available.

0 - Heuristic overcommit handling. Obvious overcommits of address space are refused. Used for a typical system. It ensures a seriously wild allocation fails while allowing overcommit to reduce swap usage. root is allowed to allocate slighly more memory in this mode. This is the default.
1 - Always overcommit. Appropriate for some scientific applications.
2 - Don't overcommit. The total address space commit for the system is not permitted to exceed swap plus a configurable percentage (default is 50) of physical RAM. Depending on the percentage you use, in most situations this means a process will not be killed while attempting to use already-allocated memory but will receive errors on memory allocation as appropriate.

A property for the Linux kernel that changes the balance between swapping out runtime memory, as opposed to dropping pages from the system page cache. Swappiness can be set to values between 0 and 100 inclusive. A low value means the kernel will try to avoid swapping as much as possible where a higher value instead will make the kernel aggressively try to use swap space.

VFS Cache Pressure
File system cache (dentry/inode) is really more important than the block cache above in dirty ratio and dirty background ratio, so we really want the kernel to use up much more of the RAM for file system cache, this will increas the performance of the system without sacrificing performance at the application level. The default value is 100, as a percentage, and what you want to do is lower the value to tell the kernel to favor the file system cache and not drop them aggressively.

Show your support for the kernel and my work by putting this in your signature, its only a quick one I done up with my limited time :(


A big thanks to -
FXP Team
Anyone missing please PM me

Downloads in post 2

Kernel source --- -b master

CWM source -- -b lupus-cwm


Previous Releases

Initial Release

  • -built with linaro
    - ext 2/3/4
    - Tweaks to wifi
    - Init.d tweaks
    - Linaro Optimizations
    - Improved Battery Life alot :)
    - Thumbee support
    - All governors from OP
    - All Io-Schedulers from OP
    - ARM7 optimizations
    - cgroup scheduling
    - Brought OC back down to 1.6 max (no need for it above 1.6 unless u want to kill your device)
    - Tiny RCU
    - Upddatedd patched and fixed LZO
    - lowered vfs cache pressure
    - Increased Wifi- Range and added support for channel 14
    - 0 % Battery patch - Thanks @ Bazoocaze
    - Better memory copy
    - Better memory move
    - LMK Optimizations (LowMemoryKiller)
    - VDD support (voltage conrol)
    - Cleancache
    - Compaction added
    - KSM
    - CIFS (improved support)
    - Updated to newest SIO Io-Scheduler
    - Google Snappy Compress & Decompress
    - Added Vibrate To Recovery (Notification to enter CWM)
    - Built with Linaro 4.7.3 (02-01-13)
    - Reworked Ramdisk, uses new method
    - Auto Root updated to SuperSU, only roots device if Superuser.apk or SuperSU.apk dont already exist
    - New LuPuS menu - check in post #1 on how to use it
    - Build in wifi modules ( if wifi modules don't work on first install reboot)
    - Built in CIFS & USB OTG (from lupus menu)
    - Built in zRam, you can also change zRam size (from LuPuS menu)
    - TWRP and latest CWM Recovery {change default in LuPuS Menu)
    - Supports Gb and ICS (GB has wifi broken ATM)
    - Custom partitions - Thanks @ CosmicDan
    - Tweaks menu from LuPuS menu script
    - Free'd 11mb RAM
    - binder changes from
    - binder: Fix use of uninitialized variable.
    - net sched: fix some kernel memory leaks
    - net/ipv4: Eliminate kstrdup memory leak
    - ipv4: force_igmp_version ignored when a IGMPv3 query received
    - pids: Fix a race in pid generation that causes pids to be reused immediately
    - smart toggle overclock upto 2ghz
    - changed RD compression to LZMA
    - enable group scheduling
    - removed some debugging
    - cleaned up config
    - USB tether
    - enable ipsec tunnel support in kernel
    - SQLITE3 DB vacumming
    - Further compressed ramdisk
    - disabled cuse, enabled md4 + nls_utf8 as modules
    *** Probably missing a few here ***

    - Updated kernel to
    - CWM = volume down
    - TWRP = volume up
    - Fixed Problem with PLAY store
    - Added fool-proof to ramdisk,( if android version is unsupported device will boot CWM)
    - Gave 30MB more space to system to avoid certain ROMs not booting
    - Complete clean up and new improved LuPuS Menu
    - Fixed AROMA
    - Backport Binder from CAF 3.4.0
    - Triple Buffer
    - Frandom
    - Tweaked deadline
    - Tweaked performance governor
    - Tweaked SmartassV2
    - New governor SmartassH3
    - New IO-Scheduler ZEN
    - Patch so entropy no longer depletes
    - Zcache
    - Minor update to touchpads
    - ARM optimizations
    - Genlock backported from CAF
    - Replaced old compaction with newer/better version
    - Backported logger from CAF and free'd RAM from logger
    - Updated improved LMK
    - Removed fudgeswap
    - Updated crc32 lib from 3.3 kernel
    - New net scheduler Stochastic Fair Blue (SFB)
    - Optimized Tiny RCU
    - CFS tweaks
    - Quick keyboard reset (hold HOME + POWER)
    - Timed_gpio backported from CAF
    - Snapdragon optiizations
    - Improved boot time
    - Improved wifi to load at first boot
    - Removed Autoroot feature
    ** Plus more see here for all patches and credits**
    Also Thanks at gu5t3r and [NUT]

    - Fixed Video playback/recording
    - Reverted back to linux kernel
    - Removed triple buffer (caused some lag)
    - Fixed problem with root @ gu5t3r
    - LuPuS Script now runs properly from Terminal Emulator @ gu5t3r
    - Added fool-proof to ramdisk -- if non-supported Android version is found (not ICS or GB) Kernel will boot into CWM
    - Reduced size of kernel
    - CWM fixed

- Fixed CPU Governor and Frequencies not sticking at boot -- thanks @gu5t3r
---- Custom CWM
- Clean-up of menu
- Added own wipe options menu -- with extra options
- Aroma File Manager from CWM --- Must have aroma ( placed on root of sdcard)
- Multi zip installer
- Reboot options - Power off re-added under this menu
- Pointless but people keep asking me for it so re-added wipe battery stats also.
- LuPuS themed..

- Fixed Custom Partitions NOTE:: This is the last time you will need to format partitions
- CDMA Camera Fix Thanks @vokal1992 for the lib (will install camera fix if device is r800x in ROMs build.prop)
- Removed persistent RAM
- Remove other errors from dmesg
- Improved wifi loading
- Disabled Key Reset (can be enbled in LuPuS Menu)
---- CWM updated to
- Fixed Advanced restore
- Fixed busybox symlinks generation (aka) fixed CWM backup not working
- Fixed install from sideload being mixed up with toggle signature
- Remove confirmation from install from sideload as it can be cancelled at anytime.
---- Complete Ramdisk Clean up & Improvment
- Reworked booting
- Supports m2sd and other ap2sd scripts
- Fixed Reboot To Recovery (It reboots to last one used IF you don't have scripts that wipe /cache on boot)
- Reworked Kernel logs, they are located at /cache/recovery/ and /data/local/tmp/
- Improved init.d
- lupus menu clean up
- Boot.d - If phone is taking a long time to start move suspicious init.d scripts to /system/etc/boot.d
They will be run in background and won't affect boot time.


- Added Ultra-KSM
- Tuned Governors
* superbad
* lionheart
* virtuous
* darkside
* conservative
* smartassH3
- Really use google snappy zRam (improves zRam)
- Fix nasty sigreturn bug
- Fix compiler warnings
- Do uninteruptible sleep
- Other various fixes
- Added support for CM9
- Other various ramdisk improvments
- Updated TWRP
* Mounting Mass Storage in recovery fixed
- Updated LuPuS CWM to latest Official CWM changes
* Fixed advanced restore
* Removed Reboot Options
* Brough Reboot System Now back to Main Menu
* Brought Power Off back to Main Menu
* After install of zip dont return to main menu
* Minor UI changes[/hide]

- Fix some lag in gaming
- Set default swappiness to 20
- Removed fsync
- Removed Cleancache
- Removed zCache
- Removed WasActive page flag
- Removed Zen IO-Scheduler
- Fixed issue with some devices booting into CWM
- Fixed CWM install options order
- Fixed TWRP adb and mounting USB storage
- Fixed PATH for LuPuS Menu
- Added UKSM options to LuPuS-Menu


If you like my work please consider buying me a beer or something else ;)
by clicking the DONATE ME button, of course it isn't needed but greatly appreciated and keeps me motivated.

===================== L U P U S - S T O C K - D O W N L O A D S ===================


If you need root for STOCK ROM

Root : ( Flashable via recovery )
* SuperSU : Download
* Superuser : Download

Custom Partitions ( Does not support CM9 )

md5 = d062539d219822709cb845e2589480be

md5 = 22d977aa5bec0fb39b12fecf3a7e3dfc

Stock Partitions ( Supports CM9 ) (camera in cm9 not working)

md5 = 5e9165f19f859fb362908aef1f416c02

md5 = 4c714686f7b03743b2c36abaf2f07c20

Mirrors - and all other releases

Check your MD5 match the above if not re-download

1 - 1 of 1 Posts