Themes / Apps / Mods XIAOMI 11T (AMBER/AGATE) MIUI 14 GLOBAL TWEAKS AIO - Xiaomi 11T

feature :
1. SDA/SDB/SDC
UP 1024 read_ahead_kb
UP 1024 nr_requests
ENABLE add_random
2. GED
ENABLE boost_gpu_enable
ENABLE enable_game_self_frc_detect
ENABLE gx_boost_on
ENABLE gx_game_mode
ENABLE ged_smart_boost
3. KERNEL HAL
LVL 5 gpu_boost_level
SET MAX FREQ custom_boost_gpu_freq
4. EARA THERMAL
SET DISABLE
5. ZRAM
SET 6GB disksize
7. APU
ENABLE mnoc_apu_qos_boost
8. RAM
RAM 0-15 SET 1024 read_ahead_kb
DM 0-43 SET 1024 read_ahead_kb
LOOP 0-10 SET 1024 read_ahead_kb
ZRAM SET 1024 read_ahead_kb
9. VM
SET 75 dirty_ratio
SET 60 overcommit_ratio
SET 10 vfs_cache_pressure
SET 3000 dirty_expire_centisecs
10. I/O
SET DEADLINE scheduler
11. TCP NET
SET BIC tcp_congestion_control
12. CPU
SET PERFORMANCE CPU 0-7 cpufreq
SET MAX CLOCK SPEED CPU 0,1,2,3 TO 2000000
SET MAX CLOCK SPEED CPU 4,5,6 TO 2600000
SET MAX CLOCK SPEED CPU 7 TO 3000000
SET MAX CLOCK CPU POLICY 0,4,7
13. KERNEL PANIC
DISABLE panic_on_oops
DISABLE perf_cpu_time_max_percent
DISABLE panic
REDUCE TO 10000 perf_event_max_sample_rate
DISABLE kptr_restrict
14. THERMAL KILL
STOP THERMAL_CORE + FILE REPLACE
CUSTOM THERMALD + FILE REPLACE
STOP THERMAL + FILE REPLACE
STOP THERMAL_MANAGER + FILE REPLACE
STOP THERMALLOADALGOD + FILE REPLACE
STOP MI_THERMAL + FILE REPLACE
TEST
XIAOMI 11T AGATE /AMBER
ROM MIUI 14 GLOBAL
MEDIATEK DIMENSITY 1200
ATTENTION: THIS MODULE MAY RESULT IN DAMAGE!, ALL DAMAGE CAUSED BY THIS MODULE IS NOT OUR RESPONSIBILITY!
MY RESPECT, THEDYA

thedyaaaa_ said:
feature :
1. SDA/SDB/SDC
UP 1024 read_ahead_kb
UP 1024 nr_requests
ENABLE add_random
2. GED
ENABLE boost_gpu_enable
ENABLE enable_game_self_frc_detect
ENABLE gx_boost_on
ENABLE gx_game_mode
ENABLE ged_smart_boost
3. KERNEL HAL
LVL 5 gpu_boost_level
SET MAX FREQ custom_boost_gpu_freq
4. EARA THERMAL
SET DISABLE
5. ZRAM
SET 6GB disksize
7. APU
ENABLE mnoc_apu_qos_boost
8. RAM
RAM 0-15 SET 1024 read_ahead_kb
DM 0-43 SET 1024 read_ahead_kb
LOOP 0-10 SET 1024 read_ahead_kb
ZRAM SET 1024 read_ahead_kb
9. VM
SET 75 dirty_ratio
SET 60 overcommit_ratio
SET 10 vfs_cache_pressure
SET 3000 dirty_expire_centisecs
10. I/O
SET DEADLINE scheduler
11. TCP NET
SET BIC tcp_congestion_control
12. CPU
SET PERFORMANCE CPU 0-7 cpufreq
SET MAX CLOCK SPEED CPU 0,1,2,3 TO 2000000
SET MAX CLOCK SPEED CPU 4,5,6 TO 2600000
SET MAX CLOCK SPEED CPU 7 TO 3000000
SET MAX CLOCK CPU POLICY 0,4,7
13. KERNEL PANIC
DISABLE panic_on_oops
DISABLE perf_cpu_time_max_percent
DISABLE panic
REDUCE TO 10000 perf_event_max_sample_rate
DISABLE kptr_restrict
14. THERMAL KILL
STOP THERMAL_CORE + FILE REPLACE
CUSTOM THERMALD + FILE REPLACE
STOP THERMAL + FILE REPLACE
STOP THERMAL_MANAGER + FILE REPLACE
STOP THERMALLOADALGOD + FILE REPLACE
STOP MI_THERMAL + FILE REPLACE
TEST
XIAOMI 11T AGATE /AMBER
ROM MIUI 14 GLOBAL
MEDIATEK DIMENSITY 1200
ATTENTION: THIS MODULE MAY RESULT IN DAMAGE!, ALL DAMAGE CAUSED BY THIS MODULE IS NOT OUR RESPONSIBILITY!
MY RESPECT, THEDYA
Click to expand...
Click to collapse
Do I flash with magisk?

Stephanizgo said:
Do I flash with magisk?
Click to expand...
Click to collapse
Yes (module)!

I flashed the module and rebooted. Waited about 30 seconds and again rebooted is that normal

Stephanizgo said:
I flashed the module and rebooted. Waited about 30 seconds and again rebooted is that normal
Click to expand...
Click to collapse
The device restarted only twice?

carlos974 said:
The device restarted only twice?
Click to expand...
Click to collapse
only twice now working fine

Stephanizgo said:
only twice now working fine
Click to expand...
Click to collapse

thedyaaaa_ said:
feature :
1. SDA/SDB/SDC
UP 1024 read_ahead_kb
UP 1024 nr_requests
ENABLE add_random
2. GED
ENABLE boost_gpu_enable
ENABLE enable_game_self_frc_detect
ENABLE gx_boost_on
ENABLE gx_game_mode
ENABLE ged_smart_boost
3. KERNEL HAL
LVL 5 gpu_boost_level
SET MAX FREQ custom_boost_gpu_freq
4. EARA THERMAL
SET DISABLE
5. ZRAM
SET 6GB disksize
7. APU
ENABLE mnoc_apu_qos_boost
8. RAM
RAM 0-15 SET 1024 read_ahead_kb
DM 0-43 SET 1024 read_ahead_kb
LOOP 0-10 SET 1024 read_ahead_kb
ZRAM SET 1024 read_ahead_kb
9. VM
SET 75 dirty_ratio
SET 60 overcommit_ratio
SET 10 vfs_cache_pressure
SET 3000 dirty_expire_centisecs
10. I/O
SET DEADLINE scheduler
11. TCP NET
SET BIC tcp_congestion_control
12. CPU
SET PERFORMANCE CPU 0-7 cpufreq
SET MAX CLOCK SPEED CPU 0,1,2,3 TO 2000000
SET MAX CLOCK SPEED CPU 4,5,6 TO 2600000
SET MAX CLOCK SPEED CPU 7 TO 3000000
SET MAX CLOCK CPU POLICY 0,4,7
13. KERNEL PANIC
DISABLE panic_on_oops
DISABLE perf_cpu_time_max_percent
DISABLE panic
REDUCE TO 10000 perf_event_max_sample_rate
DISABLE kptr_restrict
14. THERMAL KILL
STOP THERMAL_CORE + FILE REPLACE
CUSTOM THERMALD + FILE REPLACE
STOP THERMAL + FILE REPLACE
STOP THERMAL_MANAGER + FILE REPLACE
STOP THERMALLOADALGOD + FILE REPLACE
STOP MI_THERMAL + FILE REPLACE
TEST
XIAOMI 11T AGATE /AMBER
ROM MIUI 14 GLOBAL
MEDIATEK DIMENSITY 1200
ATTENTION: THIS MODULE MAY RESULT IN DAMAGE!, ALL DAMAGE CAUSED BY THIS MODULE IS NOT OUR RESPONSIBILITY!
MY RESPECT, THEDYA
Click to expand...
Click to collapse
It's difficult for me to understand, please can you tell what this tweak does? Is it like over clock?

llSOULll said:
It's difficult for me to understand, please can you tell what this tweak does? Is it like over clock?
Click to expand...
Click to collapse
It is more like underclock, for gaming I recommend to turn it off

llSOULll said:
It's difficult for me to understand, please can you tell what this tweak does? Is it like over clock?
Click to expand...
Click to collapse
llSOULll said:
It's difficult for me to understand, please can you tell what this tweak does? Is it like over clock?
Click to expand...
Click to collapse
No, just tunning for best performance

hay guys, i made the modul for may self. maybe have mistake just for xiaomi 11T agate/amber mediatek, if you wan to see may module just welcome to my drive https://drive.google.com/drive/folders/1gqNZHInbiQI7irsGT-TZbrCARxLEQhZE

I was watching a TV series on my phone when my phone did re,re,re,re,Re and rebooted on itself. This magisk module is buggy I think

im sory about that. what miui version you have? maybe you can deleted this module and change to new version for miui 14

Related

[KERNEL][4.4.4]F(X)TrinityUltimateKernel-V3.2 - MultiBoot - IntelliV2_ LUpdate Of Feb

{
"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"
}
F(X)TrinityUltimateK.​
[ Introduction : ]
Welcome to the Scandalous Kernel , The F(x)TrinityUltimateKernel, Giving the Most recent Bit Patches including new Distinctive features and Optimization(s), When your utilizing this kernel expect 2-weeks default upgrade, The Bit upgrade will be after at regular intervals ( 2-Weeks )...
V.3.2 - Download ( Support 4.4.4 Only )
>> CLICK HERE!! <<​
=-= Are You New Or You Wanted the Best Kernel Setting Check It Out Here! =-=
>> Best Kernel Settings <<
For Additional Information This Beast Kernel works Best at! >> TrinityVengeanceRaptorX-HD <<
: CHANGELOG :
V3.2Minor Changes
dm ioctl: prevent unsafe change to dm_ioctl data_size
md: protect against crash upon fsync on ro array
dm: fix deadlock with request based dm and queue request_fn recursion
dm: handle requests beyond end of device instead of using BUG_ON
msm8974: added input mediator
new helper: iterate_fd()
Other F2FS Alpha Test
V3.0Major Changes
Merge New Sony Source.
sm: vidc: eliminate race condition in dynamic buffer mode
kernel/futex.c: Linux 3.4 compatibility fix up
futex: Avoid taking hb lock if nothing to wakeup
softirq: reduce latencies
futex: Larger hash table
AND MANY MORE!! Check Out The Git. Added Last 26Days Ago!
V2.8 and 2.9_EXT Major Patches.
Added IntelliThermal V2 Of Faux123
Added Custom WLAN Driver
Dave Kleikamp fxTHaxxorX
iov_iter: iov_iter_copy_from_user() should use non-atomic copy …
kleikamp authored on Feb 3, 2013 fxTHaxxorX committed an hour ago
iov_iter: move into its own file …
qup_i2c: Initialize I2C resource before registering. …
i2c_qup: Fix for unhandled IRQ …
qup_i2c: export qup_i2c_init_driver …
page_alloc: Make watermarks tunable separately
25+ Patches More.
V2.7B
Fix Wakeup Issue
cpufreq: force cpuN policy to match cpu0 when changing freq or gov
cpuidle: remove the power_specified field in the driver …
cpuidle: Fix finding state with min power_usage …
cpuidle: Get typical recent sleep interval …
cpuidle: Quickly notice prediction failure in general case …
cpuidle: Quickly notice prediction failure for repeat mode …
cpuidle: move field disable from per-driver to per-cpu
sched: Remove unused params of build_sched_domain() …
sched: Optimize build_sched_domains() for saving first SD node for a cpu …
sched: Optimize build_sched_domains() for saving first SD node for a cpu …
sched: scale the busy and this queue's per-task load before compare …
sched: remove WARN_ON(!sd) from init_sched_groups_power() …
sched: don't call get_group() for covered cpus …
sched: Use cached value of span instead of calling sched_domain_span() …
cpufreq: Fix policy getting stuck when user & kernel min/max don't ov… …
cpuidle: remove unused variable dead_state
V2.6
Upstream Update From 3.4.0 to 3.4.9 Upstream
WiFi And exFAT Works! Kernel Version is Updated!
And Many more! - To be Added.
HTC AFSync
Added PegasusQ
Added Adaptive
Added frontswap v16
Added abyssplug
Added New CpuFreq Driver
Added F2FS File System Support***
Updated ZRAM
Adaption Of HR_TIMER for 3.4
sparc64 Misc Patches.
ASoC: wcd9xxx: Enable headset in high performance
Fully WORKING exFAT AND WiFi - You Can see the proof because 3.4.0 is changed to 3.4.X
V2.5
New GPU Optimization
DT2W With DeepSleep
V2.4AC-REFRESHED
Advance GPU OC V2 - 600Mhz
EXT4 - Speed Boost
Added New BootSplash
Added New KGSL Update
Added New MDP Update
Add SlimBus OC
V2.4AC
Advance GPU OC V2
New KGSL Update
SLQB Re-Added
New DT2W
V2.4
Advance GPU OC
New KGSL Update
Added Advance TCP Congestion
Remove Low FPS
Fixed 2-3 Reboots after Intallation
V2.2-3 SPECIAL
Galaxy Note 3 OC CPU Table
Updated MDP Overlay
KGSL Update
DoubleTap2Wake With Battery Drain Fix
New MakeFile Changes
New TCP Congestion
V2.1
exFAT Fix
V2.0
GPU Performance Legit Boost Upto 10% Now!
* New Patches at KGSL and MDSS
* Reduce Voltage
* New I/O Scheduler ( TrinNDroid )
* ARCH_POWER = Enabled
* softirq: Use hotplug thread infrastructure
* [backport] Hotplug thread infrastructure
Increased Battery Life
Updated CPU Frequency Stepping
Partial Fix for CPU Heating - Reduce by 5%
Increased Performance to 15%
Upstream Update For CPU Frequemcy
Increase performance form 5MS to 2MS
15+ More!
V1.9 - Special Update and Special Kernel Series.
Updated Intelliplug
Tons Of Optimization
Updated TWRP Now Working at KK
Updated Futex Table x2 Performance
Added PowerSuspend Hooks
Fixed GPU OC - Now It Doesn't go Back to 450 ( Make Sure to Re-Apply the OC Every ReBoot )
TCP Window Size is 64K
Optimize Slack_Speed for Size and Speed
Added Frandom - Increased Speed and Performance ( Benchmark Results Improved )
Reduce VFS Pressure
PowerSuspend Updated to 1.5
PowerSusped Added Userspace | HYBRID | USERCONTROL - Use FauxApp To Control This.
SOFTIRQ : Reduce Latencies
slub.c: little tweak for performance improvements
ChangeLog For 1.8 :
Linux 3.4,91 || UnPushed 3.4.62-3.4.90
Removed Chronic Hotplug and smp
Fix 2.4GhzOC Table Except Voltage Table
1080p Recording Optimization And Tweak
msm_fb: Set RR sched policy for Glupdator thread
ChangeLog For 1.7 :
CHROMIUM: BACKPORT: lib/lzo: huge LZO decompression speedup on ARM by
CHROMIUM: BACKPORT: lib/lzo: Update LZO compression to current upstream
CHROMIUM: mm: Fix calculation of dirtyable memory
msm8974-regulator.dtsi: further reduce CPU retention voltage
msm8974-regulator.dtsi: adjust GFX regulator parameters
char:random: Some tweaks from around github
futex: Make lookup_pi_state more robust
futex: Always cleanup owner tid in unlock_pi
futex: Validate atomic acquisition in futex_lock_pi_atomic()
mm, oom: fix and cleanup oom score calculations
mm, oom: fix badness score underflow
futex: Prevent attaching to kernel threads
evert "Revert "Correct R and G offsets for correct mapping""
mm, oom: fix and cleanup oom score calculations
ChangeLog For 1.6 :
Linux 3.4.0 - 3.4.62
Remove Early Suspend
Increase MDP Clock By x2
CpuFreq Optimization
XHCI Optimization
ChangeLog For 1.5 :
Linux 3.4.0 - 3.4.4
Re-Optimized KGSL - ( Remove Some Flickers )
Patch Sched.c
Patch Sched.h
Improved SSD
exFAT Tweak
Moved 2.6.X Device Tree To 3.4.X
Events Optimization
FS - AIO Optimization
FUSE Optimization
NFS Tweak
ChangeLog For 1.4 :
Optimized Square Root
Bit Optimization
mm : Read-Ahead To 512kB
SavaGedZen Gov
KGSL Tweak V2
R and G Offset Mappings
Reduce CPU Retention
Add Early_Suspend_Delay
Ramdisk : Enable Init.d Support
Patch The GPU
CPUs Patch
ChangeLog For 1.3 :
Re-Merge To Latest Sources ( Removing some cherry-picked Patches )
ChangeLog For 1.1 :
Rebased To New Kernel Source
Fix Pronto Wlan
ChangeLog For 1.0 :
TCP Congestion Advance :
TCP - Hybla
TCP - Cubic
TCP - Reno
TCP - Bic
TCP - WestWood
TCP - HighSpeed
TCP - HTCP
TCP - Vegas
TCP - Veno
TCP - Scalable
TCP - Lp
TCP - Yeah
TCP - illinois
MMC Tweak
KGSL Tweak - Optimize For Gaming
Linaro ToolChain
F2FS Enabled
MSM8964-Regulator
Sched : Optimization
FastCharge
ZRAM
Cherry-picked All Features From DooMLoRD using SmartGit or Merge All Features From His Source.
Other Features Merge Faux123 using SmartGit
Kernel:Workque Optimization
Correct R and G offsets for correct mapping
kernel:sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
smp: patches from mainline 3.5 to hopefully help with hotplug efficiency
LMK Optimization
Slub Tweak
Like My Work? Satisfied with my Work? Cheers Thanks For the Beer!
​
[ Donors : ]
@fixx1983 - 20$
@Klaus N. - 15Euro
@lil-diabo
[ Features : ]
GPU OverClock
CPU OverClock
MPDecision
TCP Congestion
Many More!
[ Schedulers & Governor : ]
Deadline
Noop
Row
CFQ
SIO
FIOPS
BFQ
ZEN
VR
LagFree
SmartAssV2
PegasusQ
IntelliActive and Intellidemand
Interactive
Darkness(?)
Wheatley
DanceDance
SavagedZen
OndemandX (?)
OndemandQ (?)
Conservatice, Ondemand, Lionheart, LionheartX(?), Performance.
[ Future Features : ]
New BootImage
Compiled using CustomizeToolChain Via SGS4 Section
New Patches
AROMA Installer
New Kernel Version || ATM It's 3.4.0
[ GPL v2/3 ( Some Commits Are not push Due To WiFi Problems Before : ]
GitHub.com
[ Donation : ]
BTC Address : 12i62Nfodt5srxri4XBmwzGbGj859C58JZ
Donors :
[T.O.S : ]
1. It's not my responsibility what ever will happen to your device after flashing the kernel.
XDA:DevDB Information
F(X)TrinityUltimateKernel - The Xperia Z1 True Kernel., Kernel for the Sony Xperia Z1
Contributors
f(x)THaxxorX, Faux123, DooMLorD, Garcia98, Davidlohr Bueso, showp1984
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: 3.0
Stable Release Date: 2014-12-01
Created 2014-07-01
Last Updated 2015-01-28
Recommended Settings ( BELOW ) & CM Support ( SOON )
Kernel Configuration #1
Thanks To @Wolfbreak for sharing his Config.
ROM: TrinityVengeanceRaptorX™ HD 1.4
Kernel: F(X)TrinityUltimateKernel-V2.7B
CPU Clocks
Max Clock: 2265600
Min Clock: 300000
Governor: intelliactive or PegasusQ [PegasusQ with MPDecision only]
Snake Charmer: On
I use intelliactive + intelliplug Combination but PegasusQ + MPDecision is a very good Combination too so test it out and choose which one you prefer.
CPU Hotplug
intelliactive
Hotplug Driver: intelliplug
Intelliplug Control - Touch Boost: On
Screen-Off Frequency: Off
Hysterisis Value: 8
Intelliplug Profile: Eco Conservative
Threshold Value: 722
CPU Hotplug for PegasusQ
Hotplug Driver: MPDecision
CPU Idle Stats
C0 - WFI: On
C1 - Retention: On
C2 - Standalone_Pc: On
C3 - PC: On
Thermal Manager
Thermal Managment Driver: IntelliThermal
Frequency Throttle Temperature: 85
Core Throttle Temperature: 80
Frequency Throttling Cores:
Core0 - On, Core1 - On, Core2 - On, Core3 - On
Core Throttling Cores:
Core0 - Off, Core1 - On, Core2 - On, Core3 - On
GPU Manager
GPU Governor: simple_ondemand
GPU Clock Control: 450 Mhz
Simple GPU Algorithm: On
Simple Governor - Laziness: 4
Simple Governor - Ramp Threshold: 7
IO Scheduler
FIOPS for eMMC and SDCard, Readahead Size: 512
eMMC / SDCard Entropy Contribution: Off
Color / Gamma
Color Temperature: Red - 255, Green - 235, Blue - 250
OBS! Set those values under Settings > Screen / Display > White Balance:
Red - 0, Green - 25, Blue - 25
Memory Manager
ZRAM Controls: Off
Clear VFS Cache After Boot: On
Auto FS Writeback Delay Mode: On
Swappiness: Change 80
VFS Cache Pressure: 100
Dirty Ratio: 20
Dirty Background Ratio: 5
Same Page Merge
Intelli-KSM Enable: On
Activation Threshold: 36 megabytes
Cycles per activation: 3 cycles
Pages to Scan: 400 pages
Scan Delay Interval: 500 ms
Battery Controls
Battery Temperature Throttling: On
Battery Temperature Threshold: 45 Celsius
Battery Throttle CPU Frequency: 1190400
FastCharge Options: Custom [Optional]
AC Charge Current (mA): 1500 [Optional]
Miscellaneous
PowerSuspend Modes: Hybrid
PowerSuspend: On
Dynamic File Sync: On
TCP Congestion Control: Westwood
If you cant set PowerSuspend then activate Userspace Mode check PowerSuspend and activate Hybrid again after that and both should be on and work.
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
Kernel Configuration #2 [/U]
Thanks To F(X)THaxxorX ( ME ) for sharing his Config.
ROM: TrinityVengeanceRaptorX™ HD 1.4
Kernel: F(X)TrinityUltimateKernel-V2.7B
CPU Clocks
Max Clock: 2.266 Ghz
Min Clock: 422 Mhz
Governor: OndemandPlus
Snake Charmer: On ( DEFAULT )
CPU Hotplug
Mpdecision
TouchBoost = Off
# Enables two core touch boost
sys.somc.touch_perf_kick=0
CPU Idle Stats
C0 - WFI: Off
C1 - Retention: Off
C2 - Standalone_Pc: Off
C3 - PC: Off
Thermal Manager
Thermal Managment Driver: Thermald
GPU Manager
GPU Governor: userspace
GPU Clock Control: 450 Mhz
Simple GPU Algorithm: On
Simple Governor - Laziness: 4
Simple Governor - Ramp Threshold: 5
IO Scheduler
FIOPS for eMMC and SDCard, Readahead Size: 1536
eMMC / SDCard Entropy Contribution: On
Color / Gamma
N/A -- Off
Memory Manager
ZRAM Controls: Off
Clear VFS Cache After Boot: Off
Auto FS Writeback Delay Mode: Off
Swappiness: Change 45
VFS Cache Pressure: 100
Dirty Ratio: 17
Dirty Background Ratio: 15
Same Page Merge
Intelli-KSM Enable: On
Activation Threshold: 25megabytes
Cycles per activation: 5 cycles
Pages to Scan: 256 pages
Scan Delay Interval: 465 ms
Battery Controls
Battery Temperature Throttling: On
Battery Temperature Threshold: 40 Celsius
Battery Throttle CPU Frequency: 1036800
FastCharge Options: Force AC[Optional]
AC Charge Current (mA): 500[Optional]
Miscellaneous
PowerSuspend Modes: Userspace
PowerSuspend: On - Force Enabled By Userspace Option
Dynamic File Sync: On
TCP Congestion Control: BIC
Atlast waiting for this..
Thanks
Thread Title Fixed Sorry, 20% ( Uploading in progress )
Stock or AOSP.. Seems Stock..
abbychauhan said:
Stock or AOSP.. Seems Stock..
Click to expand...
Click to collapse
This is Stock based kernel .).
4.4.X, So Yes 4.4.4 Is Supported ..
4.4.4 Checking..
Download Now Available!
http://goo.gl/yrFcyy
f(x)THaxxorX said:
4.4.X, So Yes 4.4.4 Is Supported ..
Download Now Available!
http://goo.gl/yrFcyy
Click to expand...
Click to collapse
1) Battery, performance or hybrid / combo focused kernel?
2) Which Linux kernel source version is this?
3) Any additional hotplug drivers included?
4) Does this one come with Sony RIC Root Security disabled as default for easier root access?
f(x)THaxxorX said:
4.4.X, So Yes 4.4.4 Is Supported ..
Download Now Available!
http://goo.gl/yrFcyy
Click to expand...
Click to collapse
Thanks a lot, awesome work! But just to let you know, you put two periods in the filename.
Thanks sir! :good:
Nice to see more development...will try it asap when I return to stock
Destroyedbeauty said:
1) Battery, performance or hybrid / combo focused kernel?
2) Which Linux kernel source version is this?
3) Any additional hotplug drivers included?
4) Does this one come with Sony RIC Root Security disabled as default for easier root access?
Click to expand...
Click to collapse
Its 3.4.0 Read the Thread , Better try it so you can answer your other questions .. Lets say this is hybrid the battery depends on how you select your governor . goodluck!
Chocolatetrain said:
Thanks a lot, awesome work! But just to let you know, you put two periods in the filename.
Click to expand...
Click to collapse
Sorry about that, Im gonna fix that when I released my next update
[Fenix] said:
Thanks sir! :good:
Nice to see more development...will try it asap when I return to stock
Click to expand...
Click to collapse
Nice to see that there is someone interested
Nice to see extra development
Sent by my Z1 with XDA Fax
Duvel999 said:
Nice to see extra development
Sent by my Z1 with XDA Fax
Click to expand...
Click to collapse
With RomAur 9 not boot
f(x)THaxxorX said:
Nice to see that there is someone interested
Click to expand...
Click to collapse
Trust me there is always interested people here on xda
Maybe we will see also your rom eheh :fingers-crossed:
Yeah, my ROM Will be released after 1-2 Months, I Need to Optimize my AROMA Installer from my Old Xperia S
jack92me said:
With RomAur 9 not boot
Click to expand...
Click to collapse
Im Using 4.4.2, Let me try it @ 4.4.4 .
i remember u on xperia s forum
glad to see u here!
looking forward to your develpoment
jack92me said:
With RomAur 9 not boot
Click to expand...
Click to collapse
KitSlim Evo5 IS booting...so its not a Kernel-related problem. Did you wipe Dalvic and Cache? Its a MUST when installing Kernel
My problem is that the kernel is not mounting my sd-card (64GB)

[KERNEL][3.4.106][LP][ION] K^Kernel 3.4.106 v2.0 for LP 5.0 [11/03/2015][EOL]

{
"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"
}
In this thread you may find my customized kernel 3.4.x for Lollipop rom (CM 12.0 and derivatives) that use ION+PMEM ADSP memory allocations.
Of course, your feedback, as always, are welcome and certainly valuable.
The main features are the following:
- Kernel 3.4.x
- Kernel based on more updated kk_2.7-stable branch of CAF (Code Aurora Forum)
- Sources synched with cm-12.0 repo branch of DevCon Team
- Built with my custom Linaro 4.9.3-2015.02 toolchain optimized for Cortex-A8
- Built with Cortex-A8 and NEON VFP optimization flags (both kernel and modules)
- Built with -O3 optimization flag (both kernel and modules)
- CPU overclockable up to 1824 MHz
- CPU frequencies undervolted (UV version) or extremely undervolted (EXUV version)
- CPU voltage control VDD sys interface (click for more details)
- Dynamic memory allocation of ION heaps through CMA (Contiguous Memory Allocator)
- Dynamic memory allocation of PMEM ADSP heap through CMA (Contiguous Memory Allocator)
- 426MB of free RAM
- Init.d support
- Fast Charge support (default disabled, click for more details)
- Battery Life eXtender support (default disabled, click for more details)
- Ram Console support (click for more details)
- TRIM support
- USB OTG support (if also implemented on rom side)
- Lowered display panel voltage
- Lowered vibetonz voltage
- Lowered wifi voltage
- Lowered swappiness (60 -> 45)
- Increased CPU frequency during boot
- Optimized AES and SHA1 routines for ARM cpu architecture
- Fixed 100% battery notification after charger unplug
- Increased audio volume on board side
- Con Kolivas' CK3 Tweaks
- Optimized SLUB memory allocator
- Optimized ARM RWSEM (read/write semaphore) algorithm
- Optimized asynchronous I/O latency on solid state disks
- Disabled Gentle Fair Sleepers for better UI performance
- CIFS support on boot
- Memory compaction
- Dynamic compression of clean pagecache pages
- Dynamic FSync v1.2 (click for more details)
- Dynamic dirty page writebacks (click for more details)
- VM tweaks for performance and less battery consumption
- Timer slack controller (click for more details)
- Dynamic management of the minimal timer slack value during suspend/resume (click for more details)
- LowMemoryKiller management of not killable processes (click for more details)
- exFAT support
- Additional TCP Congestion algorithms
- Updated ZRam, ZSMalloc, ZCache built-in modules
Available CPU governors:
- Adaptive
- BrazilianWax
- Conservative
- Hyper
- Intellidemand
- Interactive
- InteractiveX
- LionHeart
- LulzActive
- OnDemand (default)
- OnDemandX
- Performance
- Powersave
- SmartAssV2
Available I/O schedulers:
- BFQ
- CFQ
- Deadline
- Fiops
- Noop
- ROW (default)
- SIO
- V(R)
Kernel Downloads for Lollipop ION+PMEM ADSP:
K^Kernel LP-5.0 Mediafire Folder
[QRCODE]https://www.mediafire.com/folder/b82tiiw5u7hd7[/QRCODE]
- v2.0 -
for CM 12.0
and the other roms based on CM 12.0
Note: You must use the CWM recovery with new partition assignments you may find inside CM 12.0 thread by arco68.​
Howto install the kernel:
1) Download the preferred kernel zip file to sdcard or external sdcard
2) Reboot to recovery mode
3) Flash the kernel zip file
4) Reboot the system
Kernel sources (on GitHub):
Development branch of K^Kernel 3.4 for LP 5.0 ION+PMEM ADSP
​
Useful info:
- Special features and sysfs settings
- Frequently asked questions
​
Tables:
​
Changelog:
Code:
[B]11/03/2015 - K^Kernel 3.4 v2.0 for Lollipop ION+PMEM ADSP[/B]
- Kernel 3.4.106
- Built with my latest custom Linaro 4.9.3-2015.02 toolchain optimized for Cortex-A8
- defconfig: Switch to ROW I/O scheduler as default (credits to Christopher83)
- HID: input: generic hidinput_input_event handler (credits to David Herrmann)
- cpufreq: Avoid using global variable total_cpus (credits to Ruchi Kandoi)
- net/ping: handle protocol mismatching scenario (credits to Jane Zhou)
- net: ipv6: allow choosing optimistic addresses with use_optimistic (credits to Erik Kline)
- netfilter: IDLETIMER: fix invalid deference of timer (credits to JP Abgrall)
- prctl: make PR_SET_TIMERSLACK_PID pid namespace aware (credits to Micha Kalfon)
- crypto: arm-aes - fix encryption of unaligned data (credits to Mikulas Patocka)
- ARM: 8118/1: crypto: sha1/make use of common SHA-1 structures (credits to Jussi Kivilinna)
- ARM: 8119/1: crypto: sha1: add ARM NEON implementation (credits to Jussi Kivilinna)
- ARM: 8120/1: crypto: sha512: add ARM NEON implementation (credits to Jussi Kivilinna)
- defconfig: Enable NEON optimized SHA1 crypto routines (credits to Christopher83)
- defconfig: Build QCOM crypto device as built-in (credits to Christopher83)
- pstore: selinux: add security in-core xattr support for pstore and debugfs (credits to Mark Salyzyn)
- KEYS: close race between key lookup and freeing (credits to Sasha Levin)
- msm_fb: Fix RGB pipe offset issue (credits to Blefish)
- msm: mdp.c fix deadlock which causes blue screen (credits to Vinu Deokaran)
- msm: rq_stats: Use cpufreq API to get the current frequency (credits to Archana Sathyakumar)
- defconfig: Back to enforced SELinux (credits to Christopher83)
- staging: android: ashmem: add missing include (credits to Rom Lemarchand)
- net: wireless: bcmdhd: Remove WLAN_CIPHER_SUITE_AES_CMAC advertisement (credits to Dmitry Shmidt)
- gpu: ion: Refactor locking (credits to Srinivasarao P)
- gpu: ion: use a list instead of a tree for heap debug memory map (credits to Srinivasarao P)
- gpu: ion: fix locking issues in debug code (credits to Mitchel Humpherys)
- gpu: ion: add locking to traversal of volatile rb tree (credits to Srinivasarao P)
- gpu: ion: Delete invalid extra file (credits to Pradosh Das)
- drivers: video: msm: Cleanup some dead codes (credits to sirmordred)
- lz4: Revert previously applied commits (credits to Christopher83)
- decompressor: add LZ4 decompressor module (credits to Kyungsik Lee)
- lib: add support for LZ4-compressed kernel (credits to Kyungsik Lee)
- lib: add lz4 compressor module (credits to Chanho Min)
- lib/lz4: correct the LZ4 license (credits to Richard Laager)
- lz4: fix compression/decompression signedness mismatch (credits to Sergey Senozhatsky)
- lz4: ensure length does not wrap (credits to Greg Kroah-Hartman)
- lz4: fix another possible overrun (credits to Greg Kroah-Hartman)
- lz4: add overrun checks to lz4_uncompress_unknownoutputsize() (credits to Greg Kroah-Hartman)
- Update zram and zsmalloc up-to 3.17 kernel changes (credits to sirmordred)
- msm7x30: Remove high memory configurations (credits to Christopher83)
- msm7x30: Change all heap types to CMA (credits to sirmordred)
- msm7x30: Workaround deep sleep issue (credits to Christopher83)
- msm7x30: Increase ION memory heap for surfaceflinger (credits to Christopher83)
- defconfig: Update default and custom configurations (credits to Christopher83)
- f2fs: Sync F2FS to Jaegeuk's linux-3.4 branch (credits to Christopher83)
- selinux: fix inode security list corruption (credits to Stephen Smalley)
- Squashed update of kernel from 3.4.105 to 3.4.106 (credits to Christopher83)
- ipv4: try to cache dst_entries which would cause a redirect (credits to Hannes Frederic Sowa)
- USB: android: release spinlock before queuing work in android_setup (credits to Tarun Gupta)
- usb: gadget: Ignore the second set_config from the host (credits to ChandanaKishori Chiluveru)
- usb: android: Skip the work when set_config arrives with same value twice (credits to ChandanaKishori Chiluveru)
- usb: android: Fixup multiple lun support (credits to arco68)
- msm: camera: s5k4ecgx: Set mount angle from platform data (credits to sirmordred)
- USB: gadget: qdss: Fix strncmp length usage (credits to Kumar Gala)
- usb: android: Print LUN debug info (credits to Christopher83)
- Ramdisk updates (credits to Christopher83)
[B]31/12/2014 - K^Kernel 3.4 v1.0 for Lollipop ION+PMEM ADSP[/B]
- Kernel 3.4.105
- Built with my latest custom Linaro 4.9.3-2014.12 toolchain optimized for Cortex-A8
- ariesve: Set SELinux to be permissive (credits to Christopher83)
- defconfig: Set selinux permissive (credits to arco68)
- defconfig: Enable CONFIG_NETFILTER_XT_TARGET_IDLETIMER (credits to arco68)
- defconfig: Regenerate (credits to arco68)
- ext4: Add support for FIDTRIM, a best-effort ioctl for deep discard trim (credits to JP Abgrall)
- broadcom_wlan: Modify country code source (credits to arco68)
- net: ipv6: autoconf routes into per-device tables (credits to Lorenzo Colitti)
- netfilter: nf_conntrack: decrement global counter after object release (credits to Pablo Neira Ayuso)
- net: ipv6: Add a sysctl to make optimistic addresses useful candidates (credits to Erik Kline)
- Enable NEED_NETDEV for vendor command support. (credits to Subhani Shaik)
- cfg80211: ignore supported rates for nonexistant bands on scan (credits to Felix Fietkau)
- crypto: msm: check potential integer overflow (credits to William Clark)
- defconfig: Enable generic USB audio driver (credits to tobigun)
- i2c: chips: fsa9480: Add support for charging in USB-OTG mode (credits to tobigun)
- defconfig: Update custom defconfigs (credits to Christopher83)
- defconfig: Disable Frandom module (credits to Christopher83)
- i2c: chips: fsa9480: Add write-permission for USB-OTG charger type (credits to tobigun)
- Staging: android: binder: More offset validation. (credits to Arve Hjonnevag)
- fs: f2fs: Initial import from https://kernel.googlesource.com (credits to arco68)
- defconfig: Enable F2FS filesystem (credits to arco68)
Credits and Thanks to:
arco68, CastagnaIT and Ivendor for their awesome work and their kernel sources
Ezekeel, Doomlord, Faux123, Stratosk, Tegrak, ErasmuX, Imoseyon, Blefish, mikeioannina, Madridii and other devs I'm surely missing
CyanogenMod, Kernel.org, Code Aurora Forum, Google, Linaro GCC developers
XDA:DevDB Information
[GT-I8150][ION] K^Kernel 3.4 for LP 5.0 ION+PMEM ADSP, Kernel for the Samsung Galaxy W I8150
Contributors
Christopher83
Source Code: https://github.com/Christopher83/samsung-kernel-msm7x30/tree/cm-12.0
Kernel Special Features: Customized kernel 3.4.x for LP 5.0 rom (CM 12.0 and derivatives) with ION memory allocations
Version Information
Status: Stable
Current Stable Version: v2.0
Stable Release Date: 2015-03-11
Created 2014-12-31
Last Updated 2015-06-08
Special features and sysfs settings (Part 1):
Here you can find some useful scripts that can be used with the following described features:
Scripts​
CPU voltage control VDD sys interface
This feature allows to customize the voltage assumed by each cpu scaling frequency.
It could be useful if you'd like to decrease one or more voltages for battery saving purposes (undervolting), or to increase/adjust them to prevent phone freezes (overvolting).
How to customize the voltages:
1) By downloading and using Trickster MOD or IncrediControl and changing the voltages table inside the SVS tab
2) By using customized init.d scripts (the custom values will be always restored after a reboot, if you don't format the system partition)
- Download one of the script named 01vdd_levels*
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Edit the file by setting your customized voltages, where each line has this syntax
Code:
echo "[I][B][COLOR="Blue"]cpu_freq_HZ[/COLOR][/B][/I] [I][COLOR="SeaGreen"][B]mV[/B][/COLOR][/I]" > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
cpu_freq_HZ is the cpu frequency in Hz you'd like to change
mV is the voltage you want to set
For example, the following line means that when the cpu frequency is 1516800 Hz = 1516 MHz, the voltage used will be 1175 mV
Code:
echo "1516800 1175" > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
3) By using Terminal Emulator (note that the values you set will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run these commands
Code:
su
# Run a command for each cpu frequency voltage you'd like to change
echo "[I][B][COLOR="Blue"]cpu_freq_HZ[/COLOR][/B][/I] [I][COLOR="SeaGreen"][B]mV[/B][/COLOR][/I]" > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
cpu_freq_HZ is the cpu frequency in Hz you'd like to change
mV is the voltage you want to set
For example, the following line means that when the cpu frequency is 1516800 Hz = 1516 MHz, the voltage used will be 1175 mV
Code:
echo "1516800 1175" > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
Alternative Extreme Undervolted (ExUV) settings
If after overclocking your I8150 you noticed some freezes when on ExUV kernel builds, you may use an alternative extremely undervolted setting with the init.d script you can find here: 01vdd_levels_alt_exuv
- Download the script
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
Force Fast Charge
This feature allows you to force AC charging for any charger that is detected as USB (eg. PC USB ports, USB Car Chargers) and pull the full current the charger can support, in such a way as to speed up the time required for a complete battery recharge.
By enabling this feature, the USB / ADB data transfers will be disabled (security limitation to protect your data).
How to enable/disable the Force Fast Charge:
1) By using the related setting inside System->Advanced->Force Fast Charge (only on CM 10 Beta 3 and next releases)
2) By downloading and using Trickster MOD or IncrediControl or NsTools
2) By directly editing the file /sys/kernel/fast_charge/force_fast_charge and setting 1 to enable the force charge, 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 enable the force fast charge feature
Code:
su
echo 1 > /sys/kernel/fast_charge/force_fast_charge
- Then, when you want to restore the normal status, run this command to disable the force fast charge feature
Code:
su
echo 0 > /sys/kernel/fast_charge/force_fast_charge
4) By using a customized init.d script, but I don't recommend it because you have to remember to disable the feature every time you want to connect your device to a pc for data transfering after every reboot
Battery life extender (BLX)
This feature has been developed by Ezekeel and allows to set a customized battery charging limit (100% is the default stock value, if you want, you can set a lower value).
As Ezekeel said, it is commonly accepted that both very low and very high charge states accelerate the degradation of the battery capacity (that is why you should store Li-Ion batteries at around 40% charge).
If you set a charging limit equal to 100, this feature will be disabled.
How to activate this feature and set a customized charging limit:
1) By downloading and using Trickster MOD or NsTools by setting the customized battery life extender charging limit
2) By using a customized init.d script (the custom value will be always restored after a reboot, if you don't format the system partition)
- Download the script named 15blx
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Edit the file by setting your preferred charging limit (the downloaded script will set the charging limit to 95%)
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
3) By directly editing the file /sys/class/misc/batterylifeextender/charging_limit (the value you set will be lost after a reboot/shutdown)
4) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run these commands (changing the charging limit = 95 with the preferred one)
Code:
su
echo 95 > /sys/class/misc/batterylifeextender/charging_limit
LowMemoryKiller
The LowMemoryKiller driver is used to kill a selected process and free the memory when it is under one of the defined thresholds.
The tuning of the driver could be achieved by means of two parameters exposed by the kernel module via sysfs interface:
- /sys/module/lowmemorykiller/parameters/minfree
This file includes a comma separated array of the threshold numbers for minfree memory size (in page units).
- /sys/module/lowmemorykiller/parameters/adj
This file includes the comma separated array of oomadj factors, if the corresponding minfree threshold has been reached, one of the process with an oomadj greater than this number will be killed.
The oomadj factor is a property associated to each process, its value is in a range from -17 to +15, the processes with a higher oomadj factor will be the first to be killed when a specific minfree threshold has been reached.
RAM Console
This feature is useful expecially for development and debugging purposes, when occurs kernel panic / unexpected shutdowns or reboots. Pratically, the kernel messages are also stored inside a little RAM portion and restored during reboot after a kernel panic, inside the file /proc/last_kmsg.
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
Dynamic dirty page writebacks
This feature has been developed by me 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), I preferred to use a customizable higher dirty page writebacks interval (15 seconds) than the default one (5 seconds) while the screen is on and a customizable default interval (5 seconds) when the screen is off.
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 enabled):
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)
In my kernel builds, during boot, I set other customized values:
- an interval of 30 seconds while the screen is on
- an interval of 10 seconds when the screen is off
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:
su
echo 0 > /proc/sys/vm/dynamic_dirty_writeback
- Or run this command to re-enable the dynamic dirty page writebacks feature
Code:
su
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:
su
echo "3000" > /proc/sys/vm/dirty_writeback_active_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_suspend_centisecs
Special features and sysfs settings (Part 2):
Timer slack controller and dynamic management of the minimal timer slack value
The timer slack controller is a feature developed by Kirill Shutemov and it allows to set the minimal timer slack value for every process contained within a control group (cgroup).
A timer slack allows the kernel to manage processes wakeup requests at some future time.
Thanks to this feature, the kernel can set a specific timer slack for the involved processes, minimizing the number of wakeups and allowing a lower system's power consumption.
For further info: Timer slack for slacker developers
I also implemented a new feature in addition to the above one that allows the dynamic management of the minimal timer slack value.
So, it's possible to use different minimal timer slack value when the system is active and when has been suspended.
How to customize the dynamic timer slack controller feature:
Three new cgroup parameters are exposed inside each processes hierarchy contained in /dev/cpuctl path:
- timer_slack.min_slack_ns is the timer slack used when the system is active for the current processes hierarchy
- timer_slack.min_slack_suspend_ns is the timer slack used when the system is suspended for the current processes hierarchy
- timer_slack.effective_slack_suspend_ns is the timer slack currently used
At the moment, the values chosen and used by K^Kernel are the following:
- core processes (/dev/cpuctl), 0 ns when the system is active, 50000 ns when the system is suspended
- foreground apps/processes (/dev/cpuctl/apps), 0 ns when the system is active, 250000 ns when the system is suspended
- background non interactive apps/processes (/dev/cpuctl/apps/bg_non_interactive), 100000000 ns when the system is active, 250000000 ns when the system is suspended
1) By directly editing one of the file written above inside /dev/cpuctl and inside each hierarchy subfolder, by 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 these commands to set the minimal timer slack for generic and core apps/processes
Code:
su
echo 0 > /dev/cpuctl/timer_slack.min_slack_ns
echo 50000 > /dev/cpuctl/timer_slack.min_slack_suspend_ns
- Run these commands to set the minimal timer slack for apps/processes in foreground
Code:
su
echo 0 > /dev/cpuctl/apps/timer_slack.min_slack_ns
echo 100000 > /dev/cpuctl/apps/timer_slack.min_slack_suspend_ns
- Run these commands to set the minimal timer slack for apps/processes in background and non interactive
Code:
su
echo 100000000 > /dev/cpuctl/apps/bg_non_interactive/timer_slack.min_slack_ns
echo 250000000 > /dev/cpuctl/apps/bg_non_interactive/timer_slack.min_slack_suspend_ns
LowMemoryKiller management of not killable processes
This feature allows to define processes and system processes white-lists filled with the preferred process names and to not be killed by lowmemorykiller, unless it is absolutely necessary.
This feature exposes four new lowmemorykiller parameters:
- donotkill_proc, is the flag to enable / disable this feature for the processes chosen by the user
- donotkill_sysproc, is the flag to enable / disable this feature for the system processes chosen by the user
- donotkill_proc_names, is the list of process names (comma separated) chosen by the user to be preserved from killing
- donotkill_sysproc_names, is the list of user system process names (comma separated) chosen by the user to be preserved from killing
When the lowmemorykiller needs to free ram, it will first kill the processes not included inside the two process name lists chosen by the user.
If there are no more standard killable processes, then it will be necessary to kill one of the processes included inside one of the two white-lists, to prevent system hangs, slowdowns, etc.
How to customize the white lists of processes to preserve from killing:
On K^Kernel the feature is enabled by default and the provided processes white lists are the following:
- donotkill_proc_names = "com.cyanogenmod.trebuchet,com.anddoes.launcher,com.teslacoilsw.launcher,org.adwfreak.launcher,gtp.nextlauncher,android.inputmethod.latin,com.touchtype.swiftkey"
this means that Trebuchet Launcher, Apex Launcher, Nova Launcher, ADW Launcher, Next Launcher, stock keyboard and SwiftKey keyboard will be preserved from killing
- donotkill_sysproc_names = "android.process.acore,com.android.phone,com.bel.android.dspmanager"
this means that the system process, the phone process and DSP Manager will be preserved from killing
1) By using a customized init.d script (the custom value will be always restored after a reboot, if you don't format the system partition)
- Download the script named 80dnkp
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Edit the file by setting your preferred status and processes list
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
2) By directly editing the files inside /sys/module/lowmemorykiller/parameters (note that set values will be lost after a reboot/shutdown)
3) By using Terminal Emulator (note that set values will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run these commands if you want to enable the feature
Code:
# To enable this feature for the processes chosen by the user
echo 1 > /sys/module/lowmemorykiller/parameters/donotkill_proc
# To enable this feature for the system processes chosen by the user
echo 1 > /sys/module/lowmemorykiller/parameters/donotkill_sysproc
- Run these commands if you want to disable the feature
Code:
# To disable this feature for the processes chosen by the user
echo 0 > /sys/module/lowmemorykiller/parameters/donotkill_proc
# To disable this feature for the system processes chosen by the user
echo 0 > /sys/module/lowmemorykiller/parameters/donotkill_sysproc
- Run this command if you want to add, for example, Trebuchet Launcher (CM default launcher) and the default keyboard to the processes white list
Code:
echo "com.cyanogenmod.trebuchet,android.inputmethod.latin" > /sys/module/lowmemorykiller/parameters/donotkill_proc_names
- Run this command if you want to add, for example, the system process, the phone process and DSP Manager to the system processes white list
Code:
echo "android.process.acore,com.android.phone,com.bel.android.dspmanager" > /sys/module/lowmemorykiller/parameters/donotkill_sysproc_names
ZRAM module
As explained on Wikipedia, this feature, provided in this kernel as a standalone loadable module, increases performance by avoiding paging on disk and instead uses a compressed block device in RAM in which paging takes place until it is necessary to use the swap space on the hard disk drive.
In few words, the memory pages no more used and so to be swapped are sent to zRam device blocks, compressed and stored in memory instead of disk allowing better performance and also lower memory usage, on the other hand, a little higher amount of cpu is needed to perform compression and decompression of memory pages.
Since we have a device with a low amount of free memory, this feature could be useful to have more free ram.
How to change the size of zRam or to disable it (thanks to @ktulu84 for sharing these scripts):
To change the size of zRam (the custom value will be always restored after a reboot, if you don't format the system partition):
- Download the script named 60zram
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Edit the file by setting your preferred zRam size (change SIZE value, default is 100 MB)
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
If you want to use default zRam size, simply remove the file placed inside /etc/init.d and reboot.
To disable zRam (the custom value will be always restored after a reboot, if you don't format the system partition):
- Download the script named 60disable_zram
- If the file has been saved with .txt extension (stock browser), rename it by removing the .txt extension
- Copy the new file inside /etc/init.d
- Give the rwxr-xr-x permissions to the file (read, write, execution for owner, read and execution for group users, read and execution for others)
- Reboot
If you want to re-enable zRam, simply remove the file placed inside /etc/init.d and reboot.
FAQ - Frequently asked questions:
Q: What are the differences between EXUV and UV kernel versions?
A: The EXUV kernel versions have extremely undervolted settings for the cpu frequencies, they allows to have a very low battery drain, instead the UV kernel versions have undervolted settings a bit higher than EXUV versions, but always lower than stock kernel settings.
The EXUV kernel versions could give some problems (freezes, shutdowns, huge lags) on some devices because the cpu doesn't support too low voltage settings.
For a lower battery consumption, I suggest you to try EXUV versions first and to switch to UV versions only if you encounter one of the above mentioned problems.
Q: For v1.0 kernel builds, what are the differences between 396MB, 406MB and 416MB versions?
A: 396MB, 406MB and 416MB kernel versions have different free ram available for user space, with a higher free ram your device will work better with heavy apps, many concurrently used apps, heavy games, etc.
- 396MB versions are more stable, everything is fully working, but you could have some slowdowns with apps that require a high amount of free memory.
- 406MB versions have additional 10 MB of free ram, they are suitable for the users that use the device primarly for calls, messages, simple apps and simple games. The camera, video recording (both 480p and 720p modes) and video playback are fully working.
- 416MB versions have additional 20 MB of free ram, they are suitable for the users that use the device also with heavy apps, various concurrently used apps and games. The camera, video recording (both 480p and 720p modes) and video playback are fully working.
Q: How can I get the Performance and Developer Options entries inside Settings menu?
A: Go inside Settings -> About Phone -> Scroll down and tap 7 times on Build number (it's an Easter Egg).
Q: How can I get the log after an unexpected shutdown / reboot?
A: After an unexpected shutdown / reboot of the device, if the problem may be kernel related, you should have the /proc/last_kmsg, if so, send me that log and I'll check it to find the possible cause of the problem.
Q: How can I get the logs when I encounter strange system issues while it's running?
A: Check first if the problems could be related to an app you're using and if you changed something in the last days before facing those issues.
If the problem started after installing the kernel, then let me have you logcat and dmesg:
- Open Terminal Emulator and execute these commands:
Code:
su
dmesg > /sdcard/dmesg.txt
locat -v time -d > /sdcard/logcat.txt
- Open you preferred file manager and go inside the internal sd card partition /sdcard
- Send me the dmesg.txt and logcat.txt files, if you want zip them first
Q: How can I mount a shared Windows folder with CIFS module?
1) By using Terminal Emulator
Code:
mount -o unc=\\\\[COLOR="DarkGreen"][I]ip[/I][/COLOR]\\[COLOR="Blue"][I]share[/I][/COLOR],noserverino,username=[I][COLOR="DarkOrange"]user[/COLOR][/I],password=[I][COLOR="Lime"]password[/COLOR][/I] -t cifs //[COLOR="DarkGreen"]ip[/COLOR]/[COLOR="Blue"]share[/COLOR] [I][COLOR="DarkSlateGray"]/mnt/cifs[/COLOR][/I]
2) Downloading and using CifsManager and configuring the new share as follow:
- Share Path = ip/share
- Mount Point = /mnt/cifs/share
- Username = username
- Password = password
- Options = unc=\\\\ip\\share,noserverino
Where:
ip is the ip address of your pc where the folder is shared
share is the shared folder name
user is the user name that can access the shared folder
password is the user password
/mnt/cifs is the mount point (must be created if you'd like to use the command approach with Terminal Emulator)
Reserved, just in case...
Notorious as always. Thanks, Christopher!
Awesome!!! I'll update my W soon *_*
P.s. Happy new year!!!
Wow! I bet this is your first 2015 kernel post
Sent from my GT-S6500 using XDA Free mobile app
Wow, so fast sir. You are the king of kernel :thumbup:
Chris, you're impeccable. Thanks for support.
i download n instal this kernel, but i got some trouble when i try to find Performance Setting.
i do have Developers Setting, but for Performing Setting i can't figure it where.
sorry for my bad english
Sent from indONEsia
ka12el said:
i download n instal this kernel, but i got some trouble when i try to find Performance Setting.
i do have Developers Setting, but for Performing Setting i can't figure it where.
sorry for my bad english
Sent from indONEsia
Click to expand...
Click to collapse
There is no performance settings at the moment in cm12. As an alternative use performance control
ilusi0n_ said:
There is no performance settings at the moment in cm12. As an alternative use performance control
Click to expand...
Click to collapse
thanks for your respon
but why on Q&A first page say i can get dev setiing and perform setting with press 7 times on build number.
ok i try the apps
thank you so much
Sent from my GT-I8150 using XDA Free mobile app
ka12el said:
thanks for your respon
but buy on Q&A first page say i can get dev setiing and perform setting with press 7 times on build number.
ok i try the apps
thank you so much
Sent from my GT-I8150 using XDA Free mobile app
Click to expand...
Click to collapse
Performance settings does not appear because cyanogenmod didn't implement it when Arco compile the rom for us. In a future build, the rom will have the performance settings.
Today I get kernel wakelock from apps wakelock detector
It is "rpc_read" wakelock about 12 h
Im using your kernel, christopher
Thank you
Is it working with the latest cm12?
riyosakura said:
Is it working with the latest cm12?
Click to expand...
Click to collapse
Yes it is.
riyosakura said:
Is it working with the latest cm12?
Click to expand...
Click to collapse
I think it should not be used, because it is not in sync with the latest changes in CM12
* Waiting for the new version update .
huongthanh8690 said:
I think it should not be used, because it is not in sync with the latest changes in CM12
* Waiting for the new version update .
Click to expand...
Click to collapse
you think so? i already flashed it lol.
so far so good though.
huongthanh8690 said:
I think it should not be used, because it is not in sync with the latest changes in CM12
* Waiting for the new version update .
Click to expand...
Click to collapse
using it with no problems.

[KERNEL] [ROOT] [SM-G920F Exynos 7420] [17 Dec] SkyHigh TW 5.1.1 Kernel [v2.9]

[KERNEL] [ROOT] [SM-G920F Exynos 7420] [17 December] SkyHigh TW 5.1.1 Kernel [ v2.9 ] [Synapse ++]
WARNING
Code:
[COLOR="Red"]PLEASE SHOW RESPECT TO ACTUALLY [COLOR="PURPLE"][B]READ POSTS #1-3[/B][/COLOR]
[URL="http://forum.xda-developers.com/announcement.php?a=81"][B]XDA RULE #1 "SEARCH BEFORE POSTING"[/B][/URL] (GOOGLE, XDA & THREAD),
IF YOU DON'T LIKE A UP-FRONT "MATTER OF FACT" APPROACH,
[B]THEN DON'T BOTHER POSTING[/B]. [/COLOR]
FEATURES
Code:
* Based on official Samsung source: [URL="http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=F&searchValue=n920"]Samsung OSRC[/URL]
* ramdisk source:
[INDENT][COLOR="red"]N920F[/COLOR]XXU3QOLF[/INDENT]
* Compiled with Linaro gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu
* Linux 3.10.94
* [COLOR="red"]AUTO-ROOT binary v2.52[/COLOR] & Install busybox v1.24.1-Dorimanx
* [COLOR="Red"]KNOX WARRANTY VOID: 1[/COLOR]
* [COLOR="red"]SELinux PERMISSIVE[/COLOR] (for Titanium Backup and other apps to work correctly)
* adb insecure
* stock dt.img
* init.d script support (drop in script & set permissions to 755 or 777 and reboot)
* [COLOR="red"]DEEP SLEEP FIX[/COLOR]
* [COLOR="red"]IN-CALL REBOOT BUG "FIX"[/COLOR]
* Possible Screen Mirroring / AllShare Cast fix
* Secure storage = false (should prevent WIFI settings & passwords wiping on reboots)
* RAM management tweaks
* GearVR reported working
* [B]Synapse app support[/B] for many kernel configurations + more !!
* Many descriptions are in the app ! If you require more info, don't be lazy, please [B]SEARCH[/B] like I did ;)
SYNAPSE FEATURES
ABOUT
PayPal Donation link
SkyHigh kernel thread link
Up time
Total
Sleep
Awake​
A57 CPU
CPU temperature
A57 big Cores Frequency Scaling
live frequency
MAX: 2400 MHz (stock 2100 MHz is default)
MIN: 500 MHz (stock 800 MHz is default)​
CPU governors
interactive (default)
on-demand
conservative
userspace
performance​
CPU governor tunables
A57 VOLT
HPM voltage control
A57 big Cores voltage control
A53 CPU
A53 LITTLE Cores Frequency Scaling
live frequency
MAX: 1600 MHz (stock 1500 MHz is default)
MIN: 200 MHz (stock 400 MHz is default)​
CPU governors
interactive (default)
on-demand
conservative
userspace
performance​
CPU governor tunables
A53 VOLT
HPM voltage control
A53 LITTLE Cores voltage control
CPU MULTICORE
Power Aware Scheduling control
HMP LITTLE Packing
Exynos Core Control Interface (choose 1 > 8 cores online)
PEWQ (Power-efficient Workqueues) control
GPU
GPU stats
Current clock freq
Live Frequency Utilization (load)
Time in state​
GPU power policy control
coarse_demand (default)
demand
always_on​
GPU frequency scaling
Max freq control to 852 MHz (700 MHz is default)
Min freq control to 100 MHz (stock 266 MHz is default)​
GPU Governor
Default
Interactive (default)
Static
Booster (more graphic and benchmark performance)​
GPU Interactive Governor tunables
highspeed clock
highspeed load
highspeed delay​
GPU VOLT
HPM voltage control
GPU voltage control
THERMAL
CPU thermal control
normal temp
critical temp​
GPU thermal control
temp levels 1 > 5
throttling freq levels​
Memory thermal control
normal temp
critical temp​
ISP (Image Signal Processor) thermal control
temp levels 1 > 5​
BUS
Memory Bus HPM voltage control
Memory Bus voltage control
Internal Bus voltage control
ISP (Image Signal Processor) voltage control
IO
I/O Schedulers
BFQ (tweaked for SSD)
DEADLINE (tweaked for SSD)
FIOPS
CFQ = default (tweaked for SSD)
NOOP
ROW (tweaked)​
Storage read-ahead (256 KB)
General IO tuneable
Add random
IO stats
Rotational
No merges
RQ Affinity
NR requests​
I/O scheduler tunables
MEMORY
Memory state
Total
Free​
Low Memory Killer Profiles
Low
Medium
Custom (recommend)
Default (default)
Aggressive
Exterminate​
Low Memory Killer minfree tuning (OOM LMK)
Samsung SPCM Service control (Enabled = default/stock)
Ultra Kernel SamePage Merging (UKSM)
UKSM stats
Scan Delay Interval
UKSM Governor
Max CPU consumption​
Dynamic FSYNC control (enabled)
Dynamic dirty page writeback control (enabled)
Dirty writeback active
Dirty writeback suspend​
Virtual Memory
Adaptive Dirty Background Ratio on suspend / resume
Adaptive Dirty Ratio on suspend / resume
Drop caches (Clear VFS cache after boot)
Laptop Mode
Swapiness
Adaptive vfs_cache_pressure on suspend / resume​
ADVANCED
Entropy (max 4096)
Gentle Fair Sleepers control (disabled)
Arch Power control (enabled)
randomize_va_space control
POWER SUSPEND
Modes:
Autosleep
Userspace
Display Panel
Hybrid (Autosleep + Display Panel) = default​
PowerSuspend State (enable only with Userspace mode set)
Version push button
AUDIO
(Sound Control by AndreiLux)
Jack media volume control
L/R channel volume
mono mixer​
Speaker volume control
Earpiece volume​
Main Equalizer
Advanced Stereo Equalizer
SCREEN
sweep2sleep control
NETWORK
TCP congestion control
All available enabled.
Default = westwood+​
Screen mirror/allshare cast fix control (enabled)
Clean WIFI Lease
WiFi Power Mode While Screen-On/Off
Force Off
Off
Fast (default = screen ON)
Max (default = screen OFF)
WiFi DTIM Interval While Screen-On/Off​
RX wakelock timeout control
TCP/IP network security
3G DNS speed & security tweak
Google
OpenDNS
Comodo, Level3
Norton_DNS
Smart_Viper​
GPS time-zone
Original
Asia
Europe
Oceania
North America
South America
Africa​
IPV6 optimistic detection
SECURITY
KNOX control
NO_ACTION (default)
Disabled
Enabled​
SELinux
Live status​
BATTERY
Battery info
Charging controls
HV power supplies
A/C Mains
A/C Mains (screen-on)
Standard downstream port
Dedicated charging port
Charging downstream port
Accessory charging adapter
MHL power
Wireless power​
Battery SCALING calibration (fuel gauge reset)
LED
LED disable control
LED Fade-in/out Time Period
LED Fade control
Fade-in
Fade-out​
Test notification push button
Stop notification push button
FS (File System)
Display FS Type
FS Controls
remount System r/w r/o
remount RootFS r/w r/o​
Scrolling cache control
Optimise Databases (SQLite3)
FSTrim lagfix
Wipe options
cache reboot
dalvik-cache reboot
cache & dalvik-cache reboot​
Clean up
clipboard cache
/data/tombstones
/data/anr logs
/data/dropbox logs
lost+found​
USB
USB status
USB mode selection
MTP
PTP
CD_ROM (drivedroid support)
USB_Keyboard-Mouse​
BACKUP & RESTORE
Name - Restore - Delete - Backup
profiles
kernel image​
LOGS
Android Logger control (enabled)
LogCat​
Kernel Logger control (enabled)
dmesg
last_kmsg​
REBOOT
Reboot device
Recovery Mode
Download Mode
Power Off
Clear Synapse Data & Reboot
Restart Synapse
INFO
Reduced logging
exFAT FS support
NTFS R/W support with app
CIFS support (not tested)
ISO 9660 CDROM & UDF FS support
Frandom
mount partitions NOATIME and NODIRATIME by default
Entropy tweaks
Increased boot frequency
Power-efficient workqueue (PEWQ) efficiency patches
CLEANCACHE & ZCACHE
Microsoft X-BOX gamepad controller in-built module
Slub tweaked
Much more - check source commits & Synapse
CREDITS
My family !!
@Chainfire - root & SuperSU / @Manh_IT - auto-root method
@AndreiLux - years of support for Exynos development and his various kernel features + Synapse app and UCI code
@halaszk88 - patches and Synapse code I adapted to many of my kernels
@dorimanx - BusyBox and various ramdisk tweaks/ideas
@apb_axel - I adapted and used many of the Synapse controls to suit my kernels
XDA
Samsung OSRC
and many others!
check github source credits
IF I'VE FORGOTTON ANYONE, PLEASE DON'T BE SHY AND SPEAK UP, THANKS
XDA:DevDB Information
SkyHigh Galaxy S6 Exynos 7420 Kernel, Kernel for the Samsung Galaxy S6
Contributors
UpInTheAir
Source Code: https://github.com/UpInTheAir/SM-N920
Kernel Special Features: Synapse ++ | EXT4 | exFAT | NTFS | CIFS
Version Information
Status: Testing
Created 2015-12-17
Last Updated 2015-12-17
Warning - ChangeLog - Requirements - Installation - Download - Source
** DISCLAIMER : FLASH AT YOUR OWN RISK **
WARNING :
Code:
[COLOR="Red"]* Under-volting can cause instability
* Over-clocking can cause freeze/reboot, heat & damage to CPU, GPU or other hardware
* Any customizations may void warranty
* May not be suitable for your device or customizations
* UpInTheAir is NOT responsible, the person you see in the mirror is !![/COLOR]
CHANGE-LOG
[v2.9] - 14 December 2015
variant:
Korean variant support discontinued unless sources become compatible with all SkyHigh variants. v2.8 is the last for now
source:
BUILD: fix invalid binary created for .tar.md5 archive
Revert " Source: merge N920SKSU2AOK5"
Cause of boot and stability issues with T variants​
config: remove MPTCP from reverted N920SKSU2AOK5 source
[v2.8] - 13 December 2015
ramdisk:
Synapse: update sweep2sleep description
Ensure PowerSuspend State is DISABLED​
su: update BINARY to BETA-SuperSU-v2.52 (latest stable beta)
1. Unroot (SuperSU APP > settings > "full unroot")
2. Reboot
3. Install SuperSU app from Play Store
4. NOTHING else to do !!​
init.rc: prevent override of dirty_background_ratio
Synapse: change dirty ratios default description & clean up
Synapse: adjust for adaptive dirty_background_ratio & adaptive dirty_ratio
Synapse: disable drop_caches on boot
improved UI performance as cache does not have to rebuild on every boot. optional in Synapse​
source:
Revert duplicate code from my mistake
Revert "cpufreq: Remember last policy min/max on cluster restart"​
Linux 3.10.93 > 3.10.94
Source: merge N9200ZHU2AOKA
Source: merge N920SKSU2AOK5
ARM: 8429/1: disable GCC SRA optimization
Support for GCC 6.0 toolchain
mm: Increase Dirty Ratios (battery)
mm: Adaptive Dirty Background Ratio & Dirty Ratio for suspend/resume (battery) my own
dirty_background_ratio 20-resume / 60-suspend (fixed)
dirty_ratio 40-resume / 95-suspend (fixed)​
config: enable ADAPTIVE_DIRTY_BACKGROUND_RATIO & ADAPTIVE_VM_DIRTY_RATIO
mm: Dynamic Page Writeback: fix compile if not enabled in config
[v2.7] - 09th December 2015
variant:
add SM-G9287C support with G9287CDXU2AOK1 ramdisk base​
ramdisk:
Synapse: NETWORK: add IPV6 Optimistic Detection controls & enable
Synapse: NETWORK: modify layout of WiFi DTIM Interval description
Synapse: NETWORK: add GPS Time Zone for faster GPS lock
Synapse: SCREEN: fix up sweep2leep description
Synapse: USB: tidy up USB live status
Synapse: USB: add live DNS address
Synapse: USB: add title to live DNS address
Synapse: IO: add NR Requests control
Synapse: A57/A53: show live freq for all A57 & A53 cores
Synapse: A57/A53: make default CPU frequencies static so they are not overridden
Synapse: A57/A53: move A57, A53 & GPU voltage controls to separate tab
Synapse: A57/A53: use the new renamed ren_max_freq (you need to use Synapse to control CPU MAX values - and any other SkyHigh features !!)
Synapse: A57: correct core display for temp sensors
Synapse: MEMORY: Adaptive vfs_cache_pressure on Suspend / Resume
Synapse: MULTICORE: remove HMP threshold controls. They are dynamic
N9200 ramdisk: update to N9200ZHU2AOKA
N920K ramdisk: add SkyHigh version
source:
BUILD: small fixes to build scripts
BUILD: fix up ramdisk_fix_permissions.sh
BUILD: add separate SM-N920K support
dts: N920S/K/L update from N920SKSU2AOK5 source
cpufreq: rename scaling_max_freq to ren_max_freq (fix by @arter97 to prevent DVFS override set CPU MAX freq)
fs/dcache.c: adaptive vfs_cache_pressure on suspend / resume (100% screen on & 20% static screen off)
fs: make ADAPTIVE_VFS_CACHE_PRESSURE compile optional
Revert various Nvidia power efficiency patches (Testing to resolve random System UI restart to lock screen)
config: enable ADAPTIVE_VFS_CACHE_PRESSURE
A53: allow max to 1600 MHz (default/stock 1500 MHz)
A53: increase boot frequency to 1500 MHz
[v2.6] - 05 December 2015
variant:
add SM-G928T/W8 variant support
ramdisk:
Synapse: SCREEN: add sweep2sleep control
Synapse: USB: add USB storage controls
MTP
PTP
CD ROM iso image (drivedroid support)
USB Keyboard / Mouse​
Synapse: clean up
source:
net/neighbour: queue work on power efficient wq
sched/fair: Implement fast idling of CPUs when the system is partially loaded
arm64: Improve power efficiency through load/store exclusive usage (Nvidia power efficiency patch set)
thread_info: Remove usage of relaxed calls in sched header
hrtimer: Replace usages of hrtimer_callback_running with relaxed version
aio: Skip timer for io_getevents if timeout=0
touchscreen: add sweep2sleep
sweep2sleep: adjust for 1440 x 2560 display
usb: gadget: check for accessory device before disconnecting HIDs
drivers: usb: Use Android device as USB keyboard/mouse
usb: gadget: mass_storage: added sysfs entry for cdrom to LUNs
[v2.5] - 03 December 2015
variant:
add SM-G928C/F/I/G, SM-N920P, SM-N920S/K/L & SM-N9200 variant support
ramdisk:
BUILD: auto build archives for each variant selection
ramdisk bases:
SM-N920S/K/L N920SKSU2AOK5
SM-N9200 N9200ZHU2AOJ9
SM-N920P N920PVPU2AOI6​
Synapse: fix up generate
Synapse: fix up fuel-gauge reset
source:
various power efficient workqueue patches
sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
ext4: Speedup WB_SYNC_ALL pass called from sync(2)
mm: pass readahead info down to the i/o scheduler
mm: fix aio performance regression for database caused by THP
fixup! mm: fix aio performance regression for database caused by THP
fts_ts: fix a stupid typo by Samsung
CHROMIUM: cpufreq: interactive: calculate load before freq change
block_dev: implement readpages() to optimize sequential read
[v2.4] - 30th November 2015
variant:
add SM-N920G variant support
ramdisk:
update SM-N920-I/G ramdisk N920GDDU2AOJ5
/sbin/SkyHigh.sh: Enable Main Equalizer by default (Fixes bug where no audio from earphones whilst in-call)
Synapse: MEMORY: change KSM > UKSM controls
source:
UKSM: 0.1.2.3-for-v3.10.ge.46
UKSM: fix compile errors
UKSM: disable by default
config: enable UKSM
toolchain: gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu
Makefile: add optimizations
dts: N9200_HK update from N9200ZHU2AOJ9 source
cpufreq: Mod perms so they are settable in apps
[v2.3] - 29th November 2015
source:
Fix in-call reboot
Revert "toolchain: change to Linaro GCC 5.2.1 20151005". (Back to Linaro 4.9.3 20141031)
Revert "ufs: fix compilation warnings"​
power: process: drecrease time to enter sleep
futexes: Increase hash table size for better performance
cpufreq: Optimize cpufreq_frequency_table_verify()
[v2.2] - 28th November 2015
ramdisk:
Update N920C/CD/8 to N920CXXU2AOK7
Synapse: NETWORK: add WiFi Power Mode & DTIM Interval controls for screen ON/OFF
Synapse: NETWORK: add Wireless wakelock timeout control
default.prop: re-enable Samsung SPCM Service (removed entry)
Synapse: MEMORY: add Samsung SPCM Service control (Enabled = default/stock)
source:
Source: SM-N920T_NA_LL_Opensource N920TUVU2COJ5
drivers/video/exynos/Makefile: Fix compile warnings for non-supported drivers
config: enable LCD_HMT
Linux 3.10.90 > 3.10.93
Fix compile errors with GCC 5
crypto: pcomp - Constify (de)compression parameters
crypto: testmgr - Wrap the LHS in expressions of the form !x == y
ufs: fix compilation warnings​
toolchain: change to Linaro GCC 5.2.1 20151005
bcmdhd4359: WIFI PM support
config: enable BCMDHD_WIFI_PM
tcp: enable sockets to use MSG_FASTOPEN by default
bcmdhd: reduce rx wakelock timeout via sysfs node
net: wireless: bcmdhd4359: reduce kernel logging
Drivers: sensorhub: reduce wakelock time
[v2.1] - 17th October 2015
boot.img:
repack with stock dt.img (flash over v2.0 if you have audio issues)
[v2.0] - 17th October 2015
ramdisk:
Synapse: add BACKUP RESTORE section for save/restore profiles & boot.img to /sdcard/SkyHigh folder (from my older SkyHigh kernels on other devices, modified and adapted to suit from apb_axel and neobuddy89)
Synapse: FS: add FSTrim push button
/sbin: replace fstrim with (PIE) binary (from arter97 git)
[v1.9] - add SM-N9208_SEA variant support 16th October 2015
[v1.9] - 15th October 2015
ramdisk:
boot.img: disable boot time security check "KERNEL IS NOT SEANDROID ENFORCING" (kernel is still permissive)
Synapse: disable CortexBrain as not needed for in-call reboot bug "work-around" any more. It's fixed !! Intend to add other options here in future.
source:
config: disable unused FS support
build scripts: clear ccache instead of clean
FIX IN-CALL REBOOT BUG: toolchain: change to gcc-linaro-4.9-2014.11-x86_64_aarch64-elf
The recommend Google ARM Toolchain GCC aarch64-linux-android-4.9 causes general stability and in-call reboot issues​
[v1.8b] - 13th October 2015
ramdisk:
Synapse: MEMORY: add Dynamic management of dirty page writebacks control (screen on/off)
Synapse: CPU MULTICORE: add Power Aware Scheduling control - enabling gives better battery (default = disabled for performance)
Synapse: minor adjustments to layout and descriptions.
default.prop: add some experimental RAM management tweaks (thanks to @mikeyinid for the suggestions)
source:
sched: HMP: set Power Aware Scheduling off by default (previously enabled by default in patch)
GPU: set max freq to 700 MHz as default (stock)
cpufreq: Break out early if freq equals to target_freq
PM / sleep: unregister wakeup source when disabling device wakeup
tick: don't update idle time if cpu offline
slub: fix kmem_cache_shrink return value
mm: slub: fix format mismatches in slab_err() callers
a bunch of SELinux patches
mm: Dynamic management of dirty page writebacks
kernel.h: fix error when compiling N9208_SEA
[v1.7b] - 12th October 2015
ramdisk:
Synapse: MEMORY: add Dynamic FSYNC control
Synapse: LOGS: add Android logger control (enabled for logcat)
/sbin/cortexbrain-tune.sh: some adjustments to watchdog control
source:
xz: tweaking kernel compression (not used)
AIO: Don't plug the I/O queue
fs/dyn_sync_cntrl: dynamic Fsync control v1.5
fs/dyn_sync_cntrl: on by default
logger: Add sys fs kernel interface to configure Android logger & modify for Synapse
writeback: fix race that cause writeback hung
timer: optimize apply_slack()
writeback: Fix occasional slow sync(1)
writeback: fix writeback cache thrashing
CHROMIUM: mm: Fix calculation of dirtyable memory
mm: Optimized SLUB memory allocator
arm64: dcache: select DCACHE_WORD_ACCESS for little-endian CPUs
Linux 3.10.61 > 3.10.90 (took a lot of time)
Revert "powersuspend: add screen on/off hooks" from hotplug
decon: add powersuspend hooks
fips: fix whitespaces
arm64: crypto: increase AES interleave to 4x
cpufreq: Remember last policy min/max on cluster restart
mm: vmscan: If kswapd has been running too long, allow it to sleep
[v1.6b] - 9th October 2015
boot.img:
re-pack with custom generated dt.img
ramdisk:
Synapse: HMP: rename to CPU MULTICORE
Synapse: CPU MULTICORE: add PEWQ (Power Efficient Work-queues) for better battery at slight cost of performance.
Synapse: POWER SUSPEND: add PowerSuspend controls
Synapse: MEMORY: add vfs_cache_pressure control
default.prop: insecure adb again
init.rc: remove more code to prevent IO scheduler override
source:
config: add variants and sync to v1.5b
Remove obsolete build script and add build script / tools to build custom dt.img
config: N920C dtb exynos7420-noblelte_eur_open_09
config: N920I dtb exynos7420-noblelte_eur_open_09
sched/fair: Fix small race where child->se.parent,cfs_rq might point to invalid ones
cpufreq: Introduce new relation for freq selection Introduce CPUFREQ_RELATION_C
cpufreq: interactive: use new CPUFREQ_RELATION_C
int_sqrt.c: Correction square root algo with naming
int_sqrt: Improve 3x faster integer sqrt.
workqueue: Fix permission for power_efficient workqueue
a bunch of workqueue patches
jiffies conversions: Use compile time constants when possible
sched/completion: Add lock-free checking of the blocking case
sched: Remove one division operation in find_busiest_queue()
sched/fair: Optimize find_busiest_queue()
kthread_work: wake up worker only when the worker is idle
sync: don't block the flusher thread waiting on IO
mm: Clear page active before releasing pages
makefile: Add SoC-specific compile target
sensorhub: fix compile warning for SM-N9208
workqueue: disable PEWQ by default
config: enable WQ_POWER_EFFICIENT_DEFAULT
PowerSuspend: patch powersuspend driver up to v1.7 & modify to suit
powersuspend: call screen on/off hooks with hotplug (panel hooks)
powersuspend: add power_suspended boolean for global access
config: enable POWERSUSPEND
config: enable TIMA_LKMAUTH and also missing TIMA for SM-N920S
[v1.5b] - 6th October 2015
ramdisk:
Synapse: CORTEX: add CortexBrain to control screen on/off functions. Enabling this FIXES in-call reboot bug (actually a solution - not a "fix"). Thanks to Dorimanx & halaszk88 for the orignial scripts which I chopped to pieces into my SM-N915S kernel .
/sbin: add CortexBrain script
/sbin/SkyHigh.sh: start CortexBrain on boot
source:
Block: add FIOPS I/O scheduler
FIOPS: forward port for use on 3.10 Linux
config: enable IOSCHED_FIOPS
block: sysfs: allow non superusers to change I/O scheduler
block: Reserve only one queue tag for sync IO if only 3 tags are available
blk-throttle: check stats_cpu before reading it from sysfs
cfq-iosched: fix the setting of IOPS mode on SSDs
Block: add BFQ-v7r8-I-O-sched-for-3.10.8+
config: enable IOSCHED_BFQ
block: bfq-iosched: tuning for SSD
a lot of block commits to support ROW IO scheduler
Block: add ROW I/O scheduler
block: row: add magic values
config: enable IOSCHED_ROW
sched/cputime: Do not scale when utime == 0
[v1.4b] - 5th October 2015
ramdisk:
Synapse: THERMAL: add CPU, GPU, MIF & ISP thermal controls
Synapse: BATTERY: add charge controls (adapted from AndreiLux)
source:
GPU: allow min freq to 100 / 160 MHz
GPU: allow max freq to 772 / 852 MHz
GPU: increase throttling levels for better performance
GPU: increase max allowable voltage
GPU-MALI-T760: Added GPU THERMAL control interface
ARM: Mali-T760: disabled min/max lock. TouchWiz use this, so we can use normal DVFS with this patch
drivers/cpufreq: fix Samsung typos
exynos7420_tmu: add configurable interface
config: increase kernel log size so it is not overwritten
DEBUG: capture beginning of the crash in last_kmsg
config: enable building of dtb
[v1.3b] - 4th October 2015
updater-script:
create basic flashable zip for custom recovery
ramdisk:
Update N920T to N920TUVU2COI5
Synapse: SCREEN: remove mDNIe colour controls
init.rc: ensure IO schedulers are not overridden
source:
remove video: exynos: Decon: Add mDNIe colour control (causing display colour issues. Maybe take a look another time)
[v1.2b] - 3rd October 2015
ramdisk:
Update N920C to N920CXXU1AOI1
Synapse: LED: add LED fade-in/out controls
Synapse: SCREEN: add mDNIe colour controls (AndreiLux)
Synapse: HMP: add HMP LITTLE Packing control (Power savings at a slight cost to performance)
Synapse: HMP: add Exynos Core Control Interface (choose 1 > 8 cores online)
init.rc: set randomize_va_space to 0 (disabled) for improved GUI responsiveness
init.rc: fix Samsung syntax error: setprop sys.sysctl.compact_memory 0
disable some unnecessary security stuffs (arter97)
default.prop: (trying to fix errors and panic)
remove FHA for now whilst testing for reboot
various security additions/removal testing for reboot​
source:
Source: merge in SM-N920C_SEA_LL N920CXXU1AOI1
Trying to fix some some errors and panic
sysrq: Emergency Remount R/O in reverse order
Revert "security: SELinux: Avoid enabling enforcing by conventional flag
Revert "security: SELinux: revert Samsung hard enforcing
selinux: loose everything
config: more TIMA adjustments​
video: exynos: Decon: Add mDNIe colour control
video: exynos: Silence mDNIe control hook
cpufreq: Silence dm_hotplug debug
config: compile SCHED_HMP_LITTLE_PACKING
HMP: disable HMP LITTLE packing (default)
LED: add LED fade-in/out control
Dynamic CPU Hotplug: exynos-interface from Universal5410
dm_cpu_hotplug.c: fix compile error
[v1.1] - 30th August 2015
ramdisk:
Synapse: INFO: added asv_summary
Synapse: GPU: added GPU freq scaling MIN/MAX controls
init.rc: added some boot defaults (ensure stock CPU & GPU freqs)
source:
A57: allow max 2400 MHz & min 500 MHz
A53: allow min to 200 MHz
cpufreq: Add kt files and build it
cpufreq: Set global var screen_is_on when screen goes on and off
gpu: Add code to allow user to control min and max GPU Mhz - @ktoonsez
[v1.0] Initial Release - 29th August 2015
A lot of credit (as always) goes to @AndreiLux for various source commits, Synapse app and UCI support and more !
REQUIREMENTS
Variant support for:
SM-G920F​
FOR BUG REPORTING: Stock UNMODIFIED TouchWiz (TW) 5.1.1 ROM (this means no Xposed or tweaks etc)
Custom recovery i.e.. TWRP
INSTALLATION
Uninstall any CPU control apps, tweaks and init.d scripts etc.
Recommend: Disable or remove KNOX (you can disable with Synapse once kernel is flashed)
Install Synapse app from Google Play and rate it ☆☆☆☆☆ !!
Device Settings:
Enable Developer Options > OEM UNLOCK
If flashing from any custom kernel with Synapse app > Device settings > Applications > Synapse > Force Stop > clear data​
If not installed > Install SuperSU from Google Play:
Boot into custom recovery and flash SkyHigh_kernel____.zip FOR YOUR DEVICE and reboot
After boot:
a) wait at least 120 secs to stabilize
b) Open Synapse
c) Tap "Understood"
d) DO this step so some defaults are set !!
1. tap the square menu button top right hand corner
2. tap the three dots button
3. "select all globally"
4. tap the back button next to it
5. apply​
DOWNLOADS
SM-G920F [ v2.9 ] READ THIS >>>>> FIRST [ v3.0 ] RELEASE IS TOMORROW
________________________________________________________________________
SOURCE
ALL KERNELS COMPILED WITH SAME SkyHigh SOURCE !!
Github
.
Help and FAQ
THREAD RULES & PROTOCOLS FOR THIS DEVELOPMENT THREAD:
I MIGHT NOT HAVE YOUR DEVICE variant and or able to reproduce your "issue". With this in mind, without providing as much information as possible, and resetting your device to a stable unmodified baseline, any potential troubleshooting or logs could be meaningless. So please follow the guidelines set out below. Thanks
BY POSTING YOUR ISSUES IN THIS THREAD, YOU ARE AGREE TO HELP YOURSELF FIRST BY PROVIDING INFO REGARDING:
Code:
1. DEVICE MODEL ?
2. ROM and firmware version (build number, boot-loader etc) ?
3. EXACT steps taken to reproduce YOUR issue
4. Screen-shots (if applicable)
5. Did you read Posts #1-3 completely?
6. Did you search the thread, XDA or GOOGLE?
7. Did you follow the install instructions EXACTLY?
8. What was your previous kernel?
9. Do you have any other known kernel tweaking apps, scripts or mods? ([B]remove them[/B]). [COLOR="Red"]This includes Xposed etc[/COLOR]
10. Try older kernel (if available)
11. Factory reset ?
12. Try latest stock [B]UNMODIFIED[/B] firmware (without custom ROM - if you have installed) and factory reset
13. Delete your ROM BusyBox (kernel uses it's own in /sbin)
ONLY IF YOU HAVE TRIED SUGGESTIONS ABOVE:
Turn on logging in Synapse and save logs AT TIME OF ERROR. AND post together with ALL the above information.
ELSE, DON'T WASTE MY TIME, YOU WILL BE IGNORED AND/OR POST REPORTED !!
THANK YOU :good:
CAN I BUILD A KERNEL FOR YOUR __XX DEVICE ?
I will not build for any device that I can not compile using SAME source, personally test method or debug. Some device variants can compile with same source.
If you have any of the following, please post your LATEST stock boot.img along with the firmware version you extracted it from.
N920R4​
Download the full firmware package from either sammobile.com or samsung updates.com (1.5+ GB )
"NO UCI SUPPORT"
It's a ROM busybox compatibility issue
Three choices:
Device > settings > applications > Synapse > force close & wipe data and REBOOT
OR
Remove your ROM busybox from /system xbin and /system/bin (Synapse will use the kernel busybox in /sbin).
Force stop Synapse and delete app data (device settings > applications)
Re-flash kernel as per Installation Instructions
OR
Try install a different busybox
Force stop Synapse and delete app data (device settings > applications)
Re-flash kernel as per Installation Instructions
STUCK ON SAMSUNG BOOT LOGO AFTER FLASH
Ensure you flashed the correct kernel for your device model
Ensure your download is not corrupted. Check MD5 hash or re-download
Your current base firmware (ROM, boot-loader version etc.) may be incompatible - UPDATE to latest with Odin and try again.
CM SUPPORT
Read Post #12
"Unauthorized actions have been detected, reboot to undo changes"
As it's a common warning found with all KNOX enabled android devices, you would have found the answer by Google search and also that it is actually unrelated to kernel and also unrelated to this kernel development..............
It is caused by the process of rooting/modifying your device. Unless you use KNOX, don't worry.
[Q] How to disable
[A] Freeze or delete your KNOX & Security related apps/processes manually (using root explorer or titanium backup (pro) or use Synapse > Security > disable KNOX
CAN I USE OTHER KERNEL CONTROL APPS
No, many features and options won't be available. Remove all other control apps to avoid conflicts !
Synapse is the recommended and has everything you need
BATTERY TIPS
Try enable some of the CPU MULTICORE features in Synapse (slight performance cost):
Power Aware Scheduling
HMP LITTLE Packing
PEWQ (power-efficient workqueue)
Increase the HMP Up threshold a little
PERFORMANCE TIPS
LATER
RANDOM REBOOT
Don't UV or UC CPU or GPU
Use SkyHigh defaults
Use a stock UNMODIFIED ROM for your device variant
No tweaks, Xposed or other CPU control apps installed
ASV_GROUP (ALL DEVICES ARE NOT CREATED EQUAL)
http://forum.xda-developers.com/showpost.php?p=61579949&postcount=202
CAN I INCLUDE SkyHigh KERNEL IN MY ROM
Although I do appreciate your contribution here, if you could please do not include my kernel in any ROM package etc. This policy goes for anyone.
Having my kernel distributed outside my development thread just removes a lot of credit and more importantly, constructive user feedback that could be helpful to my development or user issue.
DOWNLOAD LINK NOT WORKING
I want to keep this project all in one place - ☆☆ NO MIRRORS ☆☆
Please try again in a few minutes
POOR CPU/GPU BENCHMARK or GRAPHICS PERFORMANCE
Disable any CPU MULTICORE options in Synapse
Allow the device to cool. Repetitive testing will heat the device hardware and invoke thermal throttling and lead to decreased benchmark.
HIGH CPU/GPU OC >> excessive heat >> thermal throttling >> reduced clock frequency >> DECREASE PERFORMANCE
BACKUP & RESTORE
DO NOT restore profiles from different kernel version
If the backup isn't visible, reboot device and ensure for have "synapse boot completed" message. Otherwise synapse won't read the file.
DYNAMIC MANAGEMENT OF DIRTY PAGE WRITEBACKS
* [Christopher83]
This feature allows to have two different intervals for dirty page
writebacks and to dynamically manage them when the system has been
resumed (it's active) or when has been suspended.
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)
- dirty_writeback_suspend_centisecs is the interval for the dirty page
writebacks when the system is suspended (screen off)
This feature is in part inspired on Francisco Franco's patch:
https://github.com/franciscofranco/mako/commit/34d79548cf16b69c7d0154836018e7f258a22947
Click to expand...
Click to collapse
TCP/IP NETWORK SECURITY
* Thanks to zeppelinrox & V6SuperCharger
Hardening the TCP/IP stack to SYN attack
Bump up tw_buckets in case we get DoS'd
Ignore pings
Don't cache connection metrics from previous connection
Don't pass traffic between networks or act as a router
Enable spoofing protection (turn on reverse packet filtering)
Don't accept source routing
Don't accept redirects
- Further reading:
http://www.cyberciti.biz/faq/linux-kernel-etcsysctl-conf-security-hardening
http://www.symantec.com/connect/articles/hardening-tcpip-stack-syn-attacks
CHROMECAST - STREAMING PROBLEMS
* Thanks to @AtLmd Post
Lock screen MUST be enabled (simple screen lock swipe) I don't know why but it breaks the chromecast app's ability to resume smoothly if switched off
Synapse > Network > DTIM (both screen ON & OFF) = 1
Synapse > Network > WIFI Power Mode (screen OFF) = FAST
.
UpInTheAir said:
There is no link yet. You didn't bother to read the link right next to it ?
Click to expand...
Click to collapse
Placeholder threads aren't allowed on XDA. Please let me know when you have a link to post for download. Until then, thread closed.
Thread Closed
Razvan
Forum Moderator

Skinny Pro Custom Boot Images

What is Skinny Pro?
This is not for NOOBS - it breaks functionality in Xiaomi apps that try to communicate back to head office. This is an intentional feature and is for people who are not interested in being part of the Xiaomi ecosphere. LEAVE NOW if you have, or intend to log on to Xiaomi and use their services!!!!
Skinny does not magically fix poor choice of ROMs, Apps or lack of knowledge.
It is not a custom Kernel - it is a custom boot.img containing modified initialization scripts for the stock kernel.
There are 2 distinct versions:
Based on 7.1.4.0 - Use for 7.1.xx to 7.3.20 (MIUI7) Support discontinued since V7 (O.P no longer applies to this version)
Based on MIUI8 - use for MIUI7.5.x and MIUI8
Design Brief:
No Placebos
To overcome the limitations of Stock MIUI being:
Poor battery life
Poor performance
Chronic invasion of privacy
Boot.img mods:
Disable starting of non-present devices and services
Disable stock recovery overwriting TWRP
Disable OTA services (no use on a modified ROM)
Disable starting of invasive (spying) services
Disable fingerprint sensor infrastructure (not for our device)
Disable find device infrastructure
Disable second space infrastructure
Build in init.d support
Enable zram swap creation (disable conflicting "mcd" service infrastructure)
Mass Storage Device mode added for external SDCard
Improved TCP Buffer values
Reconfigured internal SDCard suppport to remove uneccessary symlinks
Reduce cpu scheduler, foreground and background tasks deadtime (throttling)
Add some Android 6.0 TCP tweaks
Expose LMK and HPS settings for user configuration
What you will see:
Faster boot
Less background activity at idle
Less RAM usage
Less spying/reporting activity
Better battery life
Better Performance
More reliable and faster data speeds
Install your chosen ROM and get it past the first setup screens before flashing a Skinny Boot image.
If you really must install Xposed, install this after the Skinny boot image.
Do not install "kernel" tweaking apps - they will conflict with the inherent settings in Skinny!
No wipes are necessary after installing the boot.img
What else do I need to do?
First, an explanation as to why we need to set everything the way it is:
The cpu is controlled by 4 separate mechanisms:
1. Thermal throttling - will limit frequencies and shut down cores to stay within safe operating temperatures - will override all other mechanisms. Settings available: High Performance (less strict) or Balanced (default)
2. Performance Server - will temporarily boost freqs and cores depending on detected conditions such as screen touch, screen update or rotate, app open. Limited settings available via /etc/perfservscntbl.txt
3. Hotplugging Service - will add or remove cpu cores as load requires. Some settings are accessible through /proc/hps/
4. Interactive Governor - will throttle freqs up and down based on load and add or remove cores also. Some settings are accessible through /sys/devices/system/cpu/cpufreq/interactive/
You will notice there are competing and often contradicting mechanisms. The factory defaults essentially disable the Interactive governor as being the primary source of initial boosting cpu freqs. The "boost" setting normally found in the governor is non-functional - instead, the Perf Server will boost to 2 cores @ 1183MHz when a potential demand for processing power is detected apart from a simple screen touch. The interactive governor will take over scaling the freq and number of cores after the perf server boost period expires or load demands more cpu power than the boost caters for.
Since the Performance Server tends to over-react, setting 2 cores @ 1183MHz for the smallest of events, we disable it completely by manually editing the existing line in /system/build.prop from:
ro.mtk_perfservice_support=1 to ro.mtk_perfservice_support=0
You must do this yourself - this is vital since all further Governor and Hotplug settings rely upon it being disabled.
Editing /etc/perfservscntbl.txt is not required since this file will no longer be processed.
The settings for the Interactive Governor and Hotplug are modified from factory default to correct a couple of serious problems:
1. The cpu will not reliably throttle back to idle at 403MHz. This has a huge impact on battery.
This is caused by the timer_rate setting being too short allowing transient background activities to trigger scaling the freq up. Increasing the time effectively averages out the transient load spikes so the cpu will not break idle unnecessarily.
2. The cpu does not respond to increasing or decreasing load fast enough creating micro-lags and consuming battery. Reducing the min_sample_time will shorten the time taken for the cpu to lower in freq when load drops off. Reducing the above_hispeed_delay will reduce the response time to increase the cpu freq in response to a load. Both of these settings also compensate for the longer than standard timer_rate that introduces some sluggishness by necessity.
All other values are set to encourage the frequency and number of cores to rapidly and reliably return to idle to save battery while still providing sufficient responsiveness to sudden load demands.
Create an init.d script exactly as follows: (premade file 01_init also available to download)
Code:
#!/system/bin/sh
### CPU freqs standard RN2: 403000, 806000, 1183000, 1326000, 1469000, 1625000, 1781000, 1950000
### CPU freqs PRIME RN2: 403000, 806000, 1183000, 1326000, 1482000, 1664000, 1885000, 2158000
### GPU freqs standard RN2: 253500, 299000, 390000, 442000, 546000
### GPU freqs PRIME RN2: 253500, 338000, 390000, 546000, 676000
# Stop running boot-time services (enable the lines for services you want to stop)
#stop sn # USB serial number allocation
#stop wifi2agps # WiFi assisted GPS (for fine location)
#stop agpsd # Mobile Network assisted GPS (for fine locastion)
#stop emsvr_user # Engineering Mode server
#stop PPLAgent # Privacy Protection Lock
#stop mtkbt # MTK Bluetooth
#stop batterywarning # Battery warning service
#stop debuggerd64 # debug logging
#stop debuggerd # debug logging
#stop logd # logging
#stop autokd # autotune for WiFi
#Set to permissive (enable this line if SE permissive mode is required)
# setenforce 0
# Tweak Interactive Governor (now set in boot.img - enable here to override values)
#echo 403000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq # factory default 1183000
#echo 99 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load # factory default 99
#echo 99 > /sys/devices/system/cpu/cpufreq/interactive/target_loads # factory default 90
#echo 25000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate # factory default 20000
#echo 10000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time # factory default 20000
#echo 5000 > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay # factory default 20000
#echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/timer_slack # factory default 80000
# Limit CPU max freqs (To limit the maximum cpu freq, enable both of these lines. Select a valid freq for your device from table at start)
#echo 1781000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
#echo 1781000 > /proc/cpufreq/cpufreq_limited_max_freq_by_user
# Limit foreground CPU cores (set in boot.img - enable here to override values) 0-1 min, 0-7 max Example shows 5 cores (also needs to be set in Hotplug)
#echo 0-4 > /dev/cpuset/foreground/cpus
# Hotplug settings (set in boot.img - enable here to override values) Note: num_limit values are 1-8
#echo 5 > /proc/hps/num_limit_low_battery # factory default 8
#echo 5 > /proc/hps/num_limit_power_serv # factory default 8
#echo 5 > /proc/hps/num_limit_thermal # factory default 8
#echo 5 > /proc/hps/num_limit_ultra_power_saving # factory default 8
#echo 99 > /proc/hps/up_threshold # factory default 95
#echo 87 > /proc/hps/down_threshold # factory default 85
#echo 0 > /proc/hps/rush_boost_enabled # factory default 1
#echo 0 > /proc/hps/input_boost_enabled # factory default 1
# Tweak GPU Settings (Look in /proc/gpufreq/gpufreq_power_dump for power usage at different freqs)
# To disable GPU touch boost:
#echo 0 > /proc/gpufreq/gpufreq_input_boost # factory default 1 (enabled)
# To limit max GPU freq: (Select a valid freq for your device from table at start)
#echo 442000 > /proc/gpufreq/gpufreq_opp_max_freq # factory default 0 (disabled)
# Tweak VM (set in boot.img - enable here to override values)
#echo 300 > /proc/sys/vm/dirty_expire_centisecs # factory default 200
#echo 500 > /proc/sys/vm/dirty_writeback_centisecs # factory default 300
# Tweak LMK (set in boot.img - enable here to override values) 18 37 56 75 93 112MB # factory default 72 90 108 126 219 317MB (MB x 256 = value)
#echo 4608,9472,14336,19200,23808,28672 > /sys/module/lowmemorykiller/parameters/minfree
#Enable zram (no zram set by default, enable first 4 lines if 1 zram required, all 7 lines if 2 zram required)
#echo 40 > /proc/sys/vm/swappiness
#echo 268435456 > /sys/block/zram0/disksize # for single zram: 536870912 = 512MB (for non-prime version) 1073741824=1GB (for prime version)
#/system/xbin/busybox mkswap /dev/block/zram0
#/system/xbin/busybox swapon /dev/block/zram0
#echo 268435456 > /sys/block/zram1/disksize # for 2 zrams: 268435456 = 256MB (for non-prime version) 536870912 = 512MB (for prime version)
#/system/xbin/busybox mkswap /dev/block/zram1
#/system/xbin/busybox swapon /dev/block/zram1
# Tweak IO Scheduler (set in boot.img - enable here to override values)
#echo deadline > /sys/block/mmcblk0/queue/scheduler # factory default cfq (choice: noop deadline cfq)
#echo 128 > /sys/block/mmcblk0/queue/read_ahead_kb # factory default 128 Choose between 128, 256, 512, 1024, 2048
#echo 0 > /sys/block/mmcblk0/queue/add_random # factory default 1
#echo 0 > /sys/block/mmcblk0/queue/iostats # factory default 1
#echo deadline > /sys/block/mmcblk1/queue/scheduler # for ext sdcard (sdcard1)
#echo 2048 > /sys/block/mmcblk1/queue/read_ahead_kb # for ext sdcard (sdcard1)
#echo 0 > /sys/block/mmcblk1/queue/add_random # for ext sdcard (sdcard1)
#echo 0 > /sys/block/mmcblk1/queue/iostats # for ext sdcard (sdcard1)
#Tweak Entropy (set in boot.img - enable here to override values)
#echo 384 > /proc/sys/kernel/random/read_wakeup_threshold # factory default 64
#echo 448 > /proc/sys/kernel/random/write_wakeup_threshold # factory default 128
#Tweak for wifi router connection issues
#echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
# Disable debugging on some modules (set in boot.img - enable here to override values)
#echo 0 > /sys/module/alarm_dev/parameters/debug_mask;
#echo 0 > /sys/module/alarmtimer/parameters/debug_mask;
#echo 0 > /sys/module/binder/parameters/debug_mask;
#echo 0 > /sys/module/earlysuspend/parameters/debug_mask;
#echo 0 > /sys/module/sbsuspend/parameters/sbsuspend_debug_mask;
#echo 0 > /sys/module/snd/parameters/debug;
#echo 0 > /sys/module/pvrsrvkm/parameters/gPVRDebugLevel;
#echo 0 > /sys/module/musb_hdrc/parameters/debug_level;
#echo 0 > /sys/module/lowmemorykiller/parameters/debug_level;
#FSTRIM
busybox fstrim /data
busybox fstrim /system
busybox fstrim /cache
Update BusyBox to version 1.25.1-1 (available to download)
Reduce the number of apps and services needlessly starting automatically at boot. Uninstall or freeze bloat apps. Replace "noisy" apps with better written ones.
Use BetterBatteryStats, WakelockDetector Root or similar to understand what invisible activities are consuming battery.
Use SDMaid, DisableServices, MyAndroidTools or similar to disable autostarts (receivers)and app related services. Use with caution.
To see what boot services are running, type getprop in Terminal. You will see a bunch of entries like [init.svc.66xx_launcher]: [running]
These service must remain running do not stop!:
Code:
[init.svc.66xx_launcher]: [running]
[init.svc.MtkCodecService]: [running]
[init.svc.NvRAMAgent]: [running]
[init.svc.aal]: [running]
[init.svc.ccci_fsd]: [running]
[init.svc.ccci_mdinit]: [running]
[init.svc.drm]: [running]
[init.svc.fuelgauged]: [running]
[init.svc.gsm0710muxd]: [running]
[init.svc.guiext-server]: [running]
[init.svc.healthd]: [running]
[init.svc.installd]: [running]
[init.svc.keystore]: [running]
[init.svc.lmkd]: [running]
[init.svc.media]: [running]
[init.svc.mnld]: [running]
[init.svc.netd]: [running]
[init.svc.ril-daemon-mtk]: [running]
[init.svc.sdcard]: [running]
[init.svc.servicemanager]: [running]
[init.svc.shelld]: [running]
[init.svc.surfaceflinger]: [running]
[init.svc.thermal]: [running]
[init.svc.thermald]: [running]
[init.svc.ueventd]: [running]
[init.svc.vold]: [running]
[init.svc.zygote]: [running]
[init.svc.zygote_secondary]: [running]
[init.svc.bmi160d]: [running]
If you only have 1 SIM, it is highly recommended to go into single SIM mode to turn off the second modem service. Edit build.prop existing line from:
persist.radio.multisim.config=dsds to persist.radio.multisim.config=ss
Turn off Developer Options/Memory Optimization and MIUI Optimization. This is a legacy of the mcd service zram configuration that is disabled.
Removal of Apps that are created by symlinks: (Updated information for any ROM version can be found in ROM \META-INF\com\google\android\updater-script)
Uninstall the app where possible and then delete the leftover libs if they exist.
Code:
[B]MAB[/B]
/system/lib/libDToken.so
/system/lib/libNative.so
/system/lib/libShopSigned.so
/system/lib/libentryexpro.so
/system/lib/libsecuritysdk-3.1.27.so
[B]Jeejen[/B]
/system/lib/libJeejenAisound.so
/system/lib/libbspatch.so
/system/lib/libfamily_jni.so
/system/lib/libgetuiext.so
/system/lib/libjeejenmsc.so
[B]MIUI Video[/B]
/system/lib/libDecRes_sdk.so
/system/lib/libminivenus.so
/system/lib/libmresearch.so
/system/lib/libsecurities_sdk.so
[B]Cleanmaster[/B]
/system/lib/libTmsdk-2.0.9-mfr.so
/system/lib64/libTmsdk-2.0.9-mfr.so
/system/lib/libdce-1.1.14-mfr.so
/system/lib64/libdce-1.1.14-mfr.so
/system/lib/libkcmutil.so
/system/lib/libkcmutilex.so
/system/lib/libsic_helper.so
[B]SecondSpace[/B]
/system/lib/libspaces_jni.so
[B]Sogou Input[/B]
/system/lib/libwebp.so
/system/lib/libweibosdkcore_sogou.so
[B]AMAP Network Location[/B]
/system/lib64/libapssdk.so
[B]YellowPage[/B]
/system/lib64/libdidi_secure.so
[B]XMPass[/B]
/system/lib64/libxmpass_sdk_patcher.so
/system/lib64/xmpass_libweibosdkcore.so
[B]PicoTTS[/B]
/system/lib64/libttscompat.so
/system/lib64/libttspico.so
[B]Miui Gallery[/B]
/system/lib64/libwrapnexpcmcalbody.so
/system/lib64/libnexralbody_audio.so
/system/lib64/libnexcralbody_mc_jb.so
/system/lib64/libnexeditorsdk.so
/system/lib64/libPinguoImageSDK.so
/system/lib64/libMiuiGalleryNSGIF.so
/system/lib/libMiuiGalleryNSGIF.so
/system/lib64/libDexHelper.so
[B]MIUI Scanner[/B]
/system/lib64/libQuadrangleRecognizer.so
/system/lib64/libhw_instanttrans.so
/system/lib64/libhwocr_cntools_shared.so
/system/lib64/libsgmain.so
/system/lib64/libsgmainso-5.1.2011.so
/system/lib64/libtbdecode.so
Remove inbuilt virus scanner(s)
Remove GuardProvider.apk and SecurityAdd.apk plus:
Code:
/system/lib64/libams-1.1.7-m-mfr.so
/system/lib64/libams-1.1.7-mfr.so
/system/lib64/libavast-utils.so
/system/lib64/libavast-vps-interface.so
/system/lib64/libavlasys.so
/system/lib64/libavlm.so
/system/lib64/libavlurl.so
Extra libs that can be removed: (if associated apps are removed)
Code:
[B]Lib:[/B]
libfdpp.so Find Device
libfdpp_jni.so Find Device
libffmpeg-miplayer.so Music / MIUIVideo
libhotknot.so
libhotknot_vendor.so
libnfc_ndef.so
libpatcher_game_jni.so
libpatcher_jni.so
libvoicerecognition.so Voice Extensions
libvoicerecognition_jni.so Voice Extensions
libwhetstone_jni.so
libwhetstone_sdk.so
libxiaomimediaplayer.so Music / MIUIVideo
libxiaomiplayerwrapper.so Music / MIUIVideo
[B]Lib64:[/B]
libBaiduMapSDK_base_v4_0_0.so
libBaiduMapSDK_search_v4_0_0.so
libBaiduMapSDK_util_v4_0_0.so
libBankCardRecognizer.so
libduokantext.so
libfdpp.so Find Device
libfdpp_jni.so Find Device
libhotknot.so
libhotknot_vendor.so
libidcardquality_v1.0.3.so
libjni_latinimegoogle.so Google Keyboard
libjni_pacprocessor.so
libjni_unbundled_latinimegoogle.so Stock Keyboard
libnfc_ndef.so
libpatcher_game_jni.so
libpatcher_jni.so
libprintspooler_jni.so Print Spooler
libtbtv3312.so
libTrafficRadar.so
libttscompat.so Pico TTS
libttspico.so Pico TTS
libunipaychsec.so
libweibosdkcore.so
libwhetstone_jni.so
libwhetstone_sdk.so
[B]/vendor/lib64:[/B]
libcom_fingerprints_productiontestmanager.so
libcom_fingerprints_sensor.so
Skinny Pro All versions:
https://drive.google.com/folderview?id=0BwdRTuyj12_yRk9Kcm1pZkxuZzg&usp=sharing
Enjoy
@jajk Awesome work! Do you intend to work on the aosp boot.img much or are you more invested in the miui one (or is it mostly the same project with not many differences between the two types)?
@Sleepy_Augie There is little difference between the 2 flavors so it is easy to keep them in sync
All,
I cannot possibly know what customization other devs are adding to their boot.imgs and whether or not that will make their ROMs incompatible with my boot.imgs. I will try to keep the AOSP version up with current developments while still keeping it "Generic".
Could you include Selinux: Permissive? Zram is better than swap built-in miui ?
@efr07 The beauty of not embedding tweaks - you can choose to be permissive or enforcing in your init.d script rather than me dictating it to all.
setenforce=0 or 1
and to answer the second part....
MIUI uses what could be called a "dynamic swap" system utilizing 4 zram swaps of variable size. The system prioritizes what gets access to that extra memory and what doesn't. No surprises - Xiaomi apps get priority over your own apps. The complexity of this system is so great, it would negate any performance advantage completely but it does make the Xiaomi apps more tenacious than other apps.
@jajk
First things first thank you so much for the effort you have done improving Redmi Note 2,
But I have some question if you please,
I have Miui 7.2.2.0 Lite on my Redmi Note 2 Prime (2.2 ghz) (Rom Link http://en.miui.com/thread-244684-1-1.html)
I have flashed the file as img to boot, and I have done as you said until the int.d thing, I went to #/system/bin/ and I found sh file and opened it in text editor, deleted everything in it and paste what you mentioned, till now we are ok with the device.
I did not find the files that you said I should delete from /vendor/lib, so I went to /vendor/lib64 and deleted the first file, After I deleted it suddenly Root Explorer shut off and whenever I open it again I cant find anything, just blank screen with its symbol and name above and nothing else. Tried to delete Root Explorer and install again and nothing new. Please help, Have I done everything okay? and what should I do to fix this thing and continue deleting the remaining files?
Thank you.
@jajk delete folder /system/etc/radv <- do you mean radvd?
@aghr11 I think that you did not understand the method to create the init.d script and modified an important file instead. You will have to replace that script file you blanked with the original or restore from a good backup and try again. The list of files for deletion is only if they exist in the location as described. If you have enabled any fingerprint settings for some obscure reason, you will probably get locked out of your phone.
Now to creating the script.
Using a text editor, create a file named 01tweaks in /system/etc/init.d folder.
Paste the text (including the first line #!/system/bin/sh) into this file. Leave a blank line at the bottom of the file and make sure your editor is set to Unix end-of-line characters (not Windows)
Save the file and give it 0755 permissions (rwxr-xr-x)
@tonydeli7 Yes, typo I will fix..... done It is a folder to receive advertising pushed to your phone courtesy of Xiaomi!!!!
jajk said:
@tonydeli7 Yes, typo I will fix..... done It is a folder to receive advertising pushed to your phone courtesy of Xiaomi!!!!
Click to expand...
Click to collapse
Yeap, just saw the conf file... WTF are they doing?!
By the way, thanks a lot for this kernel! Nice work!:good::good:
UPDATE:
I edited the latest Multirom Stable (7.2.1.0) and added your kernel&tweaks,deleted the files and everything works great!
I only changed the touchboost value to 806000
jajk, many thanks for this brilliant work!
IIRC, your personal preference for a base ROM with the best behavior and performance with these tweaks was v7.1.4.0 (or was it 7.1.3.0). Is this so or has anything changed? My RN2p is long overdue for an update, still on dev 5.10.29!
If a have a weekly miui based on Miui V 7.3 beta, will it work?
@tonydeli7 Did you give it some time on touchboost 403? I find it does not contribute to lags perceptibly.
@algida79 The most bug free ROM I have come across is MR7.2.30 ID (ported from reno3). I think I had a link to that in the Skinny thread.
Don't load the preloader, uboot or logo from this ROM - edit the updater-script to remove flashing of these. You will need to do an intermediate flash of 7.1.3 or 7.1.4 using SP Flash tool to get all the partitions the way they need to be if coming from an ancient ROM.
@Dnxss Yes it will still work.
@jajk Half an hour I think. I had no lag,just my preference
The phone usage is mostly surfing,facebook,twitter,music playback etc etc with no gaming.
GPS SYNC 3G all on..
Installed app count is around 120..
Includes six reboots while testing ZRAM(disabled it), and if it's good to deactivate Whetstone app.
I also used the app Autostarts to disable useless receivers for many apps like FB etc,and disabled Mail,Voice Unlock,PicoTTS.
I am satisfied..[emoji14]
Sent from my Redmi Note 2 using Tapatalk
@tonydeli7 Whetstone app is a source of a lot of spyware but is not a straight forward removal but you will find that out...
can then also delete:
/etc/WhetstonePermission folder
/system/lib
libwhetstone_jni.so
libwhetstone_sdk.so
/system/lib64
libwhetstone_jni.so
libwhetstone_sdk.so
Yeap, I searched a bit. I am using the Multirom Stable and after flashing the kernel,Whetstone crashes sometimes.
Didn't notice anything weird after freezing it..
This rom doesn't have the line
persist.sys.whetstone.level=2
in the build.prop for some reason.
Sent from my Redmi Note 2 using Tapatalk
@tonydeli7 Whetstone is linked to the mcd service to make things harder to unravel as in all Xiaomi apps. The boot.img disables mcd which is why you will see Whetsone having a fit sometimes. Completely removing Whetstone is a very good thing to do - it may give you an FC on Battery app, delete that too - it chews battery and does not affect normal operation!!!
Anyone wanting to increase their privacy, rename /system/xbin/tunman to tunmanbak. This is the Xunlei data saver/spyware tunneling manager. It is disabled from starting in the boot.img but will still run if called upon like all of the disabled services - they still exist, but not started by default. Make sure it is disabled in the Download Manager Settings
There is another service /sbin/mdbd that appears to be a method of tunneling over usb connections to gain access to a network and on to P.R.C. It is disabled in the boot.img already but I will rename this one in a next revision to be doubly sure it will not start.
Discovered an issue of some apps not recognizing internal sdcard so new versions posted to fix this plus rename /sbin/mdbd to mdbdbak to prevent it from being started after boot. See previous post for the reason.
Back up your internal sdcard contents if you flashed the original images - you will loose everything on sdcard0.
No action needs to be taken if this is a first-time flash.
@jajk How come this version doesn't just dump sd to folder 0? What was merged between miui and pro boot images?
@Sleepy_Augie It is a very complex issue how Android provides a virtual filesystem for SDCards. I thought I could implement it in a simpler fashion as per Android 5.1 which worked well except apps like the stock Contacts are stuck in the dark ages and are hard-coded to still look for the emulated/0 folder for the internal sdcard - not storage/sdcard0.
So going from stock to my original mod leaves an orphaned folder which becomes named 0 because it belonged to user 0. Going back the other way the folder representing access to sdcard0 simply disappears.
The real location of files that appear on the internal emulated sdcard is always /data/media. All other folders that appear to be the same thing are only symlinks to this. Make sense:silly:
Hey @jajk ,
Thanks for the reply, but I have done exactly everything you said and followed all of your steps, but after one day using it, I do not notice any change on battery life, it is still so bad, I have tried everyrom (and every way that was suggested from other users on XDA and MIUI forums including every battery calibration thing) I came across since I bought my RN2p and the maximum battery life I got is nearly 4:30 hours on screen!! After I flashed the boot.img I noticed a slightly more speed booting up the device, the performance is the same (which is good because am all satisfied about the performance except for the battery life).
I have flashed smiui today and it's slightly better consuming energy than the previous ones...
Maybe I have done something wrong doing the 01tweaks thing, if you can upload me yours so I can try paste it in /system/etc/int.d folder, if that will work, then I will be so thankful to you. And if you have any suggestions that I could do to improve and enhance the crazy energy draining then I will be more thankful.

[KERNEL][NO FURTHER DEVELOPMENT][14th Jan] HelixKernel v018-Reuploaded FINAL

ANNOUNCEMENT 14/01/18 PLEASE READ!
This kernel is based on 100% latest HTC official source. EAS was ported from scratch using @RenderBroken 's commits (with permission from him).
THIS KERNEL IS BATTERY ORIENTED! DO NOT EXPECT AMAZING PERFORMANCE FROM THIS KERNEL! PERFORMANCE IS DECENT ENOUGH FOR NORMAL USAGE! If you are here to try out performance then this is not the kernel for you. Do not go complaining about performance unless it is extremely bad.
Features:
-Compiled using Linaro GCC 6.4.1 Toolchain
-Energy Aware Scheduling r1.3
-HELIX-ENGINE: A pnpmgr replacement compatible with EAS
-Working thermal-engine for Sense without the need of pnpmgr (binary from LOS)
-Much more efficient special CPUSET set-up (big cluster as main rather than little)
-NEW governor: pwrutilx - another governor based on schedutil
-Button Light Notification mod
-LED Pulse/gradient charging mod
-Fast charging
-Backlight dimmer
-Double tap fingerprint 2 sleep
-Maple and BFQ I/O
-Adreno GPU boost
-KCAL Colour control
-Sound Control
-Misc fixes and patches
-Using exFAT driver ported from @dorimanx 's OP3T kernel (since nofuse driver was giving issues and stock HTC texfat was not compatible with EAS kernels)
-F2FS support
Click to expand...
Click to collapse
pwrutilx - a new EAS governor based on schedutil that aims to be much more efficient by using a different formula to get next frequency.
Click to expand...
Click to collapse
HELIX-ENGINE v5.0
- SELinux set to PERMISSIVE is MANDATORY to get app engine working!! This is due to using a function called "pipe open" in C which is able to collect the output of terminal commands used, SELinux always blocks this when set to enforcing.
App Engine: dynamically adjusts schedtune.boost and governor tunables in a per-app basis.
- Battery profile sets schedtune.boost to -100, 1000 up_rate_limit and down_rate_limit, 0 iowait_boost.
- Performance sets schedtune.boost to 10, 500 up_rate_limit and 20000 down_rate_limit, 1 iowait_boost.
- Default (apps that are not included in either lists above) sets schedtune.boost 1, 500 up_rate_limit and 20000 down_rate_limit, 0 iowait_boost.
- App package names are added to battery.conf and performance.conf (/system/etc/helix_engine), the engine will check them to see if the top-app (current app) matches with the names scanned through those lists. If a match is found, it will apply one of the profiles above according to what list the package name is in.
Suspend Engine: when display is turned off, it will use battery profile settings until screen-on.
Helix Engine is closed source currently since it is my own work, writting in C completely from scratch. However, devs are free to integrate Helix Engine to their ROMs/Kernels/whatever as they see fit as long as they give me credits.
Read post 2 regarding dev information about Helix Engine.
Click to expand...
Click to collapse
This kernel is compatible with Sense and AOSP ROMs (Nougat and Oreo supported). This kernel is NOT compatible with Sense-based Oreo ROMs!
Please ensure that you have made a backup of your boot, system, and data partitions in case anything goes wrong.
Click to expand...
Click to collapse
DOWNLOAD (Magisk users disregard the outdated second post, download using this link too!)
Click to expand...
Click to collapse
If you update Magisk with this kernel installed, you MUST reflash the kernel. Everytime Magisk gets updated, it will restore the stock init.rc ramdisk file and re-append magisk lines to it, rather than just re-append magisk lines without restorting stock init.rc ramdisk. If you do not reflash the kernel after this, then init.helix.rc will not execute on boot since init.rc has been replaced by stock again due to Magisk update. Which means EAS will not be set up correctly (if you're on sense) and Helix Engine will NOT work.
Click to expand...
Click to collapse
Bugs:
- custom cpuset config gets overwritten by Oreo ports, you MUST follow this guide to get slightly better battery life, battery life on Oreo is still bad but that is mainly a ROM/port issue.
- msm_thermal may be enabled by default for some (Sense ROMs mainly), DISABLE THIS SETTING IMMEDIATELY AND KEEP IT DISABLED ON BOOT! It can result to bad battery life as this function will prevent both clusters from going below 700MHz.
- exFAT is still a hit or miss, it will work for some people and won't for others. There isn't much I can do about it I'm afraid unless someone has a better solution...
- USB Tethering and WiFi Portable Hotspot are NOT WORKING FOR AOSP ROMS! This should be fixed in the next update (no ETA).
Click to expand...
Click to collapse
Posts #3 and #4 are very irrelevant now, you can ignore these 2 posts.
Source: https://github.com/ZeroInfinityXDA/HelixKernel-EAS-HTC10
Click to expand...
Click to collapse
Credits:
@RenderBroken - who helped me a lot and taught me more about using git version control
@joshuous - another OP3 developer who helped me with EAS and discussing ideas about it
@Kyuubi10 - tester + coming up with the idea for a new algorithm for helix_schedutil
@p50kombi - Tester + making Magisk-compatible zips
@Mostafa Wael - introduced me to great devs, discussing and researching more about EAS, coming up with the idea of dynamic schedtune.boost
@DeeZZ_NuuZZ @CharliesTheMan - Testers
@Captain_Throwback - helping me a lot with exFAT and his exFAT no-fuse patch to make it work on the 10
@dorimanx - ExFAT driver in his OP3T kernel
@ivicask for making a template of AROMA installer for me to work with for the kernel, inspiration to make my own engine!
@TotallyAnxious - tester + helping me with a few issues + Advanced EAS Tweak scripts
@RogerF81 - tester + Advanced EAS Tweak scripts
@flar2 - backlight dimmer, Adreno boost, Sound Control
@tbalden - double tap fingerprint 2 sleep, BLN, LED pulse/gradient mod, fastcharge, kcal port, AOSP LED light fix
@franciscofranco - misc commits such as WiFi wakelocks and power efficient workqueues, display_on() API
Eliminater74 - ASoC 4.4 backport commits, remove traces of pnpmgr commits, Maple and BFQ I/O commits
PFOS Team - Commits needed for Oreo support
If I have missed anyone, please contact me via PM and I will add you to the list.
Click to expand...
Click to collapse
Changelog:
Code:
v018:
Helix Kernel v018:
- Rebased kernel from EAS r1.3 (thanks to @RenderBroken)
- AOSP (both Nougat and Oreo) Support (thanks to @tbalden for LED fix on AOSP and PFOS team for commits that Oreo needs to boot)
- Added thermal-engine binary from LOS to make thermal-engine work on Sense ROMs without needing pnpmgr (Proper thermal throttling on EAS + Sense now)
- Custom thermal-engine.conf for optimal thermal throttling
- Updated Magisk modules to use the latest template for v14
Helix Engine v5.0:
- Re-written engine from scratch
- Slimmed down to App Engine and Suspend Engine
- Dynamically adjusts schedtune.boost for top-app cpuset
- Dynamically adjusts gov tunables on schedutil and schedutil-based govs
- Removed capping of CPU freqs
- Removed powersaver engine and thermal engine
- Removed ability for user configs
- Removed helix_config
- Less user customizability (Will consider adding this back in the future)
- Much more efficient in battery savings with very minimal performance hit.
- Much easier for devs to port Helix Engine to ANY DEVICE with EAS Kernels (literally just requires Helix Engine ROM files, no need for kernel integration).
v017:
- Completely redone the kernel from scratch using latest EAS commits from @RenderBroken
- [HELIX-ENGINE]: Remove dynamic throttlemode
- [HELIX-ENGINE]: Add support for user defined frequencies in powersaver and suspend engines
- [HELIX-ENGINE]: Users can now change freqs of app engine profiles
- [HELIX-ENGINE]: Separate sysfs nodes for frequencies
- Revert "[PATCH] proc: Remove verifiedbootstate flag from /proc/cmdline"
- SafetyNet bypass: Show androidboot.verifiedbootstate=green
- cpufreq/pwrutilx: Lower kthread priority to 25% and fix log info
Helix Engine v4.0:
- Significant code optimizations
- Tons of bug fixes
- Thermal engine values tweaked slightly (balanced is slightly less aggressive than before)
- Add support for user-defined frequencies for all app engine profiles (battery, balanced, performance)
- Introducing helix_config: An executable binary which allows much easier user configuration for Helix Engine!
v016:
- [HELIX-ENGINE]: Separate enable nodes for all parts of engine (Fixes bug when disabling parts of the engine)
- Fixed magisk module for ROM support, it should get rid of any weird bugs with Magisk now
Helix Engine v3.0:
- A f*ck ton of code optimisations to use less CPU time (much more battery friendly and less cpu intensive)
- Fixed app engine bug where thermal manager would still fight app engine under certain cases
- Slightly tweaked thermals for all thermal modes
- User lists are now moved to /system/etc/helix_engine/user
- More package names added to default lists
- Fixed other minor bugs
v015:
* f4837d639b3 - [HELIX-ENGINE]: Add support to enable/disable dynamic throttlemode <ZeroInfinity>
* b4e186792e9 - DEFCONFIG: Added more exFAT related lines <ZeroInfinity>
* 89f562db4d0 - [HELIX-ENGINE]: Change implementation of user-defined app engine lists <ZeroInfinity>
* 21e91a04d2c - [HELIX-ENGINE]: Add sysfs node for user app list <ZeroInfinity>
* 8dd27f4a06b - [HELIX-ENGINE]: Added "mode" sysfs node <ZeroInfinity>
* 59c2824f7f0 - [HELIX-ENGINE] Restore powersaver sysfs node from pnpmgr <ZeroInfinity>
Helix Engine v2.0:
- Added thermal throttling modes
- Added user defined custom lists for app engine thanks to @ChronoReverse for the idea
- Added powersaver mode (links to powersaver or extreme powersaver in settings)
- Set stune to 10 top app as default for everything (to ensure smooth ui) (previously 5)
- App engine can now change adrenoboost
- Code optimisations
- More apps added to app engine lists as per user requests
- Throttle mode changes with app engine thanks to @p50kombi for the idea
- Added Dynamic Throttlemode tunable which allows users to disable throttle mode changing with app engine
- Slightly more aggressive throttling for balanced to keep temps down due to stune set to 10 now
- Fixed Helix Engine on Magisk version (set correct perms in installer now)
v014:
* Added balanced and battery tweaks from Advanced EAS Tweaks (thanks to @RogerF81 @TotallyAnxious)
* Added ZeroInfinity's personal Advanced EAS Tweaks based on battery tweaks
* Added TotallyAnxious' personal Advanced EAS Tweaks
* Added Helix Engine executable binary and necessary files in /system/helix_engine
* 2a19eb9b8e0 - [HELIX-ENGINE]: Added new sysfs node "enginecap" (19 hours ago) <ZeroInfinity>
* 0203d822b4b - [HELIX-ENGINE]: Added more sysfs nodes (3 days ago) <ZeroInfinity>
* 96811d98170 - [HELIX-ENGINE]: Initial kernel integration (4 days ago) <ZeroInfinity>
* 0e51404a512 - exfat: ported driver from Dorimanx's OP3T kernel (9 days ago) <ZeroInfinity>
* 0963424716b - cpufreq_pwrutilx: Remove display_on() API (9 days ago) <ZeroInfinity>
* 8027127f24f - Revert "Add exfat no-fuse" (11 days ago) <ZeroInfinity>
* REBUILT KERNEL FROM STOCK HTC SOURCE AGAIN (much cleaner now)
v013:
* b42fad1 cpufreq_pwrutilx: Upgrade pwrutil to pwrutilx [ZeroInfinity]
* 3604dc3 schedtune: Use display_on API to prevent boosting when screen off [ZeroInfinity]
* 682b3e8 cpufreq_pwrutil: Force big cluster to use min freq during screen off regardless of load [ZeroInfinity]
* ed71a42 cpufreq_pwrutil: Remove utilboost [ZeroInfinity]
* 942e8ea cpufreq_pwrutil: disable utilboost, mincap, cap big cluster to minimum freq on suspend [ZeroInfinity]
v012:
* b166c29 cpufreq_pwrutil: Introduce Load Dependent Minimum Frequency Capping [ZeroInfinity]
* 674bf02 cpufreq_pwrutil: Separate utilboost calculation from get next freq formula [ZeroInfinity]
* 0935b73 sched: freq: Reevaluate throttle if frequency requested changes [Joel Fernandes]
* 8b49109 sched: rt: Fix broken sync wakeup logic [Joel Fernandes]
* c786268 sched: Add back capacity margin in sched_freq_tick_walt [Joel Fernandes]
* 892d614 sched: Use schedtune boosted WALT signal for RT [Joel Fernandes]
* 9ce77da sched: Move schedtune boost utilization calculations to tune.h [Joel Fernandes]
* 19ae3c3 Audio RT glitch fix [DO NOT MERGE]. [Srinath Sridharan]
* d2401ab cpufreq_sched: Fix capacity over accounting. [Srinath Sridharan]
* 93dc2b8 sched/rt: rt cpu selection integration with EAS. [Srinath Sridharan]
* 9ebf753 DEFCONFIG: Disable Capacity Clamping [ZeroInfinity]
* 7e47764 Revert "cpufreq: schedutil: ignore the sugov kthread for frequencies selections" [ZeroInfinity]
* f1518ff Revert "cpufreq: schedutil: ensure max frequency while running RT/DL tasks" [ZeroInfinity]
* e693634 Revert "cpufreq: schedutil: relax rate-limiting while running RT/DL tasks" [ZeroInfinity]
* 6a03559 Revert "cpufreq: schedutil: avoid utilisation update when not necessary" [ZeroInfinity]
* 858f726 Revert "sched/rt: fast switch to maximum frequency when RT tasks are scheduled" [ZeroInfinity]
* c84a2df Revert "cpufreq_pwrutil: Update governor with new schedutil patches" [ZeroInfinity]
* 361d5a1 Revert "DEFCONFIG: Enable CPU_BOOST" [ZeroInfinity]
v011:
* 7025fb4 cpufreq_pwrutil: Default utilboost to 0 [ZeroInfinity]
* 69b314e DEFCONFIG: Disable WALT [ZeroInfinity]
* f6a19de cpufreq_helix_schedutil: Deprecated [ZeroInfinity]
* 49e3761 DTS: MSM8996: EAS Energy Model Change [RenderBroken]
* a658e35 Revert "New Energy Model thanks to @Kyuubi10" [ZeroInfinity]
* 32369c7 DEFCONFIG: Enable CPU_BOOST [ZeroInfinity]
* ce0b5de cpufreq_pwrutil: Update governor with new schedutil patches [ZeroInfinity]
* 9e301d5 trace: add support for boot trace clock [Tim Murray]
* 23a169d cpufreq: cpu-boost: don't boost if input_boost_ms is <= 0 [Francisco Franco]
* 14f8d3b cpufreq: cpu-boost: export input_boost_enable to userspace [franciscofranco]
* 2d11abd cpufreq: cpu-boost: Remove migration sync boost [Junjie Wu]
* 88ffb0b cpufreq: cpu-boost: Use one work to remove input boost for all CPUs [Rohit Gupta]
* 82f33f3 cpufreq: cpu-boost: Support separate input_boost_freq for different CPUs [Junjie Wu]
* 81f59f4 cpufreq: cpu-boost: Make the code 64 bit compatible [Rohit Gupta]
* 7cae16c cpufreq: cpu-boost: Use interruptible wait to not affect load average [Swetha Chikkaboraiah]
* 982bd86 cpufreq: cpu-boost: Consider only task load to decide on sync frequency [Girish S Ghongdemath]
* 76eba85 cpufreq: cpu-boost: Handle wakeup hints received for foreground tasks [Rohit Gupta]
* aabbb34 cpufreq: cpu-boost: Introduce scheduler assisted load based syncs [Rohit Gupta]
* f539a99 cpufreq: cpu-boost: Re-issue boosts above minimum frequency [Patrick Cain]
* 55a52a2 cpufreq: cpu-boost: Don't register for cpufreq notifiers too early [Saravana Kannan]
* 02302fa cpufreq: cpu-boost: Fix deadlock in wake_up of sync threads [Saravana Kannan]
* d3f194b cpufreq: cpu-boost: Fix queue_delayed_work_on() race with hotplug [Saravana Kannan]
* d0e5c17 cpufreq: cpu-boost: Resolve deadlock when waking up sync thread [Srivatsa Vaddagiri]
* 263eefa cpufreq: Add Input Boost feature to the cpu-boost driver [Rohit Gupta]
* 5b49acd cpufreq: Add a sync limit to cpu-boost [Rohit Gupta]
* b9c1495 cpufreq: cpu-boost: Add cpu-boost driver [Saravana Kannan]
* 1b9a8ab sched/rt: fast switch to maximum frequency when RT tasks are scheduled [Patrick Bellasi]
* d82ee60 cpufreq: schedutil: avoid utilisation update when not necessary [Patrick Bellasi]
* 2b5a28f cpufreq: schedutil: relax rate-limiting while running RT/DL tasks [Patrick Bellasi]
* fecdcac cpufreq: schedutil: ensure max frequency while running RT/DL tasks [Patrick Bellasi]
* d2f4a56 cpufreq: schedutil: ignore the sugov kthread for frequencies selections [Patrick Bellasi]
* aabbb34 cpufreq: cpu-boost: Introduce scheduler assisted load based syncs [Rohit Gupta]
* f539a99 cpufreq: cpu-boost: Re-issue boosts above minimum frequency [Patrick Cain]
* 55a52a2 cpufreq: cpu-boost: Don't register for cpufreq notifiers too early [Saravana Kannan]
* 02302fa cpufreq: cpu-boost: Fix deadlock in wake_up of sync threads [Saravana Kannan]
* d3f194b cpufreq: cpu-boost: Fix queue_delayed_work_on() race with hotplug [Saravana Kannan]
* d0e5c17 cpufreq: cpu-boost: Resolve deadlock when waking up sync thread [Srivatsa Vaddagiri]
* 263eefa cpufreq: Add Input Boost feature to the cpu-boost driver [Rohit Gupta]
* 5b49acd cpufreq: Add a sync limit to cpu-boost [Rohit Gupta]
* b9c1495 cpufreq: cpu-boost: Add cpu-boost driver [Saravana Kannan]
* 1b9a8ab sched/rt: fast switch to maximum frequency when RT tasks are scheduled [Patrick Bellasi]
* d82ee60 cpufreq: schedutil: avoid utilisation update when not necessary [Patrick Bellasi]
* d82ee60 cpufreq: schedutil: avoid utilisation update when not necessary [Patrick Bellasi]
* 2b5a28f cpufreq: schedutil: relax rate-limiting while running RT/DL tasks [Patrick Bellasi]
* fecdcac cpufreq: schedutil: ensure max frequency while running RT/DL tasks [Patrick Bellasi]
* d2f4a56 cpufreq: schedutil: ignore the sugov kthread for frequencies selections [Patrick Bellasi]
* 62dec04 cpufreq_pwrutil: Increase max utilboost value and tweak defaults [ZeroInfinity]
* 3949f45 cpufreq_pwrutil: use boosted_cpu_util for PELT to match WALT [ZeroInfinity]
* 1d12c0a EXPERIMENTAL: sched/fair: Use energy_diff for tasks where appropriate [Chris Redpath]
* 7de0e7b EXPERIMENTAL: sched/fair: Reduce balance interval to 0 if we have a misfit task [Leo Yan]
* 275418c EXPERIMENTAL: events: add tracpoint for energy/performance variations [Patrick Bellasi]
* 6472522 EXPERIMENTAL: events: add tracepoint for energy_diff [Patrick Bellasi]
* 0017bf5 EXPERIMENTAL: sched/fair: add support to compute perf/energy variations [Patrick Bellasi]
* 5318ff4 EXPERIMENTAL: sched/fair: make find_new_capacity() to honour the task's boost [Patrick Bellasi]
* 4c702c2 EXPERIMENTAL: sched/fair: use energy_env as single argument [Patrick Bellasi]
* 61c81e7 EXPERIMENTAL: sched/fair: add ENERGY_FILTER sched_feature [Patrick Bellasi]
* 21f110d EXPERIMENTAL: FROMLIST: sched/fair: kick nohz idle balance for misfit task [Chris Redpath]
* dab6f52 sched/tune: don't use schedtune before it is ready [Chris Redpath]
* aaf19575 sched/fair: use SCHED_CAPACITY_SCALE for energy normalization [Patrick Bellasi]
* 367fed9 sched/{fair,tune}: use reciprocal_value to compute boost margin [Patrick Bellasi]
* 3ab0323 sched/tune: Initialize raw_spin_lock in boosted_groups [Srinath Sridharan]
* 857dbc9 sched/tune: report when SchedTune has not been initialized [Patrick Bellasi]
* 4d6437b sched/tune: fix sched_energy_diff tracepoint [Chris Redpath]
* eebdd9e sched/tune: increase group count to 5 [Chris Redpath]
* 6984736 cpufreq/schedutil: use boosted_cpu_util for PELT to match WALT [Chris Redpath]
* 33dac50 sched/fair: Fix sched_group_energy() to support per-cpu capacity states [Morten Rasmussen]
* eb79250 sched/fair: discount task contribution to find CPU with lowest utilization [Valentin Schneider]
* cbce47c sched/fair: ensure utilization signals are synchronized before use [Chris Redpath]
* 1545d32 sched/walt: Add CONFIG_USE_WALT to change default usage of WALT [Chris Redpath]
v010_r2:
* aa59577 cpufreq_pwrutil: Unify cluster-dependent governors into one [ZeroInfinity]
* Fixed thermal-manager script - fully working now!
v010_r1:
* 619427e Revert "drivers: wakeup: add options to disable timerfd, netlink and wlan wakelocks" [ZeroInfinity]
* 32f5e07 Revert "wakeup: add toggles for wlan wakelocks. They are all enabled by default, it's up to the user and I provide no support if Wi-Fi stops working normally without these locks enabled. This is for advanced users" [ZeroInfinity]
* 6008e6f Revert "drivers: wakeup: more thoroughly deactivation of wakelocks" [ZeroInfinity]
* 0826e7f Revert "drivers: wakeup: run the wakelock blockers during wakeup_source activation and every resume" [ZeroInfinity]
* c0b3105 Revert "drivers: wakeup: there's no much point in running the blockers during screen on" [ZeroInfinity]
* 852d5b8 Revert "drivers: wakeup: it's pointless to output the active wakeup sources during screen on, no need to go through the rcu locks and list iterations every now and then" [ZeroInfinity]
* e6d50c0 Revert "wakeup: fix compile error + adapt for more wakelocks to disable" [ZeroInfinity]
* f76e0ee Revert "drivers: wakeup: be more thorough with blocking wakelocks" [ZeroInfinity]
v010:
* 0407f7e cpufreq_pwrutil: tweak little cluster for better performance [ZeroInfinity]
* 6fcb145 cpufreq_pwrutil: 5% util boost on big cluster [ZeroInfinity]
* d6ed778 cpufreq_helix_schedutil: Add support for max CPU frequency capping [ZeroInfinity]
* b0bce28 cpufreq_schedutil: Add support for max CPU frequency capping [ZeroInfinity]
* 575c3cf cpufreq_pwrutil: Support max frequency changes [ZeroInfinity]
* 28b1248 drivers: wakeup: be more thorough with blocking wakelocks [Francisco Franco]
* 2bfba87 cpufreq_pwrutil: Introduce new gov and deprecate energy-dcfc [ZeroInfinity]
* c0f6a99 cpufreq_energy_dcfc: Change frequency calculation according to cluster [ZeroInfinity]
* f381792 cpufreq_energy_dcfc: Use load2_cap * util / max [ZeroInfinity]
* 516320a wakeup: fix compile error + adapt for more wakelocks to disable [ZeroInfinity]
* 287e941 cpufreq_energy_dcfc: Optimize for schedtune v3 (capacity clamping) [ZeroInfinity]
* 45b6f3c drivers: wakeup: it's pointless to output the active wakeup sources during screen on, no need to go through the rcu locks and list iterations every now and then [Francisco Franco]
* b5f8609 drivers: wakeup: there's no much point in running the blockers during screen on [Francisco Franco]
* 8692581 drivers: wakeup: run the wakelock blockers during wakeup_source activation and every resume [Francisco Franco]
* e6ee126 drivers: wakeup: more thoroughly deactivation of wakelocks [Francisco Franco]
* Added capacity clamping (schedtune v3) ROM support (thanks to @RenderBroken and @joshuous)
* Added thermal-manager service script (thanks to @ivicask and @nkk71)
* Tuned capacity clamping to get a balance of performance and battery (although pulling down status bar may be laggy sometimes)
v009_r1:
* 91fbcb4 cpufreq_energy_dcfc: final tweaks, as balanced as it can be [ZeroInfinity]
* 1ab31e9 Do not allow texfat module to load [ZeroInfinity]
* 7a8bc55 cpufreq_energy_dcfc: Change some lines to make the governor work better [ZeroInfinity]
v009 (Had to revert some changes so went on a new branch to redo some commits):
* 0a2f8b2 cpufreq_energy_dcfc: Implement formula changing by @Kyuubi10 [ZeroInfinity]
* 6dabc23 cpufreq_helix_schedutil: Fix load calculation [ZeroInfinity]
* 4e35b65 cpufreq_energy_dcfc: Fix load calculation [ZeroInfinity]
* d81bcca DEFCONFIG: Enable capacity clamping [ZeroInfinity]
* f74b731 cpufreq_helix_schedutil: fix small mistake [ZeroInfinity]
* 2ca352d cpufreq_energy-dcfc: Energy-DCFC 2.0 [ZeroInfinity]
* 902730d cpufreq_helix_schedutil: Helix_schedutil 2.0 [ZeroInfinity]
* 78b2fc3 sched/{core,cpufreq_schedutil}: add capacity clamping for RT/DL tasks [Patrick Bellasi]
* 4de07b6 sched/{core,cpufreq_schedutil}: add capacity clamping for FAIR tasks [Patrick Bellasi]
* d5e84c1 sched/core: sync capacity_{min,max} between slow and fast paths [Patrick Bellasi]
* e61b7842 sched/core: track CPU's capacity_{min,max} [Patrick Bellasi]
* 04f9dc8 sched/core: add capacity constraints to CPU controller [Patrick Bellasi]
* 562cdd6 sched: cpufreq: add cpu to update_util_data [Steve Muckle]
* 2744d69 cpufreq: Add dvfs_possible_from_any_cpu policy flag [vireshk]
* fb2bec6 cpufreq: schedutil: reset sg_cpus's flags at IDLE enter [Patrick Bellasi]
v008:
* 55a7c81 UPSTREAM staging: ion: Fix error handling in ion_buffer_create [Rohit kumar]
* c293641 ANDROID: sched: fix duplicate sched_group_energy const specifiers [Greg Hackmann]
* 834e64c drivers: wakeup: add options to disable timerfd, netlink and wlan wakelocks [Francisco Franco]
* c8d5019 cpufreq_helix_schedutil: Introduce schedutil formula modifications [ZeroInfinity]
* 8574753 cpufreq_energy_dcfc: Optimize code [ZeroInfinity]
v007:
* ecee901 cpufreq_energy-dcfc: Add new governor [ZeroInfinity]
* 235a893 cpufreq_helix_schedutil: Get sg_cpu instead of using cpumask [ZeroInfinity]
v006:
* 3855be7 cpufreq_helix_schedutil: Update governor to latest schedutil patches [ZeroInfinity]
* 011a079 sched: fixup schedutil patches from EAS-Dev [DespairFactor]
* b1bfc11 sched: cpufreq: enable remote sched cpufreq callbacks [vireshk]
* f162008 sched: cpufreq: detect, process remote callbacks [vireshk]
* a2c41bd sched: cpufreq: remove smp_processor_id() in remote paths [vireshk]
* 954b1d4 sched: cpufreq: extend irq work to support fast switches [vireshk]
* b7f86ef cpufreq: Add dvfs_possible_from_any_cpu policy flag [vireshk]
* 9b7b012 sched: cpufreq: add cpu to update_util_data [Steve Muckle]
* d6ce220 cpufreq: schedutil: ignore the sugov kthread for frequencies selections [Patrick Bellasi]
* 68208fd cpufreq: schedutil: reset sg_cpus's flags at IDLE enter [Patrick Bellasi]
* 3cbf72a fixup: modify ef6728ad to use correct cpu_util signal [Chris Redpath]
* 745b95e cpufreq/schedutil: Fix schedutil's 'default governor' machinery [Chris Redpath]
* 8b29d59 sched/fair: remove task util from own cpu when placing waking task [Chris Redpath]
* f54c3cc trace:sched: Make util_avg in load_avg trace reflect PELT/WALT as used [Chris Redpath]
* 4717b37 Experimental!: sched/fair: Add eas (& cas) specific rq, sd and task stats [Dietmar Eggemann]
v005:
Add exfat no-fuse
mmc: move to a SCHED_FIFO thread
[PATCH] disable crc check
Enable F2FS support
Allow stock crypt and texfat modules to load (although texfat loading causes non-booting kernel so I was forced to rename this upon installing the kernel.)
v004 - Initial PUBLIC release
Integration with Helix Engine and how to use on any device with an EAS kernel
-----------------------------------------------------------------------------------------------------------------
If you are a developer, simply take the files in the system folder of my zip and place into your kernel/rom/whatever and make sure correct permissions are set rwxr-xr-x (chmod 755) for init.helix_engine.sh and helix_engine. The rest of the files should be rw-r--r-- (644).
If you are an advanced user, you can move the files in yourself and try it.
If you use Magisk then it will be even easier, inside the magisk folder of my kernel zip you should see a folder named "helix_engine", I have re-packaged ROM support files and split it with helix engine so now helix engine is its own module. Literally just flash helix_engine.zip in twrp or magisk and you should have helix engine working (assuming you are on an EAS kernel on your device).
YOU WILL ALSO NEED PROPER RAMDISK EDITS TO MAKE THIS RUN AUTOMATICALLY! Check in my kernel.zip, downloadedzip/kernel/kernel.zip/ramdisk/init.helix.rc, scroll all the way to the bottom and you can see the section which starts with "service helix_engine", copy that block of text into your ramdisk (could be any ramdisk file, if you have your custom kernel ramdisk then add it to the bottom of that file, if not then add to the bottom of init.rc). If you are an advanced user who knows how to unpack boot.img, edit ramdisk files, repack boot.img, then feel free to try. If not, ask a developer to add these lines for you.
FYI This will ONLY work on EAS kernels due to schedtune.boost and schedutil/schedutil-based governors. There is no customizability yet, everything is currently hardcoded into the binary. If you are not happy with the values currently set, you will have to wait until I have more free time to add back customizability features.
NOTE: Due to SELinux, we cannot have the binary run by itself as a service in the ramdisk. I could only get this to work by adding a helper script which executes the binary every cycle. However due to this, the rate of execution has a latency of around 3 seconds (you can test this by debugging and measuring how long it takes for a new set of logs appear).
If you want to debug, open command prompt/terminal:
On PC: adb logcat TEAM-HELIX:I *:S
On mobile: logcat TEAM-HELIX:I *:S
If you intend to release your kernel/rom/whatever with Helix Engine, by all means go ahead, but please be sure to add me in the credits! If you have any problems, feel free to PM me.
Do not even try to steal, logcat will show [TEAM-HELIX] when Helix Engine is running and it is hard coded into the binary as well, I can easily tell if you have stolen my work or not.
Click to expand...
Click to collapse
Magisk version of HelixKernel PME EAS v012
AS OF V013 ALL VERSIONS ARE INTEGRATED INTO ONE SINGLE FLASHABLE ZIP, NO NEED TO FLASH SEPERATE FOR MAGISK SYSTEMLESS USERS
I will keep this post up for users of v012 for now.
MAGISK USERS USE INFORMATION AND DOWNLOADS BELOW
If you use magisk, you need to flash the following two files to keep your system untouched and systemless.
TO BE CLEAR, THESE FILES ARE MEANT TO BE USED ON A STOCK ROM
These files are meant to be used on stock rom, either with or without the magisk version of a rom from your favorite rom developper (Like Leedroid Magisk or Viper Magisk).
If you use a custom rom and or your system is not read only, there is no reason to use these files and it could cause conflicts with custom roms.
If you are running a custom rom and not a stock rom, please use the normal kernel file as per post #1 of this thread.
HelixKernel PME EAS Systemless V012
https://drive.google.com/open?id=0B9-84MJYFzJWMElyRGhvdTMyb2M
- The kernel only, system less so your system does not get tampered with.
HelixKernel PME EAS v012 ROM SUPPORT MODULE
https://drive.google.com/open?id=0B9-84MJYFzJWaUJtRC03Y3VpWVE
- The rom support module flashes the rom files as a magisk mod, so your rom uses them as a magisk module.
Without the rom support magisk mod, the kernel will not work optimal.
Flash both in twrp or the kernel in twrp and then the module in magisk manager, it's up to you, easiest is to flash both in twrp one after another.
The rom support file module should then show up in magisk manager, which means it works as should.
For more info on why to flash this version of the kernel, please check this post:
https://forum.xda-developers.com/showpost.php?p=71552602&postcount=252
To understand Helix_schedutil you must first understand the original schedutil algorithm.
Here it is:
next_freq = maxfreq + (maxfreq >> bitshift) * util/maxcapacity
Explanation:
The most obvious difference of this algorithm is that it moves away from the idea of scaling frequencies up or down which were used in previous generations of governors.
Instead the aim of the above algorithm is to calculate the most appropriate frequency for the TOTAL CPU load.
NOTE: This is TOTAL load on CPU, not just load for the current frequency step as Interactive used to calculate with.
Now, for you numberphiles like myself that like understanding algorithms... Let's break it down:
"util/maxcapacity = Load."
The above creates a percentage value in decimal format (80% = 0.8) which represents the TOTAL load on CPU.
the algorithm now reads the following way:
next_freq = maxfreq + (maxfreq >> bitshift) * load
"maxfreq + (maxfreq >> bitshift)"
Essentially the aim of the above is to ensure that next_freq is always a little higher than the exact value needed to cover the load.
Bitshift: (paraphrasing @ZeroInfinity) in programming the ">>" mathematical function allows for shifting the binary values towards the direction of the arrows by "N" times.
In this case it is towards the right.
The relationship between "N" and the calculation in the "()" is as follows:
Bitshift = 1 = maxfreq/2
Bitshift = 2 = maxfreq/4
Bitshift = 3 = maxfreq/8
If the "+()" didn't exist in the algorithm, the chosen frequency would be exactly enough to cover the load.
If load is 0.6, aka 60%, all you need is a frequency = 60% of max frequency.
This would be bad since it doesn't leave any capacity/bandwidth leftover for inevitable bumps in load, nor space for EAS itself to run. Thus inevitably creating lags.
To keep a bit of free bandwidth you add "(maxfreq >> bitshift)".
Finally the problem I encountered, if bitshift = 2, then the result of the algorithm is that any load above 0.8 will result in a next_freq HIGHER than maxfreq. - This is your tipping point. As any load higher than 80% will wake up a new CPU.
Which means you have still about 20% of the CPU's max capacity being unused. Such a CPU is only 80% efficient.
Therefore by increasing bitshift to 3, the algorithm reads:
"maxfreq+(maxfreq/8)*load = next_freq"
This way you can use 89% of capacity before reaching max frequency of the CPU.
With bitshift=4 it reads:
"maxfreq+(maxfreq/16)*load = next_freq"
This allows you to use up to 94% total CPU load before reaching max frequency.
While this is great for improving efficiency at the higher frequencies, it doesn't leave enough bandwidth when calculating lower frequencies, and creates lag when load spikes at lower frequencies.
Click to expand...
Click to collapse
Helix_schedutil - UPDATE 20/3/17 (v008):
After being inspired by the concept of @ZeroInfinity's new governor - Energy-DCFC, I decided to carry out a couple of tests on HTC 10 using variations of Helix_Schedutil.
The focus was stress-testing by increasing the current frequency load above 100%. (AKA Use up all of the bandwidth of the current frequency step.)
After the testing me and Zero worked on this new version of Helix_Schedutil.
The current behaviour of the governor is the following:
- Boost frequencies when load is below Target_Load1. (Boost can be increased by DECREASING bit_shift1 value.)
- Between Target_Loads there is no bit_shift at all. The governor just uses the following algorithm instead - (max_freq*util/max = next_freq)
- Loads higher than Target_Load2 will be THROTTLED. Bit_Shift2 here is subtracted rather than added. (Throttle effect can be increased by DECREASING bit_shift2 value.)
The result is that low freqs have spare bandwidth to avoid lags, middle frequencies leave no extra bandwidth at all, while higher frequencies are throttled to save battery.
Another focus of the governor update is to reduce overhead as much as possible. This results in a very responsive governor which isn't overly demanding on battery life.
Schedtune.boost values recommended for use with this governor:
Top_App: 5
Foreground: -50
Background: -50
Global: -50
Energy-DCFC is still recommended for those who prefer battery life over performance, but if you prefer greater performance then this governor can be used without making you feel guilty about wasting battery.
Click to expand...
Click to collapse
Correcting a misconception:
Some people describe tipping point as the load threshold which the governor uses to decide whether to ramp up or down.
While if you look into the behaviour of the governor it may appear that it behaves in such a way, it is technically incorrect.
As I mentioned previously this new algorithm moves away from the behaviour of legacy governor algorithms which focus on the current frequency load.
This governor does no ramping up or down.
It isn't even aware of the current frequency load, as it only knows the load relative to max capacity.
The misconception appears based on a property of the algorithm that results in a consistent load at any chosen frequency. This is a coincidental result of the algorithm, even though the algorithm is completely unaware of it.
Tipping point is in fact the load percentage at which the CPU reaches max frequency and any increase in load forces it to wake up a new core.
A collection of useful informative links about EAS:
1- My insight about schedutil, sched and HMP's Interactive governor behaviour. Despite the fact that my write up was dependent on the EAS implementation in my OnePlus 3, I think it is fairly relevant since I wasn't having any extra boost drivers or any PowerHAL changes at the time. In fact, I need to rewrite my analysis for the OnePlus 3 now since I got some powerHAL changes
More to come
F.A.Q.
1. Will this kernel work with LOS/AOSP-based roms?
A. Yes, starting from version v18 we support AOSP/LOS-based roms. We've tested LOS and AOSP Nougat and Oreo roms and they like they should.
2. I have corrupted SDcard!
A. A temporary fix would be to reboot to recovery, mount USB storage, un-mount and reboot to system. Might be an issue with the exFAT nofuse driver.
Reserved
Sent from my HTC 10 using Tapatalk
There's nothing that should prevent Verizon support correct? Or at least I couldn't see anything on your git. If it's more of the issue of having no Verizon testers, then I'd be happy to clean flash my rom to test it.
TotallyAnxious said:
There's nothing that should prevent Verizon support correct? Or at least I couldn't see anything on your git. If it's more of the issue of having no Verizon testers, then I'd be happy to clean flash my rom to test it.
Click to expand...
Click to collapse
If you want to test it for me you may, I don't have any Sprint of Verizon users available but if the kernel is bugged on those devices then it may take some time for me to support them.
I installed it and I have the corrupt card problem
antonio82 said:
I installed it and I have the corrupt card problem
Click to expand...
Click to collapse
what format is your card? exFAT, nor FAT32 formats should have problems with the kernel as it is based on the official source, I have not touched exFAT at all in fact.
antonio82 said:
I installed it and I have the corrupt card problem
Click to expand...
Click to collapse
Provide more information​ like ROM, recovery and everything else you've installed. And like zero said, there should be no problem as it is based on stock source and no exfat stuff touched
and please get us a log!
Sent from my HTC 10 using XDA Labs
antonio82 said:
I installed it and I have the corrupt card problem
Click to expand...
Click to collapse
Right, @DeeZZ_NuuZZ confirmed exFAT not working even though I didn't even touch anything exFAT related in the kernel... Will try to find a solution for this.
The format of the card I do not know because I put the card and I have not modified the card, I have the rom ice and the twrp 3.0.3-9
antonio82 said:
The format of the card I do not know because I put the card and I have not modified the card, I have the rom ice and the twrp 3.0.3-9
Click to expand...
Click to collapse
yeah it must be exFAT. Don't worry though, your card isn't actually corrupted, just the OS could not read it due to something wrong either in kernel or something wrong with texfat module. I advise you restore to your previous kernel until I've fixed this.
Kyuubi10 said:
3rd Reserved
In depth description of Helix_schedutil's algorithm to come here
Until then, reference @ZeroInfinity's first post.
Click to expand...
Click to collapse
Please do! I didn't really understand much in #2 Post
ZeroInfinity said:
yeah it must be exFAT. Don't worry though, your card isn't actually corrupted, just the OS could not read it due to something wrong either in kernel or something wrong with texfat module. I advise you restore to your previous kernel until I've fixed this.
Click to expand...
Click to collapse
I will keep it installed to see the operation and when it is corrected I will install it again
So I installed the kernel and rebooted and Magisk said it was uninstalled. I reinstalled the Magisk zip and everything was working again, but EXKM didn't pick up any EAS governor's beside the Helix one. I then ran the EAS tuning script from totally_anxious and it couldn't find any of the EAS tunables. Is this what the Magisk version will be for?
munkyvirus said:
So I installed the kernel and rebooted and Magisk said it was uninstalled. I reinstalled the Magisk zip and everything was working again, but EXKM didn't pick up any EAS governor's beside the Helix one. I then ran the EAS tuning script from totally_anxious and it couldn't find any of the EAS tunables. Is this what the Magisk version will be for?
Click to expand...
Click to collapse
Magisk versions in post 3 as said below the download link which I'm still waiting for @p50kombi to upload when he's free.
ZeroInfinity said:
If you want to test it for me you may, I don't have any Sprint of Verizon users available but if the kernel is bugged on those devices then it may take some time for me to support them.
Click to expand...
Click to collapse
VZW HTC 10 here, good so far, no SD card problems, magisk is fine, gonna run it and see how it does battery wise.

Categories

Resources