[KERNEL][3.0.101] BraveKernel Refresh for KitKat - Sony Xperia P, U, Sola, Go

BRAVEKERNEL REFRESH​
Here we go with something (re)fresh, this is the thread of a customized kernel for KitKat ROMs (CM11, AOSX, SlimKat...) with some extra features added.
As always, feedback is welcome and highly valuable
Please if a bug is already reported do not spam the thread reporting it again, and use XDA DevDB tools for posting features requests and bug reports if it's possible :good:
Main features are these:
- Based in 6.2.A.1.100 source code
- Built with Linaro Toolchain 4.9.3 optimized for Cortex A9
- TWRP 2.8.4.0
- FRandom support
- Improvement in I/O latency
- Interactive governor updated to 3.4
- VFP optimizations
- PowerOn Key emulator
- ABBamp Sound Control v2.5.0
- Mali tweaks and controllers
- Governors and I/O schedulers parameters tweaked
- Cycle Charging control
- Real end-of-charge notification
- FSync control (combined dynamic fsync control)
- Voltage OTG control
- Added extra free kbytes tunable
- Swap and zRAM support
- Disabled dynamic debug
- Tweaked readahead size
- More choices of TCP congestions
- Proportional Rate Reduction for TCP
- Fix for scaling of minimum frequency problem
- Built with optimized -O3 & Neon flags
- SLUB memory allocator
- Ramdisk and kernel compressed with LZO
Available CPU governors:
- Powersave
- Userspace
- OnDemand
- Interactive (default)
- InteractiveQ
- Conservative
- OnDemandQ
- PegasusQ
- LulzActiveQ
- AbyssPlug
- HotPlug
- PegasusQPlus
- SmartAssv2
Available I/O schedulers:
- No-op
- Deadline
- CFQ
- ROW
- BFQ
- SIO
- ZEN
- V(R)
- SIO-Plus (default)
Kernel Downloads for KitKat:
BraveKernel Refresh KK-4.4 HubDroid Folder
- v1.3 -
for CM 11.0, AOSX, SlimKat...​
How to install the kernel:
1) Download the kernel zip file to SD card
2) Reboot to recovery
3) Flash the kernel zip file
4) Wipe cache and dalvik cache if you are coming from another kernel
5) Reboot the system
Kernel Manager APP
If you prefer to use a simpler way for installing the kernel you can use this app, it allows you to make a backup of your current kernel and it also displays OTA updates of this kernel, really recommended :good:
Kernel sources (on GitHub):
Development repository of BraveKernel 3.0.101 for KK 4.4
​
Changelog:
Code:
[B]08/02/2015 - BraveKernel Refresh v1.3 for KitKat[/B]
- Fixed random reboots
- Added minfree tweak in crontab
- Enabled JRCU
- Disabled management of not killable processes
[B]01/02/2015 - BraveKernel Refresh v1.2 for KitKat[/B]
- Tweaked adj and minfree values in init.d
- Added memory tweak in crontab
- Disabled JRCU
- Tweaked read_ahead_kb values
[B]25/01/2015 - BraveKernel Refresh v1.1 for KitKat[/B]
- Added F2FS support
- Fixed network arrows and speed information
- Fixed root and storage issues
- Added recovery in FOTA partition support
- Added kexec hardboot support
- Added 3 extra MB of usable RAM
- Added dynamic management of dirty page writebacks
- Added Ultra KSM
- Added entropy tweaks
- Updated BFQ scheduler
- Updated Linaro toolchain
- Improved LZO decompression
- Tweaked LMK
- Improved network speed
- Improved CPU performance
- Improved EXT4 speed
- Improved power management
- Tweaked memory management values
- Enabled clean cache
- Enabled JRCU
[B]21/12/2014 - BraveKernel Refresh v1.0 for KitKat[/B]
- Initial release
Credits and thanks to:
munjeni and cocafe for their awesome work and their kernel sources
AGONTUK for TWRP recovery
CyanogenMod, Kernel.org, Sony, Google, Linaro GCC developers
All my testers
​
XDA:DevDB Information
BraveKernel Refresh, Kernel for the Sony Xperia U
Contributors
Garcia98
Kernel Special Features: Customized kernel 3.0.101 for KK 4.4.x ROM
Version Information
Status: Stable
Current Stable Version: v1.3
Stable Release Date: 2015-02-08
Created 2014-12-24
Last Updated 2015-02-08

Reserved

HOW TOs
HOW TO PLAY WITH THIS KERNEL
Terminal emulator or ADB shell is needed.
If any command outputs 'Permission denied', you need su permission.
`???` stands for the number to input.
Change recovery:
To change your recovery:
1.- Open ADB shell or terminal emulator
2.- Download recovery.img
3.- Run:
Code:
su
dd if=recovery.img of=/dev/block/mmcblk0p13
4.- Reboot to recovery
F2FS:
To enable F2FS:
1) Reboot into recovery
2) Touch Wipe option > Advanced Wipe
3) Select the partition you want to convert to F2FS (Data or Cache)
4) Select Repair or Change File System option
5) Touch Change File System and then select F2FS
Boot time:
To check boot time:
Code:
cat /sys/boottime/kernel
CPU governors:
Performance, Interactive (default), Powersave, Userspace, Conservative, InteractiveQ, PegasusQ, HotPlug, OnDemandQ, OnDemand, AbyssPlug, LulzactiveQ, SmartAssv2
- OnDemand has been patched with cpu idle detection.
- Most of custom governors are based on ondemand/interactive.
- OndemandQ/InteractiveQ will hotplug cpu when screen turns off only.
- If you care about the battery life time, choose HotPlug. It hotplugs cpu frequently.
- Interactive updated to linux-android-3.4 (recommended).
- LulzactiveQ, will hotplug CPU1.
I/O schedulers:
SIO, SIO-Plus, VR, BFQ, CFQ, NO-OP, ZEN, ROW, Deadline
- Default IO scheduler: SIO-Plus
- SIO/ROW/SIO-Plus recommended!
FRandom module:
Code:
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 deepest sleep state:
Code:
echo 5 > /d/cpuidle/deepest_state
- HotPlug governors works badly with 5.
- OnDemand works well with 5.
- Please note that it won’t increase the using time but standby time.
- You can add an init.d script to tweak it if you want.
To check the cpuidle state:
Code:
cat /d/cpuidle/stats
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 100MB.
Setup disk size first: (example: 200MB)
Code:
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:
Code:
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:
Using a file as swap RAM: (Create a continuity file first)
Code:
su
cd /cache
dd if=/dev/zero of=swapfile bs=1024 count=81920
mkswap swapfile
swapon swapfile
Then we will have 80MB of swap RAM.
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:
Code:
echo on > /sys/kernel/abb-fg/fg_cyc
Disable:
Code:
echo off > /sys/kernel/abb-fg/fg_cyc
Discharging threshold (battery level %):
Code:
echo dischar=75 > /sys/kernel/abb-fg/fg_cyc
Recharging threshold:
Code:
echo dischar=70 > /sys/kernel/abb-fg/fg_cyc
Real charged notification:
Well, please let me call it notification.
To be honest, it needs to check manually:
Code:
cat /sys/kernel/abb-chargalg/eoc_status
- You can use Root Browser 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.
POnKey Emulator:
This is the software emulator of power key.
To turn off screen: ( 20 < value(ms) < 520 )
Code:
echo 100 > /sys/kernel/abb-ponkey/emulator
To active the power menu: ( 520 < value(ms) < ∞)
Code:
echo 800 > /sys/kernel/abb-ponkey/emulator
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.
First, why is it called `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 Root Browser 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 information 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.
AnaGain3 (Headset analog gain path):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/anagain3
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/anagain3
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 0[+4dB])
Code:
echo left=?? > /sys/kernel/abb-codec/anagain3
echo right=?? > /sys/kernel/abb-codec/anagain3
Write both left and right channels:
Code:
echo gain=?? > /sys/kernel/abb-codec/anagain3
HsLDigGain (Headset left digital path gain):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hsldiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsldiggain
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
Code:
echo gain=?? > /sys/kernel/abb-codec/hsldiggain
HsRDigGain (Headset right digital path gain):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hsrdiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsrdiggain
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/hslowpow
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hslowpow
To tweak the mode (0: disable LP mode, 1: enable LP mode)
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/hsdaclowpow
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsdaclowpow
To tweak the mode (0: disable LP mode, 1: enable LP mode)
Code:
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-noise of audio.
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hshpen
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hshpen
To tweak the mode (0: disable highpass filter, 1: enable highpass filter)
Code:
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 ClassD only relate to Handsfree(speaker).
This can increase the high frequencies sound of speaker
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/classdhpg
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/classdhgp
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
Code:
echo gain=?? > /sys/kernel/abb-codec/classdhpg
ClassDDithWGain:
Gain control for the white component of dithering filter
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/classdwg
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/classdwp
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/addiggain2
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/addiggain2
Gain control: (min:0 ,max: 63) lower value, higher gain (default: [+6dB], max: 00[+31dB])
Code:
echo gain=?? > /sys/kernel/abb-codec/addiggain2
EarDigGain:
This is the digital gain of earpiece
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/eardiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/eardiggain
Gain control: (min:0 ,max: 15) lower value,higher gain (default: 4[+4dB])
Code:
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:
Code:
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
[CODE]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[/CODE]
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:
Code:
echo [Index] [Disable?] > anaconf4
To Disable Speaker:
Code:
echo 5 1 > anaconf4
To Enable Speaker:
Code:
echo 5 0 > anaconf4
Headset Charge Pump:
Code:
echo 0 > chargepump to use fixed 1.8V supply.
echo 1 > chargepump to use dynamic voltage supply, lower power cost.
Lower-power Audio Mode:
Code:
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!
cd /d/asoc/U8500-card/ab8500-codec.0
Play music, reduce the volume.
Now we are going to edit the codec registers.
Code:
echo REG VAL > codec_reg
E.G:
AnaGain3:
Code:
echo 0x16 0x00 > codec_reg
HsDigGain: (left/right channel)
Code:
echo 0x4F 0x00 > codec_reg
echo 0x50 0x00 > codec_reg
Disable all lowpow mode:
Code:
echo 0x04 0x00 > codec_reg
- These hacks will restore when codec power off.
Camera LED Flash:
Turn on torch with more brightness, turning this on for a long time will heat up your device, be careful!
Enable/Disable:
Code:
echo 1/0 > /sys/devices/platform/nmk-i2c.2/i2c-2/2-0053/torch_enable
echo 149600 > /sys/devices/platform/nmk-i2c.2/i2c-2/2-0053/torch_current
FSync control:
Get current status:
Code:
cat /sys/kernel/fsync/mode
FSYNC modes:
0: fsync on
1: fsync off
2: fsync dyn
Disable FSYNC:
Code:
echo 1 > /sys/kernel/fsync/mode
Disabling fsync can improve I/O performance, but it can make the data which hasn't been written lose when a sudden power cut occurs.
Enable Dynamic FSYNC:
Code:
echo 2 > /sys/kernel/fsync/mode
- Dynamic fsync will sync all buffers when screen turns off.
- If there is a heavy I/O load, the screen might get stuck for seconds.
Mali GPU:
Mali debug level:
Disabling can speed up a bit
Code:
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))
Code:
echo xx > /sys/module/mali/parameters/mali_l2_max_read
- Some values will slow down graphics
- If not sure, keep default
Mali PM sampling rate: (Default: 1000ms)
Code:
echo xx > /sys/module/mali/parameters/mali_pm_sampling_rate
Mali PP scheduler tweaks: (Default: disable)
Code:
echo 1 > /sys/module/mali/parameters/mali_pp_scheduler_balance_jobs
- Enabling this, some places will over ahead, choose by yourself
Mali Utilization sampling rate: (Stock:500ms, Default:1000ms)
How often report a mali utilization.
Code:
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:
Code:
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.
Code:
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
Code:
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)
Code:
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:
Code:
busybox sysctl net.ipv4.tcp_available_congestion_control
To change to other option:
Code:
busybox sysctl -w net.ipv4.tcp_congestion_control=YOU_WANT_TO
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
- In fact, every congestion is designed 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
0 0 mali
Then remove libGLES_android.so
- Recommend to backup these files
- In case it cannot boot,use TWRP file manager to recover changes
Logcat:
Add a init.d script with the following content:
Code:
#!/system/bin/sh
insmod /system/lib/modules/logger.ko
And reboot your phone
Miscellaneous:
To refresh battery stats:
Code:
echo 1 > /sys/kernel/abb-fg/fg_refresh
Almost all tweaks will be restored to default after reboots.
So you can make your tweaks as init.d scripts or make scripts with SManager app to apply them at boot.

Been using it for a couple of hour, its stable enough on slimkat, no random reboots until now, great!!!
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Sent from my Xperia U

no init.d support?!!??
i cannot copy any file in init.d folder .....
*****EDIT****
init.d script works (i've put files inside init.d folder using older bravekernel1.5) but seem to be some problems with built-in superuser app in this new kernel
problem solved flashing supersu instead ....

I can't get the lowmemkiller whitelist to work with CM11 W37. Instead I'm getting even more launcher redraws. Is there something wrong with my approach? I followed everything given in the OP's Thread.

really strange things ... with this kernel pinballarcade app completely desappears and sqlite editor app crashing at start... revert back to old bravekernel 1.5 everything back to works and pinballarcade reapears itself...

..::Matr!x::.. said:
really strange things ... with this kernel pinballarcade app completely desappears and sqlite editor app crashing at start... revert back to old bravekernel 1.5 everything back to works and pinballarcade reapears itself...
Click to expand...
Click to collapse
I'll revert my chages in fstab and check su permissions.
DivyaMamgai said:
I can't get the lowmemkiller whitelist to work with CM11 W37. Instead I'm getting even more launcher redraws. Is there something wrong with my approach? I followed everything given in the OP's Thread.
Click to expand...
Click to collapse
Try Performance Control app for doing it easily: http://forum.xda-developers.com/showthread.php?t=2401988
Sent from my D5503 using XDA Free mobile app

Random apps like settings, google play services etc started crashing in the background. Then finally I got a random reboot. Happened after 6 hours of use.

It's a great kernel but it really freaking slows my phone.
I'm using CM11 with ART.
Do this kernel not work well on ART?

I have not try this kernel, but the premises should be good and better than the stock kernel of CyanogenMod 11, I can not wait to try it! Thanks for your great hard work @Garcia98 , this is really the best Christmas gift I could do us all xperia u. Happy xmas @Garcia98 !

I will use it again soon.

I'll suggest to wait next release .... atm there's something not properly working with root & permissions....

small2cats482 said:
Random apps like settings, google play services etc started crashing in the background. Then finally I got a random reboot. Happened after 6 hours of use.
Click to expand...
Click to collapse
Which ROM are you using and which settings?
jose97ct said:
It's a great kernel but it really freaking slows my phone.
I'm using CM11 with ART.
Do this kernel not work well on ART?
Click to expand...
Click to collapse
I don't recommend ART in KitKat ROMs
________________
Merry Christmas and happy holidays to all of you!

Garcia98 said:
Which ROM are you using and which settings?
I don't recommend ART in KitKat ROMs
________________
Merry Christmas and happy holidays to all of you!
Click to expand...
Click to collapse
ART worked really fine for me, but I'm back on Dalvik, I miss Xposed and WhatsApp.
On a clean install I'm not having problems, and I'll report battery lasting, general performance and stuff in a few days.
Thank you so much for your work Garcia98 and Merry Christmas to you all!

After 12h of use the wifi cant wake up, the wifi try to connect to my network but always stop at "Obtaining IP".
I get back to stock kernel, but I've good feelings with it.

Garcia98 said:
Which ROM are you using and which settings?
Click to expand...
Click to collapse
I didn't touch any settings. Using Interactive and Row on CM11 weekly 34 or 35 I think.

Garcia, for some unknown reason, i can't copy init.d scripts into init.d folder. I checked my root permissions, everything's fine. I can delete apps from system. Also when i input frandom commands, it says no such file found. Can you please solve my issue?
Sent from the Mars to the Earth just to post a reply.
---------- Post added at 11:56 PM ---------- Previous post was at 11:07 PM ----------
I managed to get 50mb of swap file but I've one doubt. It's created in root/cache. Not in sdcard. I know swap file degrades any flash memory but if this degrades the system memory, i won't be able to switch on mobile, right or wrong?
Sent from the Mars to the Earth just to post a reply.

Vtrendzzy said:
Garcia, for some unknown reason, i can't copy init.d scripts into init.d folder. I checked my root permissions, everything's fine. I can delete apps from system. Also when i input frandom commands, it says no such file found. Can you please solve my issue?
Sent from the Mars to the Earth just to post a reply.
---------- Post added at 11:56 PM ---------- Previous post was at 11:07 PM ----------
I managed to get 50mb of swap file but I've one doubt. It's created in root/cache. Not in sdcard. I know swap file degrades any flash memory but if this degrades the system memory, i won't be able to switch on mobile, right or wrong?
Sent from the Mars to the Earth just to post a reply.
Click to expand...
Click to collapse
Try to create a file in init.d using su and touch /system/etc/init.d/nameofscript commands, also you can try to edit an existing script and add your commands there (dirty solution but the effect will be the same). This issue will be fixed in next release.
About frandom issue it was a typo in instructions, change the path adding /system in the beginning (/system/lib/modules/frandom.ko).
Regarding swap question, it's true that a flash memory is limited to a X number of write cycles, but our phone has just one flash memory of ~8GB, so it doesn't care in which partition you create the swapfile, however you can decrease swappiness to prevent that from happening
Sent from my D5503 using XDA Free mobile app

Garcia98 said:
Try to create a file in init.d using su and touch /system/etc/init.d/nameofscript commands, also you can try to edit an existing script and add your commands there (dirty solution but the effect will be the same). This issue will be fixed in next release.
About frandom issue it was a typo in instructions, change the path adding /system in the beginning (/system/lib/modules/frandom.ko).
Regarding swap question, it's true that a flash memory is limited to a X number of write cycles, but our phone has just one flash memory of ~8GB, so it doesn't care in which partition you create the swapfile, however you can decrease swappiness to prevent that from happening
Sent from my D5503 using XDA Free mobile app
Click to expand...
Click to collapse
Sent from the Mars to the Earth just to post a reply.

Related

[Kernel] CoCore-E-Refresh r24

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.
Click to expand...
Click to collapse
( 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 )
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
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
su
Click to expand...
Click to collapse
Now lets flash(dd) kernel to kernel partition
dd if=/sdcard/kernel.bin.md5 of=/dev/block/mmcblk0p15
Click to expand...
Click to collapse
5. Reboot to take effects
reboot
Click to expand...
Click to collapse
* If you type a wrong dd command,it might hard birck your phone
So please think twice before hit enter
* WARNING: Think twice before you hit Enter,
some people bricked their phone because of a wrong command.
* Recommend SAFER recovery method
* It is recommended that check the md5 of kernel.bin.md5
If it doesnt match 'md5.txt' in zips,dont flash to phone.
Please re-download zips
[Recovery method]:
CoCore-E 4.0+ will only provide flashable zips.
Please flash custome recovery kernel first(3.3 or others).
Press Vol.Up + Home + Power to go to recovery.
Then choose zips in external/internal sdcard to flash.
( Uninstall )
Flash stock kernel to uninstall
dd if=/dev/block/mmcblk0p17 of=/dev/block/mmcblk0p15
Click to expand...
Click to collapse
* 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
2. Faq & how-to
( FAQ )
Q: What firmware does this kernel support?
A: All ROM bases on stock firmwares,all stock firmwares.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
Q: Do I need to wipe anything when flashing this kernel?
A: NO
Click to expand...
Click to collapse
Q: My phone rebooted suddenly!!! What can i do?!
A: Give me /proc/last_kmsg and logcat. Will try my best to fix.
Click to expand...
Click to collapse
Q: Do i need to wipe data or dalvik caches?
A: No.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
To check boottime
cat /d/boottime/summary
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
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>
Click to expand...
Click to collapse
To decrease the voltage (UV) of a step: Example: @200MHz
echo varm- > arm_step0
Click to expand...
Click to collapse
To increase the voltage (OV) of a step: Example: @200MHz
echo varm+ > arm_step0
Click to expand...
Click to collapse
To change the voltage of a step:
echo varm=0x?? > arm_step<id>
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
mali_boost_delay
The delay of boosting frequency, in ms.
echo ??? > /sys/kernel/mali/mali_boost_delay
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
mali_gpu_load
GPU load (aka: utilization)
Click to expand...
Click to collapse
mali_gpu_vape
GPU voltage on full speed.
Click to expand...
Click to collapse
version
GPU OC driver version.
Click to expand...
Click to collapse
( IO schedulers )
SIO(2012), SIO-Plus, VR, BFQ(v7r2), CFQ, NOOP, ZEN, ROW(v4), Deadline
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
( Deepest sleep state )
Stock: 3 Default: 3
Deepest supported is 5.
To change:
echo 5 > /d/cpuidle/deepest_state
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
Then we will have an 80mb swap RAM.
( Init.d script )
Please install busybox in system first
I recommend install busybox via apps
Create a new folder named 'init.d' in /system/etc
Set the permission of init.d foler to 0777(rwxrwxrwx) (at least has read and exec permission)
Set the owner to 0.0 (root root)
Put some scripts (any name you like) in init.d folder with permission 0777 (rwxrwxrwx) (at least has read and exec permission)
Scripts with right permission will be executed when system boots.
( Charger Control )
Please note that this control can damage your battery/phone.
If your battery/phone damaged, read the top of #1 post.
Lower current makes the charging longer, but protects battery.
On our board, the highest safe current is 900mA
( 6.8- ) See here,6.8+ has used new entries
( 8.6+)
To enable Current Control:
Setup current first: (for example, 900mA)
echo 900 > /sys/kernel/abb-charger/charger_curr
Click to expand...
Click to collapse
Turn on Current Control:
echo on > /sys/kernel/abb-charger/charger_curr
Click to expand...
Click to collapse
Turn off Current Control:
echo off > /sys/kernel/abb-charger/charger_curr
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
To enable:
echo on > /sys/kernel/abb-charger/charger_hw
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
( Real charged notification )
Well, please let me call it notification.
To be honest, it needs to check manually.
( 6. For old versions
cat /sys/kernel/abb-chargalg/eoc_status
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
To active the power menu: ( 520 < value(ms) < ∞)
echo 800 > /sys/kernel/abb-ponkey/emulator
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
* 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. 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
Click to expand...
Click to collapse
* 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 :::
Click to expand...
Click to collapse
[AnaGain3] (Headset analog gain path):
Enable tweaks:
echo on > /sys/kernel/abb-codec/anagain3
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/anagain3
Click to expand...
Click to collapse
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 0[+4dB])
echo left=?? > /sys/kernel/abb-codec/anagain3
Click to expand...
Click to collapse
echo right=?? > /sys/kernel/abb-codec/anagain3
Click to expand...
Click to collapse
Write both left and right channels:
echo gain=?? > /sys/kernel/abb-codec/anagain3
Click to expand...
Click to collapse
[HsLDigGain] (Headset left digital path gain)
Enable tweaks:
echo on > /sys/kernel/abb-codec/hsldiggain
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/hsldiggain
Click to expand...
Click to collapse
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
echo gain=?? > /sys/kernel/abb-codec/hsldiggain
Click to expand...
Click to collapse
[HsRDigGain] (Headset right digital path gain)
Enable tweaks:
echo on > /sys/kernel/abb-codec/hsrdiggain
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/hsrdiggain
Click to expand...
Click to collapse
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
echo gain=?? > /sys/kernel/abb-codec/hsrdiggain
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/hslowpow
Click to expand...
Click to collapse
To tweak the mode (0: disable LP mode, 1: enable LP mode)
echo mode=? > /sys/kernel/abb-codec/hslowpow
Click to expand...
Click to collapse
[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
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/hsdaclowpow
Click to expand...
Click to collapse
To tweak the mode (0: disable LP mode, 1: enable LP mode)
echo mode=? > /sys/kernel/abb-codec/hsdaclowpow
Click to expand...
Click to collapse
[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
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/hshpen
Click to expand...
Click to collapse
To tweak the mode (0: disable highpass filter, 1: enable highpass filter)
echo mode=? > /sys/kernel/abb-codec/hshepen
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/classdhgp
Click to expand...
Click to collapse
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
echo gain=?? > /sys/kernel/abb-codec/classdhpg
Click to expand...
Click to collapse
[ClassDDithWGain]
Gain control for the white component of dithering filter
Enable tweaks:
echo on > /sys/kernel/abb-codec/classdwg
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/classdwp
Click to expand...
Click to collapse
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
echo gain=?? > /sys/kernel/abb-codec/classdwg
Click to expand...
Click to collapse
[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
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/addiggain2
Click to expand...
Click to collapse
Gain control: (min:0 ,max: 63) lower value, higher gain (default: [+6dB], max: 00[+31dB])
echo gain=?? > /sys/kernel/abb-codec/addiggain2
Click to expand...
Click to collapse
[EarDigGain]
This is the digtal gain of earpiece
Enable tweaks:
echo on > /sys/kernel/abb-codec/eardiggain
Click to expand...
Click to collapse
Disable tweaks:
echo off > /sys/kernel/abb-codec/eardiggain
Click to expand...
Click to collapse
Gain control: (min:0 ,max: 15) lower value,higher gain (default: 4[+4dB])
echo gain=?? > /sys/kernel/abb-codec/classdwg
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
echo ?? ?? > /sys/kernel/abb-codec/shortcir
Click to expand...
Click to collapse
* 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:
echo 5 1 > anaconf4
Click to expand...
Click to collapse
To Enable Speaker:
echo 5 0 > anaconf4
Click to expand...
Click to collapse
[Headset Charge Pump]
echo 0 > chargepump to use fixed 1.8V supply.
echo 1 > chargepump to use dynamic voltage supply, lower power cost.
Click to expand...
Click to collapse
[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
Click to expand...
Click to collapse
[Experts!]:
This method can work on any ab850x codec platform!
cd /d/asoc/U*/ab*
Click to expand...
Click to collapse
Play music,reduce the volume.
Now we are going to edit the codec registers.
echo REG VAL > codec_reg
Click to expand...
Click to collapse
E.G:
AnaGain3:
echo 0x16 0x00 > codec_reg
Click to expand...
Click to collapse
HsDigGain: (left/right channel)
echo 0x4F 0x00 > codec_reg
echo 0x50 0x00 > codec_reg
Click to expand...
Click to collapse
Disable all lowpow mode:
echo 0x04 0x00 > codec_reg
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
To change the boost freq: (default: 400000, stock: 800000)
echo xxxxxx > /sys/kernel/mxt224e/touchboost_freq
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
echo off > /sys/kernel/mxt224e/touchboost_ddr
Click to expand...
Click to collapse
To adjust the delay of canceling touch booster:
echo ??? > /sys/kernel/mxt224e/touchboost_delay
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
* 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?
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
Tweak the threshold of sliding:
echo threshold_x=??? > /sys/kernel/mxt224e/sweep2wake
echo threshold_y=??? > /sys/kernel/mxt224e/sweep2wake
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
( Fsync control )
( 6. For old versions
( 6.8+)
Get current status:
cat /sys/kernel/fsync/mode
Click to expand...
Click to collapse
FSYNC modes:
0: fsync on
1: fsync off
2: fsync dyn
Click to expand...
Click to collapse
Disable FSYNC:
echo 1 > /sys/kernel/fsync/mode
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
There are three files named main_?
For example, we tweak the red color here
echo 29 > main_R
Click to expand...
Click to collapse
* 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.:
echo -1 > main_R
Click to expand...
Click to collapse
( 6.8+):
echo reset > main_R
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
( 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]
Click to expand...
Click to collapse
( S6E63M0 Brightness Control )
Change directory first:
cd cd /sys/kernel/s6e63m0/panel
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
To disable tweaks:
echo reset > illumination
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
To disable:
echo 0 19 > illumination_table
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
( Mali GPU )
Mali debug level
Disabling can speed up a bit
echo 0 > /sys/module/mali/parameters/mali_debug_level
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
Mali PP scheduler tweaks: (Default: disable)
echo 1 > /sys/module/mali/parameters/mali_pp_scheduler_balance_jobs
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
( TCP congestions )
Supported:
cubic(default), westwood, highspeed, vegas, veno, yeah
Click to expand...
Click to collapse
To check all the available options:
busybox sysctl net.ipv4.tcp_available_congestion_control
Click to expand...
Click to collapse
To change to other option:
busybox sysctl -w net.ipv4.tcp_congestion_control=YOU_WANT_TO
Click to expand...
Click to collapse
#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
Click to expand...
Click to collapse
* 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
Click to expand...
Click to collapse
To
0 0 mali
Click to expand...
Click to collapse
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. 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
Click to expand...
Click to collapse
( 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!!
Click to expand...
Click to collapse
Recommended for experienced users, be careful, don't type a wrong partition number.
EXT4 to F2FS
Click to expand...
Click to collapse
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
F2FS to EXT4
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
( 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
Click to expand...
Click to collapse
* frapeti recommended 350ms
( Miscellaneous )
To shut down phone forcefully:
echo 1 > /sys/module/ab8500_sysctrl/parameters/force_pwroff
Click to expand...
Click to collapse
To refresh battery stats:
echo 1 > /sys/kernel/abb-fg/fg_refresh
Click to expand...
Click to collapse
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
Click to expand...
Click to collapse
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:
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
Click to expand...
Click to collapse
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]
Download link?
Thvmh said:
Download link?
Click to expand...
Click to collapse
A dude takes up my post.
I am waiting him to delete
Sorry
AW: [Kernel][10/02/2013] CoCore-E 2.8
Yey new Kernel Does this Kernel have the NFC Driver?
EDIT: Sry didn't read its for 4.1
Gesendet von meinem GT-I9070P mit Tapatalk 2
Nice noob friendly thread. :angel: :good::good::good:
Re: [Kernel][10/02/2013] CoCore-E 2.8
cocafe said:
A dude takes up my post.
I am waiting him to delete
Sorry
Click to expand...
Click to collapse
No problem!
Verstuurd van mijn GT-I9070 met Tapatalk
Karsten95 said:
Yey new Kernel Does this Kernel have the NFC Driver?
Gesendet von meinem GT-I9070P mit Tapatalk 2
Click to expand...
Click to collapse
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
cocafe said:
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
Click to expand...
Click to collapse
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:
sr cocafe i contact mod and delete soon :silly:
happy lunar new year everyone 5m to go new years
cocafe said:
Reserved Reserved Reserved
Click to expand...
Click to collapse
Boy Boy , can i know when you will release Cocore v4.1 Final kernel here because i still in GB JetMOD... ?
Re: [Kernel][10/02/2013] CoCore-E 2.8
coolkillermax said:
Boy Boy , can i know when you will release Cocore v4.1 Final kernel here because i still in GB JetMOD... ?
Click to expand...
Click to collapse
Thanks!! :thumbup:
dungeonshard said:
sr cocafe i contact mod and delete soon :silly:
happy lunar new year everyone 5m to go new years
Click to expand...
Click to collapse
Lol i release it with P kernel too
A lot of people are playing outside! Boom boom boom
Okay have to sleep
Sent from my GT-I9070 using xda premium
LOL im sick for 5 days and i cant go anywhere sr u so much, im from vn , now place
0:06 :good:
Any bugs?
kisiel96 said:
Any bugs?
Click to expand...
Click to collapse
Had to. :laugh::laugh::laugh::laugh::laugh:
It just come out. And it is easy to try, and check it yourself.
cocafe said:
Thanks!! :thumbup:
Lol i release it with P kernel too
A lot of people are playing outside! Boom boom boom
Okay have to sleep
Sent from my GT-I9070 using xda premium
Click to expand...
Click to collapse
Yes my side also with alot fireworks like war in the Sky..... Boy Boy you no answer my question yet...
---------- Post added at 01:31 AM ---------- Previous post was at 01:24 AM ----------
kisiel96 said:
Any bugs?
Click to expand...
Click to collapse
shut_down said:
Had to. :laugh::laugh::laugh::laugh::laugh:
It just come out. And it is easy to try, and check it yourself.
Click to expand...
Click to collapse
:good: :good: :laugh: :laugh: :laugh: :laugh:
And you found Bugs have to use this :
:laugh: :laugh: :laugh: :laugh: :laugh:
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

[Kernel][3.4.113][DualBoot] Chrono Kernel R5.10

Custom kernel for Samsung Galaxy Ace 2​
Features:
Only one universal kernel for JB, KK and LP-based ROMs
CPU, GPU and DDR OC support
more governors and I/O schedulers
Lite kernel - some kernel features moved to modules
fully working BLN
Sweep2wake && Doubletap2wake
CPU freq settings for suspend
Full F2FS support
SELinux support
UKSM support
ABB-charger tweaks
Credits:
@dh.harald and @hafidzduddin for contribution on codina sources
@ Team Canjica for a base for this kernel
@ Nova Fusion for F2FS implementation
@zwliew for contribution on TC kernel
@cocafe for LiveOPP, GPU OC, abbamp and abb-charger tweaks and many cool patches which I've used from his kernel
@faux123 for dynamic Fsync implementation
@Christopher83 for dynamic management of dirty page writebacks implementation
@KINGbabasula for contribution on TC kernel sources
@boype for SIOPlus tweaks and OndemandPlus governor
@Adi_Pat for abbamp, kernel tweaks
@PolishVodka for initramfs scripts for 4.2.x and 5.0.x
@Rox for help in fixing initramfs scripts for 4.1.2
@ace2nutzer for optimization CPU OC and for whatever scripts which I have used in my kernel
@Meticulus for BLN, Sweep2wake and Doubletap2wake
@mkaluza for huge LiveOPP/Mali improvements and Dynamic governor
@yanpol199 for help with F2FS support in TWRP
@ all users who tests this kernel and directs the development along the right path
@ all those users, who I forgot to mention (PM me if so)
Team Win for TWRP recovery
CyanogenMod Team for CWM recovery
Phil3759 for philz recovery
Samsung for opening kernel source
Linus Torvalds for Linux sources
Standard Disclaimer: Not responsible for bricking your phone, voiding your warranty, or any other pain or suffering you may feel as result of using this kernel!!!
To install kernel with F2FS support read installation method in 3rd post
To install kernel with dual boot support, proceed this method.
Since R2.12.1 has been released, no need to care about bootscripts, kernel package will install it itself.
Source Code:
r6.0
< r6.0
Download:
FTP
Thanks @S.AMU for providing FTP-Server
Thanks @shaqman89 for providing build server
​
XDA:DevDB Information
Chrono Kernel, Kernel for the Samsung Galaxy Ace II
Contributors
ChronoMonochrome, cocafe, faux123, zwliew, mkaluza, Meticulus, KINGbabasula, ace2nutzer, TeamCanjica
Source Code: https://github.com/ChronoMonochrome/Chrono_Kernel-1/commits/master-3.10
Kernel Special Features: Swappable ramdisk, UKSM, dual boot support
Version Information
Status: Stable
Current Stable Version: R5.1
Stable Release Date: 1974-11-11
Beta Release Date: 1974-11-11
Created 2014-06-24
Last Updated 2017-10-27
Changelogs and features
Bug list:
-
Changelog
(old changelog)
R2.10
Build from R2.6 sources with re-added all changes in LiveOPP, cpufreq_limits module, some interfaces from 2.9.x (usb sw reset, PonKey emulator on voldown/up).
R2.9
Mali OC module v2.0:
added interfaces boost_hispeed1, boost_hispeed2.
added interfaces mali_threshold_freq_down and mali_threshold_freq_up
(new interfaces manual)
1) mali_threshold_freq_down/up:
echo new value to tweak it:
Code:
echo 150 > /sys/kernel/mali/mali_threshold_freq_up
2) mali_boost_hispeed(2)
Use command
Code:
echo idx=X > /sys/kernel/mali/mali_boost_hispeed2
to tweak its freq.
following command is to tweak its threshold:
Code:
echo threshold=220 > /sys/kernel/mali/mali_boost_hispeed2
partially re-enabled touchboost (it actually was enabled even on 2.7.4, but I forgot to mention)
reverted suspend/hibernate/freezer etc. commits to hopefully fix reboots issue in deepsleep
fixed APE_25_OPP (in suspend it actually used APE50 previously)
minor fixes in cpufreq_limits driver
R2.8
Mali OC module v2.0(detailed description in 3rd post):
added interfaces boost_hispeed1, boost_hispeed2.
added interfaces mali_threshold_freq_down and mali_threshold_freq_up
partially re-enabled touchboost (it actually was enabled even on 2.7.4, but I forgot to mention)
reverted suspend/hibernate/freezer etc. commits to hopefully fix reboots issue in deepsleep
fixed APE_25_OPP (in suspend it actually used APE50 previously)
minor fixes in cpufreq_limits driver
(2.7.6)
- fixed broken GPU scaling algorithm (removed /sys/kernel/mali/mali_scaling_dynamic)
(2.7.5)
- partially reverted LiveOPP voltage autocalibration
- fixed unstable mali tunables and added interface mali_scaling_dynamic
Code:
echo 1 > /sys/kernel/mali/mali_scaling_dynamic
When mali_scaling_dynamic is used, mali will scale between mali_boost_low and mali_boost_high using all steps between these mentioned. mali_stats provides statistics about mali utilization on each step.
- removed some GPU freq steps
(2.7.4)
- new governor Dynamic (thanks to mkaluza)
- new GPU scaling algorithm (thanks to 1N4148 ) - ondemand-like GPU governor
- LiveOPP: reworked avs-based varm recalibration algorithm
(2.7.3)
added governor OndemandPlus (thanks to boype)
removed governors with hotplugging support
added interface to tweak PLLDDR freq on suspend:
Code:
echo on > /sys/kernel/cpufreq/pllddr_raw
To control freq are used raw PLLDDR register values:
Code:
echo suspend=0x000050158 > /sys/kernel/cpufreq/pllddr_raw # 675 MHz
Code:
echo resume=0x000050168 > /sys/kernel/cpufreq/pllddr_raw # 798 MHz
PLLDDR freq can be checked via
Code:
cat /sys/kernel/liveopp/pllddr
Settings applies after 3 sec after suspend/resume.
Too low suspend or too high resume value may cause reboot. Please note that this setting still experimental and unstable itself, so it's disabled by default.
adjusted some GPU OC defaults
fixed BT issues
(2.7.2)
- fixed pllddr_cross_clocks instability
- removed unneeded DDR_50_OPP requirement on screen on (should prolong battery lifetime).
2.7
many various commits from Linux 3.3 (thanks @faux123)
improved hotplugging mechanism
updated RCU system
kernel scheduler
memory management
etc...
LiveOPP:
recalibrate varm and vbbx on boot (better stability)
added interface to OC some clocks that depends on PLLDDR
reimplemented sweep2wake and doubletap2wake (thanks @Meticulus)
enabled UKSM (thanks @cocafe)
- better RAM performance with tiny cost CPU. Boot time will be increased by 3 sec, it's ok.
uploaded kernel for s6d.
R2.6
ABB-charger:
reverted most of changes. It's only uses custom voltage table, termination current 150 mA and some other tweaks, provided by ace2nutzer.
added tweakable interfaces for termination current(better battery lifetime).
LiveOPP:
added most ape_25_opp switch interface
added steps 85, 350, 450 MHz.
ddrpll interface renamed to pllddr ;D
added input boost support for most of governors (thanks to zwliew for original patch)
R2.5
- only one kernel version for all ROMs/Filesystems/codina(p), please note that installation method is different from usual installation
- Switch to single platform RTC driver - AB500 (finally fixed all problems with clock freeze issue) [golden-guy]
- update LiveOPP from CoCore
- reworked and added DDRPLL boost [WIP]
R2.4
completely rewritten screenoff limits driver
added steps 30, 125, 150, 175 MHz, increased voltage on various steps for stability
enabled SELinux again
various fixes in FAT filesystem
re-added exFat support
re-added ZenX
abb charger fix v2 [ace2nutzer]
zRam script moved to init.d (to be able to change zRam size) on CM11
new package installation script, with little changes by me (thanks to borkins for help with this)
R2.3.2
improved battery live (full credit to ace2nutzer)
reduced liveopp table (too hard to search stable/optimal voltage)
Reverted all commits from tuna kernel (these changes are tested not well, may cause instability)
temporarily disabled SELinux
R2.2
LiveOPP 2.2:
no longer use setting ARM OPP (this previously caused lags)
simple algorithm for setting clock and voltages
use only pll, external clock no longer used
use only 1 varm selection
Big LiveOPP table (51 step: 46, 69,..., 1244 MHz)
Added and optimized new governor ZenX
Added FIFO I/O scheduler
Moved more kernel stuff to modules
TWRP 2.8.0.0
R2.1.5
Huge update from Tuna Hybrid kernel by @faux123 ( a lot thanks to him! ) :
a lot various commits from Linux Kernel 3.3-rc3
various fixes backported from Linux 3.5
fixed 3G/WiFi data arrows again
reduced kernel: 628 Mb RAM is available
Reverted from R2.1:
update of device-specific drivers from Novathor 3.4 kernel
"ARM: 7493/1: use generic unaligned.h"
(R2.0.2)
update from TC kernel
moved all networking modules to kernel (fixed lost data usage, tethering, etc.)
added module autoload (read below)
renamed interface /sys/kernel/cpufreq/screenoff_cpufreq_limits -> /sys/kernel/cpufreq/cpufreq_limits_on_suspend
R2.0-refresh
Cleaned kernel source tree from some doubtful commits
moved some kernel features to modules(thanks to mkaluza for idea and most of changes)
9p, CIFS, NTFS file systems
some unneeded ipv6 features
HID drivers
most of governors
slightly decreased boot time(in my case, from 8500 to 8330 ms)
slightly increased available RAM - 628 MB (thanks to reduced kernel size)
Huge LiveOPP improvement by mkaluza:
improved overclock stability, added all extended steps
UV 100-400 MHz steps to 0x12-0x14 (lower power consumption)
added state APE_25_OPP, used only with screen off(originally introduced by mkaluza, adapted for codina by me)
allowed change APE_OPP and DDR_OPP from LiveOPP
changed step 1228 MHz -> 1248 MHz (may cause reboots, need to find out optimal voltage)
Mali improvements by mkaluza
temporarily removed 25 MHz step (don't know how to add it with new LiveOPP, all attempts is caused boot loop)
(R1.6.3)
revert "update sweep2wake and doubletap2wake by Meticulus"
add cpufreq steps: 25, 500, 700 MHz; remove: 1050, 1100, 1250 MHz (only 12 CPU freq step is allowed)
R1.6
ARM: 7493/1: use generic unaligned.h (This has the
benefit of better code generated especially for ARMv7 on gcc 4.7+
compilers.)
register rear cam flash as LED (for BLN) - thanks to @Meticulus
update sweep2wake and doubletap2wake by Meticulus
add LMK timeout interface - @cocafe
Fix max freq not capped on suspend bug on Lulzactive (it was conflicted with screenoff cpufreq limits driver)
(R1.5.2)
F2FS support in TWRP (thanks to [email protected] for help with this)
R1.5.1
update from TC kernel
enabled SELinux (was disabled in r1.5 for testing)
ARM: 7006/1: Migrate to asm-generic wrapper support
added jRCU (thanks to cocafe)
Bugfixes
reverted to LK 3.2.0
fixed disappeared data usage monitor and probably data arrows also
fixed wifi/usb tethering - hopefully, need tests
fixed incorrect display of RAM occupied by some applications
fixed incorrect phone recognition on codina P in CWM/TWRP - thanks to @ace2nutzer
R1.5
Completely reworked file systems update:
fixed reboots, apps FC
fixed CWM loop
fixed huge battery drain (hopefully)
F2FS backported to Linux 3.2
R1.4
Bumped to Linux 3.2.9
File systems: big update from LK 3.2
Writeback: update from LK 3.2
Reduced wlan_rx_wake wakelock by half - zwliew
F2FS support in /system
Fixed more potential and real memory leaks in kernel
Removed u8500 hotplug driver again
R1.3
added BLN separate configuration of blink on and off delays
added MCDE tweaks (read below)
tweaked PegasusQ governor (based on script by ace2nutzer)
fixes:
reverted commits which caused most of random reboots reasons
finally fixed kernel panic in CFQ I/O scheduler (I hope so)
interactive governor reverted to stock TC
R1.2
workaround for s6d display bug (separate kernel version - soon)
CPU freq settings for screen off
Updates from linux kernel 3.2 (currently updated to 3.2):
File systems
Specific drivers
Security
Various core changes
Reverted:
Proportional Rate Reduction for TCP
Power management update from 3.2
1000 MHz messy workaround, provide another workaround instead
r1.1
Fixed 100 MHz bug
Added 300 MHz CPU step
Added VR I/O scheduler again (thanks to @cocafe for fixes compile errors)
Updates from Linux Kernel 3.2:
Process bandwith controller
Thin provisioning and recursive snapshots in the Device Mapper
I/O-less dirty throttling, reduce filesystem writeback from page reclaim
Proportional Rate Reduction for TCP
Memory management (Cross Memory Attach, "vmscan: add block plug for page reclaim", "thp: mremap support and TLB optimization", etc.)
Networking
Device Mapper
Virtualization
Crypto
Tracing/Profiling
r1
backport new zRam driver from 3.5 LK by @faux123. Also enables LZ4 compressor for zRam.
add u8500 hotplug driver by @zwliew again
revert voltage of display and other regulators to stock
add vpnclient.ko
a somewhat fixes and optimizations from CoCore - thanks to @cocafe
fix lagfree, lulzactiveq and interactive wrong tunables
adjust voltage(0x37) for 1200 and 1250 MHz
17.08.2014
Undervolt display from 1800 to 1400 mV
Undervolt various regulators
Revert CFQ to 3.0 branch to fix reboot issue
Add Lionheart governor, disable InteractiveQ and Hotplug
Support for 4.2.x ROMs (thanks to @PolishVodka for initramfs)
12.08.2014
fixed CFQ reboot issue (i hope so )
reboot into recovery from extended power menu should work (JB 4.1.2)- thanks to Rox
TWRP recovery instead CWM for ext4 kernel versions
Update to 3.1.10
9.08.2014
Fixed reboot issue (I hope so)
Add BFQ scheduler again
Fixed UMS bugs - thanks to cocafe
Upgrade kernel to 3.1.1
4.08.2014
Fixed bug of random change min CPU freq to 1Ghz.
Removed u8500 hotplug driver
Update sioplus from [email protected]
Temporarily removed BFQ and VR I/O scheds because they are became broken for some reasons.
Update LMK from [email protected]
Updates from 3.1 LK:
Sound cards, input devices, watchdogs, networking, staging, multifunctional devices, ... etc. See full list of changes on github.
29.07.2014
Added CPU 100MHz freq step
U8500 hotplug driver - zwliew
Universal exfat driver - zwliew
Switch to SLUB again
Updates from LK 3.1:
SLUB
Memory management (6/7 commits)
VFS (9/10 commits)
Dynamic writepage throttling
21.07.2014
revert CPU voltages to default for 0-3 steps
some changes in memory management
17.07.2014
Switch to SLQB memory allocator
Update BFQ I/O sched from v7r3 to v7r5
Enable UHID support (testing)
Some fixes in memory management
Remove some buggy "fixes" from last build
5.07.2014
fixed headset bug that appeared in last build
fixed the file permissions for CoCore Manager (for JB)
4.07.2014
F2FS support (still only KK version)
Usb drivers from STEXperia sola kernel instead stock samsung
(probably, UMS bug has been fixed. For me it works perfectly now.)
LZ4-compressed kernel support
minor fixes
27.06.2014
sources updated
enabled init.d support in kernel (JB)
added Lagfree governor
added ROW I/O scheduler
23.06.2014
fixed cpu oc via 3rd party apps
lowmemorykiller should be less aggressive
19.06.2014
cwm 6.0.48 instead stock recovery
14.06.2014
initial build
Kernel Tweaks:
(GPU/CPU undervolting and related tweaks)
Undervolting the CPU/GPU will bring battery savings but possible instability.
1) to undervolt CPU use ChronoKernel app or via init.d scripts:
Code:
echo *cpufreq* varm=xx > /sys/kernel/liveopp/arm_summary
for example, following sets voltage varm=0x10 for 200 MHz:
Code:
echo 200000 varm=0x10 > /sys/kernel/liveopp/arm_summary
or
Code:
echo 200000 varm-=10 > /sys/kernel/liveopp/arm_summary
(default varm voltage for 200 MHz is 0x1a but, code above sets 0x1a - 0xa(10) = 0x10 )
2) to undervolt GPU use init.d script:
Code:
echo x vape=yy > /sys/kernel/mali/mali_dvfs_config
Example:
Code:
echo 2 vape=0x1c > /sys/kernel/mali/mali_dvfs_config
"2" stands for DVFS idx (look at mali_boost_high/mali_boost_low).
To prevent overriding of such settings by ChronoKernel app, add line to your init.d script after GPU undervolting
Code:
chmod 444 /sys/kernel/mali/mali_dvfs_config
Don't change voltage of both GPU/CPU at the same time - otherwise if you'll get reboot if won't know what it caused. The same is for different frequencies - if you'll change voltage of too many steps you won't know which frequency caused reboot. It's not easy process, though, following method simplifies it: https://github.com/mkaluza/i9070_kernel_CoCore-E/wiki/Undervolting-janice .
3) Custom LiveOPP table.
By default some LiveOPP steps such as 100, 200, 500 ... MHz aren't used. You can re-enable those by following way:
Code:
echo 200000 enable=1 > /sys/kernel/liveopp/arm_summary
Or use CK app instead. Don't enable it unless it uses the same voltage as 400 MHz. The same is for the rest frequencies - until some of them uses same voltage, no point to enable steps with lower freq. I've added 100 MHz just to further make some tests with it once again. It can't use lower varm than 200 MHz - that's why it's disabled by default. Furthermore, not all phones well keep undervoltage, that's why 100-400 MHz steps uses same stock voltage varm=0x1a.
UPD. thanks to @borkins for this nice editor LiveOPP ARM steps: http://forum.xda-developers.com/showpost.php?p=60311291&postcount=2921
(CPU freq management tweaks)
CPU freq. limiter for screen OFF, adjust it via:
Code:
SYSFS=/sys/kernel/cpufreq/cpufreq_limits_on_suspend
echo min=100000 > $SYSFS
echo max=400000 > $SYSFS
echo on > $SYSFS
Too low frequency may cause freezes after wakeup and sound scrathes. If you use Dynamic govermor, it make no sense to use cpufreq limiter, because Dynamic already takes care about CPUfreq usage optimization. For more, read wiki.
Input boost
This feature has been originally written by zwliew.
Not all governors support input boost. Supported governors: ondemand, interactive, conservative, ZenX, lionheart and some others. Dynamic governor has its own boost interface.
Default boost frequency is 400 MHz.
Code:
echo 450000 > /sys/kernel/cpufreq/input_boost_freq # echo '0' to disable
echo 35 /sys/kernel/cpufreq/input_boost_ms
(BackLight Notification)
To configure time intervals of BLN blinking type(bln_ondelay stands for time of blink and bln_offdelay - delay between two blinks):
Code:
echo bln_ondelay=500 > /sys/kernel/bln/blink_mode
echo bln_offdelay=6000 > /sys/kernel/bln/blink_mode
Make sure BLN enabled:
Code:
echo 1 > /sys/class/misc/backlightnotification/enabled
# to enable bln_wakelock.
echo on > /sys/kernel/bln/bln_wakelock
Use /sys/devices/virtual/misc/backlightnotification/blink_mode to changes modes.
Blink modes:
0 = no blinking
1 = blink backlight only
2 = blink backlight + rear cam flash
3 = blink rear cam flash only
(Module autoload)
Now there is a simple way to load modules at boot. Just move needed modules to /system/lib/modules/autoload and reboot device(or execute /etc/init.d/00autoload)
(DDR overclock)
This feature has been developed by me and allows you to improve DDR and GPU performance. Please note, that DDR OC might work unstable and cause filesystem corruption. Though, DDR clock of 975 MHz has been highly tested and should work fairly stable on most devices.
Overclocking DDR over 975 MHz is highly NOT recommended, especially in case if you not sure that you can deal with possible consequences.
How to OC DDR:
1) by using
this script .
2) by using Terminal Emulator(in example below 975 MHz):
Code:
echo 0x5017f > /sys/kernel/liveopp/pllddr_oc_on_suspend
This setting will be applied right after disabling screen.
(Minimum APE/DDR OPP on screen on)
This feature has been developed by me and allows to set minimum APE/DDR OPP states which are used when screen is ON. APE controls many systems such as an image, video, audio system etc. DDR OPP determines performance of DDR. Default values are APE50 and DDR50. Lower states(APE25/DDR25) reduces power consumption, but may cause graphical glitches like screen blinking or filling it by vertical grey lines. If you don't have mentioned effects, it's recommended to use APE25/DDR25:
Code:
echo ddropp=25 > /sys/devices/pri_lcd_ws2401.0/mcde_screenon_opp
echo apeopp=25 > /sys/devices/pri_lcd_ws2401.0/mcde_screenon_opp
* if you don't have folder /sys/devices/pri_lcd_ws2401.0, use /sys/devices/pri_lcd_s6d27a1 instead.
(Screen refresh rate)
This feature has been developed by cocafe and modified by me. Lower lcdclk frequency cause less power usage, but too low values makes system unusable.
Following command allows to change screen refresh rate:
Code:
echo x > /sys/kernel/mcde/lcdclk
use
Code:
cat /sys/kernel/mcde/lcdclk
to see supported lcdclk modes. Default mode is 60 Hz which is recommended in most typical cases. If you've screen tearings, blinking etc. change resresh rate mode to "60+ Hz":
Code:
echo 0 > /sys/kernel/mcde/lcdclk
(ABB charger tweaks)
added tweakable interfaces for termination current. To adjust it type(just an example):
Code:
echo 90 > /sys/kernel/abb-chargalg/termination_curr_1st
echo 70 > /sys/kernel/abb-chargalg/termination_curr_2nd
curr_2nd should be less or same as curr_1st. Lower values prolongs battery lifetime, but also slows battery charging.
Default values are curr_1st == curr_2nd == 150 mA. Please note, too low values maybe aren't usable.
(Dynamic FSync)
This feature has been developed by Faux123 and allows to dynamically manage the synchronous writes performed on file system (FSync).
It uses asynchronous writes when the screen is on, instead of synchronous writes, to have better performance and a slightly lower battery drain, while when the screen is off the synchronous writes are re-enabled to flush all the outstanding writes and prevent possible data loss.
How to enable/disable the Dynamic FSync (default enabled):
1) By downloading and using Trickster MOD
2) By directly editing the file /sys/kernel/dyn_fsync/Dyn_fsync_active and setting 1 to enable the dynamic fsync, 0 to disable it (note that set value will be lost after a reboot/shutdown)
3) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run this command to disable the dynamic fsync feature
Code:
su
echo 0 > /sys/kernel/dyn_fsync/Dyn_fsync_active
- Or run this command to re-enable the dynamic fsync feature
Code:
su
echo 1 > /sys/kernel/dyn_fsync/Dyn_fsync_active
Click to expand...
Click to collapse
(Software CRCs)
Disabling software CRCs gives you a slight bump(10-30% is what they say) of MMC performance, at the cost of a possibility of your Ace 2 freezing randomly.
Code:
echo 0 > /sys/module/mmc_core/parameters/use_spi_crc
Click to expand...
Click to collapse
(Dynamic dirty page writebacks)
This feature has been developed by Christopher83 and allows to dynamically manage the dirty page writebacks with two different intervals, one when the screen is on and another when the screen is off.
It is based on a commit of Francisco Franco, but instead of using hard coded values and of disabling at all the dirty page writebacks while the screen is on (possibility of data loss).
By using a higher interval we have better performance and less battery consumption, with a very low risk of data loss.
How to customize the dynamic dirty page writebacks feature (default disabled):
Three new procfs parameters are exposed inside /proc/sys/vm path:
- dynamic_dirty_writeback is the activation status of this feature, set 1 to enable it, set 0 to disable it and use the standard behaviour
- dirty_writeback_active_centisecs is the interval for the dirty page writebacks when the system is active (screen on), the default value is 1500 centisecs (15 seconds)
- dirty_writeback_suspend_centisecs is the interval for the dirty page writebacks when the system is suspended (screen off), the default value is 500 centisecs (5 seconds)
1) By directly editing one of the file written above inside /proc/sys/vm and setting the preferred value (note that set value will be lost after a reboot/shutdown)
2) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run this command to disable the dynamic dirty page writebacks feature
Code:
echo 0 > /proc/sys/vm/dynamic_dirty_writeback
- Or run this command to re-enable the dynamic dirty page writebacks feature
Code:
echo 1 > /proc/sys/vm/dynamic_dirty_writeback
- Run this command to set customize the two intervals (30 seconds while the screen is on, 10 seconds when the screen is off)
Code:
echo "3000" > /proc/sys/vm/dirty_writeback_active_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_suspend_centisecs
(Storages switch)
By default, this kernel comes with internal and external storages switched. You can revert this behavior, by changing the line
Code:
use_swap=1
to
Code:
use_swap=0
in file /ramdisk/fstab_specs.txt and flashing the kernel package. This setting will remain until you format /ramdisk partition.
(Tweak app)
ChronoKernel settings
Thanks mars_army for this app!
Bug reports:
after experiencing a random reboot, type in terminal:
Code:
su
cat /proc/last_kmsg > /storage/sdcard0/last_kmsg.txt
report it in the thread and attach the last_kmsg.txt
Other information
How to install kernel with F2FS support:
For those who don't know what F2FS is, check these links out:
General info
Benchmarks
Warnings
1. Make sure you have a standard kernel for backup that uses ext4 just in case. If anything goes wrong, just install the backup kernel and reboot to recovery.
2. You will have to wipe your /data and /cache partitions for this. Basically factory reset.
3. For 2, you could try to backup data and restore after formatting. I haven't tried this but I could work.
Click to expand...
Click to collapse
Installation method of kernels with full F2FS support:
Before installation make sure that you have at least ~25% free space on each partition that will be formatted to F2FS.
for CWM:
make backup
format /system partition to F2FS (and also /data and /cache if you didn't do it before)
restore /system partition
for TWRP
disable md5 generation
make backup of /system
find backup folder, run terminal and rename file system.ext4.win to system.f2fs.win (it won't work via filemanager)
Code:
mv system.ext4.win system.f2fs.win
format /system as f2fs
restore backup
Then install kernel.
To install kernel on ROM that isn't supported by installer:
(supported ROMs):
Stock ROM 4.1.2
CyanogenMod 10.1*
CyanogenMod 10.2*
CyanogenMod 11*
CyanogenMod 12
* most ROMs that based on this ROM are also supported. Despite of that some ROMs are supported, they can work incorrectly due to difference in their initramfs scripts(ramdisk).
1. Install needed ROM first,
2. Type following command in terminal emulator:
Code:
cd /
find . -xdev | cpio -o -Hnewc | gzip -9 > /sdcard/x.y.z.cpio.gz
where x.y.z is OS version (for example - CM11-based ROM - 4.4.4.cpio.gz)
3. put this file in installer at osfiles/x.y.z/ (e.g. osfiles/4.4.4/4.4.4.cpio.gz)
4. install kernel
To install a new ROM that is not F2FS compatible:
Use EXT4 to F2FS converter script
or edit the updater-script as follows
(manual method)
1. Replace strings
"mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");"
with string
"run_program("/sbin/busybox", "mount", "/system");"
2. Replace string
"format("ext4", "EMMC", "/dev/block/mmcblk0p3", "0", "/system");"
with string
"run_program("/sbin/mkfs.f2fs", "/dev/block/mmcblk0p3");"
3. Add string
"run_program("/sbin/busybox", "mount", "/data");"
after strings
"run_program("/sbin/mkfs.f2fs", "/dev/block/mmcblk0p3");"
"run_program("/sbin/busybox", "mount", "/system");"
4. Add string
"unmount("/data");"
before string
unmount("/system");
Click to expand...
Click to collapse
Fix for CodinaP, recognized as Codina in recovery (thanks @fluffi444 )
http://forum.xda-developers.com/showpost.php?p=58839849&postcount=2448
Various tweaks (thanks @xo.en )
xo.en said:
do NOT use swapiness more than 30, bigger values can bog machine down!
small advice:
Code:
#!/system/bin/sh
#chmod -R 755 /system/etc/init.d
chown root:root /proc/sys/vm;
echo "30" > /proc/sys/vm/swappiness;
busybox chmod ugo+rw /proc/sys/vm/vfs_cache_pressure;
echo "50" > /proc/sys/vm/vfs_cache_pressure;
echo "2000" > /proc/sys/vm/dirty_expire_centisecs;
echo "1500" > /proc/sys/vm/dirty_writeback_centisecs;
busybox chmod ugo+rw /proc/sys/vm/dirty_ratio;
echo "90" > /proc/sys/vm/dirty_ratio;
busybox chmod ugo+rw /proc/sys/vm/dirty_background_ratio;
echo "75" > /proc/sys/vm/dirty_background_ratio;
echo "512" > /sys/devices/virtual/bdi/default/read_ahead_kb;
echo "10" > /proc/sys/fs/lease-break-time;
echo "4" > /proc/sys/vm/page-cluster;
echo "5360" > /proc/sys/vm/min_free_kbytes;
echo "8" > /proc/sys/vm/min_free_order_shift;
echo "0" > /proc/sys/vm/oom_kill_allocating_task;
echo "1" > /proc/sys/vm/overcommit_memory
busybox sysctl -w kernel.random.write_wakeup_threshold=256;
busybox sysctl -w kernel.random.read_wakeup_threshold=1376;
and
Code:
#!/system/bin/sh
chmod 0644 /sys/module/lowmemorykiller/parameters/adj
echo "0,3,6,10,12,15" > /sys/module/lowmemorykiller/parameters/adj;
chmod 0644 /sys/module/lowmemorykiller/parameters/minfree
echo "1024,2048,2560,4096,6144,8192" > /sys/module/lowmemorykiller/parameters/minfree;
chmod 0644 /sys/module/lowmemorykiller/parameters/debug_level
echo "0" > /sys/module/lowmemorykiller/parameters/debug_level;
works miracles in my case, especially second one, imho it would be hard to use different values, i was trying different setups for YEARS(with this machine), so it is not just random throw. Bigger LMK REALLY makes things worse here. It usually has tremendous influence over fluidity of gui, and whole sys.
Click to expand...
Click to collapse
Odin kernel
with TWRP
with CWM
There is no KSM or Low Memory killer or any Performance tweaks ?? Built in CWM ?
Master-ZizO said:
There is no KSM or Low Memory killer or any Performance tweaks ?? Built in CWM ?
Click to expand...
Click to collapse
This kernel based on stock CM kernel by TeamCanjica, and it's have same changes.
Damn, I was so excited to see a new kernel, but I noticed that it's actually for 4.1.2. I almost flashed it on a 4.4.3, not that it would have been such a tragedy.
Is there gonna be a version for the KitKat ROMs?
dragos281993 said:
Is there gonna be a version for the KitKat ROMs?
Click to expand...
Click to collapse
yes, please wait a little bit.
ChronoMonochrome said:
yes, please wait a little bit.
Click to expand...
Click to collapse
OK. I've got another question for you. Are you gonna add "lagfree" between the governors you already added, because that's probably one of the best governors a kernel can have ?
This is for stock samsung JB?
yes it is
Even if in the download section it says 4.4.2, I flashed the kernel on a Carbon 4.4.3 and it's working like a charm. The only thing that doesn't show up correctly is both frequency bars in "performance". It shows 0MHz max, 0MHz minimum, but if you set the minimum to 600MHz, for example, the frequency will run at 600 minimum, even if it shows 0.
five attempts and each time bootloop and recovery keys do not work.
dragos281993 said:
The only thing that doesn't show up correctly is both frequency bars in "performance". It shows 0MHz max, 0MHz minimum, but if you set the minimum to 600MHz, for example, the frequency will run at 600 minimum, even if it shows 0.
Click to expand...
Click to collapse
It works normally for me. (ROM CM11 by TeamCanjica 4.4.2)
dragos281993 said:
OK. I've got another question for you. Are you gonna add "lagfree" between the governors you already added, because that's probably one of the best governors a kernel can have ?
Click to expand...
Click to collapse
Maybe I'll add this Governor.
mPiter said:
five attempts and each time bootloop and recovery keys do not work.
Click to expand...
Click to collapse
please post your last_kmsg log.
@ChronoMonochrome how do I do ksmg log when the phone does not turn on?
ChronoMonochrome said:
It works normally for me. (ROM CM11 by TeamCanjica 4.4.2)
Maybe I'll add this Governor.
please post your last_kmsg log.
Click to expand...
Click to collapse
If you added "lagfree", you'd be the first on to do it, so it would obviously be amazing and it would make you a better developer than others, of course.
EDIT: About the frequency thing, for me it shows 0MHz probably because I've got kitkat 4.4.3. Everything else's working fine.
@mPiter ,
Bug reports:
after experiencing a random reboot, type in terminal:
Code:
su
cat /proc/last_kmsg > /storage/sdcard0/last_kmsg.txt
report it in the thread and attach the last_kmsg.txt
Click to expand...
Click to collapse
p.s. restore stock kernel first.
there is a new folder in sdcard0 : triggers and files in it ( Cpt log). what is it?
ip3000 said:
there is a new folder in sdcard0 : triggers and files in it ( Cpt log). what is it?
Click to expand...
Click to collapse
I have no idea what caused this problem. Because on stock kernel and CM kernel i did not have this problem. Try to remove this folder and create text file with same name.
Would love to see lag free if anyone could make possible
Sent from my GT-I8160 using Tapatalk
1. Compatible for aosp 4.4.4 or only for CM?
2. Whats is the different with custom kernel by zwliew?
@ChronoMonochrome

[KERNEL][3.0.101] BraveKernel Refresh for KitKat

BRAVEKERNEL REFRESH​
Here we go with something (re)fresh, this is the thread of a customized kernel for KitKat ROMs (CM11, AOSX, SlimKat...) with some extra features added.
As always, feedback is welcome and highly valuable
Please if a bug is already reported do not spam the thread reporting it again, and use XDA DevDB tools for posting features requests and bug reports if it's possible :good:
Main features are these:
- Based in 6.2.A.1.100 source code
- Built with Linaro Toolchain 4.9.3 optimized for Cortex A9
- TWRP 2.8.1.0
- FRandom support
- Improvement in I/O latency
- Interactive governor updated to 3.4
- VFP optimizations
- PowerOn Key emulator
- ABBamp Sound Control v2.5.0
- Mali tweaks and controllers
- Governors and I/O schedulers parameters tweaked
- Cycle Charging control
- Real end-of-charge notification
- FSync control (combined dynamic fsync control)
- Voltage OTG control
- Added extra free kbytes tunable
- Swap and zRAM support
- Disabled dynamic debug
- Tweaked readahead size
- More choices of TCP congestions
- Proportional Rate Reduction for TCP
- Fix for scaling of minimum frequency problem
- Management of not killable processes
- Built with optimized -O3 & Neon flags
- SLUB memory allocator
- Ramdisk and kernel compressed with LZO
Available CPU governors:
- Powersave
- Userspace
- OnDemand
- Interactive (default)
- InteractiveQ
- Conservative
- OnDemandQ
- PegasusQ
- LulzActiveQ
- AbyssPlug
- HotPlug
- PegasusQPlus
- SmartAssv2
Available I/O schedulers:
- No-op
- Deadline
- CFQ
- ROW
- BFQ
- SIO
- ZEN
- V(R)
- SIO-Plus (default)
Kernel Downloads for KitKat:
BraveKernel Refresh KK-4.4 Mediafire Folder
- v1.0 -
for CM 11.0, AOSX, SlimKat...​
How to install the kernel:
1) Download the kernel zip file to SD card
2) Reboot to recovery
3) Flash the kernel zip file
4) Wipe cache and dalvik cache if you are coming from another kernel
5) Reboot the system
Kernel Manager APP
If you prefer to use a simpler way for installing the kernel you can use this app, it allows you to make a backup of your current kernel and it also displays OTA updates of this kernel, really recommended :good:
Kernel sources (on GitHub):
Development repository of BraveKernel 3.0.101 for KK 4.4
​
Changelog:
Code:
[B]21/12/2014 - BraveKernel Refresh v1.0 for KitKat[/B]
- Initial release
Credits and thanks to:
munjeni and cocafe for their awesome work and their kernel sources
AGONTUK for TWRP recovery
CyanogenMod, Kernel.org, Sony, Google, Linaro GCC developers
All my testers
​
XDA:DevDB Information
BraveKernel Refresh, Kernel for the Sony Xperia Sola
Contributors
Garcia98
Kernel Special Features: Customized kernel 3.0.101 for KK 4.4.x ROM
Version Information
Status: Stable
Current Stable Version: v1.0
Stable Release Date: 2014-12-24
Created 2014-12-24
Last Updated 2015-01-10
HOW TOs
HOW TO PLAY WITH THIS KERNEL
Terminal emulator or ADB shell is needed.
If any command outputs 'Permission denied', you need su permission.
`???` stands for the number to input.
Sometimes you will need to mount and unmount debugfs partition:
For mounting it:
Code:
mount -t debugfs debugfs /d
For unmounting it:
Code:
umount /d
Boot time:
To check boot time:
Code:
cat /sys/boottime/kernel
CPU governors:
Performance, Interactive (default), Powersave, Userspace, Conservative, InteractiveQ, PegasusQ, HotPlug, OnDemandQ, OnDemand, AbyssPlug, LulzactiveQ, SmartAssv2
- OnDemand has been patched with cpu idle detection.
- Most of custom governors are based on ondemand/interactive.
- OndemandQ/InteractiveQ will hotplug cpu when screen turns off only.
- If you care about the battery life time, choose HotPlug. It hotplugs cpu frequently.
- Interactive updated to linux-android-3.4 (recommended).
- LulzactiveQ, will hotplug CPU1.
I/O schedulers:
SIO, SIO-Plus, VR, BFQ, CFQ, NO-OP, ZEN, ROW, Deadline
- Default IO scheduler: SIO-Plus
- SIO/ROW/SIO-Plus recommended!
FRandom module:
Code:
insmod /system/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.
Mount debugfs
To change deepest sleep state:
Code:
echo 5 > /d/cpuidle/deepest_state
- HotPlug governors works badly with 5.
- OnDemand works well with 5.
- Please note that it won’t increase the using time but standby time.
- You can add an init.d script to tweak it if you want.
To check the cpuidle state:
Code:
cat /d/cpuidle/stats
Management of not killable processes:
This feature allows to define processes and system processes white-lists filled with the preferred process names and to not be killed by lowmemorykiller, unless it is absolutely necessary.
This feature exposes four new lowmemorykiller parameters:
- donotkill_proc, is the flag to enable / disable this feature for the processes chosen by the user
- donotkill_sysproc, is the flag to enable / disable this feature for the system processes chosen by the user
- donotkill_proc_names, is the list of process names (comma separated) chosen by the user to be preserved from killing
- donotkill_sysproc_names, is the list of user system process names (comma separated) chosen by the user to be preserved from killing
When the lowmemorykiller needs to free ram, it will first kill the processes not included inside the two process name lists chosen by the user.
If there are no more standard killable processes, then it will be necessary to kill one of the processes included inside one of the two white-lists, to prevent system hangs, slowdowns, etc.
How to customize the white lists of processes to preserve from killing:
- Run these commands if you want to enable the feature
Code:
# To enable this feature for the processes chosen by the user
echo 1 > /sys/module/lowmemorykiller/parameters/donotkill_proc
# To enable this feature for the system processes chosen by the user
echo 1 > /sys/module/lowmemorykiller/parameters/donotkill_sysproc
- Run these commands if you want to disable the feature
Code:
# To disable this feature for the processes chosen by the user
echo 0 > /sys/module/lowmemorykiller/parameters/donotkill_proc
# To disable this feature for the system processes chosen by the user
echo 0 > /sys/module/lowmemorykiller/parameters/donotkill_sysproc
- Run this command if you want to add, for example, Trebuchet Launcher (CM default launcher) and the default keyboard to the processes white list
Code:
echo "com.cyanogenmod.trebuchet,android.inputmethod.latin" > /sys/module/lowmemorykiller/parameters/donotkill_proc_names
- Run this command if you want to add, for example, the system process, the phone process and DSP Manager to the system processes white list
Code:
echo "android.process.acore,com.android.phone,com.bel.android.dspmanager" > /sys/module/lowmemorykiller/parameters/donotkill_sysproc_names
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 100MB.
Setup disk size first: (example: 200MB)
Code:
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:
Code:
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:
Using a file as swap RAM: (Create a continuity file first)
Code:
su
cd /cache
dd if=/dev/zero of=swapfile bs=1024 count=81920
mkswap swapfile
swapon swapfile
Then we will have 80MB of swap RAM.
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:
Code:
echo on > /sys/kernel/abb-fg/fg_cyc
Disable:
Code:
echo off > /sys/kernel/abb-fg/fg_cyc
Discharging threshold (battery level %):
Code:
echo dischar=75 > /sys/kernel/abb-fg/fg_cyc
Recharging threshold:
Code:
echo dischar=70 > /sys/kernel/abb-fg/fg_cyc
Real charged notification:
Well, please let me call it notification.
To be honest, it needs to check manually:
Code:
cat /sys/kernel/abb-chargalg/eoc_status
- You can use Root Browser 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.
POnKey Emulator:
This is the software emulator of power key.
To turn off screen: ( 20 < value(ms) < 520 )
Code:
echo 100 > /sys/kernel/abb-ponkey/emulator
To active the power menu: ( 520 < value(ms) < ∞)
Code:
echo 800 > /sys/kernel/abb-ponkey/emulator
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.
First, why is it called `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 Root Browser 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 information 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.
AnaGain3 (Headset analog gain path):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/anagain3
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/anagain3
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 0[+4dB])
Code:
echo left=?? > /sys/kernel/abb-codec/anagain3
echo right=?? > /sys/kernel/abb-codec/anagain3
Write both left and right channels:
Code:
echo gain=?? > /sys/kernel/abb-codec/anagain3
HsLDigGain (Headset left digital path gain):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hsldiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsldiggain
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
Code:
echo gain=?? > /sys/kernel/abb-codec/hsldiggain
HsRDigGain (Headset right digital path gain):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hsrdiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsrdiggain
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/hslowpow
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hslowpow
To tweak the mode (0: disable LP mode, 1: enable LP mode)
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/hsdaclowpow
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsdaclowpow
To tweak the mode (0: disable LP mode, 1: enable LP mode)
Code:
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-noise of audio.
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hshpen
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hshpen
To tweak the mode (0: disable highpass filter, 1: enable highpass filter)
Code:
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 ClassD only relate to Handsfree(speaker).
This can increase the high frequencies sound of speaker
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/classdhpg
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/classdhgp
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
Code:
echo gain=?? > /sys/kernel/abb-codec/classdhpg
ClassDDithWGain:
Gain control for the white component of dithering filter
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/classdwg
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/classdwp
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/addiggain2
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/addiggain2
Gain control: (min:0 ,max: 63) lower value, higher gain (default: [+6dB], max: 00[+31dB])
Code:
echo gain=?? > /sys/kernel/abb-codec/addiggain2
EarDigGain:
This is the digital gain of earpiece
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/eardiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/eardiggain
Gain control: (min:0 ,max: 15) lower value,higher gain (default: 4[+4dB])
Code:
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:
Code:
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
[CODE]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[/CODE]
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:
Code:
echo [Index] [Disable?] > anaconf4
To Disable Speaker:
Code:
echo 5 1 > anaconf4
To Enable Speaker:
Code:
echo 5 0 > anaconf4
Headset Charge Pump:
Code:
echo 0 > chargepump to use fixed 1.8V supply.
echo 1 > chargepump to use dynamic voltage supply, lower power cost.
Lower-power Audio Mode:
Code:
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!
Mount debugfs
cd /d/asoc/U8500-card/ab8500-codec.0
Play music, reduce the volume.
Now we are going to edit the codec registers.
Code:
echo REG VAL > codec_reg
E.G:
AnaGain3:
Code:
echo 0x16 0x00 > codec_reg
HsDigGain: (left/right channel)
Code:
echo 0x4F 0x00 > codec_reg
echo 0x50 0x00 > codec_reg
Disable all lowpow mode:
Code:
echo 0x04 0x00 > codec_reg
- These hacks will restore when codec power off.
Camera LED Flash:
Turn on torch with more brightness, turning this on for a long time will heat up your device, be careful!
Enable/Disable:
Code:
echo 1/0 > /sys/devices/platform/nmk-i2c.2/i2c-2/2-0053/torch_enable
echo 149600 > /sys/devices/platform/nmk-i2c.2/i2c-2/2-0053/torch_current
FSync control:
Get current status:
Code:
cat /sys/kernel/fsync/mode
FSYNC modes:
0: fsync on
1: fsync off
2: fsync dyn
Disable FSYNC:
Code:
echo 1 > /sys/kernel/fsync/mode
Disabling fsync can improve I/O performance, but it can make the data which hasn't been written lose when a sudden power cut occurs.
Enable Dynamic FSYNC:
Code:
echo 2 > /sys/kernel/fsync/mode
- Dynamic fsync will sync all buffers when screen turns off.
- If there is a heavy I/O load, the screen might get stuck for seconds.
Mali GPU:
Mali debug level:
Disabling can speed up a bit
Code:
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))
Code:
echo xx > /sys/module/mali/parameters/mali_l2_max_read
- Some values will slow down graphics
- If not sure, keep default
Mali PM sampling rate: (Default: 1000ms)
Code:
echo xx > /sys/module/mali/parameters/mali_pm_sampling_rate
Mali PP scheduler tweaks: (Default: disable)
Code:
echo 1 > /sys/module/mali/parameters/mali_pp_scheduler_balance_jobs
- Enabling this, some places will over ahead, choose by yourself
Mali Utilization sampling rate: (Stock:500ms, Default:1000ms)
How often report a mali utilization.
Code:
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:
Code:
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.
Code:
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
Code:
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)
Code:
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:
Code:
busybox sysctl net.ipv4.tcp_available_congestion_control
To change to other option:
Code:
busybox sysctl -w net.ipv4.tcp_congestion_control=YOU_WANT_TO
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
- In fact, every congestion is designed 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
0 0 mali
Then remove libGLES_android.so
- Recommend to backup these files
- In case it cannot boot,use TWRP file manager to recover changes
Logcat:
Create a new file(empty file) named logger in /data
When this file exists, kernel will load logger.ko for you automatically
Miscellaneous:
To refresh battery stats:
Code:
echo 1 > /sys/kernel/abb-fg/fg_refresh
Almost all tweaks will be restored to default after reboots.
So you can make your tweaks as init.d scripts or make scripts with SManager app to apply them at boot.
OK, it's booted.
Gonna try more.
Very laggy after flashing. I followed all the installation steps correctly.
Downloading now
Works excellent on CM11!
Will report soon battery life
acGFX said:
Very laggy after flashing. I followed all the installation steps correctly.
Click to expand...
Click to collapse
+1
Lag is present and I am noticing random freezes at times
Sent from my Xperia Sola using XDA Free mobile app
Finally!
Going to try soon!
Thanks for this -
Real charged notification:
Well, please let me call it notification.
To be honest, it needs to check manually:
Code:
cat /sys/kernel/abb-chargalg/eoc_status
- You can use Root Browser 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.
And, can you explain what's this? -
POnKey Emulator:
This is the software emulator of power key.
To turn off screen: ( 20 < value(ms) < 520 )
Code:
echo 100 > /sys/kernel/abb-ponkey/emulator
To active the power menu: ( 520 < value(ms) < ∞)
Code:
echo 800 > /sys/kernel/abb-ponkey/emulator
acGFX said:
Very laggy after flashing. I followed all the installation steps correctly.
Click to expand...
Click to collapse
abbas23 said:
+1
Lag is present and I am noticing random freezes at times
Sent from my Xperia Sola using XDA Free mobile app
Click to expand...
Click to collapse
Which ROM are you using?
DarkFalcon said:
Finally!
Going to try soon!
Thanks for this -
Real charged notification:
Well, please let me call it notification.
To be honest, it needs to check manually:
Code:
cat /sys/kernel/abb-chargalg/eoc_status
- You can use Root Browser 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.
And, can you explain what's this? -
POnKey Emulator:
This is the software emulator of power key.
To turn off screen: ( 20 < value(ms) < 520 )
Code:
echo 100 > /sys/kernel/abb-ponkey/emulator
To active the power menu: ( 520 < value(ms) < ∞)
Code:
echo 800 > /sys/kernel/abb-ponkey/emulator
Click to expand...
Click to collapse
The P(ower)OnKey Emulator emulates the power button (a short value turns on/off the screen and a long value opens the power menu), you probably won't be using this very often, but it is useful to have it just if it's needed.
Cm11
Sent from my Xperia Sola using XDA Free mobile app
CM11 Build 35
I didn't have any lags in omniROM.
psycho-punk said:
Does this kernel work with OmniROM?
Click to expand...
Click to collapse
yes, of course.
itachilinux said:
yes, of course.
Click to expand...
Click to collapse
What about battery life ? Better, worse or about the same? P.s sorry for asking too much
Sent from my Xperia Sola using XDA Free mobile app
abbas23 said:
What about battery life ? Better, worse or about the same? P.s sorry for asking too much
Sent from my Xperia Sola using XDA Free mobile app
Click to expand...
Click to collapse
don't ask me for battery life. my battery is damaged
abbas23 said:
Cm11
Sent from my Xperia Sola using XDA Free mobile app
Click to expand...
Click to collapse
acGFX said:
CM11 Build 35
Click to expand...
Click to collapse
Weird...
________________
Merry Christmas and happy holidays to all of you!
im using carbon kitkat for xperia sola, it will work ?
Okay i flashed it again after unmounting system
It is working perfectly now thanks a lot
Sent from my Xperia Sola using XDA Free mobile app
kiayichsan said:
im using carbon kitkat for xperia sola, it will work ?
Click to expand...
Click to collapse
yes
How is the battery life?
Sent from my MT27i using Tapatalk
Will there be a fix for CM11? It is very hard to do something now and I don't want to re-flash.

[KERNEL][3.0.101] BraveKernel Refresh for KitKat

BRAVEKERNEL REFRESH​
Here we go with something (re)fresh, this is the thread of a customized kernel for KitKat ROMs (CM11, AOSX, SlimKat...) with some extra features added.
As always, feedback is welcome and highly valuable
Please if a bug is already reported do not spam the thread reporting it again, and use XDA DevDB tools for posting features requests and bug reports if it's possible :good:
Main features are these:
- Based in 6.2.A.1.100 source code
- Built with Linaro Toolchain 4.9.3 optimized for Cortex A9
- TWRP 2.8.4.0
- FRandom support
- Improvement in I/O latency
- Interactive governor updated to 3.4
- VFP optimizations
- PowerOn Key emulator
- ABBamp Sound Control v2.5.0
- Mali tweaks and controllers
- Governors and I/O schedulers parameters tweaked
- Cycle Charging control
- Real end-of-charge notification
- FSync control (combined dynamic fsync control)
- Voltage OTG control
- Added extra free kbytes tunable
- Swap and zRAM support
- Disabled dynamic debug
- Tweaked readahead size
- More choices of TCP congestions
- Proportional Rate Reduction for TCP
- Fix for scaling of minimum frequency problem
- Built with optimized -O3 & Neon flags
- SLUB memory allocator
- Ramdisk and kernel compressed with LZO
Available CPU governors:
- Powersave
- Userspace
- OnDemand
- Interactive (default)
- InteractiveQ
- Conservative
- OnDemandQ
- PegasusQ
- LulzActiveQ
- AbyssPlug
- HotPlug
- PegasusQPlus
- SmartAssv2
Available I/O schedulers:
- No-op
- Deadline
- CFQ
- ROW
- BFQ
- SIO
- ZEN
- V(R)
- SIO-Plus (default)
Kernel Downloads for KitKat:
BraveKernel Refresh KK-4.4 MediaFire Folder
- v1.3 -
for CM 11.0, AOSX, SlimKat...​
How to install the kernel:
1) Download the kernel zip file to SD card
2) Reboot to recovery
3) Flash the kernel zip file
4) Wipe cache and dalvik cache if you are coming from another kernel
5) Reboot the system
Kernel Manager APP
If you prefer to use a simpler way for installing the kernel you can use this app, it allows you to make a backup of your current kernel and it also displays OTA updates of this kernel, really recommended :good:
Kernel sources (on GitHub):
Development repository of BraveKernel 3.0.101 for KK 4.4
​
Changelog:
Code:
[B]08/02/2015 - BraveKernel Refresh v1.3 for KitKat[/B]
- Added minfree tweak in crontab
- Disabled management of not killable processes
- Tweaked adj and minfree values in init.d
- Added memory tweak in crontab
- Tweaked read_ahead_kb values
- Added F2FS support
- Fixed network arrows and speed information
- Fixed root and storage issues
- Added recovery in FOTA partition support
- Added kexec hardboot support
- Added 3 extra MB of usable RAM
- Added dynamic management of dirty page writebacks
- Added Ultra KSM
- Added entropy tweaks
- Updated BFQ scheduler
- Updated Linaro toolchain
- Improved LZO decompression
- Tweaked LMK
- Improved network speed
- Improved CPU performance
- Improved EXT4 speed
- Improved power management
- Tweaked memory management values
- Enabled clean cache
- Enabled JRCU
[B]21/12/2014 - BraveKernel Refresh v1.0 for KitKat[/B]
- Initial release
Credits and thanks to:
munjeni and cocafe for their awesome work and their kernel sources
AGONTUK for TWRP recovery
CyanogenMod, Kernel.org, Sony, Google, Linaro GCC developers
All my testers
​
XDA:DevDB Information
BraveKernel Refresh, Kernel for the Sony Xperia Go
Contributors
Garcia98
Kernel Special Features: Customized kernel 3.0.101 for KK 4.4.x ROM
Version Information
Status: Stable
Current Stable Version: v1.3
Stable Release Date: 2015-02-08
Created 2014-12-24
Last Updated 2016-06-10
HOW TOs
HOW TO PLAY WITH THIS KERNEL
Terminal emulator or ADB shell is needed.
If any command outputs 'Permission denied', you need su permission.
`???` stands for the number to input.
F2FS:
To enable F2FS:
1) Reboot into recovery
2) Touch Wipe option > Advanced Wipe
3) Select the partition you want to convert to F2FS (Data or Cache)
4) Select Repair or Change File System option
5) Touch Change File System and then select F2FS
Boot time:
To check boot time:
Code:
cat /sys/boottime/kernel
CPU governors:
Performance, Interactive (default), Powersave, Userspace, Conservative, InteractiveQ, PegasusQ, HotPlug, OnDemandQ, OnDemand, AbyssPlug, LulzactiveQ, SmartAssv2
- OnDemand has been patched with cpu idle detection.
- Most of custom governors are based on ondemand/interactive.
- OndemandQ/InteractiveQ will hotplug cpu when screen turns off only.
- If you care about the battery life time, choose HotPlug. It hotplugs cpu frequently.
- Interactive updated to linux-android-3.4 (recommended).
- LulzactiveQ, will hotplug CPU1.
I/O schedulers:
SIO, SIO-Plus, VR, BFQ, CFQ, NO-OP, ZEN, ROW, Deadline
- Default IO scheduler: SIO-Plus
- SIO/ROW/SIO-Plus recommended!
FRandom module:
Code:
insmod /system/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 deepest sleep state:
Code:
echo 5 > /d/cpuidle/deepest_state
- HotPlug governors works badly with 5.
- OnDemand works well with 5.
- Please note that it won’t increase the using time but standby time.
- You can add an init.d script to tweak it if you want.
To check the cpuidle state:
Code:
cat /d/cpuidle/stats
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 100MB.
Setup disk size first: (example: 200MB)
Code:
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:
Code:
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:
Using a file as swap RAM: (Create a continuity file first)
Code:
su
cd /cache
dd if=/dev/zero of=swapfile bs=1024 count=81920
mkswap swapfile
swapon swapfile
Then we will have 80MB of swap RAM.
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:
Code:
echo on > /sys/kernel/abb-fg/fg_cyc
Disable:
Code:
echo off > /sys/kernel/abb-fg/fg_cyc
Discharging threshold (battery level %):
Code:
echo dischar=75 > /sys/kernel/abb-fg/fg_cyc
Recharging threshold:
Code:
echo dischar=70 > /sys/kernel/abb-fg/fg_cyc
Real charged notification:
Well, please let me call it notification.
To be honest, it needs to check manually:
Code:
cat /sys/kernel/abb-chargalg/eoc_status
- You can use Root Browser 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.
POnKey Emulator:
This is the software emulator of power key.
To turn off screen: ( 20 < value(ms) < 520 )
Code:
echo 100 > /sys/kernel/abb-ponkey/emulator
To active the power menu: ( 520 < value(ms) < ∞)
Code:
echo 800 > /sys/kernel/abb-ponkey/emulator
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.
First, why is it called `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 Root Browser 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 information 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.
AnaGain3 (Headset analog gain path):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/anagain3
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/anagain3
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 0[+4dB])
Code:
echo left=?? > /sys/kernel/abb-codec/anagain3
echo right=?? > /sys/kernel/abb-codec/anagain3
Write both left and right channels:
Code:
echo gain=?? > /sys/kernel/abb-codec/anagain3
HsLDigGain (Headset left digital path gain):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hsldiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsldiggain
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
Code:
echo gain=?? > /sys/kernel/abb-codec/hsldiggain
HsRDigGain (Headset right digital path gain):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hsrdiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsrdiggain
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/hslowpow
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hslowpow
To tweak the mode (0: disable LP mode, 1: enable LP mode)
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/hsdaclowpow
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsdaclowpow
To tweak the mode (0: disable LP mode, 1: enable LP mode)
Code:
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-noise of audio.
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hshpen
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hshpen
To tweak the mode (0: disable highpass filter, 1: enable highpass filter)
Code:
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 ClassD only relate to Handsfree(speaker).
This can increase the high frequencies sound of speaker
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/classdhpg
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/classdhgp
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
Code:
echo gain=?? > /sys/kernel/abb-codec/classdhpg
ClassDDithWGain:
Gain control for the white component of dithering filter
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/classdwg
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/classdwp
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/addiggain2
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/addiggain2
Gain control: (min:0 ,max: 63) lower value, higher gain (default: [+6dB], max: 00[+31dB])
Code:
echo gain=?? > /sys/kernel/abb-codec/addiggain2
EarDigGain:
This is the digital gain of earpiece
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/eardiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/eardiggain
Gain control: (min:0 ,max: 15) lower value,higher gain (default: 4[+4dB])
Code:
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:
Code:
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
[CODE]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[/CODE]
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:
Code:
echo [Index] [Disable?] > anaconf4
To Disable Speaker:
Code:
echo 5 1 > anaconf4
To Enable Speaker:
Code:
echo 5 0 > anaconf4
Headset Charge Pump:
Code:
echo 0 > chargepump to use fixed 1.8V supply.
echo 1 > chargepump to use dynamic voltage supply, lower power cost.
Lower-power Audio Mode:
Code:
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!
cd /d/asoc/U8500-card/ab8500-codec.0
Play music, reduce the volume.
Now we are going to edit the codec registers.
Code:
echo REG VAL > codec_reg
E.G:
AnaGain3:
Code:
echo 0x16 0x00 > codec_reg
HsDigGain: (left/right channel)
Code:
echo 0x4F 0x00 > codec_reg
echo 0x50 0x00 > codec_reg
Disable all lowpow mode:
Code:
echo 0x04 0x00 > codec_reg
- These hacks will restore when codec power off.
Camera LED Flash:
Turn on torch with more brightness, turning this on for a long time will heat up your device, be careful!
Enable/Disable:
Code:
echo 1/0 > /sys/devices/platform/nmk-i2c.2/i2c-2/2-0053/torch_enable
echo 149600 > /sys/devices/platform/nmk-i2c.2/i2c-2/2-0053/torch_current
FSync control:
Get current status:
Code:
cat /sys/kernel/fsync/mode
FSYNC modes:
0: fsync on
1: fsync off
2: fsync dyn
Disable FSYNC:
Code:
echo 1 > /sys/kernel/fsync/mode
Disabling fsync can improve I/O performance, but it can make the data which hasn't been written lose when a sudden power cut occurs.
Enable Dynamic FSYNC:
Code:
echo 2 > /sys/kernel/fsync/mode
- Dynamic fsync will sync all buffers when screen turns off.
- If there is a heavy I/O load, the screen might get stuck for seconds.
Mali GPU:
Mali debug level:
Disabling can speed up a bit
Code:
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))
Code:
echo xx > /sys/module/mali/parameters/mali_l2_max_read
- Some values will slow down graphics
- If not sure, keep default
Mali PM sampling rate: (Default: 1000ms)
Code:
echo xx > /sys/module/mali/parameters/mali_pm_sampling_rate
Mali PP scheduler tweaks: (Default: disable)
Code:
echo 1 > /sys/module/mali/parameters/mali_pp_scheduler_balance_jobs
- Enabling this, some places will over ahead, choose by yourself
Mali Utilization sampling rate: (Stock:500ms, Default:1000ms)
How often report a mali utilization.
Code:
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:
Code:
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.
Code:
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
Code:
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)
Code:
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:
Code:
busybox sysctl net.ipv4.tcp_available_congestion_control
To change to other option:
Code:
busybox sysctl -w net.ipv4.tcp_congestion_control=YOU_WANT_TO
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
- In fact, every congestion is designed 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
0 0 mali
Then remove libGLES_android.so
- Recommend to backup these files
- In case it cannot boot,use TWRP file manager to recover changes
Logcat:
Create a new file(empty file) named logger in /data
When this file exists, kernel will load logger.ko for you automatically
Miscellaneous:
To refresh battery stats:
Code:
echo 1 > /sys/kernel/abb-fg/fg_refresh
Almost all tweaks will be restored to default after reboots.
So you can make your tweaks as init.d scripts or make scripts with SManager app to apply them at boot.
Just flash in my Xperia Go. Boot fine, and work just fine. Need some time to tune and test the battery and smoothness. :good::good::good:
Does it work on stock 6.2.A.1.100? If yes, controindications?
Rob80 said:
Does it work on stock 6.2.A.1.100? If yes, controindications?
Click to expand...
Click to collapse
No, it just works with KitKat ROMs
Sent from my D5503 using XDA Free mobile app
Merry Christmas and happy holidays to all of you!
Any status of new kernel update?
BelzIgoh said:
Any status of new kernel update?
Click to expand...
Click to collapse
I need a tester
Sent from my D5503 using XDA Free mobile app
you can still send me Kernels to try out
Garcia98 said:
I need a tester
Sent from my D5503 using XDA Free mobile app
Click to expand...
Click to collapse
I can help you to test.
Brave Kernel Xperia Go Test
The test kernel boot fine.
Using the test kernel for a day. Kernel work awesomely.
Only found out that Interactive governor tunables not optimize for xperia go.
The governor not tune according to xperia go cpu, the tuneable are the same with my nexus 5
So i change the hispeed freq from 1190400 to 1000000, etc...
Now gonna test the kernel battery life, will let the phone idle for over night and then see the battery usage.
New release is out!
Version 1.3 of BraveKernel Refresh is out!
This version fixes the few bugs of the previous version and includes many new features like F2FS, look at second post for learning how to use this feature
Download the zip below and flash it in recovery or install it using Kernel Manager app
Download:
BraveKernel-Refresh_v1.3-lotus.zip
Changelog:
Code:
[B]08/02/2015 - BraveKernel Refresh v1.3 for KitKat[/B]
- Added minfree tweak in crontab
- Disabled management of not killable processes
- Tweaked adj and minfree values in init.d
- Added memory tweak in crontab
- Tweaked read_ahead_kb values
- Added F2FS support
- Fixed network arrows and speed information
- Fixed root and storage issues
- Added recovery in FOTA partition support
- Added kexec hardboot support
- Added 3 extra MB of usable RAM
- Added dynamic management of dirty page writebacks
- Added Ultra KSM
- Added entropy tweaks
- Updated BFQ scheduler
- Updated Linaro toolchain
- Improved LZO decompression
- Tweaked LMK
- Improved network speed
- Improved CPU performance
- Improved EXT4 speed
- Improved power management
- Tweaked memory management values
- Enabled clean cache
- Enabled JRCU
So far the kernel is working great. Over next week I'll be able to tell the approximate battery drain for my Go.
Only problem is with the recovery - the touch responses are not working as they should, for example, I can't use sliders (to accept zip flash or related) and buttons when pressed act weird. Any clues how to fix this?
This kernel is fantastic
Garcia98 said:
BRAVEKERNEL REFRESH​
Here we go with something (re)fresh, this is the thread of a customized kernel for KitKat ROMs (CM11, AOSX, SlimKat...) with some extra features added.
As always, feedback is welcome and highly valuable
Please if a bug is already reported do not spam the thread reporting it again, and use XDA DevDB tools for posting features requests and bug reports if it's possible :good:
Main features are these:
- Based in 6.2.A.1.100 source code
- Built with Linaro Toolchain 4.9.3 optimized for Cortex A9
- TWRP 2.8.4.0
- FRandom support
- Improvement in I/O latency
- Interactive governor updated to 3.4
- VFP optimizations
- PowerOn Key emulator
- ABBamp Sound Control v2.5.0
- Mali tweaks and controllers
- Governors and I/O schedulers parameters tweaked
- Cycle Charging control
- Real end-of-charge notification
- FSync control (combined dynamic fsync control)
- Voltage OTG control
- Added extra free kbytes tunable
- Swap and zRAM support
- Disabled dynamic debug
- Tweaked readahead size
- More choices of TCP congestions
- Proportional Rate Reduction for TCP
- Fix for scaling of minimum frequency problem
- Built with optimized -O3 & Neon flags
- SLUB memory allocator
- Ramdisk and kernel compressed with LZO
Available CPU governors:
- Powersave
- Userspace
- OnDemand
- Interactive (default)
- InteractiveQ
- Conservative
- OnDemandQ
- PegasusQ
- LulzActiveQ
- AbyssPlug
- HotPlug
- PegasusQPlus
- SmartAssv2
Available I/O schedulers:
- No-op
- Deadline
- CFQ
- ROW
- BFQ
- SIO
- ZEN
- V(R)
- SIO-Plus (default)
Kernel Downloads for KitKat:
BraveKernel Refresh KK-4.4 Folder
- v1.3 -
for CM 11.0, AOSX, SlimKat...​
How to install the kernel:
1) Download the kernel zip file to SD card
2) Reboot to recovery
3) Flash the kernel zip file
4) Wipe cache and dalvik cache if you are coming from another kernel
5) Reboot the system
Kernel Manager APP
If you prefer to use a simpler way for installing the kernel you can use this app, it allows you to make a backup of your current kernel and it also displays OTA updates of this kernel, really recommended :good:
Kernel sources (on GitHub):
Development repository of BraveKernel 3.0.101 for KK 4.4
​
Changelog:
Code:
[B]08/02/2015 - BraveKernel Refresh v1.3 for KitKat[/B]
- Added minfree tweak in crontab
- Disabled management of not killable processes
- Tweaked adj and minfree values in init.d
- Added memory tweak in crontab
- Tweaked read_ahead_kb values
- Added F2FS support
- Fixed network arrows and speed information
- Fixed root and storage issues
- Added recovery in FOTA partition support
- Added kexec hardboot support
- Added 3 extra MB of usable RAM
- Added dynamic management of dirty page writebacks
- Added Ultra KSM
- Added entropy tweaks
- Updated BFQ scheduler
- Updated Linaro toolchain
- Improved LZO decompression
- Tweaked LMK
- Improved network speed
- Improved CPU performance
- Improved EXT4 speed
- Improved power management
- Tweaked memory management values
- Enabled clean cache
- Enabled JRCU
[B]21/12/2014 - BraveKernel Refresh v1.0 for KitKat[/B]
- Initial release
Credits and thanks to:
munjeni and cocafe for their awesome work and their kernel sources
AGONTUK for TWRP recovery
CyanogenMod, Kernel.org, Sony, Google, Linaro GCC developers
All my testers
​
XDA:DevDB Information
BraveKernel Refresh, Kernel for the Sony Xperia Go
Contributors
Garcia98
Kernel Special Features: Customized kernel 3.0.101 for KK 4.4.x ROM
Version Information
Status: Stable
Current Stable Version: v1.3
Stable Release Date: 2015-02-08
Created 2014-12-24
Last Updated 2015-02-08
Click to expand...
Click to collapse
Hello author kernel . I apologize for my English , I do not know him at all , I use a translator from google. I'm from Russia , the kernel on my phone is slow . after the installation has decreased the amount of RAM . please in the development of the next version of the kernel fix it
BigLionXda said:
Hello author kernel . I apologize for my English , I do not know him at all , I use a translator from google. I'm from Russia , the kernel on my phone is slow . after the installation has decreased the amount of RAM . please in the development of the next version of the kernel fix it
Click to expand...
Click to collapse
Your total RAM decrease or low free RAM?
For my Xperia GO, total RAM available is 390MB.
Usually 272MB used, 118MB free.
TWRP 2.8.5.0
Hi! I bring you TWRP 2.8.5.0
To change your recovery:
1.- Open ADB shell or terminal emulator
2.- Download this file: recovery.img
3.- Run:
Code:
su
dd if=recovery.img of=/dev/block/mmcblk0p13
4.- Reboot to recovery.
Garcia98 said:
Hi! I bring you TWRP 2.8.5.0
To change your recovery:
1.- Open ADB shell or terminal emulator
2.- Download this file: recovery.img
3.- Run:
Code:
su
dd if=recovery.img of=/dev/block/mmcblk0p13
4.- Reboot to recovery.
Click to expand...
Click to collapse
Awesome. :good::good::good: Thanks for the update.
Is it work if I use fastboot flash recovery recovery.img?
Any plans of making a BraveKernel for Lollipop?
BelzIgoh said:
Awesome. :good::good::good: Thanks for the update.
Is it work if I use fastboot flash recovery recovery.img?
Click to expand...
Click to collapse
No, you can't use fastboot for installing recovery
luimx said:
Any plans of making a BraveKernel for Lollipop?
Click to expand...
Click to collapse
To be honest, no
Sent from my D5503 using XDA Free mobile app

[KERNEL][3.0.101] BraveKernel Refresh for KitKat

BRAVEKERNEL REFRESH​
Here we go with something (re)fresh, this is the thread of a customized kernel for KitKat ROMs (CM11, AOSX, SlimKat...) with some extra features added.
As always, feedback is welcome and highly valuable
Please if a bug is already reported do not spam the thread reporting it again, and use XDA DevDB tools for posting features requests and bug reports if it's possible :good:
Main features are these:
- Based in 6.2.A.1.100 source code
- Built with Linaro Toolchain 4.9.3 optimized for Cortex A9
- TWRP 2.8.1.0
- FRandom support
- Improvement in I/O latency
- Interactive governor updated to 3.4
- VFP optimizations
- PowerOn Key emulator
- ABBamp Sound Control v2.5.0
- Mali tweaks and controllers
- Governors and I/O schedulers parameters tweaked
- Cycle Charging control
- Real end-of-charge notification
- FSync control (combined dynamic fsync control)
- Voltage OTG control
- Added extra free kbytes tunable
- Swap and zRAM support
- Disabled dynamic debug
- Tweaked readahead size
- More choices of TCP congestions
- Proportional Rate Reduction for TCP
- Fix for scaling of minimum frequency problem
- Management of not killable processes
- Built with optimized -O3 & Neon flags
- SLUB memory allocator
- Ramdisk and kernel compressed with LZO
Available CPU governors:
- Powersave
- Userspace
- OnDemand
- Interactive (default)
- InteractiveQ
- Conservative
- OnDemandQ
- PegasusQ
- LulzActiveQ
- AbyssPlug
- HotPlug
- PegasusQPlus
- SmartAssv2
Available I/O schedulers:
- No-op
- Deadline
- CFQ
- ROW
- BFQ
- SIO
- ZEN
- V(R)
- SIO-Plus (default)
Kernel Downloads for KitKat:
BraveKernel Refresh KK-4.4 Mediafire Folder
- v1.0 -
for CM 11.0, AOSX, SlimKat...​
How to install the kernel:
1) Download the kernel zip file to SD card
2) Reboot to recovery
3) Flash the kernel zip file
4) Wipe cache and dalvik cache if you are coming from another kernel
5) Reboot the system
Kernel Manager APP
If you prefer to use a simpler way for installing the kernel you can use this app, it allows you to make a backup of your current kernel and it also displays OTA updates of this kernel, really recommended :good:
Kernel sources (on GitHub):
Development repository of BraveKernel 3.0.101 for KK 4.4
​
Changelog:
Code:
[B]21/12/2014 - BraveKernel Refresh v1.0 for KitKat[/B]
- Initial release
Credits and thanks to:
munjeni and cocafe for their awesome work and their kernel sources
AGONTUK for TWRP recovery
CyanogenMod, Kernel.org, Sony, Google, Linaro GCC developers
All my testers
​
XDA:DevDB Information
BraveKernel Refresh, Kernel for the Sony Xperia P
Contributors
Garcia98
Kernel Special Features: Customized kernel 3.0.101 for KK 4.4.x ROM
Version Information
Status: Stable
Current Stable Version: v1.0
Stable Release Date: 2014-12-24
Created 2014-12-24
Last Updated 2015-01-10
HOW TOs
HOW TO PLAY WITH THIS KERNEL
Terminal emulator or ADB shell is needed.
If any command outputs 'Permission denied', you need su permission.
`???` stands for the number to input.
Sometimes you will need to mount and unmount debugfs partition:
For mounting it:
Code:
mount -t debugfs debugfs /d
For unmounting it:
Code:
umount /d
Boot time:
To check boot time:
Code:
cat /sys/boottime/kernel
CPU governors:
Performance, Interactive (default), Powersave, Userspace, Conservative, InteractiveQ, PegasusQ, HotPlug, OnDemandQ, OnDemand, AbyssPlug, LulzactiveQ, SmartAssv2
- OnDemand has been patched with cpu idle detection.
- Most of custom governors are based on ondemand/interactive.
- OndemandQ/InteractiveQ will hotplug cpu when screen turns off only.
- If you care about the battery life time, choose HotPlug. It hotplugs cpu frequently.
- Interactive updated to linux-android-3.4 (recommended).
- LulzactiveQ, will hotplug CPU1.
I/O schedulers:
SIO, SIO-Plus, VR, BFQ, CFQ, NO-OP, ZEN, ROW, Deadline
- Default IO scheduler: SIO-Plus
- SIO/ROW/SIO-Plus recommended!
FRandom module:
Code:
insmod /system/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.
Mount debugfs
To change deepest sleep state:
Code:
echo 5 > /d/cpuidle/deepest_state
- HotPlug governors works badly with 5.
- OnDemand works well with 5.
- Please note that it won’t increase the using time but standby time.
- You can add an init.d script to tweak it if you want.
To check the cpuidle state:
Code:
cat /d/cpuidle/stats
Management of not killable processes:
This feature allows to define processes and system processes white-lists filled with the preferred process names and to not be killed by lowmemorykiller, unless it is absolutely necessary.
This feature exposes four new lowmemorykiller parameters:
- donotkill_proc, is the flag to enable / disable this feature for the processes chosen by the user
- donotkill_sysproc, is the flag to enable / disable this feature for the system processes chosen by the user
- donotkill_proc_names, is the list of process names (comma separated) chosen by the user to be preserved from killing
- donotkill_sysproc_names, is the list of user system process names (comma separated) chosen by the user to be preserved from killing
When the lowmemorykiller needs to free ram, it will first kill the processes not included inside the two process name lists chosen by the user.
If there are no more standard killable processes, then it will be necessary to kill one of the processes included inside one of the two white-lists, to prevent system hangs, slowdowns, etc.
How to customize the white lists of processes to preserve from killing:
- Run these commands if you want to enable the feature
Code:
# To enable this feature for the processes chosen by the user
echo 1 > /sys/module/lowmemorykiller/parameters/donotkill_proc
# To enable this feature for the system processes chosen by the user
echo 1 > /sys/module/lowmemorykiller/parameters/donotkill_sysproc
- Run these commands if you want to disable the feature
Code:
# To disable this feature for the processes chosen by the user
echo 0 > /sys/module/lowmemorykiller/parameters/donotkill_proc
# To disable this feature for the system processes chosen by the user
echo 0 > /sys/module/lowmemorykiller/parameters/donotkill_sysproc
- Run this command if you want to add, for example, Trebuchet Launcher (CM default launcher) and the default keyboard to the processes white list
Code:
echo "com.cyanogenmod.trebuchet,android.inputmethod.latin" > /sys/module/lowmemorykiller/parameters/donotkill_proc_names
- Run this command if you want to add, for example, the system process, the phone process and DSP Manager to the system processes white list
Code:
echo "android.process.acore,com.android.phone,com.bel.android.dspmanager" > /sys/module/lowmemorykiller/parameters/donotkill_sysproc_names
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 100MB.
Setup disk size first: (example: 200MB)
Code:
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:
Code:
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:
Using a file as swap RAM: (Create a continuity file first)
Code:
su
cd /cache
dd if=/dev/zero of=swapfile bs=1024 count=81920
mkswap swapfile
swapon swapfile
Then we will have 80MB of swap RAM.
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:
Code:
echo on > /sys/kernel/abb-fg/fg_cyc
Disable:
Code:
echo off > /sys/kernel/abb-fg/fg_cyc
Discharging threshold (battery level %):
Code:
echo dischar=75 > /sys/kernel/abb-fg/fg_cyc
Recharging threshold:
Code:
echo dischar=70 > /sys/kernel/abb-fg/fg_cyc
Real charged notification:
Well, please let me call it notification.
To be honest, it needs to check manually:
Code:
cat /sys/kernel/abb-chargalg/eoc_status
- You can use Root Browser 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.
POnKey Emulator:
This is the software emulator of power key.
To turn off screen: ( 20 < value(ms) < 520 )
Code:
echo 100 > /sys/kernel/abb-ponkey/emulator
To active the power menu: ( 520 < value(ms) < ∞)
Code:
echo 800 > /sys/kernel/abb-ponkey/emulator
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.
First, why is it called `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 Root Browser 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 information 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.
AnaGain3 (Headset analog gain path):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/anagain3
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/anagain3
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 0[+4dB])
Code:
echo left=?? > /sys/kernel/abb-codec/anagain3
echo right=?? > /sys/kernel/abb-codec/anagain3
Write both left and right channels:
Code:
echo gain=?? > /sys/kernel/abb-codec/anagain3
HsLDigGain (Headset left digital path gain):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hsldiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsldiggain
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
Code:
echo gain=?? > /sys/kernel/abb-codec/hsldiggain
HsRDigGain (Headset right digital path gain):
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hsrdiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsrdiggain
Gain control: (min:0 ,max: 15) Lower value,higher volume (default: 4[+4dB])
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/hslowpow
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hslowpow
To tweak the mode (0: disable LP mode, 1: enable LP mode)
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/hsdaclowpow
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hsdaclowpow
To tweak the mode (0: disable LP mode, 1: enable LP mode)
Code:
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-noise of audio.
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/hshpen
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/hshpen
To tweak the mode (0: disable highpass filter, 1: enable highpass filter)
Code:
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 ClassD only relate to Handsfree(speaker).
This can increase the high frequencies sound of speaker
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/classdhpg
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/classdhgp
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
Code:
echo gain=?? > /sys/kernel/abb-codec/classdhpg
ClassDDithWGain:
Gain control for the white component of dithering filter
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/classdwg
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/classdwp
Gain control: (min:0 ,max: 10) higher value,higher gain (default: 10[Max gain])
Code:
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:
Code:
echo on > /sys/kernel/abb-codec/addiggain2
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/addiggain2
Gain control: (min:0 ,max: 63) lower value, higher gain (default: [+6dB], max: 00[+31dB])
Code:
echo gain=?? > /sys/kernel/abb-codec/addiggain2
EarDigGain:
This is the digital gain of earpiece
Enable tweaks:
Code:
echo on > /sys/kernel/abb-codec/eardiggain
Disable tweaks:
Code:
echo off > /sys/kernel/abb-codec/eardiggain
Gain control: (min:0 ,max: 15) lower value,higher gain (default: 4[+4dB])
Code:
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:
Code:
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
[CODE]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[/CODE]
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:
Code:
echo [Index] [Disable?] > anaconf4
To Disable Speaker:
Code:
echo 5 1 > anaconf4
To Enable Speaker:
Code:
echo 5 0 > anaconf4
Headset Charge Pump:
Code:
echo 0 > chargepump to use fixed 1.8V supply.
echo 1 > chargepump to use dynamic voltage supply, lower power cost.
Lower-power Audio Mode:
Code:
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!
Mount debugfs
cd /d/asoc/U8500-card/ab8500-codec.0
Play music, reduce the volume.
Now we are going to edit the codec registers.
Code:
echo REG VAL > codec_reg
E.G:
AnaGain3:
Code:
echo 0x16 0x00 > codec_reg
HsDigGain: (left/right channel)
Code:
echo 0x4F 0x00 > codec_reg
echo 0x50 0x00 > codec_reg
Disable all lowpow mode:
Code:
echo 0x04 0x00 > codec_reg
- These hacks will restore when codec power off.
Camera LED Flash:
Turn on torch with more brightness, turning this on for a long time will heat up your device, be careful!
Enable/Disable:
Code:
echo 1/0 > /sys/devices/platform/nmk-i2c.2/i2c-2/2-0053/torch_enable
echo 149600 > /sys/devices/platform/nmk-i2c.2/i2c-2/2-0053/torch_current
FSync control:
Get current status:
Code:
cat /sys/kernel/fsync/mode
FSYNC modes:
0: fsync on
1: fsync off
2: fsync dyn
Disable FSYNC:
Code:
echo 1 > /sys/kernel/fsync/mode
Disabling fsync can improve I/O performance, but it can make the data which hasn't been written lose when a sudden power cut occurs.
Enable Dynamic FSYNC:
Code:
echo 2 > /sys/kernel/fsync/mode
- Dynamic fsync will sync all buffers when screen turns off.
- If there is a heavy I/O load, the screen might get stuck for seconds.
Mali GPU:
Mali debug level:
Disabling can speed up a bit
Code:
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))
Code:
echo xx > /sys/module/mali/parameters/mali_l2_max_read
- Some values will slow down graphics
- If not sure, keep default
Mali PM sampling rate: (Default: 1000ms)
Code:
echo xx > /sys/module/mali/parameters/mali_pm_sampling_rate
Mali PP scheduler tweaks: (Default: disable)
Code:
echo 1 > /sys/module/mali/parameters/mali_pp_scheduler_balance_jobs
- Enabling this, some places will over ahead, choose by yourself
Mali Utilization sampling rate: (Stock:500ms, Default:1000ms)
How often report a mali utilization.
Code:
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:
Code:
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.
Code:
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
Code:
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)
Code:
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:
Code:
busybox sysctl net.ipv4.tcp_available_congestion_control
To change to other option:
Code:
busybox sysctl -w net.ipv4.tcp_congestion_control=YOU_WANT_TO
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
- In fact, every congestion is designed 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
0 0 mali
Then remove libGLES_android.so
- Recommend to backup these files
- In case it cannot boot,use TWRP file manager to recover changes
Logcat:
Create a new file(empty file) named logger in /data
When this file exists, kernel will load logger.ko for you automatically
Miscellaneous:
To refresh battery stats:
Code:
echo 1 > /sys/kernel/abb-fg/fg_refresh
Almost all tweaks will be restored to default after reboots.
So you can make your tweaks as init.d scripts or make scripts with SManager app to apply them at boot.
+++++++++
not running data rate
kosmos-2011 said:
not running data rate
Click to expand...
Click to collapse
What?
Garcia98 said:
What?
Click to expand...
Click to collapse
i think he means that in miui rom he buiilds the the network transfer speeds dont work..
djkk16 said:
i think he means that in miui rom he buiilds the the network transfer speeds dont work..
Click to expand...
Click to collapse
OK, I think that it will be fixed for next release
btw this is like stable right ?
and it is much better in performance than the stock cm11 kernel ?
Is there a mirror mediafire always causes issues for me
Sent my Xperia P running CyanogenMod
AndroidNoob69 said:
Is there a mirror mediafire always causes issues for me
Sent my Xperia P running CyanogenMod
Click to expand...
Click to collapse
http://builds.hubdroid.com/BraveKernel/
Sent from my D5503 using XDA Free mobile app
tried it last night seems much better than stock cm11 kernel.
battery life seems to be better too and performance is also great.
Been using it for half a day.
It once rebooted unexpectedly while I was browsing a webpage.
Also, the notification LED does not blink.
Using CM11
Thank you
My report..
Notification LED not blinking confirmed
Launcher redraws are more often than usual even if minfree is lowered
I get lag spikes randomly especially when browsing g+
Also on CM11
Sent my Xperia P running CyanogenMod
Great work! It's always nice to see kernel improvements..
the performance increased a little and the load times (when opening an app that is not in the background) are reduced slightly
on the negative side, the LEDs went crazy.. the notification LED is working but does not blink, it stays solid until it is dismissed.
the torch is not working (tried the torch app in the ROM, 3rd party Torch app.. no luck).
Shall i take a logcat when running the torch?
> I use XP (lol) with SlimKat 8.10 which is the latest, i didn't crazily modify the rom so it's almost a fresh install
hliasant said:
Been using it for half a day.
It once rebooted unexpectedly while I was browsing a webpage.
Also, the notification LED does not blink.
Using CM11
Thank you
Click to expand...
Click to collapse
Can you send me the file in /proc/last_kmsg please? Thank you
AndroidNoob69 said:
My report..
Notification LED not blinking confirmed
Launcher redraws are more often than usual even if minfree is lowered
I get lag spikes randomly especially when browsing g+
Also on CM11
Sent my Xperia P running CyanogenMod
Click to expand...
Click to collapse
veiron144lww said:
Great work! It's always nice to see kernel improvements..
the performance increased a little and the load times (when opening an app that is not in the background) are reduced slightly
on the negative side, the LEDs went crazy.. the notification LED is working but does not blink, it stays solid until it is dismissed.
the torch is not working (tried the torch app in the ROM, 3rd party Torch app.. no luck).
Shall i take a logcat when running the torch?
> I use XP (lol) with SlimKat 8.10 which is the latest, i didn't crazily modify the rom so it's almost a fresh install
Click to expand...
Click to collapse
I think that I know why notification LED and Torch are not working, I don't need a logcat
_________________________
Merry Christmas and happy holidays to all of you!
I am unable to browse Twitter. The app opens, freezes, then fc. Did not have this on stock cm 11 kernel. Changing governors and io schedulers did not help.
Sent my Xperia P running CyanogenMod
AndroidNoob69 said:
I am unable to browse Twitter. The app opens, freezes, then fc. Did not have this on stock cm 11 kernel. Changing governors and io schedulers did not help.
Sent my Xperia P running CyanogenMod
Click to expand...
Click to collapse
I don't have such problem in my Xperia U, so I need more reports of that issue.
Sent from my D5503 using XDA Free mobile app
Notification tone in silent mode
I can hear the message notification tone even if I reduce the notification volume to zero
Has anyone tried this kernel on latest MIUI rom by kosmos since it is based on CM?
adittya said:
Has anyone tried this kernel on latest MIUI rom by kosmos since it is based on CM?
Click to expand...
Click to collapse
You must try your self and report here..
kernel++++
adittya said:
Has anyone tried this kernel on latest MIUI rom by kosmos since it is based on CM?
Click to expand...
Click to collapse
kernel works fine on miui.

Categories

Resources