This release is only tested on the SM-T560NU USA (gtelwifiue).
This kernel is based on vince2678's port of LineageOS, with a couple of updates and optimizations.
This kernel has only been tested with vince's cm14.1 releases.
Flashable zips use a modified version of the AnyKernel2 system. While only tested on cm14.1, it may work on other ROMs, since it does not modify your initrd.
Very special thanks to vince2678.
Without his effort on this device, this release would not be possible.
Updates:
2017-06-10:
First build for CM14.1
Features:
DriveDroid Mass Storage and CD-ROM Support
Built with gcc-linaro-4.8-2015.06-x86_64_arm-eabi toolchain
Additional CPU optimizations
Updated CPU assembly optimizations
Various security patches
XPad (xbox 360 and xbox one) gamepad support
Known issues:
None
How to Install:
1. Download the latest release zip
2. Transfer zip to your device (or skip this step if sideloading)
3. Reboot into TWRP Recovery [Volume Up+Home] (If you need TWRP, first install mine or vince2678's.)
4a. Find the zip in the TWRP install browser, and install it
-OR-
4b. Sideload the zip using adb.
5. Reboot to system and enjoy
How much faster is it with the new optimizations?
Standard Kernel (click for full benchmark):
Noire Kernel (click for full benchmark):
What does "dirty" mean?
Whenever you modify a git repo and do not commit the changes, it will flag the kernel as "dirty".
Rather than forking the git repo, I use a clean copy of vince's repo, then apply my patches over it.
Because this isn't really how git was designed to be used, the build system sees it as "dirty".
It is nothing to worry about, as it is not harmful in any way.
Getting the kernel
Releases can be found on my site. (Check the header on the download page for a link to the source directory for tools to build your own):
https://files.persona.cc/zefie/files/cell/SM-T560NU/kernel/cm14.1
If/when there are more than one release, the most recent release should be on top, but verify the Last Modified date to be sure of the latest release.
Also be aware you will need to reflash anytime you update the main CM14.1 OS, as it will overwrite the kernel.
Bugs and issues
As vince's CM14.1 release is a rolling release, depending on many different sources, unexpected issues may come up in either the upstream code, his code, or my code.
Before submitting any reports to vince, be sure you are using his kernel (reflash the cm zip without flashing mine, preferably with a clean install)
Before submitting any reports to me, be sure the issue is not caused by the current release of CM14.1 (aka doesn't happen when you try the above).
No warranty is implied or provided. Be sure to have backups before flashing. But this is a no-brainer.
bump, because new release and target (was cm13, now cm14.1)
This kernel helped me to finally have USB OTG working by default, great job! :good:
Can you give us more detailed info about optimizations? Does your kernel have any impact on battery life?
jon355 said:
Can you give us more detailed info about optimizations? Does your kernel have any impact on battery life?
Click to expand...
Click to collapse
I haven't tested thoroughly but they shouldn't.
The optimizations are some patches that update the arm assembly functions to use features available in our CPUs that were not previously used.
As well as compiling while telling the compiler that we are using a cortex-a53 (in armv7 mode) (by default it just compiled generic armv7 with old armv5/6 assembly).
In short, they aren't overclocks, just using more of the processor's full potential, which is already sitting there doing nothing. Therefore, it shouldn't have a huge impact on battery life.
The CPU patches are here: https://files.persona.cc/zefie/files/cell/SM-T560NU/kernel/common-source/cpu_opts.patch.xz
Fun fact: Our CPU is actually armv8 64-bit, but we can't use it because we depend on Samsung's proprietary binaries, which are compiled in 32-bit (armv7 mode)
Sm-t560 <> smt560nu
Hey,
I'd like to Install this ROM, but obviously i get the message that it's not supported for my Device (in TWRP on flash attempt)
Mine is from the EU so, probably why..
Any chance to get this ROM to work for it?
Akineesan said:
Hey,
I'd like to Install this ROM, but obviously i get the message that it's not supported for my Device (in TWRP on flash attempt)
Mine is from the EU so, probably why..
Any chance to get this ROM to work for it?
Click to expand...
Click to collapse
No.
Unfortunately, Samsung made several hardware changes, including the CPU, when they brought this device to the USA.
You could almost think of the SM-T560NU as the "SM-T560 New".
It is a newer model with revamped hardware, and thus not compatible with ROMs made for the other.
Sorry.
zefie said:
No.
Unfortunately, Samsung made several hardware changes, including the CPU, when they brought this device to the USA.
You could almost think of the SM-T560NU as the "SM-T560 New".
It is a newer model with revamped hardware, and thus not compatible with ROMs made for the other.
Sorry.
Click to expand...
Click to collapse
Alright, thanks for the Quick follow-up!
zefie said:
I haven't tested thoroughly but they shouldn't.
The optimizations are some patches that update the arm assembly functions to use features available in our CPUs that were not previously used.
As well as compiling while telling the compiler that we are using a cortex-a53 (in armv7 mode) (by default it just compiled generic armv7 with old armv5/6 assembly).
In short, they aren't overclocks, just using more of the processor's full potential, which is already sitting there doing nothing. Therefore, it shouldn't have a huge impact on battery life.
The CPU patches are here: https://files.persona.cc/zefie/files/cell/SM-T560NU/kernel/common-source/cpu_opts.patch.xz
Fun fact: Our CPU is actually armv8 64-bit, but we can't use it because we depend on Samsung's proprietary binaries, which are compiled in 32-bit (armv7 mode)
Click to expand...
Click to collapse
Great info. What optimizations were done on OTG mass storage? On stock LOS 14.1 kernel, USB OTG wasn't working for me while with your kernel it works flawlessly.
Jacsd said:
Great info. What optimizations were done on OTG mass storage? On stock LOS 14.1 kernel, USB OTG wasn't working for me while with your kernel it works flawlessly.
Click to expand...
Click to collapse
Honestly none of my patches do anything USB related, except DriveDroid, but that lets the tablet be a device (by hosting disk images), not anything to do with connecting a device to it. Therefore, I cannot take the credit for that. Vince must have fixed it in his kernel. I built this with the latest code at the time, code that may have been more recent than the last lineage build of his that you tried.
zefie said:
Honestly none of my patches do anything USB related, except DriveDroid, but that lets the tablet be a device (by hosting disk images), not anything to do with connecting a device to it. Therefore, I cannot take the credit for that. Vince must have fixed it in his kernel. I built this with the latest code at the time, code that may have been more recent than the last lineage build of his that you tried.
Click to expand...
Click to collapse
I tried latest build and a few older builds, on every I was stucked in the loop of mounting and unmonting USB device. I only managed to enable USB OTG when I installed StickMount. It seems Drive Droid does the same. Will you continue work on this kernel?
Jacsd said:
I tried latest build and a few older builds, on every I was stucked in the loop of mounting and unmonting USB device. I only managed to enable USB OTG when I installed StickMount. It seems Drive Droid does the same. Will you continue work on this kernel?
Click to expand...
Click to collapse
I'll update it if there are any necessary updates for performance or security, or any issues are found, but for now it seems fairly stable and should be alright for a while.
zefie said:
I haven't tested thoroughly but they shouldn't.
The optimizations are some patches that update the arm assembly functions to use features available in our CPUs that were not previously used.
As well as compiling while telling the compiler that we are using a cortex-a53 (in armv7 mode) (by default it just compiled generic armv7 with old armv5/6 assembly).
In short, they aren't overclocks, just using more of the processor's full potential, which is already sitting there doing nothing. Therefore, it shouldn't have a huge impact on battery life.
The CPU patches are here: https://files.persona.cc/zefie/files/cell/SM-T560NU/kernel/common-source/cpu_opts.patch.xz
Fun fact: Our CPU is actually armv8 64-bit, but we can't use it because we depend on Samsung's proprietary binaries, which are compiled in 32-bit (armv7 mode)
Click to expand...
Click to collapse
Tnx for detailed answer. Btw, I tested your LOS 13 build and it's very smooth and battery life is great. Only issue I encountered so far is when charging offline, screen doesn't go off and there is no charging percents showed. Also, can you sync with the latest LIneage changes? Can you replace stock browser with the Jelly and stock camera with the Snap camera?
jon355 said:
Tnx for detailed answer. Btw, I tested your LOS 13 build and it's very smooth and battery life is great. Only issue I encountered so far is when charging offline, screen doesn't go off and there is no charging percents showed. Also, can you sync with the latest LIneage changes? Can you replace stock browser with the Jelly and stock camera with the Snap camera?
Click to expand...
Click to collapse
The thread for that is over here:
https://forum.xda-developers.com/showthread.php?t=3632745
Also, I am unable to reproduce the issue with the screen not shutting off. There is no percentage, but my screen shuts off while locked when charger is plugged in. Percentage and timeout can probably be configured in settings. I sync with Lineage every update. An update will come sometime this month with July's security patches.
As for replacing stock apps, I'll look into it. As the thread says, this is mostly for my use, hence why it wasn't publicly announced before. If I find the apps useful I will see about integration.
Wondering if this is still supported?
zefie said:
The thread for that is over here:
https://forum.xda-developers.com/showthread.php?t=3632745
Also, I am unable to reproduce the issue with the screen not shutting off. There is no percentage, but my screen shuts off while locked when charger is plugged in. Percentage and timeout can probably be configured in settings. I sync with Lineage every update. An update will come sometime this month with July's security patches.
As for replacing stock apps, I'll look into it. As the thread says, this is mostly for my use, hence why it wasn't publicly announced before. If I find the apps useful I will see about integration.
Click to expand...
Click to collapse
From the title you can tell if this still works. For example will it work with official LineageOS and what not. Hoping to get a response so I can overclock my tablet
Bigority said:
From the title you can tell if this still works. For example will it work with official LineageOS and what not. Hoping to get a response so I can overclock my tablet
Click to expand...
Click to collapse
Should still work. I haven't messed with the SM-T560NU in a while. If I recall the Lineage build system was creating broken builds, I'm running 14.1-20171121-NIGHTLY-gtelwifiue and Noire Kernel still works with that.
As for newer builds, last time I tried (some time between xmas and new years), all of the more recent Lineage builds would not boot, with or without my kernel. If trying newer Lineage NIGHTLYs, try without my kernel first, then try with if it does boot.
Vince has kinda abandoned the SM-T560NU, although I'm not sure it is a fair reason to abandon us, because we didn't test on a completely different device, but his choice is his alone, and as such, without him working on Lineage, the newer builds are likely to stay broken unless either he comes back to fix it, or someone else takes over (don't look at me).
zefie said:
Should still work. I haven't messed with the SM-T560NU in a while. If I recall the Lineage build system was creating broken builds, I'm running 14.1-20171121-NIGHTLY-gtelwifiue and Noire Kernel still works with that.
As for newer builds, last time I tried (some time between xmas and new years), all of the more recent Lineage builds would not boot, with or without my kernel. If trying newer Lineage NIGHTLYs, try without my kernel first, then try with if it does boot.
Vince has kinda abandoned the SM-T560NU, although I'm not sure it is a fair reason to abandon us, because we didn't test on a completely different device, but his choice is his alone, and as such, without him working on Lineage, the newer builds are likely to stay broken unless either he comes back to fix it, or someone else takes over (don't look at me).
Click to expand...
Click to collapse
For it to work properly should I try your port of LINEAGEOS or should I try Vince's port of Cyanogen Mod?
Bigority said:
For it to work properly should I try your port of LINEAGEOS or should I try Vince's port of Cyanogen Mod?
Click to expand...
Click to collapse
This kernel is for vince's 14.1. My 13.0 already uses Noire kernel and this release should not be flashed with that
zefie said:
This kernel is for vince's 14.1. My 13.0 already uses Noire kernel and this release should not be flashed with that
Click to expand...
Click to collapse
Alright thanks
zefie said:
This kernel is for vince's 14.1. My 13.0 already uses Noire kernel and this release should not be flashed with that
Click to expand...
Click to collapse
The link isn't working to download the kernel :l
Edit: It was working just my internet was too ****ty too load it.
Related
as topic thanks
I'm sorry.
This device cannot be more dead now.
Rest in peace, Marshmallow-less phablet.
Spaqin said:
I'm sorry.
This device cannot be more dead now.
Rest in peace, Marshmallow-less phablet.
Click to expand...
Click to collapse
I'll be honest: I needed just few more weeks with working USB to get Marshmallow fully functional. I got it running on E988, but some important stuff was broken, thus, device was unusable.
I got it to boot without SELinux - device tree needs new set of rules/fixes on current ones, because some old QCOM rules are dropped from vendor repos since mako isn't officially supported for M. That was ~90% fixed.
There were other problems which made device useless: modem and sensors - main reasons I haven't finished what I started. I had issues with reboots by DSP subsystem on every damn build, and just before my USB died, while experimenting with kernel and init files, I got an idea to disable modem and sensors services (they were causing DSP subsystem reboots) and boom, Marshmallow booted. Managed even to login to my Google account, install apps, use it for a while but had to revert back to LP - main phone without working modem is a tablet, not a phone Unfortunately, some time after that my USB decided to become just a simple charging port, so job was left unfinished.
So whoever is willing to tackle this issue:
- GPU drivers need update, both ion and gpu/msm update (kernel) and libs (need newer libs from mako/flo)
- Modem and sensors HAL need some updating - possibly only libs should be updated, since there were no changes in msm8960/apq8064 3.4 kernels connected to drivers
- Some SELinux stuff needs to be fixed
- Our device is stuck with OpenSSL, Marshmallow uses BoringSSL which has crippled some OpenSSL symbols, so there are some compatibility modules with missing symbols which need to be written... at least, that had to be done back then. Not sure now, it's nearly 5 months later now. Missing symbols can be the reason why both current and Lollipop (kanged from F240) modem/sensors didn't work, I really haven't managed to get usable logs before device's total freeze and reboot with these two services on, so whoever fixes this, well, gets functional Marshmallow
- Camera HAL, our issue since last KitKat days
but I saw that the official Cyanogen mod still release update for e988 ?
any reason as to not using it ?
Paleskin said:
but I saw that the official Cyanogen mod still release update for e988 ?
any reason as to not using it ?
Click to expand...
Click to collapse
There are still CM 12.1 nightlies for G Pro? Miracle, especially since we don't have a maintainer anymore... Just be sure to change kernel because default one still has blackouts - there were no commits or fixes on main CM kernel since last year.
ShadySquirrel said:
There are still CM 12.1 nightlies for G Pro? Miracle, especially since we don't have a maintainer anymore... Just be sure to change kernel because default one still has blackouts - there were no commits or fixes on main CM kernel since last year.
Click to expand...
Click to collapse
Can't this blackout fix, solved on SlimLP, be checked in for upstream cyanogenmod ?
SlimLP is the only usable ROM for e980, all the other rooms suffer from screen blackout. On slimlp the only eventual problem is with the camera, but this can be fixed by using opencamera, as opencamera uses diferent threads, and in my case fixes a lot of problems.
bedi1982 said:
Can't this blackout fix, solved on SlimLP, be checked in for upstream cyanogenmod ?
SlimLP is the only usable ROM for e980, all the other rooms suffer from screen blackout. On slimlp the only eventual problem is with the camera, but this can be fixed by using opencamera, as opencamera uses diferent threads, and in my case fixes a lot of problems.
Click to expand...
Click to collapse
Someone could try to push that, but I don't know if they will accept it - it requires some device tree changes to be reverted (reverting only kernel commit renders Live Display useless, you also need changes in device_e980 and device_gproj-common).
I still have a bitter taste from back then when RIL problem occured due to their tinkering with Telephony frameworks - it took nearly 6 months for them to fix that officialy, even with two or three workarounds already available on Gerrit and numerous reports on JIRA.
ShadySquirrel said:
I'll be honest: I needed just few more weeks with working USB to get Marshmallow fully functional. I got it running on E988, but some important stuff was broken, thus, device was unusable.
I got it to boot without SELinux - device tree needs new set of rules/fixes on current ones, because some old QCOM rules are dropped from vendor repos since mako isn't officially supported for M. That was ~90% fixed.
There were other problems which made device useless: modem and sensors - main reasons I haven't finished what I started. I had issues with reboots by DSP subsystem on every damn build, and just before my USB died, while experimenting with kernel and init files, I got an idea to disable modem and sensors services (they were causing DSP subsystem reboots) and boom, Marshmallow booted. Managed even to login to my Google account, install apps, use it for a while but had to revert back to LP - main phone without working modem is a tablet, not a phone Unfortunately, some time after that my USB decided to become just a simple charging port, so job was left unfinished.
So whoever is willing to tackle this issue:
- GPU drivers need update, both ion and gpu/msm update (kernel) and libs (need newer libs from mako/flo)
- Modem and sensors HAL need some updating - possibly only libs should be updated, since there were no changes in msm8960/apq8064 3.4 kernels connected to drivers
- Some SELinux stuff needs to be fixed
- Our device is stuck with OpenSSL, Marshmallow uses BoringSSL which has crippled some OpenSSL symbols, so there are some compatibility modules with missing symbols which need to be written... at least, that had to be done back then. Not sure now, it's nearly 5 months later now. Missing symbols can be the reason why both current and Lollipop (kanged from F240) modem/sensors didn't work, I really haven't managed to get usable logs before device's total freeze and reboot with these two services on, so whoever fixes this, well, gets functional Marshmallow
- Camera HAL, our issue since last KitKat days
Click to expand...
Click to collapse
how the progress ? :fingers-crossed:
Paleskin said:
how the progress ? :fingers-crossed:
Click to expand...
Click to collapse
Had it booting (fixed selinux and most driver issues), and that's it. No RIL, so no data/signal; no GPS; no Sensors... Practically useless. Probably stuff with libs, but I don't have neither time neither knowledge to fight with that... especially since my e988 is almost dead, no matter what I do - my phone's usb is "working", battery is long time under normal capacity (can't survive even 12h), now my modem is causing random reboots on both stock and ASOP, display has black marks on one side... practically, a zombie So I'll be ditching this phone soon, and all work I've done for it.
Linux 3.10-based kernel for Oneplus One (bacon)
Info:
use this kernel at your own risk. Flashing it the wrong way might brick your device. I'm not responsible for any software/hardware damage.
This kernel is based on top of erorcun's 3.10 kernel. erorcun has spent an enormous time working on this project and he deserves a huge "Thank you" for having succeeded in one of the most difficult tasks in Android development: upgrading a device to a newer Linux release.
Features:
v3 (12th December)
built with O3 optimizations
CAF CPU boosting driver (replaces cpu_input_boost - might be a temporary switch)
kernel code base updated to Linux 3.10.60
sdcardfs updates
minor miscellaneous improvements
old releases:
v2.1
minor stability fix
v2 (12th November)
kernel code base updates reverted, then re-applied only up to 3.10.54
compiled with an improved set of GCC flags
tuned AIO for SSD-only machines
v1 (30th October)
built with GCC 5, UBER Toolchain and the optimal compiler flags for Krait CPUs
kernel code base upgraded to Linux 3.10.88
power-efficient workqueues
sound control by francisconfranco
CPU voltage control
cpu_input_boost by Sultanxda
sdcardfs & f2fs support
support for both LineageOS's and Sultan's camera HALs
Compatibility
The kernel is compatible with all the Marshmallow/Nougat ROMs that use either LineageOS's camera HAL or Sultan's (a.k.a. CAF's). Just make sure you download the right version
Currently, the kernel has been tested only on LineageOS 14.1, but I'm sure the CAF build is safe to flash and works properly as well.
The kernel doesn't work on Oreo (yet)!
Download
The kernel can be download from AFH: 3.10 kernel on AndroidFileHost
Thanks to:
erorcun, franciscofranco, Sultanxda, CAF & UBER, Mecca EL.
XDA:DevDB Information
Tom's Linux 3.10 kernel, Kernel for the OnePlus One
Contributors
Tomoms, erorcun
Source Code: https://github.com/Tomoms/neon_kernel_bacon
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: 3.0
Stable Release Date: 2017-12-12
Created 2017-10-30
Last Updated 2017-12-12
thanks man! any plans on oreo version?
criminality said:
thanks man! any plans on oreo version?
Click to expand...
Click to collapse
Everything will come in due time
It's one of the things I'll work on soon. Be patient, and you'll eventually get what you want
Thank you for this.
Don't know if it's your Lineage rom or this kernel, but video that i record is really stuttery. Like very janky.
I recorded the video with the build-in snap camera.
Fatsodonkey said:
Thank you for this.
Don't know if it's your Lineage rom or this kernel, but video that i record is really stuttery. Like very janky.
I recorded the video with the build-in snap camera.
Click to expand...
Click to collapse
Could you tell me the exact resolution you used?
Tomoms said:
Could you tell me the exact resolution you used?
Click to expand...
Click to collapse
Happens with all resolutions. I already tested Sultans Lineage as well with this kernel and the same thing happens. Don't know if it tries to record it too fast as it seems to be too quick and stutters a lot.
The Los kernel seems to work fine with video recording altough i just dirty flashed it on top of Boefflas kernel.
E:It definetly is the kernel that is causing the stutter.
Fatsodonkey said:
Happens with all resolutions. I already tested Sultans Lineage as well with this kernel and the same thing happens. Don't know if it tries to record it too fast as it seems to be too quick and stutters a lot.
The Los kernel seems to work fine with video recording altough i just dirty flashed it on top of Boefflas kernel.
E:It definetly is the kernel that is causing the stutter.
Click to expand...
Click to collapse
I'll compare the camera driver present in this kernel and the one in Sultan's kernel, then try to fix this. Unfortunately at the moment this is the best thing we can achieve, CAF camera support had always got some small problems even in erorcun's build if I recall correctly, and these problems are inevitably "inherited" by my kernel.
Thank you for working on this, I was looking forward to release since I saw your announcement in erorcun's thread.
Firstly i tried to dirty flash kernel on top of LineageOS build (N) by idprophecy, since i got positive experience changing kernels (3.4 ones) this way even with encrypted phone. So when i tried to boot up with new kernel, unfortunately it did not work and phone says my password is correct but encryption partition is broken and i need to hard reset.
I went to clean install, removed encryption and flash same LinOS build + your kernel. Then i encrypted phone again and everything went fine. However now my TWRP refuses password for decrypting partitions (its was like that in early N development for bacon on many roms).
Overall perfomance is not really smooth comparing with 3.4 kernels, but i didnt bothered to play with kernel setting.
Also i cant get MTP working, phone only charging via usb and PC (Windows) cannot see its memory.
I know this report is probably useless without kmsg logs, but i didnt have time to pull them off, so sorry about that. I try do it later
TbMa said:
Thank you for working on this, I was looking forward to release since I saw your announcement in erorcun's thread.
Firstly i tried to dirty flash kernel on top of LineageOS build (N) by idprophecy, since i got positive experience changing kernels (3.4 ones) this way even with encrypted phone. So when i tried to boot up with new kernel, unfortunately it did not work and phone says my password is correct but encryption partition is broken and i need to hard reset.
I went to clean install, removed encryption and flash same LinOS build + your kernel. Then i encrypted phone again and everything went fine. However now my TWRP refuses password for decrypting partitions (its was like that in early N development for bacon on many roms).
Overall perfomance is not really smooth comparing with 3.4 kernels, but i didnt bothered to play with kernel setting.
Also i cant get MTP working, phone only charging via usb and PC (Windows) cannot see its memory.
I know this report is probably useless without kmsg logs, but i didnt have time to pull them off, so sorry about that. I try do it later
Click to expand...
Click to collapse
Definitely would need a log, to see what the issue is, with your experiences.
I've been alpha and beta testing this kernel, and I'm not experiencing any of the problems you and other users are describing. Clean install @idprophecy LOS14.1, flash this kernel, reboot back to recovery and flash MagiskSU, enjoy an ultra responsive OPO.
TbMa said:
Thank you for working on this, I was looking forward to release since I saw your announcement in erorcun's thread.
Firstly i tried to dirty flash kernel on top of LineageOS build (N) by idprophecy, since i got positive experience changing kernels (3.4 ones) this way even with encrypted phone. So when i tried to boot up with new kernel, unfortunately it did not work and phone says my password is correct but encryption partition is broken and i need to hard reset.
I went to clean install, removed encryption and flash same LinOS build + your kernel. Then i encrypted phone again and everything went fine. However now my TWRP refuses password for decrypting partitions (its was like that in early N development for bacon on many roms).
Overall perfomance is not really smooth comparing with 3.4 kernels, but i didnt bothered to play with kernel setting.
Also i cant get MTP working, phone only charging via usb and PC (Windows) cannot see its memory.
I know this report is probably useless without kmsg logs, but i didnt have time to pull them off, so sorry about that. I try do it later
Click to expand...
Click to collapse
I faced the same MTP problem when I started developing this kernel several months ago. But I'm sure it appeared at a later stage of development. So MTP shouldn't be an issue as of now. Also, according to @Mecca EL, there should be a substantial performance improvement.
Mecca EL said:
Definitely would need a log, to see what the issue is, with your experiences.
I've been alpha and beta testing this kernel, and I'm not experiencing any of the problems you and other users are describing. Clean install @idprophecy LOS14.1, flash this kernel, reboot back to recovery and flash MagiskSU, enjoy an ultra responsive OPO.
Click to expand...
Click to collapse
So can you confirm MTP is working on this kernel? What about video recording? Is it lagging or not? I still haven't had enough time to thoroughly try my own kernel :/
Thank you.
Mecca EL said:
Definitely would need a log, to see what the issue is, with your experiences.
I've been alpha and beta testing this kernel, and I'm not experiencing any of the problems you and other users are describing. Clean install @idprophecy LOS14.1, flash this kernel, reboot back to recovery and flash MagiskSU, enjoy an ultra responsive OPO.
Click to expand...
Click to collapse
What about encryption? Are your TWRP able to decrypt data with this kernel?
Tomoms said:
I faced the same MTP problem when I started developing this kernel several months ago. But I'm sure it appeared at a later stage of development. So MTP shouldn't be an issue as of now. Also, according to @Mecca EL, there should be a substantial performance improvement.
So can you confirm MTP is working on this kernel? What about video recording? Is it lagging or not? I still haven't had enough time to thoroughly try my own kernel :/
Thank you.
Click to expand...
Click to collapse
I'll double check, and do a complete run down on this latest one, in case it differs from the last one you sent me.
---------- Post added at 08:56 AM ---------- Previous post was at 08:53 AM ----------
TbMa said:
What about encryption? Are your TWRP able to decrypt data with this kernel?
Click to expand...
Click to collapse
I've not set encryption. I've seen way too many problems with that across almost all android devices. I'll see if it's not too much trouble to set and test for you, if I'm able to revert to unencrypted easily.
Mecca EL said:
I'll double check, and do a complete run down on this latest one, in case it differs from the last one you sent me.
---------- Post added at 08:56 AM ---------- Previous post was at 08:53 AM ----------
I've not set encryption. I've seen way too many problems with that across almost all android devices. I'll see if it's not too much trouble to set and test for you, if I'm able to revert to unencrypted easily.
Click to expand...
Click to collapse
Well i am using encryption since early MM and not a single problem if developer of rom and kernel did his work fine. Biggest payoff its hit battery.
Unfortunately you cant revert encryption without formating whole internal storage, so its a little bit complicated with backups and etc
MTP is not working for me either, I'm using the CAF kernel on LineageOS by Sultan.
SirSoviet said:
MTP is not working for me either, I'm using the CAF kernel on LineageOS by Sultan.
Click to expand...
Click to collapse
Thanks for your feedback, I'll do my best to fix this issue as soon as possible. Do you face the video recording issue?
Tomoms said:
Thanks for your feedback, I'll do my best to fix this issue as soon as possible. Do you face the video recording issue?
Click to expand...
Click to collapse
I never record videos, so I don't know. I'll check later today.
@Tomoms ,just a heads up: kernel works fine with Marshmallow(los13).
Mr.Ak said:
@Tomoms ,just a heads up: kernel works fine with Marshmallow(los13).
Click to expand...
Click to collapse
Thank you for letting me know. I'll immediately update the thread.
SirSoviet said:
I never record videos, so I don't know. I'll check later today.
Click to expand...
Click to collapse
Nothing wrong with video recording here.
SirSoviet said:
Nothing wrong with video recording here.
Click to expand...
Click to collapse
Hmm... I'll try it myself soon. In the meantime, my main concern will be fixing MTP, and it won't take me too much, fortunately.
Modesty - a modest custom kernel for the Samsung Tab S4
Modesty aims to provide a mildly appealing and reasonable alternative to the stock 4.4.78 kernel that comes with The Tab S4. In its pursuit of being both mildly appealing and reasonable, it will eschew features that could compromise device stability, whilst gleefully embracing low-risk, self-contained enhancements. In other words, your lowest expectation should be that this kernel will be at least as stable as the stock kernel.
Since there are currently no other custom kernel projects supporting the Tab S4, there isn't really any previous device-specific work to build on. Development of this kernel is therefore likely to be slow and steady.
"Why is this kernel called Modesty? That's crap! Why not Wolverine, Intrepid or Jupiter?"
Because it's just a operating-system kernel, not a turbo-charged supercar or a mission into outer space. Even as operating-system kernels go, this one is pretty dull. Besides, I'm a weary curmudgeon in his fifties, not a teenager.
This project has the modest aim of modestly enhancing the pleasure you derive from your Tab S4 and is therefore modestly named Modesty.
Key characteristics
Supports both the wi-fi only (T830) and wi-fi/LTE (T835) models.
Forked from Samsung's pristine kernel source code (Linux 4.4.78 for ARGH firmware at time of launch).
Regular merging of the upstream Linux kernel's linux-4.4.y branch (4.4.161 at time of public launch).
Regular merging of Samsung's updates to its modified kernel source as they are made available.
Includes @savoca's KCAL advanced colour/gamma control driver.
Includes @flar2's sound control driver to manage headphone and microphone gain.
Disables a huge amount of tracing and logging features inexplicably left enabled by Samsung in the stock release kernel. These debugging features have no place outside engineering builds.
Packed into a boot.img (boot image) taken directly from Samsung's latest stock firmware and kept as close to the original as possible. No obscure boot-time kernel configuration is stashed away here, and no changes are made to any other part of the file system at either install time or run time.
Provides a fully automated installer, with the option of interactive installation to allow manual selection of features and the ability to automatically root the device with Magisk in the post-installation phase.
Includes WireGuard VPN support (version 0.0.20180818 at the time of public launch), which will be updated as available.
Includes @Lord Boeffla's generic kernel wakelock blocker. The conservative default block-list is: qcom_rx_wakelock and NETLINK.
Utilises Westwood+ TCP congestion algorithm by default.
Includes Veno TCP congestion algorithm.
SELinux operates in enforcing mode and cannot be dynamically switched to permissive mode.
FAQ
Q. Is this kernel still actively developed?
A. No. The final ianmacd release was v1.0.0 on 21st November 2019 and no-one else has picked up maintenance of the project.
Q. Will this kernel also run on Android 9.0 (Pie) devices?
A. No. Modesty targets Android 8.1 (Oreo) and there was never an intention to update it for 9.0 (Pie).
Q. Can I overclock or underclock the CPU using this kernel?
A. No.
Q. How does interactive installation mode work?
A. If the ZIP file name contains the string _interactive or a dot-file called .modesty_interactive is present in the root of the external SD card, interactive installation mode is triggered. Please note that this mode overrides any selections implied by the archive name or the presence of dot-files on the file-system.
In interactive mode, you will be asked whether to root the device afterwards with Magisk. Selections are made using the Volume buttons. Just follow the on-screen prompts.
Q. Can I safely block wakelock X?
A. Perhaps. However, unless you know what a particular wakelock does and are certain that it is causing an actual problem on your device, I suggest you leave it alone.
Q. Why is this kernel labelled beta? Is it safe to use? And who are you, anyway? Can you be trusted?
A. My T830 has been running this kernel every day since I first rooted it, and I can therefore personally vouch for its stability on this model.
A couple of users have reported Modesty running well on the T835. Initially, it was reported that the kernel did not boot on this model, but after trying several test kernels, the user in question discovered that his machine had a non-standard firmware installation. Once this situation was remedied, Modesty booted and worked as designed.
As the person who built the kernel, I know exactly what's in it, and therefore the only risk I'm exposing myself to when I run it is that of my own incompetence. That's not true for you, however, and you should exercise due caution and at least pause for a moment to consider what you are installing, and the far-reaching powers you are about to grant this unaudited code over your device. Although I link to the source code below, you have only my word for it that this bears any resemblance to the kernel actually provided in the installer.
There are likely to be many iterations of this kernel before it sees a 1.0 release. Features may be added or removed along the way, although there is no clear roadmap at this point in time. Development will go where the needs of the users take it.
Please see the Installation section below for an important note regarding the use of this kernel in combination with stock (i.e. unmodified) Samsung firmware.
Q. Can I safely root this kernel?
A. Of course. What use would it be if you couldn't? I recommend Magisk for the task. It has a few minor issues, but as a project is very much alive, something that cannot be said about its peers. Magisk has arguably now established itself as the de facto root solution for Android devices.
It just so happens that I also produce my own builds of Magisk, which you are welcome to use. These are release builds (as opposed to debugging builds), produced from my own fork of @topjohnwu's original source, often augmented with patches. You can use anyone's builds, though.
Again, these builds work for me on various Samsung devices, but they are unofficial and you should approach them with fitting caution.
Q. Can I install Magisk at the same time as Modesty?
A. Yes. The Modesty installer allows you to automatically root your device with Magisk following installation of Modesty..
To make use of this facility, either rename the Modesty zip file to contain the string _magisk or create a file called .modesty_magisk in either the root of your external SD card or in the standard Download directory of the internal SD card. Alternatively, you can utilise interactive installation mode. See above for details.
If any of these trigger conditions is met, the installer will look in the standard internal Download directory as well as in ./Magisk (if present) on the external SD card (if present) for a suitable Magisk zip file to install. Preference is given to versioned files matching the glob Magisk-v*, in which case the latest according to lexical sort order will be used. If none is found, the installer then looks for unversioned release builds (e.g. official Canary channel release builds) called magisk-release.zip in the same locations, selecting the one with the most recent timestamp. If none is found, the installer will then try to find unversioned debug builds (e.g. official Canary channel debug builds) called magisk-debug.zip, again picking the one with the most recent timestamp. Finally, the installer falls back to looking for the most recent file called Magisk.zip or magisk.zip. If still no files have been found by this stage, chaining of Magisk is abandoned.
For example:
Code:
star2lte:/ $ ls -l /storage/0000-0000/.modesty_magisk
-rwxrwx--x 1 root sdcard_rw 0 2018-09-15 14:31 /storage/0000-0000/.modesty_magisk
star2lte:/ $ ls /storage/0000-0000/Magisk/Magisk-* | tail -n 3
/storage/0000-0000/Magisk/Magisk-v17.2-2018091001-ianmacd.zip
/storage/0000-0000/Magisk/Magisk-v17.2-2018091201-ianmacd.zip
/storage/0000-0000/Magisk/Magisk-v17.2-2018091501-ianmacd.zip
When you flash the Modesty archive in TWRP, the most recent version of Magisk that could be found will now be used to automatically root your kernel, i.e. Magisk-v17.2-2018091501-ianmacd.zip in this example.
Q. Why doesn't Modesty have its own Telegram group?
A. Because my experience of Android-themed Telegram groups is that they invariably degenerate into seething cesspits of rudeness, ignorance, superstition and — on a good day — pseudo-science. I don't wish to police such a den of iniquity. Of course, it's a free world (or so I still like to kid myself), so you are at liberty to create your own Telegram group for Modesty if you wish. Just please don't invite me to it.
Building
Building the kernel from source is beyond the scope of this document. If you want to build this kernel from scratch, for example to change its configuration, start with this handy reference tailored to building kernels for Android.
Download
See posting #2 in this thread for links to the latest and all previous versions.
Known Issues
Bluetooth HID (input) devices do not work.
Versions 0.99.11 to 0.99.22 contained a bug that caused Bluetooth HID (input) devices, such as mice, keyboards and gamepads, not to function. They could be paired with the tablet, but their input was not recognised. This bug was finally traced and fixed in 0.99.23.
Installation
Make a back-up of your existing boot partition using the custom recovery environment provided by TWRP. If your device doesn't yet have TWRP, you will need to install it first. Then, use it to flash the Modesty ZIP file. The boot image will automatically be installed in the boot partition of your device.
If your device has unmodified Samsung firmware, you will encounter problems with Bluetooth (namely delayed initialisation and forgotten pairings) after installing this or any other custom kernel. To remedy this, you will need to patch your system with modified libsecure_storage.so libraries. Some custom kernel installers actually install these without telling you, overwriting your system libraries and transparently circumventing the problem before you can run into it. This approach necessarily modifies your device's file-system, however, and that may not be what you want. At the very least, the user should be made aware what is happening to his device.
For this reason, I have instead prepared a companion Magisk module that achieves the same goal without modifying the file-system. This will allow you to run a custom kernel (not just this one, but any custom kernel) on pristine stock firmware without any Bluetooth issues. The module can be found in the official Magisk module repository, accessible from Magisk Manager on your tablet. If you install this Magisk module, you may wish to also disable the secure_storage_daemon by editing /system/etc/init/secure_storage_daemon.rc (change start to stop), as it no longer serves a purpose.
In a similar vein, you may encounter authentication errors when connecting to wireless networks after installing this or any other custom kernel. This problem is not serious and easily remedied by re-entering your passphrase for the networks you use.
Finally, if SecurityLogAgent notifies you that unauthorised actions have been detected, do not be alarmed. This is a normal consequence of having installed a custom kernel. You may wish to disable SecurityLogAgent to avoid being repeatedly notified..
Whilst the above issues are the only ones you can expect to encounter when running this kernel vs. the stock Samsung kernel, they may sound like more trouble than they're worth. In that case, you might be happier just sticking to Samsung's stock kernel. The company supplies a perfectly good kernel straight from the factory.
Configuration
You are encouraged to use either @morogoku's excellent MTweaks (a modified version of Kernel Aduitor) or @flar2's EX Kernel Manager to manage the features provided by this kernel.
Source code
Modesty's GitHub repository.
References
A useful guide to CPU governors, I/O schedulers (and more).
For more information on the some of the individual schedulers included in this kernel, you can also look under Documentation/block in the kernel source.
The WireGuard user guide, control app, home page and source code.
Credits
Thank you to everyone in the Linux kernel universe for getting us this far. Within the Android development community, I am grateful to the following people for their time-saving contributions:
@osm0sis for Android Image Kitchen, which has saved me a huge amount of work in packing and unpacking boot images.
An honorary mention must go to @Chainfire, the extent of whose benefaction to the Android community is still not fully understood or appreciated in some quarters.
Change log
v1.0.0 (final ianmacd release) (2019-11-21)
Kernel proclaimed stable. Version number incremented. No code changes since v0.99.49.
v0.99.49 (2019-11-16)
Updated to Linux 4.4.202.
v0.99.48 (2019-11-13)
Updated to Linux 4.4.201.
v0.99.47 (2019-11-11)
Updated to Linux 4.4.200.
v0.99.46 (2019-11-06)
Updated to Linux 4.4.199.
v0.99.45 (2019-10-31)
Updated to Linux 4.4.198.
v0.99.44 (2019-10-19)
Updated to Linux 4.4.197.
v0.99.43 (2019-10-08)
Updated to Linux 4.4.196.
v0.99.42 (2019-10-07)
Updated to Linux 4.4.195.
v0.99.41 (2019-09-22)
Updated to Linux 4.4.194.
v0.99.40 (2019-09-16)
Updated to Linux 4.4.193.
v0.99.39 (2019-09-11)
Updated to Linux 4.4.192.
Fixes unavailability of external SD card in Modesty 0.99.38.
v0.99.38 (2019-09-08) Release withdrawn (External SD card unavailable)
Updated to Linux 4.4.191.
v0.99.37 (2019-08-26)
Updated to Linux 4.4.190.
v0.99.36 (2019-08-12)
Updated to Linux 4.4.189.
v0.99.35 (2019-08-07)
Updated to Linux 4.4.188.
v0.99.34 (2019-08-05)
Updated to Linux 4.4.187.
v0.99.33 (2019-07-23)
Updated to Linux 4.4.186.
v0.99.32 (2019-07-12)
Updated to Linux 4.4.185.
v0.99.31 (2019-06-28)
Updated to Linux 4.4.184.
v0.99.30 (2019-06-22)
Updated to Linux 4.4.183.
v0.99.29 (2019-06-18)
Updated to Linux 4.4.182.
v0.99.28 (2019-06-12)
Updated to Linux 4.4.181.
v0.99.27 (2019-05-17)
Updated to Linux 4.4.180.
v0.99.26 (2019-04-28)
Updated to Linux 4.4.179.
v0.99.25 (2019-04-07)
Updated to Linux 4.4.178.
v0.99.24 (2019-03-26)
Updated to Linux 4.4.177.
Build only the latest revision of the DTB.
v0.99.23 (2019-03-02)
Fixed bug, introduced in v0.99.11, that caused input from Bluetooth HID devices, such as keyboards, mice and gamepads to be ignored.
v0.99.22 (2019-02-23)
Updated to Linux 4.4.176.
v0.99.21 (2019-02-20)
Updated to Linux 4.4.175.
v0.99.20 (2019-02-11)
Updated to Linux 4.4.174.
v0.99.19 (2019-02-08)
Updated to Linux 4.4.173.
v0.99.18 (2019-01-26)
Updated to Linux 4.4.172.
v0.99.17 (2019-01-17)
Updated to Linux 4.4.171.
v0.99.16 (2019-01-13)
Updated to Linux 4.4.170.
v0.99.15 (2018-12-30)
Rebased on ARK4 kernel source code and boot images.
v0.99.14 (2018-12-23)
Updated to Linux 4.4.169.
Merged four more UPSTREAM commits from android-4.4 kernel branch.
v0.99.13 (2018-12-13)
Updated to Linux 4.4.167.
Merged selected BACKPORT and UPSTREAM commits from android-4.4 kernel branch.
v0.99.12 (2018-12-05)
Updated to Linux 4.4.166.
Realtek USB Ethernet driver upgraded from v2.08.0 to v2.10.00.
v0.99.11 (2018-11-29)
Updated to Linux 4.4.165.
KCAL advanced colour/gamma control driver optimisation.
Added @flar2's sound control driver for controlling headphone and microphone gain. (Configure with MTweaks or EX Kernel Manager).
v0.99.10 (2018-11-21)
Updated to Linux 4.4.164.
Added KCAL advanced colour/gamma control driver. (Configure with MTweaks or EX Kernel Manager).
Lots of tracing and debug logging disabled, further reducing kernel size.
CONFIG_DISPLAY_USE_INFO
CONFIG_SEC_DISPLAYPORT_LOGGER
CONFIG_FB_MSM_MDSS_XLOG_DEBUG
CONFIG_SEC_FILE_LEAK_DEBUG
CONFIG_SEC_DEBUG_USER
CONFIG_SEC_DEBUG_SUMMARY
CONFIG_SCSI_UFSHCD_CMD_LOGGING
CONFIG_MSM_SMEM_LOGGING
CONFIG_PROFILING
CONFIG_DEBUG_INFO
CONFIG_SCHED_DEBUG
CONFIG_SEC_PM_DEBUG
CONFIG_CORESIGHT
Built as monolithic kernel (i.e. without CONFIG_MODULES).
Built as relocatable code (CONFIG_RELOCATABLE_KERNEL).
Assembler symbols stripped (CONFIG_STRIP_ASM_SYMS set).
Embedded kernel config (reported via /proc/config.gz) now falsely reports stock settings to allow disabling of superfluous kernel features that otherwise cause grave Android System warning on boot.
v0.99.9 (2018-11-13)
Rebased on ARJ3 kernel source code and boot images.
v0.99.8 (2018-11-10)
Updated to Linux 4.4.163.
More than 100 fixes applied from upstream AOSP android-4.4 and android 4.4-o branches.
Lots of tracing and debug logging disabled:
CONFIG_IPC_LOGGING (debug logging for IPC drivers)
CONFIG_QCOM_RTB (register tracing)
CONFIG_TRACER_PKT (for tracing IPC protocols)
CONFIG_FTRACE (kernel tracing infrastructure)
CONFIG_CPU_FREQ_SWITCH_PROFILER (CPU frequency switch profiler)
CONFIG_TRACING_EVENTS_GPIO (traces GPIO subsystem)
Fixes to allow kernel to build when above logging and tracing options are disabled.
v0.99.7 (2018-10-30)
Rebased on ARH5 kernel source code.
Reworked the v4l2 fix that restores liboemcrypto-dependent apps to working state.
v0.99.6 (2018-10-28)
v4l2 fixes to restore liboemcrypto-dependent apps to working state.
v0.99.5 (2018-10-21)
Updated to Linux 4.4.162.
v0.99.4 (2018-10-19)
Initial public release, based on Linux 4.4.161.
v0.99.3
Internal build, based on Linux 4.4.160.
v0.99.2
Internal build, based on Linux 4.4.159.
v0.99.1
Initial internal build, based on Linux 4.4.78.
It begins! Awesome to finally see a custom kernel for the Tab S4.
I want to test for you once I can get root back
ianmacd said:
Change log
v0.99.4 (2018-10-19)
Initial public release, based on Linux 4.4.161. Caution: This kernel remains completely untested on the T835.
v0.99.3
Internal build, based on Linux 4.4.160.
v0.99.2
Internal build, based on Linux 4.4.159.
v0.99.1
Initial internal build, based on Linux 4.4.78.
Click to expand...
Click to collapse
Flashed on T835 device doesnt even get past the Boot (custom device) screen is there a way to get logs without using a computer?
Sent from my Samsung SM-G950F using XDA Labs
dr460nf1r3 said:
Flashed on T835 device doesnt even get past the Boot (custom device) screen is there a way to get logs without using a computer?
Click to expand...
Click to collapse
I'll look into it this evening. I'm just about to get off a plane.
Were there any errors when installing? Was your device properly detected as a T835?
Sent from my SM-G965F using XDA Labs
ianmacd said:
I'll look into it this evening. I'm just about to get off a plane.
Were there any errors when installing? Was your device properly detected as a T835?
Click to expand...
Click to collapse
Installing just fine, correctly detected as well.
Sent from my Samsung SM-G950F using XDA Labs
dr460nf1r3 said:
Installing just fine, correctly detected as well.
Click to expand...
Click to collapse
I've gone through the ramdisk of the T835's boot image with a fine-tooth comb and can find nothing untoward. I also verified that I properly removed the dm-verity flag from the T835's device tree.
There are actually very few source code differences between the T830 and T835. Both can be built from a single tree. The only differences lie in the kernel config file and the device tree, but I am building with the default T835 configuration, and with the proper device tree for that device.
Let's try at least ruling out my installer code. Please image-flash this new boot image[/i] to your device and tell me if it boot-loops. If it does, my installer isn't the problem, because it's only used for a ZIP flash. I've already checked the installer code and can't see any bugs, so I don't think the issue lies there.
Can you also please tell me which version of the firmware your device is running? Possibly there's an issue there, too. Samsung has so far released the source to the ARGH kernel only. This seems to work fine on my ARH5 firmware, but it's uncertain whether it would still work on something based on ARI*, and I've seen that a couple of countries do now have ARI firmware available. Mind you, even if it wasn't compatible, it should still get as far as booting.
Anyway, please test that boot image and let me know your firmware version.
While I soldier on with the issues afflicting the T835 build, can anyone else verify the T830 build as working for them?
Don't be shy; I'm running it on my own device, so I'm certain that build boots.
ianmacd said:
While I soldier on with the issues afflicting the T835 build, can anyone else verify the T830 build as working for them?
Don't be shy; I'm running it on my own device, so I'm certain that build boots.
Click to expand...
Click to collapse
Sorry for the noob question if i flash this kernal on my SM-T835 will i lose DEX ? Sorry i'm not quite understanding what KERNEL does ? Thanks in advance!
N1NJATH3ORY said:
Sorry for the noob question if i flash this kernal on my SM-T835 will i lose DEX ? Sorry i'm not quite understanding what KERNEL does?
Click to expand...
Click to collapse
When the kernel is working as intended, you won't lose DeX, but it currently isn't even booting on the T835.
Only those who are able to assist in debugging the current boot failure should install the T835 build at this time.
The T830 build, on the other hand, is rock solid for me, and I encourage anyone who is capable of recovering from an unexpected bootloop to try it out.
Version 0.99.5 released.
This release updates the kernel to the latest upstream Linux.
T830 owners, install at will. T835 owners, beware: The previous release has been reported unbootable on this model, and this release is likely to be similarly afflicted. Investigations are ongoing. Until this issue is resolved, the whole project has been downgraded to alpha status.
Change log
Updated to Linux 4.4.162. Caution: This release is likely to cause a bootloop on the T835.
ianmacd said:
I've gone through the ramdisk of the T835's boot image with a fine-tooth comb and can find nothing untoward. I also verified that I properly removed the dm-verity flag from the T835's device tree.
There are actually very few source code differences between the T830 and T835. Both can be built from a single tree. The only differences lie in the kernel config file and the device tree, but I am building with the default T835 configuration, and with the proper device tree for that device.
Let's try at least ruling out my installer code. Please image-flash this new boot image[/i] to your device and tell me if it boot-loops. If it does, my installer isn't the problem, because it's only used for a ZIP flash. I've already checked the installer code and can't see any bugs, so I don't think the issue lies there.
Can you also please tell me which version of the firmware your device is running? Possibly there's an issue there, too. Samsung has so far released the source to the ARGH kernel only. This seems to work fine on my ARH5 firmware, but it's uncertain whether it would still work on something based on ARI*, and I've seen that a couple of countries do now have ARI firmware available. Mind you, even if it wasn't compatible, it should still get as far as booting.
Anyway, please test that boot image and let me know your firmware version.
Click to expand...
Click to collapse
Firmware Version ist arh5 and after flashing your img the device still constantly reboots on the start screen and doesnt even get to the boot Screen
Sent from my Samsung SM-G950F using XDA Labs
dr460nf1r3 said:
Firmware Version ist arh5 and after flashing your img the device still constantly reboots on the start screen and doesnt even get to the boot Screen
Click to expand...
Click to collapse
Thanks. That absolves the installer of any wrongdoing, at least.
Something is fundamentally wrong with the kernel for the T835.
The boot image is taken from stock firmware, and modified just enough to allow a custom kernel to boot. I very much doubt the problem lies there. A virtually identical image works for the T830.
The kernel config used is the one supplied by Samsung. The only modifications made to it are the same ones I made to the T830's.
I think my next step will be to produce a kernel built without downstreaming the 4.4.y Linux branch, so back to 4.4.78. If that works, it will indicate that an error affecting only the T835 was introduced during all of my merging of the upstream kernel.
I'll post again when I've built the kernel, which won't be for a few hours, as I'm on holiday at the moment.
Sent from my SM-G965F using XDA Labs
ianmacd said:
I think my next step will be to produce a kernel built without downstreaming the 4.4.y Linux branch, so back to 4.4.78. If that works, it will indicate that an error affecting only the T835 was introduced during all of my merging of the upstream kernel.
Click to expand...
Click to collapse
OK, @dr460nf1r3, please try this new T835 build.
This is rewound to 4.4.78, with just a few extra cherry-picked commits to enable it to build cleanly and boot without triggering dm-verity.
In other words, this kernel should be 99% identical to the one that shipped with the machine. This assumes that the source as supplied by Samsung was actually used to build the stock kernel.. They have been known to publish sources that don't match what's on the machine.
ianmacd said:
OK, @dr460nf1r3, please try this new T835 build.
This is rewound to 4.4.78, with just a few extra cherry-picked commits to enable it to build cleanly and boot without triggering dm-verity.
In other words, this kernel should be 99% identical to the one that shipped with the machine. This assumes that the source as supplied by Samsung was actually used to build the stock kernel.. They have been known to publish sources that don't match what's on the machine.
Click to expand...
Click to collapse
Thanks, flashing now will report back in a few minutes
Sent from my Samsung SM-G950F using XDA Labs
---------- Post added at 05:44 PM ---------- Previous post was at 05:17 PM ----------
ianmacd said:
OK, @dr460nf1r3, please try this new T835 build.
This is rewound to 4.4.78, with just a few extra cherry-picked commits to enable it to build cleanly and boot without triggering dm-verity.
In other words, this kernel should be 99% identical to the one that shipped with the machine. This assumes that the source as supplied by Samsung was actually used to build the stock kernel.. They have been known to publish sources that don't match what's on the machine.
Click to expand...
Click to collapse
Did not work still the same issue.. flashed via twrp to boot partition. Noob question, the boot backup i got is 64mb while your kernel hardly has 25.. whats going on here?
Sent from my Samsung SM-G950F using XDA Labs
dr460nf1r3 said:
Did not work still the same issue.. flashed via twrp to boot partition.
Click to expand...
Click to collapse
Well, that's disappointing. I was hoping that it was my screw-up, rather than Samsung's, but at this point almost everything I've done has been backed out and it still won't boot.
Noob question, the boot backup i got is 64mb while your kernel hardly has 25.. whats going on here?
Click to expand...
Click to collapse
Good question.
Your back-up is of the entire partition, including the area with no data on it, so you're getting a file the same size as the partition itself. My boot image contains just the data segment, so it's smaller.
If you pull the stock boot image from the AP file of Samsung's firmware, you'll see that it's a very similar size to mine (slightly smaller, actually):
Code:
$ unzip -p T835XXU1ARH5_T835OXM1ARH5_PHN.zip AP_T835XXU1ARH5_CL14008523_QB19263559_REV00_user_low_ship_MULTI_CERT_meta.tar.md5| tar xf - -O boot.img.\*lz4 | lz4 -dc > boot.img
$ ls -l boot.img
-rw-rw-r--. 1 ianmacd ianmacd 23593232 Oct 21 22:01 boot.img
$ file boot.img
boot.img: Android bootimg, kernel (0x8000), ramdisk (0x2000000), page size: 4096, cmdline (console=null androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_le)
So, what now?
I'll see which other minor changes I can back out, in an effort to arrive at a kernel built from source that is as close to stock as possible. If you're wondering Why doesn't he just build from pristine sources?, the answer is: Because Samsung's source code won't even build out of the box. Many of the kernel header files are simply not in the expected locations. Alas, this is a fairly common problem with Samsung's kernel source code releases.
I suspect the solution to this problem may actually lie in changes that have yet to be made, rather than changes made that need to be reverted. In other words, the T835 may require some kernel modifications or configuration that the T830 doesn't. Theoretically, a kernel compiled from Samsung's pristine sources should just work, but that's starting to look unlikely now.
I'm hoping that I can enable/disable a few further options in the kernel config, rebuild and produce a kernel that works for you. If, however, the problem is that the source itself is faulty, we may have to wait for a future release by Samsung to give us something that compiles into a working kernel.
But I don't intend to throw in the towel on the T835 just yet. There are still a few more things we can try.
ianmacd said:
Well, that's disappointing. I was hoping that it was my screw-up, rather than Samsung's, but at this point almost everything I've done has been backed out and it still won't boot.
Good question.
Your back-up is of the entire partition, including the area with no data on it, so you're getting a file the same size as the partition itself. My boot image contains just the data segment, so it's smaller.
If you pull the stock boot image from the AP file of Samsung's firmware, you'll see that it's a very similar size to mine (slightly smaller, actually):
So, what now?
I'll see which other minor changes I can back out, in an effort to arrive at a kernel built from source that is as close to stock as possible. If you're wondering Why doesn't he just build from pristine sources?, the answer is: Because Samsung's source code won't even build out of the box. Many of the kernel header files are simply not in the expected locations. Alas, this is a fairly common problem with Samsung's kernel source code releases.
I suspect the solution to this problem may actually lie in changes that have yet to be made, rather than changes made that need to be reverted. In other words, the T835 may require some kernel modifications or configuration that the T830 doesn't. Theoretically, a kernel compiled from Samsung's pristine sources should just work, but that's starting to look unlikely now.
I'm hoping that I can enable/disable a few further options in the kernel config, rebuild and produce a kernel that works for you. If, however, the problem is that the source itself is faulty, we may have to wait for a future release by Samsung to give us something that compiles into a working kernel.
But I don't intend to throw in the towel on the T835 just yet. There are still a few more things we can try.
Click to expand...
Click to collapse
Thanks for explaining everything for me. Id like to help you were i can but i dont have a computer by my hands right now for the next time
Sent from my gts4llte using XDA Labs
dr460nf1r3 said:
Thanks for explaining everything for me. Id like to help you were i can but i dont have a computer by my hands right now for the next time
Click to expand...
Click to collapse
Here's a new build to try. This one reverts the last few changes I originally made to the T835's kernel configuration before building. This is as close to stock as possible, whilst still being able to build.
If this doesn't boot, it pretty much means that Samsung has supplied code for the T835 that simply will not compile into a working kernel. At that point, we'll probably have to wait for updated sources. I already have a request pending with Samsung for the release of the BRI sources.
Just to be clear, the current status quo as I understand it is that the Samsung logo never starts to be written from left to right. You never get past the static screen with the device name and the word Custom. Is that correct?
ianmacd said:
Here's a new build to try. This one reverts the last few changes I originally made to the T835's kernel configuration before building. This is as close to stock as possible, whilst still being able to build.
If this doesn't boot, it pretty much means that Samsung has supplied code for the T835 that simply will not compile into a working kernel. At that point, we'll probably have to wait for updated sources. I already have a request pending with Samsung for the release of the BRI sources.
Just to be clear, the current status quo as I understand it is that the Samsung logo never starts to be written from left to right. You never get past the static screen with the device name and the word Custom. Is that correct?
Click to expand...
Click to collapse
Im sorry to tell you but this doesnt boot either in fact it doesnt even reboot the static screen. Your right about the current status quo sadly.
Sent from my Samsung SM-G950F using XDA Labs
WARNING:
This is not a post targeted to end users. It is a development reference. If you expect any installable download or even added features out of this thread, please close your browser. Thank you.
What is Umbrella?
Umbrella is a project that aims to make the kernel sources that HMD released for Nokia 8 Sirocco (A1N) compatible with the Nokia 8 (NB1). The idea behind this is to replace the outdated 8.0 kernel sources that HMD released for NB1 with more up to date ones that are used in the 9.0 builds for Nokia 8 Sirocco.
Why do this, you might ask. Well, the answer is simple: The devices are so similar that HMD / FIH already have their kernel sources in a shared source tree. You can validate that yourself, by downloading the kernel config from a stock NB1 kernel (under /proc/config.gz), unpacking it, and searching for the commended entry "CONFIG_FIH_A1N". What umbrella does is take the sources that were released for A1N, readd all device specific files for NB1 (they were pruned) from it's original kernel soure, and integrate the stock kernel config (also called defconf) from NB1.
Doing this also lead to some other small quality of life improvements that are not directly relevant to an end user.
Umbrella contains the latest changes from linux-stable (v4.4.179 at the time of writing, compared to the stock v4.4.153), and Qualcomms Codeaurora upstream
The WiFi driver from Qualcomm is compiled directly into the kernel, instead of being loaded as a module. This allows you to flash umbrella based kernels to every build version while keeping everything else working correctly. The stock kernels use signature enforcement, which means that the wifi module that is loaded from the system partition has to be signed against the kernel, which is not the case for every custom kernel or even the kernels that were built for a different security patch.
Unlike the officially released kernel sources, umbrella does not have stupid typos in it's device trees that cause the phone to display white bars on all of your screen etc.
Umbrella disables the block that FIH put in place to prevent users from rebooting into EDL mode from within android (using adb reboot edl).
Umbrella also includes a patch that causes the device to not reset it's entire memory when the kernel crashes, therefore retaining the last kernel output log, which can be used for debugging
You can compile the kernel with compilers newer than GCC 4.9 (not clang though), without having it immideately crash at boot.
It includes a tool that automatically sets up a crosscompiling environment for the kernel.
What Umbrella is not
Umbrella is not a project to add significant new features, or the ability to tweak things beyond what the stock kernel already offers (which is technically not that bad). It aims to be a reference kernel, a base for (potentially) other kernels that are based on it and add those features. I know that that is kind of a broad goal, considering I am the only one who seems to do actual development for this phone, but who knows. Having a lower entry level might help in case someone is curious and wants to get into kernel hacking. And I would certainly be happy if I wasn't the only one developing for this device.
If you want Umbrella to contain features like:
Overclocking
More governors / schedulers / whatever
Color / Sound / whatever control
Wakelock blocking
etc. etc. etc.
then please Alt-F4 your browser right now. Ok, don't do that but at least please don't request it because it will make you get ignored, nothing else.
Why the name Umbrella?
While I developed the initial prototype I watched through 3 Resident Evil movies, and this is kinda a zombie project, so I think the name fits quite well.
Why are you posting this?
I am posting this because I am hoping that it will be useful for anyone that would like to get into kernel development and tweaking without the hassle that comes with setting up the kernel sources that are released by HMD.
But, one disclaimer: I am not a kernel developer. I am a curious CS student suffering from a bad mix of too much time and stupid ideas that solve stupid problems. I am trying my best to produce something useful and be of help, but please don't expect wonders from me, thanks.
Links?
Source: https://github.com/resident-nokia/umbrella
Download: None, this is a development reference.
Looks promising
Sent from my NB1 using XDA Labs
Nice. this will likely be useful in the future
Updated the umbrella source to the latest 4.4.180 kernel, and May 07 CAF tag (LA.UM.7.4.r1-05100-8x98.0). Also readded some NB1 specific code where it was missing (discovered by doing a diff against the 5140 kernel source that Nokia recently released).
Just in case anyone actually cares about it
THMSP said:
Updated the umbrella source to the latest 4.4.180 kernel, and May 07 CAF tag (LA.UM.7.4.r1-05100-8x98.0). Also readded some NB1 specific code where it was missing (discovered by doing a diff against the 5140 kernel source that Nokia recently released).
Just in case anyone actually cares about it
Click to expand...
Click to collapse
I do. Who knows, in a year's time I might have enough knowledge to build a custom Rom for this phone
Kernel sources which is used on pie has been released officially. Finally, we have an "original" kernel and we've got closed one more step to custom roms.
https://www.nokia.com/phones/en_int/opensource/
techno_man000 said:
Kernel sources which is used on pie has been released officially. Finally, we have an "original" kernel and we've got closed one more step to custom roms.
https://www.nokia.com/phones/en_int/opensource/
Click to expand...
Click to collapse
@THMSP it would be interesting to let us know how different is your kernel mod from the newly released official pie kernel for Nokia 8
MDV106 said:
@THMSP it would be interesting to let us know how different is your kernel mod from the newly released official pie kernel for Nokia 8
Click to expand...
Click to collapse
As I described here: https://forum.xda-developers.com/nokia-8/development/official-source-code-releases-nokia-8-t3930324, they are identical. The only difference are the device tree files (which still contain typos that break the display), and of course all modifications I made to the sirocco kernel source that Umbrella is based on (wifi driver, EDL mode reactivation, upstreaming, etc.)
THMSP said:
As I described here: https://forum.xda-developers.com/nokia-8/development/official-source-code-releases-nokia-8-t3930324, they are identical. The only difference are the device tree files (which still contain typos that break the display), and of course all modifications I made to the sirocco kernel source that Umbrella is based on (wifi driver, EDL mode reactivation, upstreaming, etc.)
Click to expand...
Click to collapse
So, are these new codes broken like 4.84?
techno_man000 said:
So, are these new codes broken like 4.84?
Click to expand...
Click to collapse
I wouldn't call Nokia sources broken, but I would call them incomplete, outdated and impractical to work with. And that hasn't changed.
Iam currently building device tree for nokia 8..
Unable to figure out how to edit init folder specifically for nokia8
[email protected] said:
Iam currently building device tree for nokia 8..
Unable to figure out how to edit init folder specifically for nokia8
Click to expand...
Click to collapse
Please do so! We can't let this phone die so early!
which defconfig file should choose?
lk
[email protected] said:
which defconfig file should choose?
Click to expand...
Click to collapse
nb1_defconfig is for Nokia 8
Can somebody help me? I have built Lineage OS 16.0 for the Nokia 8 with the Umbrella Kernel. However I am facing issues with getting it into work. Firstly TWRP fails to flash it with error 7. I am including the recovery.log file in case anyone wants more detail. I then proceeded to extract the payload.bin file, and flashed boot.img and system.img seperately. However that didnt work either as my phone got stuck at the Bootloader unlocked warning screen. If anyone is interesteed I can upload the .zip outputed by the build
Device Tree: https://github.com/GPUCode/android_device_nokia_nb1
Recovery.log: https://hastebin.com/akohutiwed.sql
Thanks in advanced
emufan4568 said:
Can somebody help me? I have built Lineage OS 16.0 for the Nokia 8 with the Umbrella Kernel. However I am facing issues with getting it into work. Firstly TWRP fails to flash it with error 7. I am including the recovery.log file in case anyone wants more detail. I then proceeded to extract the payload.bin file, and flashed boot.img and system.img seperately. However that didnt work either as my phone got stuck at the Bootloader unlocked warning screen. If anyone is interesteed I can upload the .zip outputed by the build
Device Tree: https://github.com/GPUCode/android_device_nokia_nb1
Recovery.log: https://hastebin.com/akohutiwed.sql
Thanks in advanced
Click to expand...
Click to collapse
hey, did you wipe userdata before flashing this? I think you need to do that, like when switching to using GSIs.
also, have you checked this https://github.com/resident-nokia/twrp? Specifically the fstab file for NB1.
oaid said:
hey, did you wipe userdata before flashing this? I think you need to do that, like when switching to using GSIs.
Click to expand...
Click to collapse
Thanks for the suggestion. I have flashed GSIs before but never had any problems. Also I cannot find any userdata partition in TWRP. I asked in the Lineage OS discord and I was told that probably that TWRP image is broken. I am confused
emufan4568 said:
Thanks for the suggestion. I have flashed GSIs before but never had any problems. Also I cannot find any userdata partition in TWRP. I asked in the Lineage OS discord and I was told that probably that TWRP image is broken. I am confused
Click to expand...
Click to collapse
that's the data partition, if I'm not mistaken ?*
which twrp image are you using? Maybe try Dorian's latest?
oaid said:
that's the data partition, if I'm not mistaken ?*
which twrp image are you using? Maybe try Dorian's latest?
Click to expand...
Click to collapse
Yes I am using the latest TWRP. Before flashing I erased the data partition but still the error persisted
Those of you who have been around for a while have heard of leanKernel. Well this isn't a leanKernel, in fact, I haven't developed leanKernels in 3 years. This is essentially the stock kernel with some enhancements.
I think google stock kernels are great nowadays, but when I learned that my Pixel 3a came with eMMC rather than UFS, I thought maybe there are some storage related tweaks I can apply to the stock kernel, so that's what I attempted here.
Again, this is the stock kernel recompiled with the following changes (otherwise should work and behave exactly like stock):
Some f2fs backports from latest f2fs/android sources, mostly around discard and garbage collection including Rapid GC implementation from arter97. The f2fs optimizations around GC/discard are designed to alleviate eMMC write performance degredations over time, thus improving performance over time as well.
Compiled with gcc 9.2 (kdrag0n) with some architecture and cpu dependent compile optimizations.
Drivers (including wifi driver optimized by arter97) compiled in rather than loading in as modules.
LZMA enabled for TWRP support.
Use fastboot to install. (TWRP or kernel manager flash should work as well, as long as they support boot image flashing).
Three files: stock, stock-modified-nomagisk, and stock-modified-magisk.
Most of you will probably want to "fastboot flash boot stock-modified-magisk.img". Flash stock when you want to go back to stock.
Install files
Source: https://github.com/imoseyon/pixel3a-kernel
Absolutely awesome news. I was interested to know about eMMc after I heard some people mention it. Anyway, thank you and welcome back.
A couple of quick questions if you wouldn't mind, since a lot of us are new to the "Pixel experience", having come from devices that previously only had one or two new firmware versions within the device's lifetime, and are now enjoying monthly updates, with that bringing its own set of issues...
Is this kernel considered a stock variation that cannot be tweeted by a kernel manager, or custom and is tweakable? What is gained by using this one over some of the other custom kernels?
Since the boot image on this device can contain Magisk, custom kernel, and TWRP, does that mean with every update a new image would have to be built, rooted, and TWRP installed, or is there an easier way to get this accomplished?
Thx and happy to see you back on board with this device...
duh1 said:
A couple of quick questions if you wouldn't mind, since a lot of us are new to the "Pixel experience", having come from devices that previously only had one or two new firmware versions within the device's lifetime, and are now enjoying monthly updates, without that bringing its own set of issues...
Is this kernel considered a stock variation that cannot be tweeted by a kernel manager, or custom and is tweakable? What is gained by using this one over some of the other custom kernels?
Since the boot image on this device can contain Magisk, custom kernel, and TWRP, does that mean with every update a new image would have to be built, rooted, and TWRP installed, or is there an easier way to get this accomplished?
Thx and happy to see you back on board with this device...
Click to expand...
Click to collapse
First, with respect to the kernel manager it will behave exactly like the stock kernel. There may be a few tweakable settings the manager apps can see that are in stock which will also show up for this kernel. This is not a true custom kernel with lots of configurable settings - if that's what you want then definitely go for elemental or despair which are developed by excellent devs.
Regarding boot image, you are correct. However, once Pixel 3A gets an official TWRP I should be able to include that in the boot image along with Magisk (currently only Magisk is included). And as long as I have the device I will provide at least one set of updates for each security update from Google.
Imoseyon said:
First, with respect to the kernel manager it will behave exactly like the stock kernel. There may be a few tweakable settings the manager apps can see that are in stock which will also show up for this kernel. This is not a true custom kernel with lots of configurable settings - if that's what you want then definitely go for elemental or despair which are developed by excellent devs.
Regarding boot image, you are correct. However, once Pixel 3A gets an official TWRP I should be able to include that in the boot image along with Magisk (currently only Magisk is included). And as long as I have the device I will provide at least one set of updates for each security update from Google.
Click to expand...
Click to collapse
Thank for the kind words! I actually took a look at your source and I am grabbing the f2fs changes you have, those are a good find. Have always followed your work and have used some of your contributions as well.
Holy... Haven't seen you around since the days of the Samsung charge iirc...
Imoseyon said:
First, with respect to the kernel manager it will behave exactly like the stock kernel. There may be a few tweakable settings the manager apps can see that are in stock which will also show up for this kernel. This is not a true custom kernel with lots of configurable settings - if that's what you want then definitely go for elemental or despair which are developed by excellent devs.
Regarding boot image, you are correct. However, once Pixel 3A gets an official TWRP I should be able to include that in the boot image along with Magisk (currently only Magisk is included). And as long as I have the device I will provide at least one set of updates for each security update from Google.
Click to expand...
Click to collapse
Is your kernel also working on the 3a XL, or is it only for the regular 3a?
xFirefly93 said:
Is your kernel also working on the 3a XL, or is it only for the regular 3a?
Click to expand...
Click to collapse
I think it might. I have no way to test it though..
Imoseyon said:
I think it might. I have no way to test it though..
Click to expand...
Click to collapse
Well, is the kernel source the same for the 3a and 3aXL, or if not, could you make the same mods to the XL source?
I was wondering if this could be built and installed as a zip file, so we could make use of the the kernel managers for easy switching between different kernels for testing. If not, what makes this different that requires an image? Thx...
duh1 said:
Well, is the kernel source the same for the 3a and 3aXL, or if not, could you make the same mods to the XL source?
I was wondering if this could be built and installed as a zip file, so we could make use of the the kernel managers for easy switching between different kernels for testing. If not, what makes this different that requires an image? Thx...
Click to expand...
Click to collapse
Kernel source and even the defconfig file are identical between 3a and 3axl, so I'm fairly confident that it works on both.
Have you tried flashing the boot image files in your kernel manager? I think some, if not all, should work with image files as well.
Imoseyon said:
Kernel source and even the defconfig file are identical between 3a and 3axl, so I'm fairly confident that it works on both.
Have you tried flashing the boot image files in your kernel manager? I think some, if not all, should work with image files as well.
Click to expand...
Click to collapse
Will give it a try flashing it that way, but wondering is there a technical reason why this particular kernel must be an image, not a zip?
xFirefly93 said:
Is your kernel also working on the 3a XL, or is it only for the regular 3a?
Click to expand...
Click to collapse
Imoseyon said:
I think it might. I have no way to test it though..
Click to expand...
Click to collapse
It will work for both.
duh1 said:
Will give it a try flashing it that way, but wondering is there a technical reason why this particular kernel must be an image, not a zip?
Click to expand...
Click to collapse
No real reason other than i didn't think a zip file was needed especially since this kernel is supposed to be more or less the same as stock. I will add a zip file into the folder soon though.
Imoseyon said:
No real reason other than i didn't think a zip file was needed especially since this kernel is supposed to be more or less the same as stock. I will add a zip file into the folder soon though.
Click to expand...
Click to collapse
Can this can be used on Q beta6?
caballon said:
Can this can be used on Q beta6?
Click to expand...
Click to collapse
Nope sorry. Will be working on Aug updates this weekend. Been out of town.
Aug update is up. Toolchain updated to gcc 9.2 as well.
How can I verify that I am actually running your kernel?
Screenshot of About Phone
EDIT: I guess the build date matches that of your upload date.
benji said:
How can I verify that I am actually running your kernel?
Screenshot of About Phone
EDIT: I guess the build date matches that of your upload date.
Click to expand...
Click to collapse
Yup that's it
Will change the version string in my next build so it's less confusing. Good catch.
Will this let TWRP stay installed or no? Do you have to install a custom rom for that and use the other kernel?
crackedvenom2 said:
Will this let TWRP stay installed or no? Do you have to install a custom rom for that and use the other kernel?
Click to expand...
Click to collapse
Interesting, looks like I may need to enable lzma compression. I haven't tried installing twrp yet, let me give it a shot this weekend. Should be easy enough.