[Kernel] CoCore-E-Refresh r24

814 posts
Thanks Meter: 4,005
By cocafe, Senior Member on 9th February 2013, 03:40 PM
Post Reply Email Thread
Announcement from cocafe: CoCore-E-Refresh Kernel for Power Users

CoCore-E-Refresh Kernel for Power Users

( Index )

1. Instructions & Installation & APP & Downloads & Credits & Source
2. FAQs & HOW-TO
4. Change log

( Responsibility )



( What is needed )

* Samsung GT-I9070 (Android 4.1 Samsung Stock Firmware)
* Samsung GT-I9070P (CoCore-EP)
* Some Android experience
* Knowing how to use Terminal
* Patience

( Downloads )

Please check the DOWNLOAD button at the TOP.

( Features )

Linux Kernel 3.0.101
fs: CIFS filesystem supported
fs: FSync control (Combined dyn fsync control)
fs: F2FS filesystem
fs: Mount noatime and nodiratime by defualt [franciscofranco]
fs/aio: Asynchronous IO performance improved
mm: SLQB memory allocator
arm: ThumbEE supports
arm: Optimzed rwsem algorithm [ezekeel]
arm: Remove old version sha1 implementation
arm: CPU unaligned access path
arm/vfp: Built with neon
arm/crypto: ARM AES and SHA-1 crypto implementation
arm/topology: Linaro lastest patches
abb-Codec: ABBamp audio v2.4.8
abb-Regulator: USB power sharing
abb-Charger: Charger control
abb-FG: Disabled LowBat wakelock
abb-FG: Cycle Charging control
abb-Chargalg: Charge cycle control
abb-Chargalg: Real charged notification
abb-POnKey: PowerOn key emulator
lib: Optimized CRC32 algorithm [ezekeel]
lib: GNU C version memcpy
net: More choices of TCP congestions
net: Proportional Rate Reduction for TCP (PRR implementation)
mmc: SPI CRC can be disabled!
rcu: jRCU [Joe Korty]
mm: UKSM
swap: Swap supports
zram: Optimized for android
misc: CRT off-screen effect support
misc: PN544 NFC works (I9070P only)
mali: Utilization control
mali: PP scheduler tweakable
mali: PM sampling rate tweakable
mali: L2 cache max reads writable
mali: Max preemptive allocated OS memory size control
mali: OS Kernel memory allocation order tweakable
mali: Pre-allocated memory size 16mb -> 24mb
mali: Disabled mali state tracking
mali: Disabled mali debug prints
mali: Fixed mali OSK memory allocation failures
mali: GPU clock auto-boost to 480MHz by default
mali: GPU OC control, up to 730Mhz
block: 9 IO schedulers
snvet: Disabled svnet wakelock
sched: Enable arch_power by default
sched: Disabled sched debug stuff
prcmu: Clock control module [Thanks Adi_Pat for module framework]
sched: ARM multi-core scheduler
debug: Removed Samsung debug code [Adi_Pat]
debug: Disabled KGDB [Adi_Pat]
debug: Removed frame pointer [Adi_Pat]
debug: Fixed mismatches [Adi_Pat]
debug: Android logger as module (freed 4mb RAM)
debug: Disabled function tracer
st-mmio: Burning Camera LED mode
mxt224e: Touch sensitivity improved by default
mxt224e: Touch booster control
mxt224e: Touch params control
mxt224e: Touch auto calibration
mxt224e: Sweep2Wake (with wakelock)
mxt224e: TouchScreen configs writable
mxt224e: Frequency of reporting touch events increased
mxt224e: Touch issues of left and right sides fixed!!
cypress-touchkey: Touch2Wake (with wakelock)
s6e63m0: Startup gamma issues fixed
s6e63m0: Color filters (In technical, It's While RGB)
s6e63m0: Gamma tuner
s6e63m0: Brightness unlocked
s6e63m0: Ultra-low brightness (Night Mode)
s6e63m0: Illumination(brightness) table tuner
s6e63m0: Allowed maximum brightness in manual mode
s6e63m0: LCD clock tweakable (FPS limitable)
bcmdhd: PM_FAST mode by default (faster WiFi)
bcmdhd: PM mode tweakable
kernel: LZO compression
random: Entropy tweaks [dorimanx]
random: Frandom module support
ramdisk: Custom bootanimation supports [diego-ch]
ramdisk: LZO compression
ramdisk: Init.d scripts supports
ramdisk: ADB permission fixed (prompted SU permission by default)
ramdisk: Enabled ADB in LPM charging
ramdisk: ClockworkMod Recovery [diego-ch]
ramdisk: ClockworkMod Recovery [CyanogenMod, thanks OliverG96]
ramdisk: ClockworkMod Touch Recovery [CyanogenMod, thanks OliverG96]
ramdisk: Team Win Recovery Project [TeamWin]
cpufreq: Overclocking up to 1228MHz, more cpufreq steps
cpufreq: Undervoltage supports, 200MHz UVed by default.
cpufreq: 15 available CPU governors
cpufreq: Fix CPU1 hotplug issues when swtching governors
cpuidle: Deeper sleep state
makefile: Useful optimization flags
ux500 pcm: Correct max PCM periods bytes
usb switcher: Soft workaround for fixing ADB connection issues
toolchain: Linaro GCC 4.6.2

More details in changelog and Github repos

( Installation )

If you have never installed a custom kernel on device:
You can:
1. Extract the latest kernel.bin.md5 from the zip, and installed it via Universal Kernel Flasher.
2. Use dd method below to install a custom kernel, and also you will have a custom recovery.
3. Make a Odin flashable package to flash custom kernel which will increase custom binary counter.

[Universal Kernel Flasher]
Thanks Frapeti for this tool!

[DD method]:
You need to ROOT your phone first.

1. Download kernel zips
2. Extract kernel.bin.md5 from zips
3. Copy kernel.bin.md5 to somewhere you like (e.g. /sdcard)
4. Open Terminal app,use these commands
Now lets go to superuser mode


Now lets flash(dd) kernel to kernel partition

dd if=/sdcard/kernel.bin.md5 of=/dev/block/mmcblk0p15

5. Reboot to take effects


* If you type a wrong dd command,it might hard birck your phone
So please think twice before hit enter
* WARNING: Think twice before you hit Enter,
some people bricked their phone because of a wrong command.
* Recommend SAFER recovery method
* It is recommended that check the md5 of kernel.bin.md5
If it doesnt match 'md5.txt' in zips,dont flash to phone.
Please re-download zips

[Recovery method]:
CoCore-E 4.0+ will only provide flashable zips.
Please flash custome recovery kernel first(3.3 or others).
Press Vol.Up + Home + Power to go to recovery.
Then choose zips in external/internal sdcard to flash.

( Uninstall )

Flash stock kernel to uninstall

dd if=/dev/block/mmcblk0p17 of=/dev/block/mmcblk0p15

* mmcblk0p17 is a backup of stock kernel in phone
* If not sure, flash stock kernel via Odin

( Tweak App )

@hastalafiesta 's CoCore Manager
@wizwin 's tweak app for CoCore-E

( Source )


( Credits [a-z] )

@adi_pat for helping the kernel and patches&hints!!!
@CallMeVentus for teaching a lot of things and testing EP!!!
@fedevd Good buddy!!
@frapeti for testing and helps!!
@OliverG96 for helps of building recovery!!!
@diego-ch for helping the kernel and cwm!!!
@hafidzduddin for helping the kernel and great hints!!
@ming86 for debugging and patient testings!!!!
Samsung for opening kernel source!!
@Shaaan for helping and finding cwm reboot command patch!!
@shut_down for answering in threads!
Team Win for T.W.R.P recovery!!
@t4n017 for ramdisk source
@BOOTMGR for various helps
@etch04 for various helps
@mkaluza for various improvements

XDA:DevDB Information
CoCore-E-Refresh, Kernel for the Samsung Galaxy S Advance I9070

cocafe, cocafe, TeamCanjica, adi_pat, CallMeVentus, fedevd, frapeti, OliverG96, diego-ch, hafidzduddin, Shaaan, shut_down, BOOTMGR, etch04
Source Code:

Kernel Special Features: Various controllers, CPU OC/UV, GPU OC, Screen dimmer, Sound enhancer, etc etc

Version Information
Status: Stable
Current Stable Version: r24
Stable Release Date: 2015-05-22
Current Beta Version: -
Beta Release Date: 2015-01-13

Created 2014-03-21
Last Updated 2015-05-22
The Following 319 Users Say Thank You to cocafe For This Useful Post: [ View ] Gift cocafe Ad-Free
9th February 2013, 03:40 PM |#2  
cocafe's Avatar
OP Senior Member
Flag -
Thanks Meter: 4,005
Donate to Me
Question 2. Faq & how-to

( FAQ )


Q: What firmware does this kernel support?
A: All ROM bases on stock firmwares,all stock firmwares.


Q: Why my phone lags a lot!
A: Please check the cpu load.If it always goes very high,some apps are using cpu!And please check that you are not in PowerSaving mode.


Q: Why my phoen lags after booting in some minutes?!
A: Media Scanner is running in the background. More media files(especailly HD videos),more time it will take


Q: Why my phone cannot go to deep sleep when screen is off!!!
A: Fix it youself. It is app(s) taking the wakelock. Not kernel.


Q: Do I need to wipe anything when flashing this kernel?


Q: My phone rebooted suddenly!!! What can i do?!
A: Give me /proc/last_kmsg and logcat. Will try my best to fix.


Q: Do i need to wipe data or dalvik caches?
A: No.


Q: Hey!Your kernel has issue!No-fills CPU shows me a wrong freqs!Fix it!
A: This is NOT issue.Every I9070 kernel will have this problem.Because No-fills will show you Dynamic Min/Max scaling freqs,DVFS(dynamic voltage and frequency system) will adjust Min/Max freq according to system load.
Open SetCPU,it shows you real freqs.Or check sysfs directly.


Q: My GPS doesnt work!?
A: Our Kernel only provides a trigger of enabling the GPIOs of GPS.It doesnt have GPS driver.
So check it in setting menu or try to reboot to fix or try to edit the region server of your GPS,remember to enable Wireless Position


Q: The audio volume is tooooo low in calls!!
A: My teammates diego and frapeti confirmed that this is baseband issue.
Flash newer firewares(at least LQB) or flash newer baseband directly.


Q: Hey my phone still lags after startup!
A: 1) Select another governor 2) Install Elixir(an app),tap Running,Select CPU usage filter,check which app(s) is taking cpu load!Then kill them.
In most caes,download provider is the battery and performance dainer! It runs when you download a file in browser like Chrome,it has a
serivice named Media Scanner,so dont remove it,just kill it.


Q: My phone cannot charge properly!
A: This is caused by your cable. Our usb switch driver has bugs right now(stock kernel too). We are fixing it. See here

( HOW-TO )

HOW-TO play with this kernel.
Terminal is needed.

If you get 'Permission denied', you need su permission.
If the devices lost responses, hold power button 8s to reboot.
Simply,You can cd to the folder first,then do echos.
Then `???` stands for the number to input.

It's a good idea that use SManager to add widgets on the launcher to switch tweaks!
I have uploaded my scripts in POST#5

( Boot time )

CoCore-E boots faster than stock normally.

Stock: 8000ms - 8500ms
CoCore-E: 7800ms - 8000ms

To check boottime

cat /d/boottime/summary

* TWRP kernel boottime is longer(around 8000ms). Because of that big ramdisk!

( Bootanimation )

Put in /system/media/.
Recommend you changing the permission to 0666.
If there is no, kernel will show Samsung's.

( CPU governors )


Performance, OnDemand(default), Powersave,
Userspace, Conservation, Interactive, InteractiveQ, PegasusQ, PegasusQPlus, HotPlug, OnDemandQ, AbyssPlug,
Smartassv2, Zzmoove, LulzactiveQ

* OnDemand has been patched cpu idle detection
* PegasusQ is taken from SiyahKernel (new version)
* PegasusQ recommended
* Most of custom governors are based on ondemand/interactive
* OndemandQ/InteractiveQ will hotplug cpu when screen turns off only.
* If you mind the battery life time, choose HotPlug. It hotplugs cpu frequently.
* Interactive updated to linux-android-3.4 [Thanks! Aditya!]
* Zzmoove is the new version(0.3)
* LulzactiveQ, it will hotplug CPU1


Samsung DVFS is disabled by default now, since it conflicts with new cpufreq table.
Now we have took back the cpufreq control.
Use CPU control APP like SetCPU, no-frills CPU to set min/max cpufreq.

I created some fake interfaces in /sys/power/, so Power Saving mode still works.

To change the Power Saving max cpufreq: (default: 800MHz)

echo 600000 > /sys/power/cpufreq_dvfs_powersave


LiveOPP can control the properties of each cpufreq step.

LiveOPP values in /sys/kernel/liveopp
View all files in that folder first.

CPU freq table:

(Showed freq) : (Real freq)
200000 kHz : 192000 kHz
400000 kHz : 399360 kHz
600000 kHz : 599040 kHz
800000 kHz : 798720 kHz
1000000 kHz : 998400 kHz
1050000 kHz : 1049600 kHz
1100000 kHz : 1100800 kHz
1150000 kHz : 1152000 kHz
1200000 kHz : 1200000 kHz
1250000 kHz : 1228800 kHz

Overclocking depends on the device CPU quality you have.

You need to enable setting voltage in the slot first, if it is disabled:

echo set_volt=1 > arm_slot<id>

To decrease the voltage (UV) of a step: Example: @200MHz

echo varm- > arm_step0

To increase the voltage (OV) of a step: Example: @200MHz

echo varm+ > arm_step0

To change the voltage of a step:

echo varm=0x?? > arm_step<id>

* It means it accepts a HEX value only.

* ARM voltage is in 12.5mV steps
* Recommended that not tweaking Overclocking steps voltage

( GPU OC )

GPU clock controller valued in /sys/kernel/mali
Available interfaces:


Check mali_dvfs_config first.


It's a simple GPU governor that can boost clock according to GPU load, enabled by default
To disable: echo 0 > /sys/kernel/mali/mali_auto_boost


The delay of boosting frequency, in ms.
echo ??? > /sys/kernel/mali/mali_boost_delay


The high frequency performance profile.
Upthreshold: When GPU load is higher than this value, GPU clock will increase.
DVFS idx: DVFS data index in mali_dvfs_config.
echo ??????(a frequency) > /sys/kernel/mali/mali_boost_high
echo idx=??(a DVFS index) > /sys/kernel/mali/mali_boost_high
echo threshold=??? > /sys/kernel/mali/mali_boost_high


The low frequency performance profile.
Downthreshold: When GPU load is lower than this value, GPU clock will decrease.
DVFS idx: DVFS data index in mali_dvfs_config.
echo ??????(a frequency) > /sys/kernel/mali/mali_boost_low
echo idx=??(a DVFS index) > /sys/kernel/mali/mali_boost_low
echo threshold=??? > /sys/kernel/mali/mali_boost_low


Current GPU clock.
Say a frequency to tweak the clock directly.
echo ?????? > mali_gpu_clock
Notice! If auto-booster governor is enabled, this GPU will override.


Value 1 means GPU is working at full speed.
Value 0 means GPU is working at half speed.
When on half speed, GPU clock will be divided by 2. Namely, 399 / 2 = 199 kHz.

Require full speed:
echo 1 > mali_gpu_fullspeed

Required half speed:
echo 0 >mali_gpu_fullspeed


GPU load (aka: utilization)


GPU voltage on full speed.


GPU OC driver version.

( IO schedulers )


SIO(2012), SIO-Plus, VR, BFQ(v7r2), CFQ, NOOP, ZEN, ROW(v4), Deadline

* Default IO scheduler: CFQ
* SIO/ROW/SIO-Plus recommended!

( frandom module )

(5.3+) To enable FRANDOM kernel module:

insmod /lib/modules/frandom.ko
chmod 0666 /dev/frandom
chmod 0666 /dev/erandom
mv /dev/random /dev/random.orig
mv /dev/urandom /dev/urandom.orig
ln -s /dev/frandom /dev/random
ln -s /dev/frandom /dev/urandom

( Deepest sleep state )

Stock: 3 Default: 3
Deepest supported is 5.

To change:

echo 5 > /d/cpuidle/deepest_state

* PegasusQ(hotplug governors) works badly with 5
* OnDemand works well with 5
* Please note that it wont increase the using time but standby time.
* ( 6.0+)You can add an init.d script to tweak it 4 if you want

To check the cpuidle state:

cat /d/cpuidle/stats

( exFat sdcard )

In TWRP version kernel, it supports exfat sdcard.
Copy /sbin/ to /system/lib
Insert exfat sdcard, use binary /sbin/exfat-fuse to mount

/sbin/exfat-fuse /dev/block/mmcblk1p1 /storage/extSdCard

Then tap mount sdcard in system settings to let system know sdcard is mounted
* Create an init.d script to mount exFat sdcard during startup


zRAM is optimized for Android. It is not lazy anymore. Recommended zRAM instead of SWAP.
Using zRAM will take a little CPU, because it needs to compress/decompress memory.
Recommended compressing about 18% of RAM, about 100 mb.

Setup disksize first: (example: 200mb)

echo $((200 * 1024 * 1024)) > /sys/block/zram0/disksize

* Larger size more RAM will be compressed.
* Too large size might make phone lag

To enable:
mkswap /dev/block/zram0
swapon /dev/block/zram0
To check how many does it use:

cat /sys/block/zram0/num_reads
cat /sys/block/zram0/num_writes
cat /proc/meminfo | grep swap

* We can get other info in its sysfs

1. Format/resize external SDCard via computer first.
2. Create a new swap partition (mmcblk1p2)

mkswap /dev/block/mmcblk1p2
swapon /dev/block/mmcblk1p2

2. Using a FILE as swap RAM: (Create a continuity file first)

cd /cache
dd if=/dev/zero of=swapfile bs=1024 count=81920
mkswap swapfile
swapon swapfile

Then we will have an 80mb swap RAM.

( Init.d script )

Please install busybox in system first
I recommend install busybox via apps
Create a new folder named 'init.d' in /system/etc
Set the permission of init.d foler to 0777(rwxrwxrwx) (at least has read and exec permission)
Set the owner to 0.0 (root root)
Put some scripts (any name you like) in init.d folder with permission 0777 (rwxrwxrwx) (at least has read and exec permission)
Scripts with right permission will be executed when system boots.

( Charger Control )

Please note that this control can damage your battery/phone.
If your battery/phone damaged, read the top of #1 post.
Lower current makes the charging longer, but protects battery.

On our board, the highest safe current is 900mA

( 6.8- ) See here,6.8+ has used new entries

( 8.6+)
To enable Current Control:
Setup current first: (for example, 900mA)

echo 900 > /sys/kernel/abb-charger/charger_curr

Turn on Current Control:

echo on > /sys/kernel/abb-charger/charger_curr

Turn off Current Control:

echo off > /sys/kernel/abb-charger/charger_curr

* The Custom Current must match the value in the Current Table
* InputCurrent and OutputCurrent are read from charger registers,
* If we find that this sysfs interface prints "VBUS DROPPED!" warning,
The charging current has been changed by driver because of a BAD charger!
* It need to plug/replug charger to take effect!

To enable Charger HW Control:
If we want to transfer data or stop charging, we can disable the charger:

echo off > /sys/kernel/abb-charger/charger_hw

To enable:

echo on > /sys/kernel/abb-charger/charger_hw

( Cycle Charging Control )

Similar to BLX by Ezekeel. It can be used to limit the battery charging level.


Example: Limit the battery level at 70% ~ 75%
echo on > /sys/kernel/abb-fg/fg_cyc
echo off > /sys/kernel/abb-fg/fg_cyc
Discharging threshold (battery level %):
echo dischar=75 > /sys/kernel/abb-fg/fg_cyc
Recharging threshold:
echo dischar=70 > /sys/kernel/abb-fg/fg_cyc

( USB Power Sharing )

( 6.2+) This can enable the internal vbus power supply for usb devices.
But the phone still cannot recognize our usb devices now.
We can use it for fun, like charging for other devices, USB fan...

cd /sys/kernel/abb-regu
echo 1 > VOTG

* Say 0 to VOTG to disable
* Plug OTG cable first, then enable it

( USB Switcher )

Sometimes, we will lost the ADB connection after a reboot.
This is the software workaround to fix this issue, namely, SW reset the USB swticher.


echo 1 > /sys/devices/virtual/usb_switch/FSA_SWITCH/swreset

The Following 146 Users Say Thank You to cocafe For This Useful Post: [ View ] Gift cocafe Ad-Free
9th February 2013, 03:45 PM |#3  
cocafe's Avatar
OP Senior Member
Flag -
Thanks Meter: 4,005
Donate to Me
Prompt 3. HOW TO

( WiFi PM Mode )

We can tweak WiFi screen-off PM mode now.
PM FAST is used by default to speed up, PM MAX is used to save power

To switch to PM_MAX:

echo 0 > /sys/module/dhd/parameters/dhdpm_fast


Disabling SPI CRC can improve mmc performance (10%)
But phone may freeze randomly.

echo 0 > /sys/module/mmc_core/parameters/use_spi_crc

( Real charged notification )

Well, please let me call it notification.
To be honest, it needs to check manually.

( 6.8-) For old versions


cat /sys/kernel/abb-chargalg/eoc_status

* You can use Root Explorer to view these files in /sys/kernel/abb-chargalg
* When it says "First eoc reached", then the UI should show you charged 100%
But it is not the real full charged.
* When it says the real EOC reached, unplug the charger.
* According to my experiments, it needs 1-2 hours to charge to real full after it shows you 100%

( POnKey Emulator )

Because my power key is going to break, so I need this feature.
This is the software emulator of power key.

To turn off screen: ( 20 < value(ms) < 520 )

echo 100 > /sys/kernel/abb-ponkey/emulator

To active the power menu: ( 520 < value(ms) < ∞)

echo 800 > /sys/kernel/abb-ponkey/emulator

To use Vol.Up or Vol.Down key as Power Key:

echo volup=1 > /sys/kernel/gpio-keys/ponkey_emu
echo voldown=1 > /sys/kernel/gpio-keys/ponkey_emu

* It doesn't work in suspend expect in charging.

( ABBamp Audio )

Please note that listening to too high volume music over 1 hour or more can damage your ears.
Too high volume can make your external speakers/headset overload or damage them.

( 6.8-) Old versions,please see here

Credit: Aditya(Adi_Pat)

First, why do i call it `AMP`?
Because most of our tweaks are about gain(volume)
Our codec is simple, It doesn't have any hardware EQ (although i want...)

ABBamp sysfs entries are in:


* Use RootExplorer to view this folder,there are lots files

Tweaks will take effects immediately!
Most tweaks will accept inputs like "on", "off" (no quotes)...
So, say "on" to enable this tweak, then this tweak will apply the value stored/inputed
View(cat) these files, most of them will give you useful infomation about this tweak.
They will show you the volume in dB of gain

`cd` to /sys/kernel/abb-codec first then do echos, will be more convenient.


::: In 7.0+, all enable/disable commands have changed to on/off :::

[AnaGain3] (Headset analog gain path):
Enable tweaks:

echo on > /sys/kernel/abb-codec/anagain3

Disable tweaks:

echo off > /sys/kernel/abb-codec/anagain3

Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 0[+4dB])

echo left=?? > /sys/kernel/abb-codec/anagain3


echo right=?? > /sys/kernel/abb-codec/anagain3

Write both left and right channels:

echo gain=?? > /sys/kernel/abb-codec/anagain3

[HsLDigGain] (Headset left digital path gain)
Enable tweaks:

echo on > /sys/kernel/abb-codec/hsldiggain

Disable tweaks:

echo off > /sys/kernel/abb-codec/hsldiggain

Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])

echo gain=?? > /sys/kernel/abb-codec/hsldiggain

[HsRDigGain] (Headset right digital path gain)
Enable tweaks:

echo on > /sys/kernel/abb-codec/hsrdiggain

Disable tweaks:

echo off > /sys/kernel/abb-codec/hsrdiggain

Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])

echo gain=?? > /sys/kernel/abb-codec/hsrdiggain

Headset Volume Table:

value | volume
0.......+8dB (maximum)
4.......+4dB (tweaks default)
8.......+0dB (device default)

* If set up digital path +4dB, analog gain +4dB, the result will get over +8dB

[HsLowPow] (Headset driver low power mode)
This lowpow mode is enabled by device normally.
If you want high performance audio instead of LPA(low power audio),
You can disable it.

Enable tweaks:

echo on > /sys/kernel/abb-codec/hslowpow

Disable tweaks:

echo off > /sys/kernel/abb-codec/hslowpow

To tweak the mode (0: disable LP mode, 1: enable LP mode)

echo mode=? > /sys/kernel/abb-codec/hslowpow

[HsDacLowPow] (Headset DAC low power mode)
DAC is Digital-to-Analong Converter.
This lowpow mode is enabled by device normally.

Enable tweaks:

echo on > /sys/kernel/abb-codec/hsdaclowpow

Disable tweaks:

echo off > /sys/kernel/abb-codec/hsdaclowpow

To tweak the mode (0: disable LP mode, 1: enable LP mode)

echo mode=? > /sys/kernel/abb-codec/hsdaclowpow

[HsHpEn] (Headset high pass filter)
This high pass filter is disabled by device normally.
Enable this can reduce some sub-nosie of audio.

Enable tweaks:

echo on > /sys/kernel/abb-codec/hshpen

Disable tweaks:

echo off > /sys/kernel/abb-codec/hshpen

To tweak the mode (0: disable highpass filter, 1: enable highpass filter)

echo mode=? > /sys/kernel/abb-codec/hshepen

Besides, the file anaconf1 will shows you the status of LPA

[ClassDHPG] (ClassD high-pass gain)
ClassD is a kind of amplifier.
According to the documents, our ClassDs only relate to Handsfree(speaker).
This can increase the high frequences sound of speaker

Enable tweaks:

echo on > /sys/kernel/abb-codec/classdhpg

Disable tweaks:

echo off > /sys/kernel/abb-codec/classdhgp

Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])

echo gain=?? > /sys/kernel/abb-codec/classdhpg

Gain control for the white component of dithering filter

Enable tweaks:

echo on > /sys/kernel/abb-codec/classdwg

Disable tweaks:

echo off > /sys/kernel/abb-codec/classdwp

Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])

echo gain=?? > /sys/kernel/abb-codec/classdwg

This is the audio path of mic2(phone mic, not headset mic)
This tweak will enable automatically when mic2 is enabled by device

Enable tweaks:

echo on > /sys/kernel/abb-codec/addiggain2

Disable tweaks:

echo off > /sys/kernel/abb-codec/addiggain2

Gain control: (min:0 ,max: 63) lower value, higher gain (default: [+6dB], max: 00[+31dB])

echo gain=?? > /sys/kernel/abb-codec/addiggain2

This is the digtal gain of earpiece

Enable tweaks:

echo on > /sys/kernel/abb-codec/eardiggain

Disable tweaks:

echo off > /sys/kernel/abb-codec/eardiggain

Gain control: (min:0 ,max: 15) lower value,higher gain (default: 4[+4dB])

echo gain=?? > /sys/kernel/abb-codec/classdwg

* It uses the same path of HsLDigGain,please check the volume table of HsLDigGain
* +8 dB might crash the sound of earpiece

This is a misc tweak

View shortcir this file first

[7] EnShortPWD
0: Automatic switch off on short circuit detection is disabled
1: Automatic switch off on short circuit detection is enabled
[6] EarShortDis
0: Short circuit detection on Ear driver enabled
1: Short circuit detection on Ear driver disabled
[5] HsShortDis
0: Short circuit detection on HsL and HsR drivers enabled
1: Short circuit detection on HsL and HsR drivers disabled
[4] HsPullDEn
0: HsL and HsR outputs are in high impedance
1: HsL and HsR outputs are pulled down to ground
[2] HsOscEn (ABBamp enables it by default)
0: The HS drivers use the system clock
1: The HS drivers use a local oscillator (system clock absent: analog path only)
[1] HsFadDis
0: All intermediate steps are applied between two programmed gains (fading)
1: Gain on HS is applied immediately
[0] HsZcdDis
0: HS gain changes on signal zero cross (unless time-out occurs)
1: HS gain is changed without zero cross control


echo ?? ?? > /sys/kernel/abb-codec/shortcir

* The first ?? the slot of each option,the second ?? stands for the value to write to this slot
* View shortcir this file,you will get it


This interface controls the enables of analog path
We can use it to disable Speaker in kernel level.
So that you don't have to use the "mute all sound" in system settings,
Because, "mute all sound" will also mute Earpiece, which is inconvenient for us in calls.

Command format: Check anaconf4 first, This interface is a bit different from others:
echo [Index] [Disable?] > anaconf4

To Disable Speaker:

echo 5 1 > anaconf4

To Enable Speaker:

echo 5 0 > anaconf4

[Headset Charge Pump]

echo 0 > chargepump to use fixed 1.8V supply.
echo 1 > chargepump to use dynamic voltage supply, lower power cost.

[Lower-power Audio Mode]

echo on > lpa_mode to enable LPA mode
echo vape=0x?? > lpa_mode to adjust Vape voltage used in LPA mode

This method can work on any ab850x codec platform!

cd /d/asoc/U*/ab*

Play music,reduce the volume.
Now we are going to edit the codec registers.

echo REG VAL > codec_reg


echo 0x16 0x00 > codec_reg

HsDigGain: (left/right channel)

echo 0x4F 0x00 > codec_reg
echo 0x50 0x00 > codec_reg

Disable all lowpow mode:

echo 0x04 0x00 > codec_reg

* These hacks will restore when codec power off.

( Camera LED Flash )

Burning LED mode for assistive light,
turning this on for a long time will heat up your device, be careful!

echo 1/0 > /sys/class/camera/flash/burning_led

( Touch Booster control )

Touch booster can jump the cpufreq(in fact, not only cpufreq) to high value when you touch to improve the experience of touching.
I have disabled by default to save power.

( 9.8+)

To enable: (default: disable)

echo off > /sys/kernel/mxt224e/touchboost

To change the boost freq: (default: 400000, stock: 800000)

echo xxxxxx > /sys/kernel/mxt224e/touchboost_freq

* I reduced this to get a balance between performance and battery.
* If you feel lagged, set it 800000
* Disabling cpufreq requirement: echo 0 > /sys/kernel/mxt224e/touchboost_freq

To disable DDR/APE requests:

echo off > /sys/kernel/mxt224e/touchboost_ape


echo off > /sys/kernel/mxt224e/touchboost_ddr

To adjust the delay of canceling touch booster:

echo ??? > /sys/kernel/mxt224e/touchboost_delay

* The bigger value, the longer boost time. 500ms by default.

( Touch Parameters(Sensitivity included) control )

This threshold(touch sensitivity) control is the real one.

echo ?? > /sys/kernel/mxt224e/threshold_t48

* When the threshold value is too big, touchscreen will lose responses.
* When the threshold value is low (<10), air touches will appear!
* When the threshold value is too low (<7), mxT224E calibration will fail,
and the points may fly here and there on the screen (signal is too noisy).

TIP: Enabling `Show Point Location` in Developer Settings to debug the touches

In the same folder, numtouch_t48 is the max number of touch fingers.
Movefilter is the filter which decides move sensitivity

Advanced users:
Read the configs document of mxT224E
Check T?? config, and calculate the address of the value.

To write configs of mxT224E:

echo [ADDR] [VAL] > /sys/kernel/mxt224e/config_t?

For example, T48_BASEFREQ is the value of reporting input events frequency (lower value higher freq)
Its address is 3 in config T48

echo 3 0 > /sys/kernel/mxt224e/config_t48

( Sweep2Wake )

This is the sweep2wake implementation of mxT224E + ABB-POnKey.
Sweep2wake means, you can wake up your phone via sliding the screen.

Sweep2wake uses wakelock by default, namely, your device won't go deepsleep with it enabled.
So we recommended that use this feature in charging (Home key is too hard to press) (When in charging, phone is waking always)


echo on > /sys/kernel/mxt224e/sweep2wake
echo off > /sys/kernel/mxt224e/sweep2wake

Tweak the threshold of sliding:

echo threshold_x=??? > /sys/kernel/mxt224e/sweep2wake
echo threshold_y=??? > /sys/kernel/mxt224e/sweep2wake

( Touch2Wake )

Touch touchkey to wake up device.

Touch2wake uses wakelock by default, namely, your device won't go deepsleep with it enabled.
So we recommended that use this feature in charging (Home key is too hard to press) (When in charging, phone is waking always)


echo on > /sys/kernel/cypress/touch2wake
echo off > /sys/kernel/cypress/touch2wake

( Touchkey LED )

We can disable Touchkey LED in kernel level now.


To disable:
echo on > /sys/kernel/cypress/led_disable
To enable:
echo off > /sys/kernel/cypress/led_disable

( Fsync control )

( 6.8-) For old versions
( 6.8+)
Get current status:

cat /sys/kernel/fsync/mode

FSYNC modes:

0: fsync on
1: fsync off
2: fsync dyn

Disable FSYNC:

echo 1 > /sys/kernel/fsync/mode

* Disabling fsync can improve io performace,
but it can make the data which hasnt been written lose when a sudden power cut occurs.

Enable Dynamic FSYNC:

echo 2 > /sys/kernel/fsync/mode

* Dynamic fsync will sync all buffers when screen turns off,
* If there is a heavy io load, the screen might get stuck for seconds.
* This is an experimental feature.

( S6E63M0 Color Tweaks )


cd /sys/kernel/s6e63m0/color

There are three files named main_?
For example, we tweak the red color here

echo 29 > main_R

* RGB default values are 24(R) 8(G) 36(B)
* Valid values range from 0 to 255
* Recommend you tweak it slightly

If you want to reset the settings:
( 6.8-):

echo -1 > main_R

( 6.8+):

echo reset > main_R

( S6E63M0 Gamma Mode )


cd /sys/kernel/s6e63m0/gamma
[View gamma_mode this file first]
[For some games which are dark, set gamma 1.9 mode will help you see the details of the screen!!!]
echo 1 > gamma_mode

( S6E63M0 LCD Clock )


cd /sys/kernel/s6e63m0/panel
[View lcdclk this file first] [This LCDCLK is a clock source, which looks like refresh rate]
echo INDEX > lcdclk
[For example: echo 1 > lcdclk , will limit fps around 50]

( S6E63M0 Brightness Control )

Change directory first:

cd cd /sys/kernel/s6e63m0/panel

Let me clear the panel brightness for you:
The brightness of our panel is depends on gamma
The gamma is generated according to illumination value
We have 26 levels of gamma, means we have 26 illumination values too
So the brightness in system like 1 and 6 are the same brightness in kernel driver(converted),
Because 1 and 6 are in the same gamma level.
Check the file gamma_table to see, the gamma valeus are the same

Unlocked brightness:
In non power saving mode,
We allowed 255 brightness uses the maximum gamma level(25) in kernel driver
In power saving mode,
The maximum brightness can be set is around 230(not 255).

This can control this brightness of panel
You can write any value to it, maximum proper illumination is 300

echo ??? > illumination

To disable tweaks:

echo reset > illumination

* The minmum illumination panel supports is 1
* Illumination 0 and 3 has color issue!

View this file first,there are 26 slots
Current: [??] ??? Shows you which index is using
The index0 is the minimum brightness(namely in power saving mode).
You can tweak every level of illuminations now.
Tweak index0 can modify the dimming brightness of system

For example:
Tweak index0 illumination:

echo 0 10 > illumination_table

* 0 is the index
* 10 is the value
* If you are in power saving mode now,the brightness will change!

Ultra low brightness: (When PowerSaving mode in System Settings is ON)
We use index 00 as brightness when PS mode is ON. You can change the index as you like.

echo 0 1 > illumination_table

To disable:

echo 0 19 > illumination_table

( Night mode / Sunlight mode )

Nightmode is darker than illumination value 1.


cd cd /sys/kernel/s6e63m0/panel
echo 1 > night_mode
echo 0 > night_mode
echo 1 > sunlight_mode
echo 0 > sunlight_mdoe

( Mali GPU )

Mali debug level
Disabling can speed up a bit

echo 0 > /sys/module/mali/parameters/mali_debug_level

* Higher level, more messages will be printed in dmesg, system will slow down

Mali L2 max reads control: (Stock:28kb,Default:48kb(max))

echo xx > /sys/module/mali/parameters/mali_l2_max_reads

* Some values will slow down graphics
* If not sure, keep default

Mali PM sampling rate: (Default: 1000ms)

echo xx > /sys/module/mali/parameters/mali_pm_sampling_rate

Mali PP scheduler tweaks: (Default: disable)

echo 1 > /sys/module/mali/parameters/mali_pp_scheduler_balance_jobs

* Enabling this, Some places will over ahead, choose by your self

Mali Utilization sampling rate: (Stock:500ms, Default:1000ms)
How often report a mali utilization.

echo xxx > /sys/module/mali/parameters/mali_utilization_sampling_rate

* Keep this default if unsure.

Mali Utilization control
(Default: low_to_high 192 high_to_low 64)
Our driver will report a mali utilization frequently.
This utilization(range: 0~255) means the load of mali.
If utilization is bigger than low_to_high, driver will request higher hardware performance(highest APE/DDR OPP).
If utilization is smaller than high_to_low, the driver will store the requested OPP(uses low OPP).
OPP can be understood as freq simply.

To check mali utilization values:

echo 5 > /sys/module/mali/parameters/mali_debug_level
cat /proc/kmsg | grep -i utilization

When it says SIGNAL_HIGH, it will request highest OPP.
When it says SIGNAL_LOW, it will request lowest OPP.
Press Ctrl+C to stop printing.

You can reduce low_to_high to trigger higher OPP requirement.

For smoothness and less powersaving:
Set low_to_high between 100-192.

echo 120 > mali_utilization_low_to_high

Mali max preemptive allocated max memory size:
Default is 16mb(16*1024*1024), bigger max size more throughput.
But when this value is too big, no more throughput.
For example: 48mb = 48*1024*1024

echo 50331648 > /sys/module/mali/parameters/pre_allocated_memory_size_max

Mali OS Kernel memory allocation order:
The lower value, the higher preference of allocating OS memory.
The default value is 6, I decreased it to 9 to fix OS memory allocation failure.
If you feel laggy, try 6 (default by driver)

echo 6 > /sys/module/mali/parameters/mali_oskmem_allocorder

( TCP congestions )


cubic(default), westwood, highspeed, vegas, veno, yeah

To check all the available options:

busybox sysctl net.ipv4.tcp_available_congestion_control

To change to other option:

busybox sysctl -w net.ipv4.tcp_congestion_control=YOU_WANT_TO


#include Francisco.franco's experiments [Thanks!]

Latency - Download - Upload

1st run: 15ms - 10,75Mbps - 7,82Mbps
2nd run: 14ms - 10,84Mbps - 8,06Mbps

1st run: 11ms - 17,65Mbps - 8,30Mbps
2nd run: 13ms - 13,28Mbps - 8,29Mbps

1st run: 13ms - 10,76Mbps - 7,94Mbps
2nd run: 16ms - 14,42Mbps - 8,52Mbps

1st run: 14ms - 8,49Mbps - 6,62Mbps
2nd run: 14ms - 12,00Mbps - 7,07Mbps

1st run: 13ms - 9,58Mbps - 8,13Mbps
2nd run: 13ms - 8,50Mbps - 7,64Mbps

1st run: 14ms - 13,37Mbps - 8,28Mbps
2nd run: 17ms - 13,89Mbps - 8,14Mbps

* I use veno
* In fact, every congestion is disigned for different environments.
* Google to learn more!

( EGL Driver )

To use Mali hardware egl driver only:
Edit /system/lib/egl.cfg

0 0 android
0 1 mali


0 0 mali

Then remove
* Recommend to backup these files
* In case it cannot boot,use TWRP file manager to recover changes
* According to my feelings: after disabling sw egl driver,UI is faster

( Logcat )

( 6.8-) See here
( 6.8+) We support to load logger mode at early init now!
Just create a new file(empty file) named logger in /data
When this file exists,kernel will load logger.ko for you automatically

Member @KINGbabasula made a flashable zip to enable logger

( Vibrator )

To disable vibrator fully:

echo 0 > /sys/kernel/tspdrv/enable

( F2FS )

Now userdata partition (/data) supports mounting by F2FS.
F2FS is designed and optimized for nand flash, normally, it is faster than EXT4 filesystem.


A backup in TWRP is recommended!!
Make sure that your SD card has enough space!!

Recommended for experienced users, be careful, don't type a wrong partition number.


EXT4 to F2FS

1. Reboot to recovery, connect to PC, use ADB commands:
2. Backup the data partition as a tarball
cd /data
tar -cvf /external_sd/data.tar *
3. Now umount /data, we gonna format it (umount all mount points of mmcblk0p5)
umount /data /sdcard
4. Format the data partition (Do not type a wrong partition number, it is dangerous!)
cd /dev/block
mkfs.f2fs -l userdata mmcblk0p5
5. Now restore the data tarball
mount -t f2fs -o rw /dev/block/mmcblk0p5 /data
cd /data
tar -xvf /external_sd/data.tar
6. Then reboot system


F2FS to EXT4

1. Reboot to recovery, connect to PC, use ADB commands:
2. Backup the data partition as a tarball
cd /data
tar -cvf /external_sd/data.tar *
3. Now umount /data, we gonna format it (umount all mount points of mmcblk0p5)
umount /data /sdcard
4. Format the userdata partition
mke2fs -T ext4 -L userdata /dev/block/mmcblk0p5
5. Mount the userdata partition, and restore the data tarball
mount -t ext4 -o rw /dev/block/mmcblk0p5 /data
cd /data
tar -xvf /external_sd/data.tar
6. Reboot system


Tip: When device is booting, hold Vol.UP to check userdata partition.

( CRT off-screen effect )

Thanks frapeti for porting this.
You need to enable fbearlysuspend control first.

cd /sys/module/fbearlysuspend/parameters
echo 1 > fbdelay
echo 350 > fbdelay_ms

* frapeti recommended 350ms

( Miscellaneous )

To shut down phone forcefully:

echo 1 > /sys/module/ab8500_sysctrl/parameters/force_pwroff

To refresh battery stats:

echo 1 > /sys/kernel/abb-fg/fg_refresh

Workaround for losing responsive Samsung Official Camera (This is not kernel related)

Delete .thumbnails folder in /sdcard/DCIM
Create a empty new file named .thumbnails in /sdcard/DCIM

Almost tweaks will be restored to default after reboots.
So you can make your tweaks as init.d scripts to apply them when boots.
The Following 143 Users Say Thank You to cocafe For This Useful Post: [ View ] Gift cocafe Ad-Free
9th February 2013, 03:50 PM |#4  
cocafe's Avatar
OP Senior Member
Flag -
Thanks Meter: 4,005
Donate to Me
Exclamation 4. Changelog

( Changelog )
Here you can check the detail of changing, for more details: Check Github repo


Reduce hardware memory reservation, more available ram 630 -> 641MB in task manager.
Change CPU PLL divider to 1
Add smartass v2 cpufreq governor
Disabled gentle fair sleepers
And other bugfixes and improvements.

Updated to 3.0.101, the final version of Linux 3.0
vibrator: Added a toggle to disable/enable
Enabled cgroup fair and rt scheduler
Optimized touch screen for shape touch
Removed Samsung debug staff

LiveOPP: Rewrite the code
PRCMU-QoS: Minimum cpufreq lock by @mkaluza
Updated to upstream samsung opensource - many fixes
zRAM fixes
Tuned virtual memory sysctl parameters

Restarted kernel project on Samsung clean source.
With all controllers features of the old one, refresh kernel has:
Optimized DVFS API
Updated LiveOPP table for stability
Optional 100MHz CPU clock for power saving
Various bug fixes
Removed tons of junk
For details, please check the Github repository.

mxt224e: Enabled touch booster code, added a delay to cancel touch booster.
block: SIO-Plus updated.
block: Updated BFQ iosched v5r1 -> v7r2
cpufreq: Add PegasusQPlus, Zzmoove updated.
liveopp: Update CPU OC algorithm, 200Mhz UV by default, Adjusted CPUFERQ table.
mali: Add GPU OC Driver (beta)
abb-fg: Disabled BATTOK detection, Fixed force shut down issues.
abb-fg: Adjusted power off threshold.
abb-fg: Allowed to report battery capacity goes up (more precious battery level)
mm: Removed UKSM forever
abb-codec: ABBamp v2.4.8
mm/slub: Updated to LK 3.0.101
fs/ext4: Updated to LK 3.0.101
fs/fat: Updated to LK 3.0.101
block: Fixed auto readahead size issues
ux500-wdt: Auto off on sleep
mxt224e: Adjusted median error touch thresholds in charging
...for more, check github kernel repo...

mxt224e: Touch booster code disabled
zRAM: Use Google Snappy compression algorithm (faster)
ARM: decompressor: Enable unaligned memory access for v6 and above
LZO liv: Updated to latest version to speed up boottime
debug: Disabled Dynamic debug
logger: Add an enable toggle for entry storage
UKSM: Disabled to speed up boottime huge (-2700ms)
random: Decreased read/write wakeup threshold
block: Added SIO Plus iosched
block: Updated ROW iosched
abb-fg: Disabled lowbat poweroff wakelock
mxt224e: Fixed touch sensitivity in high noise level
DVFS: Fake Samsung DVFS interfaces
block: Limited default readahead size for small devices
pm: Removed most of ARM KHz Qos requirements
cpufreq: Added InteraciveQ
mach-ux500: LiveOPP 0.9.6 ==> OC supports
abb-codec: ABBamp 2.4.6
ARM: ux500: Enable 100MHz for SD/SDIO/MMC devices
cpufreq: interactive: Sync with android-kernel-common-3.0
cpufreq: Tweak some governors' params
misc: Kernel size reduced

defconfig: Version tag 8.6
block: Updated ROW io scheduler
abb-charger: Updated Charger Control
abb-codec: Updated ABBamp 2.4 -> 2.4.5
abb-codec: Fix MIC booster show interface bug
abb-codec: Added anaconf4 interface to allow to disable speaker
abb-codec: Adjusted MIC booster level +15dB -> +6dB
cypress-touchkey: Added Touch2Wake with wakelock
cypress-touchkey: LED can be disabled in kernel level
fsync: Optimized sysfs show interface
fsync: Added reboot handler to flush data
samsung: Updated J4FS driver
abb-fg: Disabled LowBat wakelock by default
svnet: Disabled wakelock by default
svnet: Moved wakelock enable to userspace
mali: Added OSK memory allocation order module param
mali: Removed all debug prints
mali: Decreased OSK MEM allocation order
mxt224e: Added wakelock to Sweep2Wake
mmc/core: Fix permission of 'use_spi_crc'
mm: Added UKSM and use Quiet governor
st-mmio: Optimize flash LED interfaces, renamed highlight -> burning
fsa880: Added SWReset workaround
bcmdhd: Added PM_FAST control
defconfig: switch preempt RCU

2013-11-03 hotfix update
defconfig: version tag 8.0 -> 8.1 -> 8.2 …
mxt224e: disable touch booster by default (To save batterylife)
bcmdhd: off-screen pm mode MAX -> FAST (This is made for bcmdhd updated driver)
board-janice: mxt224e threshold batt 17 -> 15 (More sensitive)
block: downgrade bfq iosched v6r2 -> v5r1 (V6R2 has bugs which causes reboots)
power/wakelock: driver updates (Optimizes code)
sysfs: driver updates
fs/nls: driver updates
fs/fat: driver updates (Fixes FatFS name char issues)
tspdrv: driver updates (Optimizes code)
gp2a_light_prox: driver updates (Optimizes code)
ux500_usb: driver updates (Seems that it fixes UMS(USB Mass Storage) issues)
net/wireless: bcmdhd driver updates
(Now CoCore-E has synced up with lastest Samsung Kernel source)

defconfig: version tag 7.6 -> 7.7 -> 7.8 -> 8.0
rcu: jRCU with lazy mode (To reduce RCU memory usage, designed for multi-core CPU)
mali: reset l2 max reads (According to documents, we have a fixed 32kb l2 size.)
mxt224e: fix threshold on charging (namely, fixed touch issues at the bottom on charging)
ux500 pcm: Proper#ed max pcm buffer rate
sysctl: tweak vm params (supports to fix memory leaks)

defconfig: version tag 7.2 -> 7.6
rcu: enable fast nohz mode
mali: reduce pre-allocated os memory 24mb -> 16mb (to save some RAM for other things)
board-janice: reset BASEFREQ param of touchscreen (in order to fix the touching issues when charging)
board-janice: reset YEDGEDIST param of touchscreen (in order to fix the touch position offsets)
ramdisk: update TWRP recovery ->
ramdisk: enable ADB function in LPM charging
s6e63m0: new gamma mode interface
s6e63m0: entry for tweaking lcdclk
s6e63m0: reduce the level0 illumination of illumination table (dimming more a bit at lowest brightness)
mxt22e: reduce x threshold of sweep2wake
snd_usb: fix sysfs conflicts
block: update BFQ iosched v5r1 -> v6r2

defconfig: version tag 7.0 -> 7.2 - Stablity Update
misc: fix some small bugs during rebooting
arm: use previous hotplug timer for our platform(in order to reduce the possiblity of death sleep/wakeup)
arm: use simple spinlock (old implementation) instead of the new one (for stablity)
sched: enable /d/sched_features (so that you can tweak some sched features)
abb-chargalg: when real EOC reached, phone will wake up for seconds to notice user: charging has finished
mm: swtich SLQB -> SLUB memory allocator to get more stablity
mm/SLUB: use costly page orders (looks more smooth)

defconfig: version tag 6.8 -> 6.9 -> 7.0
ramdisk: TWRP Recovery ->
ramdisk: CWM Recovery -> (optional)
ramdisk: CWM Touch Recovery (thanks OliverG96)
ramdisk: Fix ADB permission issues (SU permission by default, or it will return ERROR when pushing files)
param: correct param driver indexs
param: add debug module for developers
mxt224e: allow disabling freq requests of touchboost
cypress-touchkey: touch2wake when has wakelocks
mach-ux500: add janice gpio debug driver
mach-ux500: add janice dvfs debug driver
abb-codec: ABBamp audio v2.4 (optimized driver)
debug: disable a lot of debug stuff
cpufreq: remove lulzactivew governor (rather than use Performance governor)
cpufreq/ondemandq: replug up cpu1 when governor starts
cpufreq/ondemand: replug CPU1 when governor starts
cpufreq/performance: replug CPU1 when governor starts
cpufreq/interactive: replug CPU1 when governor starts
abb-chargalg: add private charger control
abb-POnKey: implement PowerOn Key emulator (can emulate power key via sysfs)
ARM: spinlock: use ticket algorithm for ARMv6+ locking implementation
ARM: SMP: use a timing out completion for cpu hotplug
TCP: Proportional Rate Reduction (better TCP performance, tested!)
mxt224e: remove auto calibration
mxt224e: sweep2wake implementation
mxt224e: touchscreen configs control-able
mxt224e: new param control (movefilter, numtouch, custom-able parameters)
mxt224e: new threshold control (this is the real one!)
mxt224e: increase report events frequency
mxt224e: fix touch issues on left and right sides (touch issues of top and bottom sides aren't able to fix, hardware issues!)
audio: Fix for choppy playback in Ubuntu pulse audio (patched it again)
mali: pre-allocated max memory size writable
mali: Pre-allocated memory size 16mb -> 24mb
sched: remove MC/SMT scheduler forever (they are broken and performance dropper)
sched: disable arch power
bcmdhd: reenable ipv6 and disable multicast in suspend
drivers/mmc: SPI CRC configurable
gpio-keys: POnKey emulator on Vol Up/Down
mm: SLUb -> SLAB -> SLQB
st-mmio: add highlight mode for rear flash led (it will heat up your phone, don't use for a long time!)

defconfig: version tag 6.2 -> 6.3 -> 6.4 -> 6.6 -> 6.8
ramdisk: fix insmoding logger issues
random: read wakeup threshold 512 -> 256
s6e63m0: allow maximum gamma level in manual mode
s6e63m0: fix and add tweakable illumination table
cpufreq/ondemandq: update and fix dead sleep issues
cpufreq: add lulzactivew
cpufreq: add lulzactiveQ
abb-chargalg: enable sysfs charger control
abb-chargalg: update real eoc sysfs entries
fs: update fsync control 0.4
abb-charger: update charger control
audio: Fix for choppy playback in Ubuntu pulse audio
abb-codec: ABBamp audio v2.3b
abb-regulator: add Varm HW mode option
board-janice: add pn544 nfc platform data
misc: support I9070P, still beta now

defconfig: version tag 6.0 -> 6.1 -> 6.2
block: bfq iosched v6 -> v6r1 -> v5r1 (v6r1 and v6 are unstable)
cpufreq: add and fix ondemandq governor
mxt224e: enhance and update touch params control
mxt224e: rename touch_boost -> touchboost
random: tune entropy parameter
lpm.rc: set hotplug governor when charging in low-power mode namely non-booting charging
abb-regu: add VOTG sysfs interface (otg isnt available yet,i'm sorry,but you can use usb fan now!~)

defconfig: version tag 5.7.3 -> 6.0
random: entropy tweaks are all the rage nowadays
block: default iosched bfq -> cfq
block: update bfq iosched v5r1 -> v6
mxt224e: clean auto calibration
s6e63m0: add elvss table interface
cpufreq: disable ondemandq,i will fix it later
cpuidle: deepest state 4 -> 3
arm: remove cpu unaligned access path (suposed to fix sudden reboots)
scripts: remove the '+' at the end of local version string
cypress-touchkey: add interface to write touchkey threshold
abb-codec: headset hp filter default 0 -> 1
s6e63m0: color filters and gamma tuner

defconfig: bump version 5.3 -> 5.6 -> 5.6.2
ab8500-codec: improve sound control
block: fix a bug of zen io scheduler
bcmdhd: fix wifi power in standby
s6e63m0: rename conflicts sysfs file lcd_power -> ldi_power
s6e63m0: fix the permission of ldi_power
s6e63m0: fix gamma mode issues after startup (Samsungs fault)
arm: cpu unaligned access path
fbearlysuspend: increase fbdaley time 50ms -> 350ms
mali: fix l2 cache reads when delete cache cores
mali: osmem max buffer size 64mb -> 16mb
drivers/char: add frandom module
mach-ux500: update prcmu clock control module
mxt224e: reduce threshold chrg 25 -> 20 (fix touch issues when charging)
mxt224e: update touch sensitivity control (touch params control)
mxt224e: default touchboost cpufreq 800000 -> 400000 (for more power saving)
mxt224e: update touch auto calibration
fs: keep param partition R/W for saving boot params (fix cwm reboot commands issues)
cpufreq: add debug mask to shut up annoying noise
s6e63m0: fix samsung's typos(warnings)
ramdisk: add twrp
ramdisk: fix sbin permisson

defconfig: bump version 5.1 -> 5.3
ramdisks: fix bootanimation script
ramdisks: add fstrim binary
mali: osmem buffer size 64mb -> 16mb
mali: fix l2 cache reads when delete core
block/bfq: remove the "optimized" tweaks
fbearlysuspend: delay time 50ms -> 350ms
ab8500-codec: add a gain delay param
mxt224e: chrg threshold 25 -> 20
mxt224e: read threshold params from pdata
s6e63m0: fix a sysfs error
drivers/char: add frandom modulem
mach-ux500: finish prcmu clock control module

defconfig: bump version 5.0 -> 5.1
ramdisk: remove kill bootanimation
fbearlysuspend: add stop drawing delay param
ab8500-codec: add earpiece widget event
ad8500-codec: add mic2 gain control
ab8500-codec: enhance sound control
mali: osmem max buffers 16mb -> 64mb

defconfig:bump version 4.8 -> 5.0
ramdisk:update twrp ->
ramdisk:add custom bootanimation support
cpufreq:add zzmoove governor
ab8500-codec:move anagain3
ab8500-codec:disable debugging
ab8500-codec:rename parameters
ab8500-codec:remove hs widget event
ab8500-codec:add classD high volume control
ab8500-codec:add ihf dac widget event

defconfig:bump version 4.4 -> 4.8
ramdisk:twrp update ->
mxt224e:improve touchbooster
misc:fix modifier name
ab8500-chargalg:edit eoc messages
ab8500-codec:remove shortcir control
ab8500-codec:improve anagain3 control
ab8500-codec:add detected chipid
ab8500-codec:add hsxgain control
ab8500-codec:add micxgain control
ab8500-codec:add hs lowpow control
ab8500-codec:add hs dac lp control
ab8500-codec:add hs hpf control
ab8500-codec:add classD hp/wg control
ab8500-codec:add hsx diggain control

defconfig: bump version 4.2 -> 4.4
cpufreq: remove nightmare
cpufreq: add smartassv2 abyssplug
swap: enable zram

cpufreq: fix nightmare hotplug freqs
arm: disable multi-core scheduler
ramdisk: disable multi-core scheduler
cmdline: extend -> bootloader
rcu: jrcu -> tree preempt rcu

defconfig: bump version 4.0 -> 4.2
cmdline: select extend cmdline
cmdline: add tty console command
jrcu: disable lazy jrcu
ramdisk: add twrp

defconfig: bump version 3.9 -> 4.0
android-logger: make it as module
ab8500-chargalg: fix eoc_status bug

sched:disable autogroup
rcu:enable jrcu
arm:disable bpf jit
arm:enable mc sched
cpufreq:add ondemandq
cpufreq:add nightmare

defconfig:bump version 3.5 -> 3.9
sched:enable autogroup
arm:disable mc/smt sched
ramdisk:disable ms/smt sched
fs:combine dyn fsync control
ab8500-chargalg:add real charged notification
ab8500-chargalg:add full charging cycle control
misc:apply aditya's mismatches patches
svnet:reduce waketime 6s -> 1s

arm:enable multi-threading scheduler
include:in filter.h add if bpf configs

defconfig:bump version 3.3 -> 3.5
mali:dlbu size 1024kb -> 4096kb -> 1024kb
ramdisk:make hwreg hwrandom as modules

defconfig:bump version 3.1 -> 3.3
ramdisk:move cifs.ko out (it is too big)
mali:dlub size 2048kb -> 1024kb
arm:add bpf net jit filter
mach-ux500:fix a inline error

ramdisk:lzop compression
cypress-touckey:all my experiments failed!

defconfig:bump version 3.0 -> 3.1
fs/sync:implement fsync control via moduleparam
mm:increase max readahead 128kb -> 256kb -> 128kb
mali:max l2 cache cores 3 -> 5 -> 3
mali:dlbu size 1024kb -> 2048kb
arm:add optimized swab32
arm:enable multi-core scheduler
arm:enable linaro cpupower driver
arm:add xz kernel compression
ramdisk:enable multi-core scheduler
cpufreq:add hotplug governor

defconfig:bump version 2.9 -> 3.0
defconfig:switch lzop compression
defconfig:disable slub debugging
arm/vfp:fix vfp thread holes
b2r2:increase heap size 4 -> 8 128 -> 256

musb:add otg extra power support
ramdisk:2nd bootstage kernel boots

defconfig:bump version to 2.8 -> 2.9
bcmdhd:remove suspend pm control
ramdisk:add cwm ramdisk
defconfig:bump version to 2.6 -> 2.8
fs:enable cifs as module
drivers/char:include rng-core and hwreg into kernel
bcmdhd:add suspend pm control
bcmdhd:disable support_pm2_only

mxt224e:add touch sensitivity control
mxt224e:charging threshold 22 -> 25
maxt224e:battery threshold 16 -> 17
ab8500_asoc:remove anc fir iir moduleparams
ab8500_charger:add charger control

defconfig:bump version 2.4 -> 2.6
defconfig:remove usb otg 2.0 config
ab8500_asoc:remove vcp controls
ab8500_asoc:add anc fir/iir controls
mxt224e:add tsp threshold control
mxt224e:add touch booster control

mm:disable cleancache (useless,doesnt work)
staging:disable zcache (useless,doesnt work)
kconfig:disable frame pointer debugger
cpufreq:add ondemand idle detection
ab8500_asoc:add two confs control
defconfig:enable usb otg 2.0 config

defconfig:bump version 2.3 -> 2.4
mali: add pp scheduler control
rcu: enable rcu prio boost
mm: enable cleancache
staging: enable zcache

defconfig: bump version 2.2 -> 2.3
ab8500_asoc: optimize sound control code
ab8500_asoc: remove power_on detection
ab8500_asoc: track anagain1/2/3/4
ab8500_asoc: add power_on detection add anagain4 control
ab8500_asoc: remove anagain4(useless) control,add shortcir control

defconfig:bump version 2.0 -> 2.2
mali:add mali pm sampling rate module param
mali:add mali l2 size module param
mali:l2 max cache cores 5 -> 3
mali:gpu utilization sampling rate 500 -> 1000
lib:add glibc version memcpy
lib:add glibc version string
lib:add optimized crc32
ab8500_asoc:implemented headset volume control

defconfig:bump version 1.8 -> 2.0
defconfig:remove rcu debugging print
defconfig:remove kgdb debugging
arm:remove old sha1
arm/topology:apply linaro patches
arm/crypto:add arm aes sha1 crypto
arm/power:add linaro dual cortex-a9 cpu power driver
arm/makefile:add -pipe
mali:gpu utilization time out 1000 -> 500
mali:add utilization limit module params
block:add bfq flash deivces tweaks

defconfig: bump version 1.1 -> 1.8
cpufreq: update pegasusq
cpufreq: update pegasusq freq table
mali: gpu utilization time out 500 -> 1000
mali: add utilization sampling rate moduleparam
mali: l2 max reads writable
slub:avoid overahead
fs: add ezekeel fsync control
fs: mount noatime nodiratime by default
arm:add ezekeel rwsem implementation
net:disable hybla conf

mali: os memory size 20mb -> 16mb
mali: l2 max cache cores 4 -> 5
ramdisk: remove noop,set ondemand linaro gcc 4.6
defconfig: bump version to 1.1

rcu: remove fast nohz rcu
board-janice: improve mxt224-e sensitivity
ramdisk: disable cfq,ondemand
arm: disable mc scheduler
mali: os memory size 16mb -> 20mb (+4mb)
mali: l2 max cache cores 3 -> 4

defconfig: u8500_CoCoE_defconfig
defconfig: kernel/ramdisk compression gzip -> lzop
drivers/samsung: merge param driver
drivers/samsung: merge j4fs driver
block: add bfq(v5r1) io scheduler
block: add row(v4) io scheduler
block: fix row compatibility
block: add sio io scheduler
block: add zen io scheduler
block:add vr io scheduler
mali: fix arch link
mali: disable mali state tracking
mali: max l2 reads 28kb -> 48kb
mm: slab -> slub
fs/aio: improve asynchronous io performance
cpuidle: deepest sleep state 3 -> 4
cpufreq: add pegasusq governor
sched: add nr_running symbol
sched: enable arch_power
arm: enable thumbee
arm/vfp: hardfloat+neon
net: enable advanced tcp configs
rcu: enable fast nohz rcu
board-janice: improve mxt224-e touchscreen sensitivity
bcm4330: screen off pm pm_max -> pm_fast

The Following 203 Users Say Thank You to cocafe For This Useful Post: [ View ] Gift cocafe Ad-Free
9th February 2013, 03:53 PM |#5  
cocafe's Avatar
OP Senior Member
Flag -
Thanks Meter: 4,005
Donate to Me
Exclamation Notes

( Notes & ADD-ON & Downloads(continued) )

SManager Scripts:
I pushed the scripts wrote by myself [here], use them with SManager.

I have collected some bootanimations.
[Download Bootanimations Here]

The Following 128 Users Say Thank You to cocafe For This Useful Post: [ View ] Gift cocafe Ad-Free
9th February 2013, 04:03 PM |#6  
Thvmh's Avatar
Senior Member
Flag Helmond
Thanks Meter: 232
Donate to Me
Download link?
The Following 6 Users Say Thank You to Thvmh For This Useful Post: [ View ] Gift Thvmh Ad-Free
9th February 2013, 04:12 PM |#7  
cocafe's Avatar
OP Senior Member
Flag -
Thanks Meter: 4,005
Donate to Me
Originally Posted by Thvmh

Download link?

A dude takes up my post.
I am waiting him to delete
The Following 27 Users Say Thank You to cocafe For This Useful Post: [ View ] Gift cocafe Ad-Free
9th February 2013, 04:18 PM |#8  
Thanks Meter: 25
AW: [Kernel][10/02/2013] CoCore-E 2.8
Yey new Kernel Does this Kernel have the NFC Driver?
EDIT: Sry didn't read its for 4.1

Gesendet von meinem GT-I9070P mit Tapatalk 2
The Following 3 Users Say Thank You to Karsten95 For This Useful Post: [ View ] Gift Karsten95 Ad-Free
9th February 2013, 04:21 PM |#9  
shut_down's Avatar
Senior Member
Flag Belgrade
Thanks Meter: 3,583
Donate to Me
Nice noob friendly thread.
The Following 3 Users Say Thank You to shut_down For This Useful Post: [ View ] Gift shut_down Ad-Free
9th February 2013, 04:21 PM |#10  
Thvmh's Avatar
Senior Member
Flag Helmond
Thanks Meter: 232
Donate to Me
Re: [Kernel][10/02/2013] CoCore-E 2.8
Originally Posted by cocafe

A dude takes up my post.
I am waiting him to delete

No problem!

Verstuurd van mijn GT-I9070 met Tapatalk
The Following 4 Users Say Thank You to Thvmh For This Useful Post: [ View ] Gift Thvmh Ad-Free
9th February 2013, 04:27 PM |#11  
cocafe's Avatar
OP Senior Member
Flag -
Thanks Meter: 4,005
Donate to Me
Originally Posted by Karsten95

Yey new Kernel Does this Kernel have the NFC Driver?

Gesendet von meinem GT-I9070P mit Tapatalk 2

Kernel source has NFC driver.
If I9070P gets JB,we can provide your guys P kernels too.
Ready to sleep,it was Chinese new year yesterday (it is 00:30 now )

Diego is really busy
He will provide us TWRP
We have tried CWM but failed
Will try later
The Following 10 Users Say Thank You to cocafe For This Useful Post: [ View ] Gift cocafe Ad-Free
Post Reply Subscribe to Thread

cocore, i9070, jellybean, kernel

Guest Quick Reply (no urls or BBcode)
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes