[KERNEL][AOSP][SM-G930F/FD/W8/S/L/K] Fire Opal Kernel 3.1.0 [Nougat]

kylothow

Senior Member
Jan 3, 2014
1,011
1,727
0
Brescia
/* This project is currently in hiatus at least until the new device and kernel trees are available and sufficiently stable. Thanks for your patience and your support. */



Welcome to the official thread for the Fire Opal Kernel project for the Galaxy S7 (SM-G930F/FD/W8/S/L/K) running AOSP-based ROMs.

The aim of this project is to provide a good alternative option to the limited stock AOSP kernel.

Thanks and Credits
> Samsung for their kernel source
> @jesec and @Fevax, 8890dev project developers and hero devices maintaners, for the device tree
> @Tkkg1994 for his clear and vast source code and scripts
> @lyapota for a few ideas
> @flar2, @UpInTheAir, @franciscofranco, @osm0sis and others for their great contributions to the community and Android

Note: the feature list refers to version 2.4.2. The new beta 3.1.0 is closer to stock, but with the new device trees things will change ;)
Features
* based on latest 8890dev kernel sources
* updated with latest Samsung kernel base (DQCG)
* custom built ramdisk based on N2G47E with Resurrection Remix tweaks
* built with Linaro Toolchain 6.3.1 (aarch64-linux-android-6.3)
* updated with Linux patches up to the latest 3.18.48
* init.d support and init tweaks
* added a few CPU governors (elementalx, hyper, alucard, barry_allen, bioshock, bluactive, conservative_x, darkness, despair, electrodemand, impulse, intellicative, intellidemand, intellimm, interactive_pro, interactive_x, ironactive, lionheart, nightmare, ondemand_x, ondemandplus, pegasusq, smartass2, smartmax, smartmax_eps, yankactive and zzmoove) and enabled all the stock ones.
default: interactive
* added a few I/O schedulers (bfq, cfq, fifo, fiops, row, sio, sioplus, tripndroid, vr, zen)
default: cfq
* added a few TCP congestion algorythms (bic, cubic, westwood, htcp, hybla, vegas, scalable, lp, veno, yeah, illinois, dctcp, lia, olia, wvegas, balia)
default: westwood
* full f2fs support, ported from official OnePlus 3/3T kernel source
* fixed some misbehaving drivers
* complete implementation of Synapse, to have everything at your fingertip
* overclock and underclock support for both CPU and GPU
* full voltage control (CPU, GPU, BUS and so on...)
* notification LED fading control
* numerous performance and stability tweaks (defconfig, fstab and Makefile)
* SELinux set to Permissive by default (can be changed by the user if he wants to)
* enable extra compression algorithm and cryptography
* sqlite3, busybox and other binaries are integrated!
* Knox 0x0 and SafetyNet spoofed to pass
* ondemand and conservative governors updated for big.LITTLE architecture
* improved default voltage/thermal management
* enabled Swap (510MB, lz4, 4 compression streams)
* and more...

Notes
So good everything is working now :laugh:
In the near future I'll have fun improving Synapse (as soon as I have free time).

Download:
herolte > Android File Host


Support:
If you want to receive support, find and share settings, report bugs and try Beta versions, join our Telegram group:
Fire Opal Kernel | Official Group


XDA:DevDB Information
Fire Opal Kernel, Kernel for the Samsung Galaxy S7

Contributors
kylothow
Source Code: http://github.com/kylothow/android_kernel_samsung_universal8890

Kernel Special Features: Synapse support, stable f2fs porting, full voltage control, various governors, schedulers, tweaks and patches are just some of the awesome features.

Version Information
Status: Stable
Current Stable Version: 2.4.2
Current Beta Version: 3.1.0

Created 2017-02-27
Last Updated 2017-07-26
 

kylothow

Senior Member
Jan 3, 2014
1,011
1,727
0
Brescia
Changelogs

While searching the Internet you might also find versions which aren't listed here: these are Beta versions and their changelog isn't available (but included in the one of the next stable version, so you don't miss anything).
All the changes I made are listed on GitHub.

Version 2.4.2
Code:
- update sdcardfs
- updated build scripts and recovery scripts
- changed toolchain to a better version (Linaro Android gcc 6.3.1)
- widely improved ramdisk scripts
- updated ramdisk to latest version from RR with 7.1.2 support
Changelogs for previous versions:
Version 2.4.0
Code:
- updated with latest Linux patches
- various fixes (including thermal management and network communication)
Version 2.3.0
Code:
I'm constantly working to provide a better kernel. This implies a lot of research, testing and stressing my eyes staring at code. I'm adding a lot of small fixes. 
So, try to understand me if I don't always have time to report a changelog.
As always, you can check GitHub for a detailed changelog.
Version 2.2.1
Code:
Sorry if I didn't write down a changelog for the last releases, I've been quite busy.
Anyway: since version 2.1.6b there are a LOT of changes, performance, battery, stability... Just check it out (and check GitHub for a full changelog).
Version 2.1.6b
Code:
- updated busybox and sqlite3 binaries with more convenient versions
- changed optimizations, enabled safety features and possibly fixed f2fs cryptography
- getting ready for the Synapse restyling
- build the kernel uncompressed
The latter fix solves most lagging issues and noticeably improve performance over compressed version; I'll look into the kernel size issue soon!
Version 2.1.5
Code:
- ramdisk rebased over RR's one
- kernel size reduced
Version 2.1.4
Code:
- updated interactive governor with Samsung optimized version
- implemented the AMOLED flicker free patch
- updated ramdisk for both herolte and hero2lte to the one from latest LineageOS builds
- updated ramdisk to be compatible with SlimROM (untested)
- removed a few redundant tweaks
- fireactive it's on its way to debut, but still disabled because incomplete, sorry :(
Version 2.1.2
Code:
- init: added a few tweaks
- ramdisk: changes in sepolicy
- ramdisk: try to fool safetynet and fix wakelocks
- updated to DQBO kernel source
- fstab: reworked mount options
- fs: add exfat support
- fs: implement optimised and stable f2fs (from oneplus/QC8996_N)
- enabled Swap (I had the idea while looking into the OP3 sources)
Version 2.1.0
Code:
Many beta versions came before this one, and all of them had their list of fixes... I'll try to summarize:
- some configs were tweaked
- enabled init.d support
- Synapse support
- implemented elementalx
- various fixes
- faked Knox 0x0 and try to hide from SafetyNet
- switched back to cfq as default scheduler
- probably other stuff I can't remember now... I need to sleep ahahah
Version 1.2.4
Code:
- temporarily reverted to Linux 3.18.14 (and so fixed the video playback issue)
- updated mount options to reduce I/O overhead
- tweaked the kernel configuration to have better performance
- enabled additional compression algorithms and cryptography utilities
Version 1.2.3
Code:
- updated zen sched driver to version 1.1
- SELinux is now set to Permissive by default
Version 1.2.2
Code:
- now using zen as default I/O scheduler
- changed the default frequency range for the CPU
- updated to Linux 3.18.17 (still working to bring the latest patches)
- switched to a custom Makefile optimised for our architecture
Version 1.2.0
Code:
- overclock and underclock support for both CPU and GPU
- voltage control (see notes in the OP [B][**][/B])
- moved to Uber Toolchain 7.x (aarch64-linux-android-7.x)
- improved recovery installation script
Version 1.1.0
Code:
- First public release
 
Last edited:

kylothow

Senior Member
Jan 3, 2014
1,011
1,727
0
Brescia
[TUTORIAL] How to set up your phone with f2fs

1) First you have to install a compatible recovery. Recent TWRP releases can format and mount f2fs, but they don't handle a few installation scripts correcty. I recommend TWRP 3.0.2-4 by @lyapota which has the correct patches. You can find it here.
2) Then you have to backup all your data (internal storage will be wiped too, so make sure to copy ALL your files in the INTERNAL storage). So, any TWRP backup should be taken on external SD card.
3) After this, reboot into TWRP. From Wipe / Advanced Wipe check only /data, then select Change Filesystem and check f2fs. Do the same for /cache. At the moment I don't think there are ROMs that support f2fs on /system too (LineageOS, for example, forces ext4 and formats despite settings).
4) Reboot into recovery once again, so we're sure that it can mount everything.
5) At this point you're done. Flash your ROM of choice, this kernel, any GApps and whatever you want.
Reboot and profit!

ROMs supporting f2fs formatted /system will be listed here when available.
 
Last edited:

Andrw0830

Senior Member
Mar 2, 2013
905
268
83
I tried this on RR and saw for so good. I built-it into my RR build to get it to boot and love the different governors and features.
 

kylothow

Senior Member
Jan 3, 2014
1,011
1,727
0
Brescia
I completed a new release with some stuff added:
Code:
- overclock and underclock support for both CPU and GPU
- voltage control (see notes in the OP [B][**][/B])
- moved to Uber Toolchain 7.x (aarch64-linux-android-7.x)
- improved recovery installation script
The note i refer to, in short, says that voltage control is implemented but not reachable by the user.

Next steps in this kernel development are complete access to GPU overclock and voltage control, followed by latest Linux patches and eventual requests by the users.
Have a nice day :)
 

danny19901

Senior Member
Nov 4, 2010
2,612
858
0
Stockton-On-Tees
Really cool ROM how ever it removes SuperSU on AOSP extended and you will need to reflash however since flashing this it seems my audio stuttering while in apps has I believe disappeared will test further hope to some sound config's (Faux sound or alternative if possible) keep up the good work

Sent from my SM-G930F using Tapatalk
 
  • Like
Reactions: ptr_hamilton

Andrw0830

Senior Member
Mar 2, 2013
905
268
83
I tried 1.2.0 on my g930w8 with RR and it won't boot. Gets stuck on the RR logo. I even tried clean flash and still won't boot. Yesterday I build the kernel directly into RR and it booted but since the change to 7.0 toolchain I can't even build because I am on Mac which Uber 7.0 doesn't support.
 

noob924

Senior Member
Jan 20, 2013
128
27
0
Vancouver
I tried 1.2.0 on my g930w8 with RR and it won't boot. Gets stuck on the RR logo. I even tried clean flash and still won't boot. Yesterday I build the kernel directly into RR and it booted but since the change to 7.0 toolchain I can't even build because I am on Mac which Uber 7.0 doesn't support.
Works for me, I'm using the latest RR on my G930W8 (apk3 bootloader) and I dirty flashed 1.2.0.
 

Andrw0830

Senior Member
Mar 2, 2013
905
268
83
Works for me, I'm using the latest RR on my G930W8 (apk3 bootloader) and I dirty flashed 1.2.0.
Yeah wonder what's going on. I am on same boot loader/modem and couldn't get it to work with 1.2.0.. I tried dual boot and even installing RR as main ROM and wouldn't work. I actually had to copy and use my boot.img from 02/26 that contained the OPs source built-in to get boot. If it works for others on official RR, maybe it's something with my custom build. I do use the same manifest as 8890dev. Thanks for letting me know.
 

kylothow

Senior Member
Jan 3, 2014
1,011
1,727
0
Brescia
New release announcement

New release uploaded while I finish some stuff. I spent yesterday on the Linux patches but I will have to do some "tricks" to make them work... and it's a long work.

Version 1.2.2
Code:
- now using zen as default I/O scheduler
- changed the default frequency range for the CPU
- updated to Linux 3.18.17 (still working to bring the latest patches)
- switched to a custom Makefile optimised for our architecture