[Android General] limited_imagination:
Judging by the work here done by you and [MENTION=8548258]wezroot2k[/MENTION] and [MENTION=9720847]AeonFlux1603[/MENTION], I would think that a new kernel compiled from source code is not required to update the version of the Android OS.

At least for LOS 14.1, I understand that you guys are saying that it works just fine with the factory stock Marshmallow kernel, jammed into the boot.img file of the LOS 14.1 ROM:

While your work shows that it's not necessary to compile a custom kernel from source code in order to update the Android OS, there are a bunch of "low level" settings that I think can only be changed by doing just that. Some of these would be really nice to have, and in my own opinion, nicer to have than a newer version of the Android OS. For example, things like adding new hardware drivers, changing the CPU speed governor from "interactive" to "performance", permitting new driver modules to be loaded with the "insmod" command, etc. All of that can only happen with a custom kernel that is compiled from a working source code, I believe. (BTW, I would SO LOVE TO BE WRONG on that point - so all you guys who have updated to LOS 14.1, please prove me wrong!)

For example, here is an FTDI user's manual explaining how to add a serial port driver to an Android device, if the manufacturer did not include that driver as stock on the device. It's something Windows PC users do every damn day without even thinking about it, but to do it for Android makes your head explode: https://www.ftdichip.com/Support/Do...TDI_Devices_VCP_Driver_Support_to_Android.pdf

Just for the hell of it, I compiled some driver modules with this source code, then copied them to the TB3-850F. Then I opened a terminal on the TB3-850F, typed SU for root rights, then tried to "insmod" the drivers for use by Android apps. And I got the error: failed to load, "function not implemented". That's because the stock kernel was not configured to permit LKM... so sad. http://tldp.org/HOWTO/Module-HOWTO/x73.html I already expected that to happen, because what I believe to be the basic factory configuration of the stock kernel (found in the source code at /arch/arm64/configs/lcsh8735m_6_co_defconfig) does not have LKM support enabled.

Up to now, I have not seen any source code posted anywhere, purporting to be for the TB3-850F, that would actually compile a kernel. I have tried a whole bunch, and they all stop on a variety of errors, before generating the kind of file you could jam into a boot.img file with Android Kitchen.

I bet you would find it interesting to scroll through all the kernel configuration options with the "make menuconfig" command, even if you don't bother to compile it. It would give you an insight into the way the stock kernel is configured, and what may be unalterable on the TB3-850F even with root privileges, short of compiling a new kernel. (Well, it would give you an insight into what was the default configuration at some stage during the production run of the device, anyway, because some of the selections relate to chips that are not actually used on my particular TB3-850F, so presumably the configs were tweaked as suppliers were changed.)

If you want to look at the kernel configuration menu, open a Linux terminal, CD into the folder that you downloaded the source code into, and do this:

make ARCH=arm64 CROSS_COMPILE=/home/… - PATH TO YOUR TOOLCHAIN FOLDER … /android-ndk-r17/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android- lcsh8735m_6_co_defconfig

make menuconfig

That will generate a clean .config file based on the lcsh8735m_6_co_defconfig, that should replace the .config file that I left in place when I posted the source code on Google Drive. The new .config file will have the factory default selections unless you changed them, once you exit menuconfig. Whether you take the last step and build a kernel with the .config file at that point is up to you.

The default options you see selected in the various menus, reflect the lcsh8735m_6_co_defconfig file. I am pretty sure that is the factory starting point, as when I use my stock TB3-850F and look at the "Device Info HW" app, under the "Project" tab, it shows as "Build" the following: alps-mp-m0.mp1-V239.1_lcsh8735m.6.co_P54. So perhaps Lenovo updated the stock kernel 54 times after they partially released their kernel source code for the T3-850F to the public. I wouldn't put it past them. As I say, there are some notable differences between the hardware on the actual unit, and the default kernel configs in the source code that Lenovo released.

Earlier in this thread, you guys had the following conversation going on, and I would bet money that you're not going to get anywhere with these particular speed issues, unless you build a custom kernel from a source code that actually works: