[Kernel] CoCore-E-Refresh r24

Search This thread

cocafe

Senior Member
Sep 6, 2012
814
3,944
-

CoCore-E-Refresh Kernel for Power Users


( Index )

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

( Responsibility )

I'M IN NO WAY RESPONSIBLE OF ANY DAMAGE CAUSED BY USING THIS CUSTOM KERNEL.
PLEASE NOTE THAT SOME FEATURES LIKE OVERCLOCKING CAN DAMAGE YOUR PHONE.

( 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 )

HSkF.png
HSkf.png


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 0.1.2.2
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 6.0.2.8 [diego-ch]
ramdisk: ClockworkMod Recovery 6.0.3.4 [CyanogenMod, thanks OliverG96]
ramdisk: ClockworkMod Touch Recovery 6.0.3.3 [CyanogenMod, thanks OliverG96]
ramdisk: Team Win Recovery Project 2.6.3.0 [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 :D
* 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 )

Github


( 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

Contributors
cocafe, cocafe, TeamCanjica, adi_pat, CallMeVentus, fedevd, frapeti, OliverG96, diego-ch, hafidzduddin, Shaaan, shut_down, BOOTMGR, etch04
Source Code: https://github.com/cocafe/i9070_kernel_CoCore-E

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
 
Last edited:

cocafe

Senior Member
Sep 6, 2012
814
3,944
-
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?
A: NO
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 bootanimation.zip in /system/media/.
Recommend you changing the permission to 0666.
If there is no bootanimation.zip, 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


( CPUFREQ - DVFS )

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 - CPU OC/UC/OV/UV )

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:
mali_auto_boost
mali_available_frequencies
mali_boost_delay
mali_boost_high
mali_boost_low
mali_dvfs_config
mali_gpu_clock
mali_gpu_fullspeed
mali_gpu_load
mali_gpu_vape
version

Check mali_dvfs_config first.

mali_auto_boost
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

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

mali_boost_high
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

mali_boost_low
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

mali_gpu_clock
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.

mali_gpu_fullspeed
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

mali_gpu_load
GPU load (aka: utilization)

mali_gpu_vape
GPU voltage on full speed.

version
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/libexfat.so to /system/lib
Insert exfat sdcard, use binary /sbin/exfat-fuse to mount
su
/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 SWAP )

[zRAM]
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:
Code:
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

[SWAP]
1. Format/resize external SDCard via computer first.
2. Create a new swap partition (mmcblk1p2)
Enable:
mkswap /dev/block/mmcblk1p2
swapon /dev/block/mmcblk1p2

2. Using a FILE as swap RAM: (Create a continuity file first)
su
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. :p
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%
Enable:
echo on > /sys/kernel/abb-fg/fg_cyc
Disable:
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


 
Last edited:

cocafe

Senior Member
Sep 6, 2012
814
3,944
-
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


( MMC SPI CRC )

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.:cool: 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
OR
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.:cool: 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:
/sys/kernel/abb-codec
* 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)
1.......+7dB
2.......+6dB
3.......+5dB
4.......+4dB (tweaks default)
5.......+3dB
6.......+2dB
7.......+1dB
8.......+0dB (device default)
>=9....mute
* 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

[ClassDDithWGain]
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

[ADDigGain2]
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


[EarDigGain]
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

[ShortCirConf]
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 ;)

[AnaConf4]

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:

To Enable Speaker:

[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

[Experts!]:
This method can work on any ab850x codec platform!
Play music,reduce the volume.
Now we are going to edit the codec registers.
echo REG VAL > codec_reg
E.G:
AnaGain3:
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!
Enable/Disable:
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 )

(7.0+)
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)

Enable/Disable:
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)

Enable/Disable:
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.:cool: 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
* 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.:cool::
( 6.8+):


( 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).

illumination:
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!

illumination_table:
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 )

Supported:
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

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

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

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

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

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

yeah:
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
To
Then remove libGLES_android.so
* 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.:cool: 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.


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

1. Reboot to recovery, connect to PC, use ADB commands:
2. Backup the data partition as a tarball
Code:
cd /data
tar -cvf /external_sd/data.tar *
3. Now umount /data, we gonna format it (umount all mount points of mmcblk0p5)
Code:
umount /data /sdcard
4. Format the userdata partition
Code:
mke2fs -T ext4 -L userdata /dev/block/mmcblk0p5
5. Mount the userdata partition, and restore the data tarball
Code:
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. :laugh::laugh::laugh:
 
Last edited:

cocafe

Senior Member
Sep 6, 2012
814
3,944
-
4. Changelog


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

2015-05-22
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.

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

2014-10-29
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

2014-07-22
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.

2014-04-07
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...

2014-02-16
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

2014-01-05
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)

2013-09-21
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)

2013-09-03
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 2.6.0.0 -> 2.6.1.0
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

2013-08-24
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)

2013-07-25
defconfig: version tag 6.8 -> 6.9 -> 7.0
ramdisk: TWRP Recovery 2.5.0.0 -> 2.6.0.0
ramdisk: CWM Recovery 6.0.2.8 -> 6.0.3.4 (optional)
ramdisk: CWM Touch Recovery 6.0.3.3 (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!)

2013-06-12
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

2013-05-19
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!~)

2013-05-01
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

2013-04-21
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 2.5.0.0
ramdisk: fix sbin permisson

2013-03-31
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

2013-03-24
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

2013-03-17
defconfig:bump version 4.8 -> 5.0
ramdisk:update twrp 2.4.3.0 -> 2.4.4.0
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

2013-03-10
defconfig:bump version 4.4 -> 4.8
ramdisk:twrp update 2.4.1.1 -> 2.4.3.0
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

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

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

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

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

2013-02-20
sched:disable autogroup
rcu:enable jrcu
arm:disable bpf jit
arm:enable mc sched
cpufreq:add ondemandq
cpufreq:add nightmare

2013-02-19
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

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

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

2013-02-16
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

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

2013-02-14
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

2013-02-13
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

2013-02-11
musb:add otg extra power support
ramdisk:2nd bootstage kernel boots

2013-02-10
defconfig:bump version to 2.8 -> 2.9
bcmdhd:remove suspend pm control
ramdisk:add cwm ramdisk
2013-02-09
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

2013-02-08
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

2013-02-07
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

2013-02-06
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

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

2013-02-03
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

2013-02-01
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

2013-01-31
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

2013-01-30
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

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

2013-01-22
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

2013-01-20
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


 
Last edited:

cocafe

Senior Member
Sep 6, 2012
814
3,944
-
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. :laugh:
Ready to sleep,it was Chinese new year yesterday (it is 00:30 now :laugh:)

Diego is really busy
He will provide us TWRP
We have tried CWM but failed
Will try later
 
Last edited:

coolkillermax

Senior Member
Nov 12, 2012
1,263
123
Malaysia
Kernel source has NFC driver.
If I9070P gets JB,we can provide your guys P kernels too. :laugh:
Ready to sleep,it was Chinese new year yesterday (it is 00:30 now :laugh:)

Diego is really busy
He will provide us TWRP
We have tried CWM but failed
Will try later

Well Done Boy Boy , so happy you are release so quickly in the 0210=Chinese New Year Now !! Thanks alot Buddy & please send my regards to your family and wish them (specially you) a most prosperous new year filled with joy, good life and much love. :)..... :highfive: :cool:
 

dungeonshard

Senior Member
Nov 13, 2012
448
82
sr cocafe i contact mod and delete soon :silly:
happy lunar new year everyone :) 5m to go new years
 

cocafe

Senior Member
Sep 6, 2012
814
3,944
-
Re: [Kernel][10/02/2013] CoCore-E 2.8

Boy Boy , can i know when you will release Cocore v4.1 Final kernel here because i still in GB JetMOD... ?

Thanks!! :thumbup:





sr cocafe i contact mod and delete soon :silly:
happy lunar new year everyone :) 5m to go new years

Lol i release it with P kernel too :p
A lot of people are playing outside! Boom boom boom
Okay have to sleep :D

Sent from my GT-I9070 using xda premium
 

dungeonshard

Senior Member
Nov 13, 2012
448
82
LOL im sick for 5 days and i cant go anywhere :) sr u so much, im from vn , now place
0:06 :good:
 
Last edited:

coolkillermax

Senior Member
Nov 12, 2012
1,263
123
Malaysia
Thanks!! :thumbup:







Lol i release it with P kernel too :p
A lot of people are playing outside! Boom boom boom
Okay have to sleep :D

Sent from my GT-I9070 using xda premium

Yes my side also with alot fireworks like war in the Sky..... :D Boy Boy you no answer my question yet...:rolleyes:

---------- Post added at 01:31 AM ---------- Previous post was at 01:24 AM ----------


images



Had to. :laugh::laugh::laugh::laugh::laugh:

It just come out. And it is easy to try, and check it yourself. :cool:

:good: :good: :laugh: :laugh: :D :D :laugh: :laugh:

And you found Bugs have to use this :

1562042_110352007805_2.jpg


:laugh: :laugh: :laugh: :laugh: :laugh: :p :p :p :p :p
 

Stevex26

Member
Jan 27, 2013
42
12
R: [Kernel][10/02/2013] CoCore-E 2.8

I have 2 questions:
1) Now i have Thunderzap kernel on my GSA, so can i flash this kernel without problems or i have to return to stock kernel??
2) Can I flash this kernel with the tool Universal Flash Kernel??

Thanks :)
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 316

    CoCore-E-Refresh Kernel for Power Users


    ( Index )

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

    ( Responsibility )

    I'M IN NO WAY RESPONSIBLE OF ANY DAMAGE CAUSED BY USING THIS CUSTOM KERNEL.
    PLEASE NOTE THAT SOME FEATURES LIKE OVERCLOCKING CAN DAMAGE YOUR PHONE.

    ( 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 )

    HSkF.png
    HSkf.png


    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 0.1.2.2
    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 6.0.2.8 [diego-ch]
    ramdisk: ClockworkMod Recovery 6.0.3.4 [CyanogenMod, thanks OliverG96]
    ramdisk: ClockworkMod Touch Recovery 6.0.3.3 [CyanogenMod, thanks OliverG96]
    ramdisk: Team Win Recovery Project 2.6.3.0 [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 :D
    * 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 )

    Github


    ( 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

    Contributors
    cocafe, cocafe, TeamCanjica, adi_pat, CallMeVentus, fedevd, frapeti, OliverG96, diego-ch, hafidzduddin, Shaaan, shut_down, BOOTMGR, etch04
    Source Code: https://github.com/cocafe/i9070_kernel_CoCore-E

    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
    201
    4. Changelog


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

    2015-05-22
    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.

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

    2014-10-29
    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

    2014-07-22
    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.

    2014-04-07
    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...

    2014-02-16
    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

    2014-01-05
    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)

    2013-09-21
    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)

    2013-09-03
    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 2.6.0.0 -> 2.6.1.0
    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

    2013-08-24
    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)

    2013-07-25
    defconfig: version tag 6.8 -> 6.9 -> 7.0
    ramdisk: TWRP Recovery 2.5.0.0 -> 2.6.0.0
    ramdisk: CWM Recovery 6.0.2.8 -> 6.0.3.4 (optional)
    ramdisk: CWM Touch Recovery 6.0.3.3 (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!)

    2013-06-12
    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

    2013-05-19
    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!~)

    2013-05-01
    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

    2013-04-21
    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 2.5.0.0
    ramdisk: fix sbin permisson

    2013-03-31
    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

    2013-03-24
    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

    2013-03-17
    defconfig:bump version 4.8 -> 5.0
    ramdisk:update twrp 2.4.3.0 -> 2.4.4.0
    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

    2013-03-10
    defconfig:bump version 4.4 -> 4.8
    ramdisk:twrp update 2.4.1.1 -> 2.4.3.0
    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

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

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

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

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

    2013-02-20
    sched:disable autogroup
    rcu:enable jrcu
    arm:disable bpf jit
    arm:enable mc sched
    cpufreq:add ondemandq
    cpufreq:add nightmare

    2013-02-19
    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

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

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

    2013-02-16
    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

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

    2013-02-14
    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

    2013-02-13
    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

    2013-02-11
    musb:add otg extra power support
    ramdisk:2nd bootstage kernel boots

    2013-02-10
    defconfig:bump version to 2.8 -> 2.9
    bcmdhd:remove suspend pm control
    ramdisk:add cwm ramdisk
    2013-02-09
    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

    2013-02-08
    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

    2013-02-07
    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

    2013-02-06
    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

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

    2013-02-03
    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

    2013-02-01
    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

    2013-01-31
    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

    2013-01-30
    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

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

    2013-01-22
    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

    2013-01-20
    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


    144
    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?
    A: NO
    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 bootanimation.zip in /system/media/.
    Recommend you changing the permission to 0666.
    If there is no bootanimation.zip, 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


    ( CPUFREQ - DVFS )

    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 - CPU OC/UC/OV/UV )

    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:
    mali_auto_boost
    mali_available_frequencies
    mali_boost_delay
    mali_boost_high
    mali_boost_low
    mali_dvfs_config
    mali_gpu_clock
    mali_gpu_fullspeed
    mali_gpu_load
    mali_gpu_vape
    version

    Check mali_dvfs_config first.

    mali_auto_boost
    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

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

    mali_boost_high
    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

    mali_boost_low
    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

    mali_gpu_clock
    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.

    mali_gpu_fullspeed
    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

    mali_gpu_load
    GPU load (aka: utilization)

    mali_gpu_vape
    GPU voltage on full speed.

    version
    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/libexfat.so to /system/lib
    Insert exfat sdcard, use binary /sbin/exfat-fuse to mount
    su
    /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 SWAP )

    [zRAM]
    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:
    Code:
    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

    [SWAP]
    1. Format/resize external SDCard via computer first.
    2. Create a new swap partition (mmcblk1p2)
    Enable:
    mkswap /dev/block/mmcblk1p2
    swapon /dev/block/mmcblk1p2

    2. Using a FILE as swap RAM: (Create a continuity file first)
    su
    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. :p
    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%
    Enable:
    echo on > /sys/kernel/abb-fg/fg_cyc
    Disable:
    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


    141
    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


    ( MMC SPI CRC )

    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.:cool: 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
    OR
    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.:cool: 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:
    /sys/kernel/abb-codec
    * 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)
    1.......+7dB
    2.......+6dB
    3.......+5dB
    4.......+4dB (tweaks default)
    5.......+3dB
    6.......+2dB
    7.......+1dB
    8.......+0dB (device default)
    >=9....mute
    * 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

    [ClassDDithWGain]
    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

    [ADDigGain2]
    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


    [EarDigGain]
    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

    [ShortCirConf]
    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 ;)

    [AnaConf4]

    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:

    To Enable Speaker:

    [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

    [Experts!]:
    This method can work on any ab850x codec platform!
    Play music,reduce the volume.
    Now we are going to edit the codec registers.
    echo REG VAL > codec_reg
    E.G:
    AnaGain3:
    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!
    Enable/Disable:
    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 )

    (7.0+)
    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)

    Enable/Disable:
    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)

    Enable/Disable:
    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.:cool: 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
    * 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.:cool::
    ( 6.8+):


    ( 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).

    illumination:
    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!

    illumination_table:
    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 )

    Supported:
    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

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

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

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

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

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

    yeah:
    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
    To
    Then remove libGLES_android.so
    * 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.:cool: 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.


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

    1. Reboot to recovery, connect to PC, use ADB commands:
    2. Backup the data partition as a tarball
    Code:
    cd /data
    tar -cvf /external_sd/data.tar *
    3. Now umount /data, we gonna format it (umount all mount points of mmcblk0p5)
    Code:
    umount /data /sdcard
    4. Format the userdata partition
    Code:
    mke2fs -T ext4 -L userdata /dev/block/mmcblk0p5
    5. Mount the userdata partition, and restore the data tarball
    Code:
    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. :laugh::laugh::laugh:
    126
    Notes


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


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


    Bootanimations:
    I have collected some bootanimations.
    [Download Bootanimations Here]