[Android 4.4+] [KERNEL] [OC] Nui kernel for CM ROMs

Funny boot logo?

  • Yes!

    Votes: 38 35.5%
  • No. Stock boot logo

    Votes: 69 64.5%

  • Total voters
    107

thichthat

Senior Member
Nov 1, 2012
464
810
0
Hi everyone! After a couple of days working on ubuntu, I have built my own kernel

If you enjoy my work, please buy me a coffee. Thanks: http://nui.pe.hu/donate.html
Download here: https://play.google.com/store/apps/details?id=com.nui.kernel

I AM A STUDENT, NOT A DEVELOPER. I CANNOT FIX ALL ERRORS. SO PLEASE DON'T GIVE MY APP 1 OR 2 STARS.


FAQs

I can't flash zip file!
You must install TWRP. It doesn't work with CM recovery

My phone gets bootloop. What can I do?
You can use fastboot to flash stock kernel. Or just easily re-flash ROM.

This kernel makes my phone runs slow!
I can't help you. It works fine for me. I use CM's source code and I just add some feature.

Can you add/remove/fix blah blah feature?
OK. I'll try. But first I must do my homework. I'm a student, not a developer :(

Do I need to move data from internal storage to sdcard before disabling it ?
Yes. But if you forgot, don't worry. All your data is still in /data/media/0



See post #2 for more infomation


Changelog:
V6.1
Update FAQs
Update built-in TWRP to 3.0.0 (thanks to cucumber09)
Enable pressure report for touch screen (may not accurate)
Fix delay for guide on boot logo
Sync with newest CM13 kernel source.

V6.0
Re-enable F2FS
Use uncompressed main ramdisk (only gzip TWRP ramdisk)
Sync with CM13 kernel source
Underclock to 192MHz (may increase standby time)
Optimize voltage value for CPU
Increase CPU bus speed
Fix/update extract_elf_ramdisk (thanks to cucumber09)

V5.9
Add fade animation for flash torch on/off (in Tweaks > More)
Fix recording video error
Sync with CyanogenMod kernel source
App: fix FC in screen/brightness settings

V5.8
Add an awesome fade animation for LED notification
Sync with Ron's CM13 kernel source
App: Remove options for KSM and brightness lock

V5.7
Fix some FCs in the app
Disable KSM for fixing random reboot
Update disable internal storage for android 6.0+
Option for offline charging (Tweaks > Boot options)

V5.6
Add loading recovery.cpio from /cache
Add tips in FAQ menu
Add KSM support (Tweaks > RAM tweaks)
Follow Google's guidelines for Low RAM devices
Disable offline charging by default
Edge gesture: Custom action for menu gesture, increase its sensitive
Always enable dt2w/s2w vibration

V5.5
Add earpiece volume gain
Support camera button on selfie stick (in Tweaks > Buttons)
Fix swipe to control music
Fix FM radio

V5.4
Kernel:
Full support for android 6.0 marshmallow
Optimize sensor drivers (gravity, light and compass driver)
Press volume up/down to answer/decline incoming call
Fix swipe to control music
Fix speaker gain being overwritten randomly
App:
Fix sound settings can't be restored on boot

V5.3
Fix Edge gesture
Add function to Backup/Restore settings.
New "Edge gesture" function (see more in Tweak menu)
Add volume control from kernel level (for mic, speaker and headset)
Many optimizations for touch screen driver
Add tweaks for camera
Button: add "recent" button action
App: Rearrange tweaks menu

V5.2
Kernel:
GCC 5.2.0
Removed kexec hard-boot (it's broken and I can't fix)
Tweaked low memory killer module
Workaround for mobile data issue
App:
Allow opening tweak menu without updating to newest version
Rearrange some settings in "More" section in tweak menu
Add tweaks for Android side

V5.1
Now use GCC 5.1.0
Add Croatia translation (Thanks to Petar Cerin)
Improve/fix installer script (compatible with more ROMs)
Improvements for touch screen driver and dt2w/s2w:
+ Optimize code (save CPU cycles)
+ Fix screen freeze issue (for dt2w/s2w)
+ Removed debug code
Workaround for init.d
Disable mpdecision by default

V5.0
FIX SYSTEMUI FCS (tested on Archidroid)
Add Hindi translation (thanks to Garv Maggu)
Fix shortcuts on home screen
Remove many unused built-in drivers (IR control, PS2 mouse, TV tuner,...)
Add interactive GPU governor
Enable H264 High profile codec (Experimental)
Remove debug messages in wlan and LED driver (speed up a bit)
LED blinking for boot decision (can be disabled in tweaks menu)

V4.9
Add Vietnamese translation (thanks to Tuan Loc)
Fix some English grammar error (thanks to Garv Maggu)
Add more shortcut for home screen
Fix mobile signal/SIM card for CM11 (Thanks to PecanCM)
New method to choose boot type
No delay after choosing Recovery boot
Add HYPER cpu governor
"Very dim" brightness now a bit dimmer
Prevent audio glitches for music playback (experimental, enable in accessibility service)

V4.8
Add kexec/MultiROM support (read post #2)
Add swipe to control music playback on screen off

V4.7
Governors: remove NUIOndemand, add intellidemand
Fix forever deep sleep on dt2w/s2w
Add GPU Control
Add CPU control and power menu shortcuts for launcher

V4.6
Built-in No-frills CPU Control (thanks to Sineo)
Add option to control Dynamic Fsync (disabled by default)
SELinux set to default (Enforcing)
Add overclock levels

V4.5
Downgrade to GCC 4.9.3 (to fix dt2w/s2w and some problems with ril)
Add intellimm governor
Set noatime for all partitions (I/O boost)
Fix disable internal storage mod for dual SIM (check post #2 on xda)
Remove automatic install method (we only have to flash ONE zip)
Improve algorithm in tweaks menu

V4.4
Fix touch screen freezing cause by dt2w/s2w
Option to force brightness to a specific value
Improve algorithm in tweaks menu

V4.3
GCC toolchain 4.9.4 linaro
Auto check for update when app is opened
Add swipe to wake (still for testing, sometimes need to swipe twice)
Merge new changes from CM (Except removing logger)
SElinux set to permissive by default
Add some help messages in tweak menu
Add MD5 checker for installer

V4.2
Tweaks for camera and focus button when screen is off
Add zen io scheduler
Update TWRP to 2.8.7.0
Option to change:
+ Sensitive of proximity sensor
+ Intensity of torch LED
+ Disable FOTA recovery
Improve dt2w:
+ Fix forever deep sleep bug (Need to test more)
+ Disable on screen edge (to prevent sliding from edge)
+ Fix some accidentally tapping case

V4.1
Add tweaks for camera and focus button
Add guide text on boot (can be disabled in tweaks menu)
Fix dt2w issue when calling

V4.0
Fix some settings cannot be saved
Fix headset volume button (in kernel level)
Add fiops io scheduler
Built-in frandom (Fast pseudo-random generator)

V3.9
Fix Settings menu can't show correct value
Add option for overclock, disable by default.
Add vibration for dt2w
Add lulzactive governor
Add fifo, tripndroid io scheduler
Hold volume up and press focus key to force reduce brightness (useful when you get "Android is upgrading" for a long time)
Update FAQs
Fix all FCs in Settings

V3.8
Fix lag when CPU goes above 1GHz. You phone will be very smooth.
Re-enable mpdecision (fix problem with sdcard)
Improve double tap to wake:
+ Fix battery drain
+ Add half screen mode
+ Add setting
+ Now can work in deep sleep but sometimes need to tap 4 times

V3.7
Fix sdcard not mounting on some ROMs
Fix Settings menu
Add manually install method
Fix/update NUIondemand
Fix all problem with zip method
Disable normal install method
Clean source code and toolchain (may fix problem with mounting sdcard and random reboot)

V3.6
Option to on/off vibration on boot decision
Fix FC in settings
Add NUIondemand governor (still for testing, read FAQs)
Re-built all kernel object files (may fix problem with mounting sdcard)

V3.5
Add custom vibration intensity for haptic feedback
Re-add CM11 support
Add init.d support
Added installer via zip method
Fixed FC in settings
Add FAQs
Fix install algorithm
Add more information for reporting

V3.4
Remove support for CM11
Add kernel tweaks
Revert adjusting microphone volume
Mount system rw at boot

V3.3
Disable mpdecision by default
Revert using focus button as camera button
Add exFAT and f2fs file system

V3.2
Fix bootloop for update on devices using Disable Internal Storage mod
Optimize init.sh script
Reduce brightness when booting (Save battery)
Built-in undervolt script (set on every boot)
Add Lionheart governor
Add sioplus iosched
Increase microphone volume

V3.1
Fix apk file not recognize Xperia M dual
Fix camera button not working on all CM roms (Open camera app and try it yourself!)
Add sio iosched
Add SmartassV2 governor (UNSTABLE, I need developers to help me)
Merge newest commits from CM

V3.0
Stock boot logo
Build with GCC 4.9.3 linaro
New way to install (via apk file)
New way to reboot: press and hold power button for 8 secs
Re-enable FOTA recovery (read post #2)
Re-enable Dynamic FSync 2.0
Sync with CM's source code

V2.5
Based on CM12.1 branch from CM's source code
New funny boot logo!
Fixed beeeeeeeeeeeep noise when recording audio
Disable intelli plug (to control individual cores)
New boot script (add vibrations for boot decision)
Add 2ndrom function (still for testing)
Add new method for disabling internal storage

V2.0
Use SXD's source code (from here: https://github.com/NoelMacwan/SXDNickiLolly/ )
GCC 4.8
Overclock to 1.7GHz
Fixed dt2w (EXPERIMENTAL, MAY CAUSE BATTERY DRAIN)
Add intelli_plug, fsync, fstrim,...
intelli_plug tweak
Add support for CM12.1

V1.1:
Build with gcc tool 4.8.5 (thanks to @shrisangram )
Add doubletap2wake function (Worked but not stable!)
Disable mpdecision by default
Read ahead cache size to from 128KB to 2048KB

V1.0:
Stock boot logo
Overclocked to 1.6GHz (thanks to @FindYanot )
Added volt control and undervolt (thanks to @icoolguy1995 )
reduced min brightness level
Added TWRP 2.8.3.0 (with MTP support)
Added support for patch.cpio (for cm11 kernel patch)
When boot, blue led for boot decision and white led for TWRP (this is not an extra feature. I added it to test my codes)
Build with gcc tool 4.7 (Sorry, I have problems compiling with 4.8 and 4.9)


XDA:DevDB Information
[Android 4.4+] [KERNEL] [OC] Nui kernel for CM ROMs, Kernel for the Sony Xperia M

Contributors
thichthat, Garv Maggu, ndrancs
Source Code: https://github.com/ngxson/android_kernel_sony_msm8x27

Kernel Special Features:

Version Information
Status: Stable
Stable Release Date: 2015-06-08

Created 2015-03-30
Last Updated 2016-02-15
 
Last edited:

thichthat

Senior Member
Nov 1, 2012
464
810
0
Reserved

Useful information:

See 3rd post for disabling internal storage

List of old versions can be found here: https://drive.google.com/folderview?id=0B2-0MyP06DN5LWs1YWZudm5La3M&usp=sharing

Manually install method: If you have problem with installing via apk file, try this method:
- Extract all files zip files from apk file
- In apk/assets/nui you will see a zip file. Extract and copy it to your phone.
- Reboot to recovery and flash method_zip.zip
- Reboot again.
Done!

Recommended setting:

  • Normal usage:
    Use built-in undervolt table
    CPU: max=1026MHz
    governor=intellidemand
    GPU: max=320MHz
    io sched=zen
  • Battery saving:
    CPU: max=810MHz
    governor=conservative
  • Hard gaming:
    Set all to max. It's easy for you.
 
Last edited:

thichthat

Senior Member
Nov 1, 2012
464
810
0
MOD: Disable emulated storage (internal storage)

MOD: Disable emulated storage (internal storage)

FOR ANDROID 6.0+: http://forum.xda-developers.com/showpost.php?p=63787343&postcount=845

This mod works on almost roms. I tested it on CM11, CM12, Bliss pop v2.3, AICP, CM12.1 (beta 2 and 3), Flex OS and XenonHD
Update: Maybe not works on CM12.1 nightly

Unlike init.d method, this method is more stable. It will disable the emulated storage and change default storage to your real sdcard.

To use this mod, you must have:
- A computer running Windows
- Java Runtime (jre) installed (to use apktool)
- Your xperia M using NUI kernel
- You have to move ALL data from internal storage to sdcard before using this mod
- Download this file: http://www.mediafire.com/download/rj3vnokcbl8eyit/disable_emulated_storage_20150917_2.zip

Update log:
9/17/2015: Update apktool to v2.0.1. Fix problem on some nightly builds. Add zip align tool.
6/27/2015: Use 7z instead of zip1.exe
7/29/2015: Fix for dual SIM
7/30/2015: Adapted to v4.5


Guide:
  • Extract files from disable_emulated_storage.zip
  • Run 1Pulling_Files.bat and follow the instructions
  • After running 2Patching.bat, 3 files named backup.zip, NUI_MOD.zip and NUI_MOD_1.zip are generated
  • Flash NUI_MOD.zip
  • If it doesn't work, flash NUI_MOD_1.zip
  • If both files don't work, flash backup.zip
Enjoy! ;)

Notice:
  • If you want to remove your sdcard, turn off phone first.
  • Wiping dalvik cache is recommend

Pre-built file (just flash it and enjoy):


See screenshots below:
 

Attachments

Last edited:

thichthat

Senior Member
Nov 1, 2012
464
810
0
Thanks so much for this kernel! :)

What's the default voltage for any given CPU frequency and how much can we undervolt safely at 1.3Ghz for instance?



Not sent by me.
You can reboot your phone to have the default voltage value
This is my UV settings. I suggest using Kernel Tuner
From 384MHz to 702MHz I reduce 200mV
From 702 to 1.6GHz I reduce 150mV (Don't reduce more. Otherwise, your phone will reboot immediately)

Code:
  384000:   750000
  432000:   775000
  486000:   775000
  540000:   800000
  594000:   800000
  648000:   825000
  702000:   825000
  756000:   875000
  810000:   875000
  864000:   900000
  918000:   900000
  972000:   925000
1026000:   925000
1080000:   975000
1134000:   975000
1188000:  1000000
1242000:  1000000
1296000:  1025000
1350000:  1025000
1404000:  1037500
1458000:  1037500
1512000:  1050000
1620000:  1100000
 

BlackArtsInc

Senior Member
Apr 26, 2012
773
77
0
Athens
Well...as is the case with almost every OC kernel I've tried, the second core is stuck at maximum frequency. Kernel Tuner cannot make the settings stick. Any suggestions?

Not sent by me.
 

thichthat

Senior Member
Nov 1, 2012
464
810
0
Well...as is the case with almost every OC kernel I've tried, the second core is stuck at maximum frequency. Kernel Tuner cannot make the settings stick. Any suggestions?

Not sent by me.
That's because of the mpdecision included in almost qcom devices. You can try the newest Kernel Tuner 2015 (with green icon). Or you can use these command in terminal:
Code:
su
stop mpdecision
 

dastan4eva

Senior Member
Jul 28, 2014
667
150
0

thichthat

Senior Member
Nov 1, 2012
464
810
0
So I can use Kernel Tuner 2014 and be OK even after a reboot? OK thanks!

Not sent by me.
Yes. I will include this feature in the 2.0 version. So you can use other apps to set CPU

Sir

Thanks for the awesome kernel , everything works fine

Few requests

Can you check out and add commits from this kernel http://forum.xda-developers.com/xpe...rnel-thunderzap-4-1-r2-sound-control-t2390831 if you have time
Almost feature in that kernel was included in my kernel. Just enjoy the smoothness and longer battery life!
 
  • Like
Reactions: BlackArtsInc

icoolguy1995

Senior Member
Jun 22, 2012
2,187
1,502
193
HARDA
SOME REMARKS:

1) Is undervolt is really working? You know i have tried undervolting from inside ACPUCLOCK file but i didn't find any difference.
2) AFAIK mpdecision maintains clock speed disabling it will give you max freqs all the time.
3) Use intelliplug it governs frequency better than mpdecision.
 

thichthat

Senior Member
Nov 1, 2012
464
810
0
SOME REMARKS:

1) Is undervolt is really working? You know i have tried undervolting from inside ACPUCLOCK file but i didn't find any difference.
2) AFAIK mpdecision maintains clock speed disabling it will give you max freqs all the time.
3) Use intelliplug it governs frequency better than mpdecision.
There's only one method to make sure UV work: If you under volt more than 250mV and change cpu freq again, your phone will reboot immediately! That because voltage table will be read when cpu freq is changed
About the mpdecision, I've found a way to disable it. I found this code in init.qcom.rc
chown root system /sys/devices/system/cpu/mfreq
chmod 220 /sys/devices/system/cpu/mfreq
chown root system /sys/devices/system/cpu/cpu1/online
chmod 664 /sys/devices/system/cpu/cpu1/online
start mpdecision

service hostapd /system/bin/hostapd -dddd /data/hostapd/hostapd.conf
class late_start
user root
group root
Just delete this code and you'll have permission to control 2nd core.
 
Last edited:

manal.21sinha

Senior Member
Oct 30, 2013
113
30
0
Mandi, HP
Finally a fully working OC Kernel for CM12!

Been waiting for this for so long. Just installed it moments ago. FindYanot's kernel was working fine except that there was Camera and Flashlight FC issues. But no such issues in this one, so I am delighted. No other feature seems to be broken at the moment.

One question: Where to install Kernel Tuner 2015 from? Kernel Tuner 2014 was updated on Feb 28, 2015 according to Play Store, so is that gonna work as needed? (override mpdecision and set on boot)
 

thichthat

Senior Member
Nov 1, 2012
464
810
0
Been waiting for this for so long. Just installed it moments ago. FindYanot's kernel was working fine except that there was Camera and Flashlight FC issues. But no such issues in this one, so I am delighted. No other feature seems to be broken at the moment.

One question: Where to install Kernel Tuner 2015 from? Kernel Tuner 2014 was updated on Feb 28, 2015 according to Play Store, so is that gonna work as needed? (override mpdecision and set on boot)
It's KT 2014. Sorry I forgot the version.
Btw, the doubletap2wake function is now working. 2.0 version will be release soon!