CPU
- Complete "per core control" - CPU frequencies, Governors, CPU Boost
- MSM_Limiter (per core control)
- Hotplugs: Latest and greatest: AutoSMP, Bricked hotplug, MSM hotplug, Intelliplug hotplug and Alucard
- CPU Governors: Latests and greatests - Slim, SmartMax, Alucard 2.1, IntelliMM, ElementalX, ZZMoove 1.0beta7, Yankactive and IntelliActive.
- CPU Governors: Latest patches for Interactive.
- Voltage control
- Power Efficient WorkQueues
- CPUBoost: Add hotplug and Wakeup Boost and add latest patches and ability to disable from Synapse
- Additional Over Clock steps - 2342, 2419, 2457 Mhz
- Additional Lower Clock steps - 96Mhz, 146.4Mhz, 223.3Mhz.
- 300Mhz step is 268 Mhz
- PVS and Speed Level exposed using Synapse
GPU
- Simple GPU Algorithm (Add on for msm-adreno-tz by faux)
- Andreno-tz fine-tuning from Synapse
- Under clocked steps (27 and 80MHz). Choose minimum frequency and the GPU should idle at one step below it.
- Over clocked steps 487.5 and 515 MHz
- More GPU governors (and upstream fixes/patches to existing ones) [Don't use cpubw_hwmon as it crashes because of additional frequency steps)
- Latest upstream patches for devfreq, kgsl, ion.
Battery /Tweaks
- Powersuspend, State_Notifier, LCD_Notify
- Fast charge
- Arch power and Gentle fair sleepers
- Disable TZ logs
- Disable CRC
- ZRAM
- Permissive SELinux
- Disable samsung and other debugging logs
Thermal
- FranciscoFranco's thermal driver is default (Configurable through Synapse)
- Slightly aggressive thermal settings (benchmarks friendly)
IO
- IO Schedulers: Latest and greates - TripNDroid, ZEN (v2), SIOPlus, SIO, VR
- F2FS support
- Upgrade BFQ from 7r5 to 7r8
- Dynamic Fsync
- Async Fsync
- Fsync Enable/Disable (If this is disabled Dynamic Fsync is also disabled)
- Upstream patches to IO layer
- CFQ tuning (from AK kernel)
- Tweak mount options for all partitions
- Reduce swappiness to 10
Sound
- franco sound control
Display
- KCal
Net
- Enable various other TCP Congestion protocols - westwood (default), reno, bic, highspeed, hybla, htcp, vegas, veno, scalable, lp, yeah, illinois
- Tweak receive window size
Synapse / UKM
- Lot of tweaks and extra options
Install notes
- ROM and Kernel and both based on CM12.1 branches. Can be dirty flashed over CM12.1 nightlies and vice-versa.
- Anykernel version can be used with other ROMs like Slim etc.
- Kernel configuration are only supported through Synapse and custom UKM build.
- Install Kernel and UKM zips through recovery
- Install Synapse tool from Playstore
- Whenever new major features are added, you may need to install UKM zip again for new bells and whistles to appear in Synapse.
ROM Information
Compilation
CM12.1 branches (5.1.1_r18) compiled wih UBERTC-4.9.4 (GCC 4.9.4 20150720) with O3/Graphite and lots of compilation optimizations
Features
- Capacitive buttons should not glow on touching screen.
- Slim Recents
- Add wakelock blocker from LiquidSmooth project / Bliss
- Add Per-Core overlay indicator on frequency / governor (includes GPU clock as well). Please change SELinux status from "Enforcing" to "Permissive" to get temperature readings in CPU overlay
- Add network traffic speed indicators to status bar (Settings -> Statusbar)
- Add option to configure MediaScanner behavior on boot (Settings -> Storage)
- Tweak default hosts file to be an awesome ad-blocker OOTB
- Includes latest Kx kernel and CM 12.1 sources
XDA:DevDB Information Kx Kernel and ROM[SM-T320][ANYKERNEL][UKM][5.1.1][UBER][JUSTARCHI]CM12.1 [22 Sep], Kernel for the Samsung Galaxy Tab Pro 12.2, 10.1, 8.4
It works now. Here's a V2.2 Kernel with AnyKernel support. The kernel should be able to rock all kinds of ROMs now. Another change is yankactive being the default governor now.
And as a bonus UKM is also packaged along with the kernel (So just install Synapse and start rocking...)
3882b4f Disable powersuspend (Alucard stability attempts)
48f70a1 Disaale powersuspend
8716dc8 Revert "lowmemorykiller: use for_each_thread instead of buggy while_each_thread"
3145e42 cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}()
b9d5c33 cgroup: Fix use after free of cgrp (cgrp->css_sets)
7803927 cgroup: Take css_set_lock from cgroup_css_sets_empty()
4f65e18 cgroup: Fix use after free of cgrp (cgrp->css_sets)
fce8647 cgroup: Take css_set_lock from cgroup_css_sets_empty()
e7a1c15 cgroup: fail if monitored file and event_control are in different cgroup
51d767b cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}()
7fffb49 lowmemorykiller: use for_each_thread instead of buggy while_each_thread
207b0a8 msm: kgsl: Make global memory statistics atomic
623fc43 msm: kgsl: check for NULL pointer access
83a954f Fix smartmax merge derp
1be246b proc: uid: Changes the thread notifier to profile event notifier.
723777b CONFIG_UID_CPUTIME
d8611b4 crypto: msm: remove wakeup lock in qcrypto driver
158a9ce crypto: msm: Compilation flag in Kconfig For FIPS
07228f8 qcedev: msm: Remove gating of zero length packets for authentication
1201969 crypto: msm: change dev_err messages to dev_warn for reaper worker
5b2a8ae list: introduce list_next_entry() and list_prev_entry()
1d32115 crypto: msm: qcrypto: Close window during suspending for SMP
1102d96 crypto: msm: qcrypto: Update suspend resume code
4d2f9b3 crypto: msm: Add device wakeup initialization for qcrypto driver
7d75ecf crypto: msm: check potential integer overflow
f5b34f9 crypto: msm: Make changes to the reaper timer
b9506da crypto: msm: Don't enable crypto clock in PM resume
4e79d0c crypto: msm: change timer operation to fix timer list corruption
bdaec84 crypto: msm: Remove bw_reaper_timer while in suspend mode
7b53013 crypto: msm: Add support for FIPS complience
bd18761 crypto: msm: re-work qcrypto driver clk and bus management
5258949 crypto: msm: Fix SHA-1/256 zero length input data issue
a174229 crypto: msm: add suspend/resume callback for qcedev driver
8b9fb6d crypto: msm: add dynamic engine assignment support
8383c88 crypto: msm: enable rfc4309(ccm(aes)) algorithm
fbfaf95 crypto: msm: fix memory leak during algorithm registration
e930c4e crypto: msm: ota: fix possible buffer overflow issue
5ebdfdb crypto: msm: fix Off-by-one error in computation of length for strlcpy()
5f66c0a crypto: msm: Add support for multiple qcrypto devices
c5f2896 crypto: msm: add pm wakeup support for qcrypto driver
615b300 mmc: sdhci: handle long transfers more intelligently
9e1d194 mmc: sdhci: ignore interrupts when the clock is off
7a73ecf mmc: sdhci: don't spew on CRC errors
9692b21 mmc: sdhci: fix voltage transition recovery
4e61205 mmc: sdhci: fix catchall timeout calculation
ef1ab92 mmc: improve recovery behavior when SDCC is jammed
92301ea mmc: clk_scaling: add sysfs for avoiding scale down in write
596ad48 block: disable entropy contributions for nonrot devices
ab96ecb SmartMAX: Update
803167c Smartmax tweaks
3d74fd9 Added more protection during CPUFREQ_GOV_LIMITS event! Related to commit: bfdbd74029a71c4dada1240470b610fbd4221ac5
aa4ce40 cpufreq: Avoid using global variable total_cpus
1c799f6 cpufreq: prevents NULL pointer reference while all_time_in_state stats is collected.
4393f42c cpufreq: fix sleeping in atomic context when realloc freq_table for all_time_in_state
06f5aae cpufreq: Avoid using global variable total_cpus
00cde1f cpufreq: interactive:call __cpufreq_driver_target() for cur frequency
4dc08b5 msm_hotplug is now default + Some tweaks.
And yes MSM_Hotplug is now default.
Enabled LZMA compression on build, so build size is down by about 20 percent.
Lots and changes. Main theme - random32, lowmemorykiller, ext4, transparent compression, optional higher overclocks (for needy) etc..
Detailed changelog:
8f4787b Damn LZ4 doesn't fit. Too bulky kernel. Need to trim
ed3027a Revert "Revert "More overclocks. It doesn't help but let someone be happy.""
562c66a Revert "Revert "Merge remote-tracking branch 'headd/cm-12.1' into HEAD""
5bf8452 Revert "Merge remote-tracking branch 'headd/cm-12.1' into HEAD"
a075cec Revert "More overclocks. It doesn't help but let someone be happy."
33c7185 Merge remote-tracking branch 'headd/cm-12.1' into HEAD
021df95 More overclocks. It doesn't help but let someone be happy.
0972182 Revert "vsprintf: ignore %n again"
fc91ed4 mondrianwifi: defconfig: Enable BFQ cgroup support
c4a7c76 mm, oom: make dump_tasks public
f745521 sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
49e1fbe introduce for_each_thread() to replace the buggy while_each_thread()
84b0337 mm: vmpressure: allow in-kernel clients to subscribe for events
feb9013 Merge derps
96ec0cd mm: prevent to write out dirty page in CMA by may_writepage
b653bf7 mm: vmscan: If kswapd has been running too long, allow it to sleep
5fa43c1 mm: vmscan: when kswapd is awoken due to reclaim by a running task
7e9d41e memory hotplug: reset pgdat->kswapd to NULL if creating kernel thread fails
9e76de9 memcg: SQUASH: further prevent OOM with too many dirty pages
1a3ae43 mm: vmscan: clear kswapd's special reclaim powers before exiting
19800ac memcg: add memory.pressure_level events
cc49439 mm: Add notifier framework for showing memory
198066d fs: Add inode.i_compressed_size and support for FS_IMPL
1b61733 mm: fix prctl_set_vma_anon_name
29937da prctl: adds PR_SET_TIMERSLACK_PID for setting timer slack of an arbitrary thread.
7f4ffd03 mm: add a field to store names for private anonymous memory
8cdd745 Bad import
c13df6b Merge derp missing endid
3ae12bf sched: move no_new_privs into new atomic flags
5371d8d Add PR_{GET,SET}_NO_NEW_PRIVS to prevent execve from granting privs
4f11ad1 perf: Disable monitoring on setuid processes for regular users
6872c42 mm: allow arch code to control the user page table ceiling
b168bcd exec: use -ELOOP for max recursion depth
c6d76f8 exec: do not leave bprm->interp on stack
f772f83 freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD
ca74fab posix_types.h: Cleanup stale __NFDBITS and related definitions
b9de866 mm: correctly synchronize rss-counters at exit/exec
f16cc27 lowmemorykiller: adapt to vmpressure
56df38b lowmemorykiller: Do proper NULL checks
64f1643 lowmemorykiller: Run the lowmemory notifier when killing
9341835 lowmemorykiller: Dump out slab state information
094e3cb lowmemorykiller: enhance debug information
9fdd9a4 drivers: lowmemorykiller: implement task's adj rbtree
34d024f1 base
f57e50f lowmemorykiller: use for_each_thread instead of buggy while_each_thread
72b5894 drivers: lowmemorykiller: set TIF_MEMDIE before send kill sig
6947202 lowmemorykiller: Don't count swap cache pages twice
7d69e82 CONFIG_ANDROID_BG_SCAN_MEM
52cde37 BG SCAN MEM
f92b50f lowmemorykiller: Don't count reserve page twice
cbd9872 Revert "lowmemorykiller: Don't count reserve page twice"
0388e60 lowmemorykiller: Account for highmem during kswapd reclaim
e0a1aa0 staging: android: lowmemorykiller: Don't count reserved free memory
0b890dc Enable goodies
d8c2d4d fs: support task's adj rbtree
416d081 writeback: Do not sort b_io list only because of block device inode
a8abe2e proc: make oom adjustment files user read-only
b3bc816 Revert "Grants system server access to /proc/<pid>/oom_adj for Android applications."
50c5274 fs: fuse: lock the new non-CMA page before replace_page_cache_page()
1fb5b5d Revert "fs/sync: Make sync() satisfy many requests with one invocation"
fd26852 ext4: speed up truncate/unlink by not using bforget() unless needed
615eae2 ext4: add max_dir_size_kb mount option
291ffbca ext4: don't load the block bitmap for block groups which have no space
aff1af0 ext4: collapse a single extent tree block into the inode if possible
b2fa6a4 ext4: remove unreachable code after ext4_can_extents_be_merged()
3687369 ext4: remove unreachable code in ext4_can_extents_be_merged()
4abeed5 ext4: don't calculate total xattr header size unless needed
9497c0c ext4: prevent kernel panic in case of uninitialized jinode
164da49 fs: take i_mutex during prepare_binprm for set[ug]id executables
28d89b4 fs: Transparent compression v2
62866c6 fs: ext4: Support transparent compression
59008bb ext4: optimize test_root()
94d6b85 ext4: optimize starting extent in ext4_ext_rm_leaf()
39cbfb6 sync: don't block the flusher thread waiting on IO
080f5a9 Squashfs: Add LZ4 compression configuration option
7a1d496 Squashfs: add LZ4 compression support
683f718 fs/proc/task_mmu.c: don't use task->mm in m_start() and show_*map()
bbd7abf binfmt_elf: use e/frandom - do not deplete entropy
db81ffd random32: get rid of random32 all over the world - phase 2
d40ba57 vfs: fix bad hashing of dentries
5f0a354 fs/namei.c: fix: warning: 'old_path.*' may be used uninitialized in this function
aaf8f79 writeback: Fix occasional slow sync(1)
92f315a switch EXT4_IOC_MOVE_EXT to fget_light()
170054c Async I/O latency to a ssd greatly increased, 34% gain (Creds: kleikamp)
8b6c42e fs: ext4: use frandom, better for entropy
16a5be7 Revert "msm8974: fs: Transparent compression support"
e0a917e msm8974: fs: Transparent compression support
af12d95 writeback: fix writeback cache thrashing
dedb1fd writeback: fix race that cause writeback hung
31037fe VFS: Make more complete truncate operation available to CacheFiles
158b2fe cpufreq: zzmoove - scaling/zz_get_next_freq
3d9352f cpufreq: Adjust zzmoove parameters to OPO CM12.1 sources
2416a99 cpufreq: remove inline compilation for function zz_get_next_freq
89ec2da cpufreq: Update to zzmoove 1.0-beta8
c7111c5 Unused method
c9c51db picked a broken commit
4e3b949 More derps.
38d3404 Merge derp.. Grr!
7fab9b9 POWERSUSPEND: update to v1.7 cleanups and update adreno idler.
e805728 POWERSUSPEND: update to v1.7 cleanups and update adreno idler.
ce53126 switch to prandom
d602910 netfilter: nf_conntrack: fix racy timer handling with reliable events
4e065ff Use new prandom
3076550 Merge derp : random
7f6a029 random: entropy tweaks are all the rage nowadays
81e3b99 diag: Update SSIDs, event ids and log codes
8649db1 diag: Release wakeup sources properly
7e11e33 diag: Prevent suspend in Memory Device mode
7fb8c51 diag: dci: Mutex protect the list while traversal and node deletion
3b5a8c4 diag: dci: Send mode reset command to the apps processor
2de7ece random: remove warning
26d7462 random: Account for entropy loss due to overwrites
ff3d409 random: Statically compute poolbitshift, poolbytes, poolbits
1eef4b3 random: prevent add_input from doing anything
808690a random: entropy tweaks are all the rage nowadays
f39ab08 random: allow architectures to optionally define random_get_entropy()
2955ad1 random.h: declare erandom function
be192e8 random32: add prandom_u32_max and convert open coded users
3439d2b prandom: introduce prandom_bytes() and prandom_bytes_state()
7690871 klist: use same naming scheme as hlist for klist_add_after()
f3ddb4f toolchain: gcc: squashed fixes related to optimized toolchain
68f75d6 LZ4 : fix the data abort issue
70532c2 lz4: add overrun checks to lz4_uncompress_unknownoutputsize()
6bb74db lz4: fix another possible overrun
25f3897 lz4: ensure length does not wrap
a0d3bca lz4: fix compression/decompression signedness mismatch
df57800 lib/lz4: correct the LZ4 license
d41a069 lib: add lz4 compressor module
1df691d lib: add support for LZ4-compressed kernel
0948f39 decompressor: add LZ4 decompressor module
948d8ad Revert "decompressor: add LZ4 decompressor module"
8d742cd random: sprinkle e/f/prandom in places that deplete entropy often
4510f6b random32: get rid of random32 all over the world - phase 1
5839f48 random32: fixed last errors related to conversion
cabb1cd random32: use e/frandom for reseeding, and a merge fixup
b3b2adc random32: improvements to prandom_bytes
7ccea65 random32: mix in entropy from core to late initcall
0694c10 lib/random32.c: minor cleanups and kdoc fix
f15d106 random32: avoid attempt to late reseed if in the middle of seeding
705e3fa random32: use msecs_to_jiffies for reseed timer
9d89e49 random32: add __init prefix to prandom_start_seed_timer
c0b22ca random32: add test cases for taus113 implementation
0c8f395 random32: upgrade taus88 generator to taus113 from errata paper
984b8db random32: add prandom_reseed_late() and call when nonblocking pool becomes initialized
d98563a prandom: introduce prandom_bytes() and prandom_bytes_state()
8ea3673 random32: rename random32 to prandom
9609612 random32: add periodic reseeding
357bb2e rwsem-spinlock: Implement writer lock-stealing for better scalability
c027f64 lib/decompressors: fix "no limit" output buffer length
0b8b494 debug: goodbye debugs
ff44b82 decompressor: add LZ4 decompressor module
9cbcd3c ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions
a1c21aa vsprintf: ignore %n again
84d01e7 lib: cpu_rmap: avoid flushing all workqueues
3953721 random32: add prandom_reseed_late() and call when nonblocking pool becomes initialized
982fe3c remove unused random32() and srandom32()
896138e prandom: introduce prandom_bytes() and prandom_bytes_state()
16fa2cb random32: rename random32 to prandom
4a2ecb5 random: run random_int_secret_init() run after all late_initcalls
3f7b5af random: remove rand_initialize_irq()
ebf48b4 random: add new get_random_bytes_arch() function
ccac5ac random: create add_device_randomness() interface
09967f4 diag: Make DCI change not to access info from a dangling pointer
9d23d8e diag: Make fixes to diag_switch_logging
8ea1edb diag: Handle spinlock correctly
34d3c38 msm: ADSPRPC: Fix offset for input and output buffers
2d61bac hw_random: msm_rng: fix a null pointer dereference
8b405b4 crypto: msm: Add support for FIPS complience
59ee3e4 diag: Mode reset command has to be handled on APPS proc
c1f57bd msm: Update Ion and IOMMU APIs to use dma_addr_t
45bd2aa diag: Add new polling command
162f9c2 diag: dci: Add DCI support for APSS logs and events and cmd/rsp
1cef32f diag: Change format used for printing pointers
667d20a diag: Remove invalid check for payload
680bd6e diag: Add status functionality to Diag over STM command
8f5b704 usb: gadget: Remove usb_diag_free_req() API
0baa023 diag: Do not write to USB when usb is disconnected
5f5b313 Merge derp
d2ac9ab Upstream changes
c7524dd cfq-iosched: fix the setting of IOPS mode on SSDs
558d5fb block: Make CFQ default to IOPS mode on SSDs
8b31eab block, bfq: add Early Queue Merge (EQM) to BFQ-v7r8 for 3.4.0
10655f4 block: introduce the BFQ-v7r8 I/O sched for 3.4
c3c5072 block: fiops ioscheduler core
902ef6e android: drivers: workaround debugfs race in binder
21ce22d udp: fix behavior of wrong checksums
198428c fs: take i_mutex during prepare_binprm for set[ug]id executables
4847e32 netfilter: nf_conntrack: reserve two bytes for nf_ct_ext->len
27445d0 msm: kgsl: set the correct max_state
7cbbea3 PM / devfreq: Check for GPU busy time before sending the sample
9b7475f PM: devfreq: Use high priority workqueue
36f83c0 PM / devfreq: Rewrite devfreq_update_status() to fix multiple bugs
d55228a msm: kgsl: Bump the GPU frequency for long blocks of processing
1ef48b0 msm: kgsl: Report correct GPU frequency in sysfs
Profiles - Change profile_number in governor tunable to one of below:
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (1)'def' -> Default -> will set governor defaults -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (2)'ybat -> Yank Battery -> a very good battery/performance balanced setting -
* - DEV-NOTE: highly recommended! -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (3)'ybatext'-> Yank Battery Extreme -> like yank battery but focus on battery saving -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (4)'zzbat' -> ZaneZam Battery -> a more 'harsh' setting strictly focused on battery saving -
* - DEV-NOTE: might give some lags! -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (5)'zzbatp' -> ZaneZam Battery Plus -> NEW! reworked 'faster' battery setting -
* - DEV-NOTE: recommended too! -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (6)'zzopt' -> ZaneZam Optimized -> balanced setting with no focus in any direction -
* - DEV-NOTE: relict from back in the days, even though some people still like it! -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (7)'zzmod' -> ZaneZam Moderate -> NEW! setting based on 'zzopt' which has mainly (but not strictly only!) 2 cores online -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (8)'zzperf' -> ZaneZam Performance -> all you can get from zzmoove in terms of performance but still has the fast -
* - down scaling/hotplugging behaving -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (9)'zzinz' -> ZaneZam InZane -> NEW! based on performance with new insane scaling active. a new experience! -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (10)'zzgame' -> ZaneZam Gaming -> NEW! based on performance with scaling block enabled to avoid cpu overheating during gameplay -
* ------------------------------------------------------------------------------------------------------------------------------------------
* - (11)'zzrelax'-> ZaneZam Relax -> NEW! based on moderate (except hotplug settings) with relaxed sleep settings -
* ------------------------------------------------------------------------------------------------------------------------------------------
- How do I killall apps using SlimRecents
Pinch in in the recents area to close all apps.
It comes into action as soon as trigger temperature is reached. In our case I have configured it as 75. But you can change it in Synapse / Kernel adiutor.
Once triggered it throttles the CPU to following frequencies based on current temperature as shown below:
enum thermal_freqs {
FREQ_HELL = 729600, //(91 and above)
FREQ_VERY_HOT = 1036800, //(83 to 91)
FREQ_HOT = 1574400, //(78 to 83)
FREQ_WARM = 1958400 //(75 to 78)
};
So feel free to set it to 60 for a throttled but cooler device. OR set it to 80 for >=950 on geekbench3.