Related
Welcome to the most customizable N7 kernel on xda
Bricked-Kernel Nexus 7 (grouper)
Replaced NVIDIA's strange hotplug manager with my own: tegra_mpdecision
Features:
Based upon Googles tegra3 source
Fixed section mismatches
Various other fixes (look @ github)
Compiled with gcc4.7.2 toolchain (linaro 09.12)
Replaced NVIDIAs hotplug manager with tegra_mpdecision (better battery life + performance)
Extensive sysfs interface for mpdecision with all the tuneables you want
Highly modified ondemand governor for tegra3 & mpdecision (this is the only recommended governor atm)
Fixed usage of 51Mhz clock
GPU OC (416/484/520Mhz)
Truly variant free CPU OC for all devices (51 - 1600Mhz)
Fixed max cpufreq resets throughout the kernel
All cores now use the max frequency (before: only in singlecore, otherwise -100Mhz)
Undervolting (faux123)
Default clocks: 102min & 1300max (+100Mhz overclocked) & 475 Maxscroff
earlysuspend/lateresume for ondemand including special screen off settings to save power
Aroma Installer by amarullz
cmdline interface for cpu min/max/maxscroff/gpuoc/scheduler/governor
---Just flash the kernel with your desired settings, no more need for oc apps. Reflash if you want to change sth. It's that easy!
FSync Control by Ezekeel
export t3 variant to debugfs by faux123 (adb shell cat /sys/kernel/debug/t3_variant)
lowered panel min brightness to 8
ZRAM
enabled NFSv3&4
Check the compare links for the rest
Where is tha Changelog???
There will be no more changelogs.
Instead the download pages were outfitted with compare links to github for each download.
How to install?
Flash through recovery. #done.
Where to complain about errors/bugs?
Please use the Issuetracker for bugs/errors/feature wishes!
Issuetracker @ https://code.google.com/p/bricked/issues/entry
[email protected]
IRC Chat: Freenode IRC #bricked
Download:
No Guarantees! If it kills your grandmother or your device, I am NOT responsible! If you understand this:
(If you download, please hit Thanks below my post! Thank you!)
>>> DOWNLOAD <<<
Donor List:
> Hall of fame <
With special thanks to all N7 piggy bank donors!
Thank you very much!
Source:
Benchmark:
Knowledge base:
What is tegra_mpdecision?
100% kernel based multi core decision! (should cpu1/2/3 be online or not, do we need the low-power/ninja core now?)
This replaces the stock nvidia hotplug solution.
Check /sys/kernel/tegra_mpdecision/conf/ for the configuration.
startdelay = time until mpdecision starts doing it's magic (20000)
delay = time between checks (130)
pause = if something else plugs in the cpu, fall asleep for 10000ms (10 secs)
scroff_single_core = Force low-power mode if screen is off (1)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
min_cpus = min cpus to be online, cannot be < 1. Default: 1
max_cpus = max cpus to be online, cannot be > 4. (if you set it to 2 and min_cpus to 1 you will basically have a dualcore) Default: 4
idle_freq = a value against that will be checked if a core +/- is requested. (475000)
lpcpu_up_hsyteresis = minimum number of requests that have to be send in order to switch to low-power mode (4)
lpcpu_down_hsyteresis = minimum number of requests that have to be send in order to switch to g-mode (quadcore-mode). Overridden by a requested freq that is higher than the max supported lp-mode frequency. (2)
If cpu0 is below that value and a core up of another cpu is requested, nothing will happen.
If any other cpu is above that value and a core down of that cpu is requested, nothing will happen. (otherwise it would now put down that cpu even though it is still working, which isn't what we want)
Hot plug thresholds (aka now it gets 'complicated')
This small formula calculates which value will be used: (number_of_cpus_online - 1) * 2
The result of this formula will be the nwns_threshold where a new cpu is hotplugged.
The result of this formula + 1 will be the nwns_threshold where a cpu is unplugged.
nwns_threshold_x = runqueue threshold, if this is reached cpuX will be hot/unplugged
twts_threshold_x = time threshold, this amount of time must have passed for the related action to be taken (hot/unplug)
Example:
One cpu is online.
(1 - 1) * 2 = 0 ergo:
nwns_threshold_0 = cpu1 will be hotplugged at this value
((1 - 1) * 2) + 1 = 1
nwns_threshold_1 = cpu0 will be unplugged at this value
This will regulate when we switch to lp-mode, effectively replacing the quadcore g-mode core with the ninja lp-mode core.
Two cpus are online.
(2 - 1) * 2 = 2 ergo:
nwns_threshold_2 = cpu2 will be hotplugged at this value
((2 - 1) * 2) + 1 = 3
nwns_threshold_3 = cpu1 will be unplugged at this value
etc...
(all times are in ms)
If you want to see the mpdecision magic happening:
Code:
adb shell
cat /proc/kmsg | grep 'MPDEC'
mpdecision's input event boost, aka project butter
This will boost your min cpu speed if you touch the screen or press a button and gives you full control.
In those events the min cpu freq will be risen to a predefined value (look below) on every online cpu. This boosts overall reaction times and smoothness a lot. (works similar to the qcom mpdecision binary)
Configuration files:
[email protected]:/sys/kernel/tegra_mpdecision/conf # ls
boost_enabled
boost_freqs
boost_time
All of them work like the usual sysfs files, except one special case:
boost_freqs will list all frequencies from cpu 0 to cpu x. Cpu 3 and any following cpu will share one frequency.
To change those frequencies echo the cpu number + the frequency in khz. To change the boost freq of cpu3 (and 4,5,6,7,8, etc) the echo would look as follows:
Code:
echo "3 1026000" > /sys/kernel/tegra_mpdecision/conf/boost_freqs
for cpu0:
Code:
echo "0 1026000" > /sys/kernel/tegra_mpdecision/conf/boost_freqs
Defaults:
Code:
cat /sys/kernel/tegra_mpdecision/conf/boost_freqs
910000
910000
760000
620000
Recommended governor?
Ondemand.Why do I have no WLAN?
This kernel is too big for our boot.img with WLAN included into the kernel, so it is built as a module. That means it needs to be inserted into the kernel upon boot up, which needs to be automated for maximum comfort = userinit (init.d) support.
The zip adds init.d support to your ramdisk, if that fails for some reason the wlan module cannot be inserted.
if
Code:
adb shell lsmod
doesn't show this:
Code:
tun 14060 0 - Live 0x00000000
cifs 239646 0 - Live 0x00000000
bcmdhd 433083 0 - Live 0x00000000
Then init.d support is probably missing.
You can test it by going to /system/etc/init.d/ and executing 00wlan.
Code:
adb shell
su
. /system/etc/init.d/00wlan
Wait a few seconds and try to enable wifi and repeat the above lsmod command (should now show bcmdhd as live, you can execute 01cifs and 02tun too).
If WLAN now works, init.d support is missing.
You need to have busybox installed in order to be able to get init.d support going, this shouldn't be a problem for most people, since it is usually installed when rooting your phone anyway (and who does unlock but not root their phone? :/)
It does not matter if busybox is installed in /system/bin or /system/xbin, my script will detect the location upon flashing and patch the ramdisk accordingly.
If no busybox is found, the script will add init.d support to your ramdisk with the default location: /system/xbin/busybox. All you need to do is install busybox there and reboot your phone.
show-p1984 said:
Knowledge base:
(under construction)
tegra_mpdecision manual:
coming soon(tm)
Click to expand...
Click to collapse
looks great is this kernal compatible with cm10 based roms such as paranoid android
Flypants101010 said:
looks great is this kernal compatible with cm10 based roms such as paranoid android
Click to expand...
Click to collapse
Yes, ofc
Running cm10 nightlies myself.
show-p1984 said:
Yes, ofc
Running cm10 nightlies myself.
Click to expand...
Click to collapse
All AOSP roms work with Bricked
* Hello World *
What tweaks did you make to on-demand, if you don't mind me asking? The only thing I've noticed is that frequency switching seems to happen faster & more often.
Feel like flashing something tonight!
Sent from my Nexus 7 using xda premium
I tried flashing this a few times and it fails with each try.
Dabaum said:
What tweaks did you make to on-demand, if you don't mind me asking? The only thing I've noticed is that frequency switching seems to happen faster & more often.
Click to expand...
Click to collapse
I mostly adapted it to work with the lpcore while the screen is on and also with special power saving setting while the screen is off.
The 2 phase frequency was changed to accomplish that.
It also applies a powersave bias while screen is off.
Additionally I changed the settings to allow faster scaling with less load. (70% > freq incr)
Source is currently being uploaded, but since I kept the history intact it is taking ages. You can look it up there in more detail once the source is up
airmaxx23 said:
I tried flashing this a few times and it fails with each try.
Click to expand...
Click to collapse
With what message?
I guess because your recovery does not identify your device as 'grouper'.
show-p1984 said:
With what message?
I guess because your recovery does not identify your device as 'grouper'.
Click to expand...
Click to collapse
It just says failed, I've had no problems flashing anything else and I'm flashing mutilple times a day usually.
airmaxx23 said:
It just says failed, I've had no problems flashing anything else and I'm flashing mutilple times a day usually.
Click to expand...
Click to collapse
It most certainly does not say "failed" and nothing else. Look harder.
Using twrp recovery me and my beta testee had no problems at all.
show-p1984 said:
It most certainly does not say "failed" and nothing else. Look harder.
Using twrp recovery me and my beta testee had no problems at all.
Click to expand...
Click to collapse
It says "unable to open zip file. Error flashing zip."
show-p1984 said:
Yes, ofc
Running cm10 nightlies myself.
Click to expand...
Click to collapse
And just to be clear, with non-CM based ones as well? I'm running the 'Glazed' ROM....
airmaxx23 said:
It just says failed, I've had no problems flashing anything else and I'm flashing mutilple times a day usually.
Click to expand...
Click to collapse
Nothing wrong with the zipfile, maybe corrupted download? did you do md5 hash check before flash?
It's either your custom recovery or a corrupted download, period.
ps. Happy Flashing.
airmaxx23 said:
It says "unable to open zip file. Error flashing zip."
Click to expand...
Click to collapse
corrupt download? checked md5/sha1?
corrupt phone upload? checked md5/sha1?
friedsonjm said:
And just to be clear, with non-CM based ones as well? I'm running the 'Glazed' ROM....
Click to expand...
Click to collapse
As long as it is AOSP you should be fine.
But just try it and report back, then we are all a bit more enlightened
(Sorry, I can't possibly test all the ROMs out there ^^)
T-junk said:
Nothing wrong with the zipfile, maybe corrupted download? did you do md5 hash check before flash?
It's either your custom recovery or a corrupted download, period.
ps. Happy Flashing.
Click to expand...
Click to collapse
If I try downloading it directly to my tablet the resulting file is only 17.51K in size, downloading it with a computer takes care of the problem.
airmaxx23 said:
It says "unable to open zip file. Error flashing zip."
Click to expand...
Click to collapse
I get the same.
Sent from my Nexus 7 using xda premium
airmaxx23 said:
If I try downloading it directly to my tablet the resulting file is only 17.51K in size, downloading it with a computer takes care of the problem.
Click to expand...
Click to collapse
StrangerWeather said:
I get the same.
Click to expand...
Click to collapse
I guess same problem for you StangerWeather.
Try downloading on your pc, I will look into that webserver issue tomorrow. (or maybe it's a chrome issue? who knows ^^)
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
RoXSel Kernel for GT-I8160 aka Codina aka Ace 2
Team: Roxsel (Rox and jereksel)
I'M IN NO WAY RESPONSIBLE OF ANY DAMAGE CAUSED BY USING THIS CUSTOM KERNEL.
PLEASE NOTE THAT SOME FEATURES CAN DAMAGE YOUR PHONE AND YOUR EAR.
What is needed:
Samsung GT-I8160 (Jellybean)
Custom, non stock based ROM (CM, P.A.C, Slim, RootBox, LiquidSmooth...)
Some Android experience
Features:
zram: zRAM supports for android
swap: swap supports
fs: CIFS module
fs: Fsync control [Cocafe]
fs: exfat-nofuse [Dorimanx]
fs/aio: Asynchronous io performance improved
arm: ThumbEE
arm/vfp: Build with neon
arm/crypto: ARM AES and SHA-1 crypto implementation
abb-Regulator: VOTG power supply
abb-Chargalg: Real charged notification
abb-Charger: Charger control
lib: Optimzed CRC32 algorithm [ezekeel]
lib: GNU C version memcpy & string
mmc: spi CRC configurable [Cocafe]
mali: Utilization control
mali: MALI TWEAK[Cocafe]
mali: PM sampling rate tweakable [Cocafe]
kernel: LZO compression
snvet: Reduce the waketime 6s -> 1s
sched: Disable sched debug stuff
debug: Remove Samsung debug code [Adi_Pat]
debug: Android logger as module (free 4mb RAM)
st-mmio: Highlight mode for rear LED flash [Cocafe]
bcmdhd: PM_FAST by default
bcmdhd: Reenable ipv6 and disable multicast in suspend [Andrew Dodd]
random: Entropy tweaks [dorimanx]
random: Frandom module support
staging: Add Snappy and lz4 compression
staging: Lowmemorykiller tweaked
cpufreq: 14 available CPU governors
[*]block: 8 IO schedulers
ramdisk: Init.d scripts
ramdisk: LZO compression
ramdisk: ClockworkMod Recovery 6.0.3.4 [CyanogenMod]
ramdisk: ClockworkMod Touch Recovery 6.0.3.2 [SlimBean]
toolchain: Linaro GCC 4.7
More details in changelog and Github repo
Installation:
Download RoXSel_Kernel_vX.zip
Boot into recovery
Wipe Cache ( Highly Recommended )
Flash RoXSel_Kernel_vX
Reboot
Enjoy !
Downloads:
RoXSel Kernel v2
RoXSel Kernel v2 - CWM Touch
RoXSel Kernel v2 (4.1.2 Roms)
RoXSel Kernel v2 (4.1.2 Roms) - CWM Touch
Sources:
Credits:
dh.harald for kernel source
hafidzduddin, cocafe and Adi_Pat for tweaking source
If i forgot someone contact me
How to play with kernel
Here are some intructions/tips about how to play with the kernel.
Terminal is needed.
If you want to change the values,it needs su permission.
If you get 'Permisson denied',you need su permisson.
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
Boot time
RoXSel boots faster than stock normally.
4.2.2
Code:
Stock: 8600ms - 8800ms
RoXSel: 8400ms - 8600ms
Report other versions !!
How to check boottime?
Code:
cat /d/boottime/summary
CPU Governors
OndemandQ ( Default )
Ondemand
Performance
Hotplug
SmartAss2
Lionhearth
Lulzativeq
Powersave
Intellidemand
Lagfree
Lazy
Interactive
Conservetive
Userspace
* Personaly,I use OnDemand(Q)
* OndemandQ is a new governor. It will hotplug cpu when screen turns off only.
* If you mind the battery life time,choose HotPlug. It hotplugs cpu frequently.
* LulzactiveQ, it will hotplug cpus
CPU Freqs
On JB,we cannot tweak min/max scale freqs via apps like SetCPU.
Here is the method.
Code:
cd /sys/power
For example: set 400Mhz as max limited
Code:
echo 400000 > cpufreq_max_limit
* When you switch on/off power saving mode, this tweak will be overrided.
IO schedulers
Noop ( Default )
Deadline
Cfq
Bfq
Row
Zen
Sio
Vr
* Personally, i use Zen
Frandom Module
Use CrossBeeder to enable frandom.
Deepest sleep state
Stock: 3 Default: 3
Deepest supported is 5.
To change:
Code:
echo 5 > /d/cpuidle/deepest_state
* PegasusQ ( hotplug governors ) works badly with 5
* OnDemand works well with 5
* Please note that it wont increase the using time but standby time.
To check the cpuidle state:
Code:
cat /d/cpuidle/stats
USB VBus
( v2+ )
This can enable the internal vbus power supply for usb devices.
But the phone still cannot recognize our usb devices now.
You can use it for fun,like charging for other devices, using usb fan...
To enable :
Code:
cd /sys/kernel/abb-regu
echo 1 > VOTG
* Say 0 to VOTG to disable
* Plug yoru cable first,then enable it
zRAM
zRAM is optimized for Android.
It is not lazy anymore.
Using zRAM will take a little CPU,because it needs to compress/decompress memory.
Recommended compressing about 18% of RAM,about 100mb
Setup disksize first: (example: 96mb= 96×1024×1024)
Code:
echo 100663296 > /sys/block/zram0/disksize
* Larger size more RAM will be compressed.
* Too large size might make phone lag
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
* You can get other info in its sysfs
Swap
Format/resize your SdCard via computer first.
Enable:
Code:
mkswap /dev/block/mmcblk1p1
swapon /dev/block/mmcblk1p1
Init.d script
Put some scripts (any name you like) in init.d folder with permisson 0777 (rwxrwxrwx) (at least has read and exec permission)
Scripts with right permisson will be runned 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.
Too high current can burn your battery!
I recommend you that dont set the max limited current over 900mA.
AC Maximum current: (stock: 600 , min: 0 , max: 900) mA
Code:
echo ??? > /sys/kernel/abb-charger/max_ac_c
USB Maximum current: (stock: 600 , min: 0 , max: 900) mA
Code:
echo ??? > /sys/kernel/abb-charger/max_usb_c
* The control only accepts values like 0, 100, 200 ...
* Set usb current to 0,the phone wont charge in usb port,but transmits data.
Track driver memory [advanced] :
Code:
cat /sys/kernel/abb-charger/stats
To get the charging current:
When you plug charger:
Code:
dmesg | grep -i ab8500-charger
Real charged notification
To be honest,it needs to check manually.
Code:
cat /sys/module/abb_chargalg/parameters/eoc_status
* You can use Rootexplorer to view this file.
* When it says "First full charging reached",then the UI should show you charged 100%
But it is not the real full charged.
* When it says it is the real full charged,you can unplug the charger.
* When you are charging and do a reboot will reset the counter.
* According to my experiments,it needs 1-2 hours to charge to real full.
MMC SIP CRC
( v2+ )
Disabling SPI CRC can improve mmc performance (10% ~ 30%)
But phone may freeze randomly
Code:
echo 0 > /sys/module/mmc_core/parameters/use_spi_crc
Camera LED Flash
( v2+ )
HIghlight mode for assistive light, enabling this for a long time will heat up your device, be careful!
Enable:
Code:
echo 1 > /sys/class/camera/flash/highlight
Disable:
Code:
echo 0 > /sys/class/camera/flash/highlight
Fsync Control
Get current status:
Code:
cat /sys/kernel/fsync/mode
FSYNC modes:
Code:
0: fsync on
1: fsync off
2: fsync dyn
Disable FSYNC:
Code:
echo 1 > /sys/kernel/fsync/mode
* Disabling fsync can improve io performace,
but it can make the data which hasnt been written lose when a sudden poweroff comes.
* Disabling fsync or enabling dyn_fsync will make param driver fail to store data
That means your "reboot recovery" will fail.
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 io load,the screen might get stuck for seconds.
* This is an experimental feature.
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_reads
* 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 your self
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
EGL Driver
To use Mali hardware egl driver only:
Edit /system/lib/egl.cfg
Code:
0 0 android
0 1 mali
To
Code:
0 0 mali
Then remove libGLES_android.so
* Recommend to backup these files
* According to my feelings: after disabling sw egl driver,UI is faster
Logcat
Well,we have made android logger(logcat) as module to free more RAM.
Some guys request logcat.
Now we provide you a workaround:
Create a new init.d script:
Code:
#!/system/bin/sh
insmod /system/lib/modules/logger.ko
or
Flash this ZIP
Then you can use logcat command.
Almost tweaks will be restored to default after reboots.
So you can make your tweaks as init.d scripts to apply them when boots.
Bugs and Changelogs
Bugs :
LPM charging (Not on stock)
-------------------------------------------------------------------------------------------------------------------------------
Changelog Version 3 (XX/XX/XXXX) :
| Stock version ( Touch ) | | 4.2.2 Version ( Touch ) | | CM 10 version ( Touch ) | | MIUI version ( Touch ) |
Kernel version updated 3.0.31 - > 3.0.96
vmscan: vm_swappiness = 60 -> 20
snd_usb: fix sysfs conflicts [Cocafe]
bcmdhd: wifi signal values patch
power: stop printing noise [Cocafe]
sched: Enable arch power
mm: VM Tweaks [Adi_Pat]
fs: Reduce vfs_cache_pressure to 20 [Adi_Pat]
debug: Disable Frame pointer [Adi_Pat]
defconfig: Enable CLEANCACHE
Added support for MIUI
Added support for STOCK ~ HOT
-------------------------------------------------------------------------------------------------------------------------------
Changelog Version 2 (08/09/2013) :
| 4.2.2 version ( Touch ) | | CM 10 version ( Touch ) |
ramdisk: LZO compression
kernel: LZO compression
mali: pre-allocated os memory size 24mb -> 16mb
st-mmio: Highlight mode for rear LED flash [Cocafe]
bcmdhd: Reenable ipv6 and disable multicast in suspend [Andrew Dodd]
sched: Disable arch power
arm/crypto: ARM AES and SHA-1 crypto implementation
fs: exfat-nofuse [Dorimanx]
drivers/mmc: spi CRC configurable [Cocafe]
abb-Regulator: VOTG power supply
toolchain: Linaro GCC 4.7
partialy fix LPM charging
-------------------------------------------------------------------------------------------------------------------------------
Changelog Version 1 (29/08/2013) :
| 4.2.2 version ( Touch ) | | CM 10 version Touch |
Initial Release
Added CWM Touch version (04/09/2013)
Added CM 10 CWM Touch version (04/09/2013)
-------------------------------------------------------------------------------------------------------------------------------
Note:
I/O schedulers cant be changed in stock performance app that comes with most ROMS.
Use 3rd party app instead ( SetCPU, No-Frills... )
What are these an do I need it I'm running rootbox
Sent from my GT-I8160 using xda app-developers app
Faster with CM10 than CM10 with his stock kernel?
EDIT:
OP: @Rox = Roberthinio??
Ok IDK nothing about kernel. I use CM10 from @dh.harald. If i use this kernel, the performance will increase? And i use mod vold.fstab from MIUI beta rom, will it causing complication when i flash this kernel? Or i should flash this kernel with fresh CM10?
Thanks in advance, congratulations for the elaboration
good job :fingers-crossed:
Thank you guys. I'll give a try on slim bean.
On stock JB phone does not boot, its blocked at samsung blinking logo. Advices?
I can go to cwm recovery.
Sent from my Nivo using Tapatalk 4
myhayserano said:
On stock JB phone does not boot, its blocked at samsung blinking logo. Advices?
Sent from my Nivo using Tapatalk 4
Click to expand...
Click to collapse
What is needed:
Samsung GT-I8160 (Jellybean)
AOSP ROM (CM, P.A.C, Slim, RootBox, LiquidSmooth...)
Some Android experience
This is confusing, does it run on stock JB roms? Or is intended olnly fir custom roms?
Sent from my Nivo using Tapatalk 4
myhayserano said:
On stock JB phone does not boot, its blocked at samsung blinking logo. Advices?
I can go to cwm recovery.
Sent from my Nivo using Tapatalk 4
Click to expand...
Click to collapse
Read the requirements, lucky you don't hardbrick your SGA2 :')
myhayserano said:
On stock JB phone does not boot, its blocked at samsung blinking logo. Advices?
I can go to cwm recovery.
Sent from my Nivo using Tapatalk 4
Click to expand...
Click to collapse
read what is needed before you flash. to boot phone flash kernel.bin.md5 from one of firmwares using odin
Not needed I had cwm backup of my rom and just restored stock kernel phone booted ok. Please modify first post and specify that this kernel is compatibile ONLY with custom roms.
This phrase at the begining can make people mistake:
``Samsung GT-I8160 (Jellybean)``
Sent from my GT-I8160 using Tapatalk 4
Any bugs?
Sent from my GT-I8160 using xda premium
myhayserano said:
Not needed I had cwm backup of my rom and just restored stock kernel phone booted ok. Please modify first post and specify that this kernel is compatibile ONLY with custom roms.
This phrase at the begining can make people mistake:
``Samsung GT-I8160 (Jellybean)``
Sent from my GT-I8160 using Tapatalk 4
Click to expand...
Click to collapse
Read all phases and everything will be cleared out...
@up no bugs except that you have to use 3rd party app to change i/o scheduler ( you cant change inside settings-performance, dont kniw why. Some app bug)
I will ad more info later on 2 nd post i am not at home
Sent from my GT-I8160
Don't mean to sound like a noob but is it safe to use on top of tweaks such as Project Injection?
Yes. Also if you use crosbreeder you can enable frandom
Sent from my GT-I8160
Rox said:
Yes. Also if you use crosbreeder you can enable frandom
Sent from my GT-I8160
Click to expand...
Click to collapse
Thanks for the quick reply. I'll be pairing up this kernel with LiquidSmooth as soon as call volume is fixed. :good:
I'm trying now. This is ****** handsome! You put hotplug governor, my battery say tahnks to you
Maybe one little bug: on powersave frequency doesnt remain at 200mhz. And if i set frequency min 200 MHz - max 400mhz the 800mhz step continue to work, eventi if i choose userspace.
I'll try with no CPU frills.
Good work mate!
Welcome to the most customizable N7 2013 kernel on xda
Bricked-Kernel Nexus 7 2013 (flo/deb)
Features:
* Based upon Googles msm 3.4 source
* Various other fixes (look @ github)
* Compiled with gcc4.7.2 toolchain (linaro 09.12)
* -O3 optimized
* Snapdragon S4 & CortexA15 optimizations
* vastly improved touchscreen drivers, which made it rock stable even before Google patched the firmware
* Sweep2wake
* DoubleTap2Wake
* replaced qcoms hotplug binary with msm_mpdecision (IN-KERNEL, better battery life + performance)
* Extensive sysfs interface for mpdecision with all the tuneables you want (/sys/kernel/msm_mpdecision/)
* replaced the thermald binary with my IN-KERNEL solution. (/sys/kernel/msm_thermal/)
* export krait version to: /sys/kernel/debug/krait_variant
* modified ondemand governor
* Allow OC up to 1,83Ghz
* Fixed min cpufreq resets
* Undervolting
* Sound Control (faux123)
* Default clocks: 384min & 1512max
Zip features:
*** ON-THE-FLY-RAMDISK EDITS!
*** THIS KERNEL USES YOUR RAMDISK, it will just modify it on the fly while flashing. These changes are not creating any incompatibilities with roms/other kernels. (Except those roms which intentionally go incompatible to stock/aosp on a driver level)
* removes min freq overrides from the ramdisk
* removes governor overrides from the ramdisk
* adds init.d support to your ramdisk (if not already supported)
* modifies stock ondemand settings
* add module insertion
Check the compare links for the rest
Where is tha Changelog???
There will be no more changelogs.
Instead the download pages were outfitted with compare links to github for each download.
What is sweep2wake?
Yes that is a mako, works the same way on the flo though
How to install?
Flash through recovery. #done.
How to uninstall?
Flash this through recovery:
Bricked_uninstaller
Bye.
Where to complain about errors/bugs?
Please use the Issuetracker for bugs/errors/feature wishes!
Issuetracker @ https://github.com/showp1984/bricked-flo/issues
[email protected]
IRC Chat: Freenode IRC #bricked
Download:
No Guarantees! If it kills your grandmother or your device, I am NOT responsible! If you understand this:
(If you download, please hit Thanks below my post! Thank you!)
>>> DOWNLOAD <<<
Donor List:
> Hall of fame <
Thank you very much!
Source:
What is msm_thermal?
Kernel based 3-phase thermal control!
This replaces your /system/bin/thermald binary which is renamed by the installer to thermald_bck.
It will throttle your cpu speed to keep it cool and unleash it if the cpu has cooled down enough. (3 phases: low, mid and high)
Check /sys/kernel/msm_thermal/conf/ for the thermal configuration
allowed_max_high = highest threshold (phase 3)
allowed_max_low = remove the throttling if we cooled down to this (clr_thrshold)
allowed_max_freq = max frequency if throttled (limit)
[...]mid[...] = same as above, just for phase 2
[...]low[...] = Lowest threshold (phase 1)
check_interval_ms = how often shall we check? (sampling rate)
Default: 100ms (=0.1sec)
shutdown_temp = if we reach this shut down the device!
Default: 80°C
If you want to see msm_thermal doing it's job:
Code:
adb shell
cat /proc/kmsg | grep 'thermal'
What is msm_mpdecision?
100% kernel based multi core decision! (should cpu1/2/3 be online or not?)
This replaces your /system/bin/mpdecision binary which is renamed by the installer to mpdecision_bck.
Check /sys/kernel/msm_mpdecision/conf/ for the configuration.
startdelay = time until mpdecision starts doing it's magic (20000)
delay = time between checks (70)
pause = if something else plugs in the cpu, fall asleep for 10000ms (10 secs)
scroff_single_core = if the screen is off, don't plug in cpu1/2/3. Additionally: Unplug all cpus except cpu0 when screen is turned off (1)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
min_cpus = min cpus to be online, cannot be < 1. Default: 1
max_cpus = max cpus to be online, cannot be > 4. (if you set it to 2 and min_cpus to 1 you will basically have a dualcore) Default: 4
idle_freq = a value against that will be checked if a core +/- is requested. (486000)
If cpu0 is below that value and a core up of another cpu is requested, nothing will happen.
If any other cpu is above that value and a core down of that cpu is requested, nothing will happen. (otherwise it would now put down that cpu even though it is still working, which isn't what we want)
Hot plug thresholds (aka now it gets 'complicated')
This small formula calculates which value will be used: (number_of_cpus_online - 1) * 2
The result of this formula will be the nwns_threshold where a new cpu is hotplugged.
The result of this formula + 1 will be the nwns_threshold where a cpu is unplugged.
nwns_threshold_x = runqueue threshold, if this is reached cpuX will be hot/unplugged
twts_threshold_x = time threshold, this amount of time must have passed for the related action to be taken (hot/unplug)
Example:
One cpu is online.
(1 - 1) * 2 = 0 ergo:
nwns_threshold_0 = cpu1 will be hotplugged at this value
((1 - 1) * 2) + 1 = 1
nwns_threshold_1 = cpu0 will be unplugged at this value
Since we can't unplug cpu0 this is '0'.
Two cpus are online.
(2 - 1) * 2 = 2 ergo:
nwns_threshold_2 = cpu2 will be hotplugged at this value
((2 - 1) * 2) + 1 = 3
nwns_threshold_3 = cpu1 will be unplugged at this value
etc...
The default values are:
NwNs_Threshold: 12, 0, 25, 20, 32, 28, 0, 35
TwTs_Threshold: 140, 0, 140, 190, 140, 190, 0, 190
Where the position and function of the number equals the result of the above explained formula.
(all times are in ms)
If you want to see the mpdecision magic happening:
Code:
adb shell
cat /proc/kmsg | grep 'MPDEC'
mpdecision's input event boost, aka project butter
This will boost your min cpu speed if you touch the screen or press a button and gives you full control.
In those events the min cpu freq will be risen to a predefined value (look below) on every online cpu. This boosts overall reaction times and smoothness a lot. (works similar to the qcom mpdecision binary)
Configuration files:
[email protected]:/sys/kernel/msm_mpdecision/conf # ls
boost_enabled
boost_freqs
boost_time
All of them work like the usual sysfs files, except one special case:
boost_freqs will list all frequencies from cpu 0 to cpu x. Cpu 3 and any following cpu will share one frequency.
To change those frequencies echo the cpu number + the frequency in khz. To change the boost freq of cpu3 (and 4,5,6,7,8, etc) the echo would look as follows:
Code:
echo "3 1026000" > /sys/kernel/msm_mpdecision/conf/boost_freqs
for cpu0:
Code:
echo "0 1026000" > /sys/kernel/msm_mpdecision/conf/boost_freqs
Defaults:
Code:
cat /sys/kernel/msm_mpdecision/conf/boost_freqs
918000
918000
702000
594000
How does sweep2wake work? Does it keep my phone awake?
Short answer: No.
Long answer:
Sweep2wake works with IRQs (Interrupts).
An interrupt can be best imagined as you doing something, like shopping at the local super market, when someone jumps in front of you and punches you into your family jewels. You will most certainly not just continue shopping.
In technical terms: An Interrupt interrupts the normal operation of a program and executes "special" code instead.
So if you touch your screen, an interrupt is send on which the touch driver reacts. That's it.
Since we have a capacitive touchscreen you also do not need to worry about any pressure onto the screen.
If you want to disable sweep2wake execute this command on your phone (adb shell or directly), you can also add it to an init.d script.
Code:
echo "0" > /sys/android_touch/sweep2wake
(echoing "1" activates it, which is the default setting)Recommended governor?
Ondemand.Why do I have no WLAN?
Due to this kernels very high optimization settings it is too big for our boot.img with WLAN included into the kernel, so it is built as a module. That means it needs to be inserted into the kernel upon boot up, which needs to be automated for maximum comfort.
The zip adds this to your ramdisk, if that fails for some reason the wlan module cannot be inserted.
if
Code:
adb shell lsmod
doesn't show this:
Code:
tun 14701 0 - Live 0x00000000
cifs 275399 0 - Live 0x00000000
wlan 2964650 0 - Live 0x00000000 (C)
Then something went wrong. (My fault)
You can test it by executing
Code:
adb shell
su
insmod /system/lib/modules/wlan.ko
Wait a few seconds and try to enable wifi and repeat the above lsmod command (should now show wlan).
If WLAN now works, I messed up.
Open a new issue in the issue tracker and it will be fixed asap.
If you look for an app to control your kernel: http://forum.xda-developers.com/showthread.php?p=47773391#post47773391
Wohoooooo the best kernel on sensation thread now reaches nexus 7!!! That's awesome :highfive:
Sent from my Nexus 7 using xda app-developers app
Drunken_elk said:
Wohoooooo the best kernel on sensation thread now reaches nexus 7!!! That's awesome :highfive:
Click to expand...
Click to collapse
It's been on the flo since September the 19th, there just wasn't an xda thread for it
Oh damn . Anyway good choice to add the thread
Sent from my Nexus 7 using xda app-developers app
no fsynch trigger? or just not mentioned in features?
L-ViZ said:
no fsynch trigger? or just not mentioned in features?
Click to expand...
Click to collapse
Whoever disables fsync is a maniac. It is not in this kernel and will never get in. That's my totally honest opinion.
Using a no fsync, or 'dynamic' fsync kernel is the equivalent of jumping from a skyscraper with nothing but a napkin.
Best Nexus 5 kernel il now on N7 ! Awesome ! Thank's for this
Envoyé depuis mon Nexus 7 avec Tapatalk 4
Assume this is based on the new 4.4.1?
Sent from my Nexus 4 using Tapatalk
ogrillion said:
Assume this is based on the new 4.4.1?
Click to expand...
Click to collapse
Indeed.
Hey man, good to see more talented kernel devs on this device, yours was one of my favourites back on my HTC One X
Any chance of merging kexec patch for multirom support?
http://forum.xda-developers.com/showthread.php?t=2457079
Nexus 7 LTE
Stock rooted KOT49E
Faux Kernel
show-p1984 said:
Indeed.
Click to expand...
Click to collapse
Oh god ! Downloading now !
Envoyé depuis mon Nexus 7 avec Tapatalk 4
Can you include the MultiROM patch in the kernel?
Sent from Tapatalk, using Tapatalk
show-p1984 said:
Indeed.
Click to expand...
Click to collapse
made for 4.4.1 means only usable on 4.4.1 or works on 4.4 too?
Will this brick my phone
Does Slimport work with this? I have had other kernels flick out after 5 minutes or so.
Sent from my Omni 4.4 Galaxy S3. Proud Googy Beta tester.
Works with CM11?
L-ViZ said:
made for 4.4.1 means only usable on 4.4.1 or works on 4.4 too?
Click to expand...
Click to collapse
I can tell you that I am running it on Bruce's 4.4 odexed and is running brilliantly so far. Installed it early this morning and running great so far.
Quiksilver78 said:
Works with CM11?
Click to expand...
Click to collapse
It should.
Give it a try, the install process make a backup of your current Zimage, if something goes wrong, just flash the uninstaller and your'll get back to your unmodified rom.
lionelia said:
It should.
Give it a try, the install process make a backup of your current Zimage, if something goes wrong, just flash the uninstaller and your'll get back to your unmodified rom.
Click to expand...
Click to collapse
Turning on WiFi caused boot loops for me lol
I figured it wasn't supposed to work so I didn't report it so I flashed slimkat
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