Question about kernel, no noobs please :D - Android Q&A, Help & Troubleshooting

Hi, this is my first post on xda, but i was reading it about 4 years and now i have unusuall question:
I have phone - samsung callisto (GT-I5510) with cyanogenmod 10.2 rom (android 4.3.1), and kernel sources are available for it, but only below 2.6.35.7 since phone is ancient. This is "latest" and probably "fastest" android phone with qwerty keyboard (not including this unrootable new blackberrys), so i think that it would be nice idea to deploy lightweight kali linux nethunter installation for hacking purpouses. I had some problems with oficial installer, and i had to modify it to allow install on device with such small /system partition, but the problem is that chrooting to Kali Roling is not working, becouse minimal kernel version needed is 3.2.*.*
Question is: Can i somehow "update" kernel sources of this device, so i can build 3.2.*.* kernel? I have much free time and even more determination to do this.

Related

Q on building the "latest" Android Kernel

I have a general question about building the Android kernel. For understanding purposes, I'm a C/C++/C# developer (and Android application developer), but have little functional knowledge of the Linux kernel.
With regard to porting Android, I'm curious how one builds the latest Kernel. The Android Kernel is not simply the standard Linux Kernel branch, correct? Where does one get the latest "Android" Kernel from? Does Google host a Kernel site as part of AOSP that we can sync with?
Once you have the latest Kernel, is it simply a matter of ensuring the Make file is accurate, adding the appropriate device drivers (as .so files?) for your particular hardware, and performing a Make? Then I assume you can update your device's Kernel with the one you've buildt?
In closing, for example, I'd like to sync the Android 3.0 Kernel, update the drivers necessary for my EVO 4G, build the latest Kernel, and then flash it to my phone. Just looking for some insight as I start getting educated on the topic.
Thanks for any advice you can offer!
Actually, the android kernel is very similar to the linux kernel (well it is based on the linux kernel). You can get the kernel from here: http://source.android.com/source/downloading.html. You can also take a look here: http://elinux.org/Android_Kernel_Download and here: http://elinux.org/Android_Kernel_Features. It will be quite difficult to build a kernel for your device without the source (there's none for 3.0.1 for your device), but you could still build it from a lower kernel version: http://linux.softpedia.com/progDownload/HTC-EVO-4G-Sprint-Kernel-Source-Code-Download-58254.html.
Thanks for the info, Theonew. When you say that it will be difficult for me to build the kernel for an EVO without the source, is that because the vendors (Qualcomm, for example) haven't made source for their devices available, so it's hard to build the drivers (.so files?) that are compatible with the latest kernel?
Shidell said:
Thanks for the info, Theonew. When you say that it will be difficult for me to build the kernel for an EVO without the source, is that because the vendors (Qualcomm, for example) haven't made source for their devices available, so it's hard to build the drivers (.so files?) that are compatible with the latest kernel?
Click to expand...
Click to collapse
HTC hasn't released the source of the kernel v3.0.1 (which comes in Ice Cream Sandwich) for your device (since it's not available for your device...yet at least).

[Q] How come that specific userlands do require a certain kernel to work?

I'm very new to Android as an OS with the Linux kernel at its heart, but fairily proficient with GNU/Linux and a plethora of its distributions for what has been more than a decade by now. So, what I (amongst other things) find a bit bewildering is that very many of custom firmware images seem to require a very specific kernel version or build for handsets to actually work. For my Xperia Mini (Smultron), there are ROM images based on CyanogenMod that won't work with the "vanilla" CM7 kernel, for instance.
With a proper GNU/Linux system, you don't have that kind close coupling of userspace and kernel versions at all. Barring some minor incompatibilities between certain (old) releases of udev and modern releases of the Linux kernel (and vice versa), there's very little (if anything) that stops you from supplanting your three years old distro's kernel with something that Linus released a few days ago.
However, whenever I've come across a guide how to install/set up this and that ROM for some kind of phone, and someone (more or less prominently) states that that image will require a specific kernel build, I've _never_ been so lucky to have been offered a technicial explanation as to why exactly this is the case. Can anyone reading this thread tell me, or point me to where I can find out more about the underlying reasons for these subtle incompatibilities?
I refuse to believe noone can answer that question...
Some features are not available in stock kernel, that are needed for custom ROM.
I am personally not fully familiar with kernels.

[Q] Linux kernel 3.0.xx on xperia 2011?

First, if this thread should be in general can someone move it pls.
Now to my question. I know that for example the samsung galaxy s has a similar hw as our phones and can have the new kernel, but i never saw a kernel for our phones higher than 2.6. Does anybody know if we can or cant(and why) use the new version cause it has a better security system
Some developers are working on a 3.0 kernel and there are already some threads about that
Sent from my Nexus 7 running Android 4.2.1
Porting kernel is not a simple task. Fxp team whom currently working on the project to bring kernel 3.x to xperia 2011 gen said it would take atleast six months, or would take forever ie it would never come to our phone.
is it really necessary?
Do we really need kernel 3.0 on our devices?
because I have read here and they say its almost same as old kernel "OR SAME AS OLD KERNEL "
http://www.itworld.com/software/169503/new-linux-30-kernel-same-old-kernel

Android kernel how to make compatible with higher os? (+Where can I find the patch?)

Hello, I'm newbie dev trying to build CM13 for Lenovo Phab plus.
I think I'm almost finished with device and vendor, but I cannot figure it out what to do with kernel.
The circumstance is,
I have a stock kernel source which runs in 5.1.1 LP, with version of 3.10.49.
What I want is to make kernel compatible with 6.0.1.
I already know that linux kernel version doesn't have to be exactly same with new Android OS versions and I can just make a few patches in order to run kernel in higher OS.
So I googled and studied(?) for 2-3weeks, but got not many useful informations and I still cannot figure out where to find required patches for 6.0.1 .
So here's what I am not sure about.
1. I found that I can either upstream, merge, cherry-pick kernel sources from higher OS. For instance, if I merge kernel patches (starting from 3.10.50 to 3.18 step by step) and check if the kernel compiles successfully, is this a right thing to do? I am confused whether merging or cherry-picking is required for my situation.
2. I see lots of commits when comparing with other kernel sources in github. How do you find those kinds of patches? -> just keep compiling kernel and if error comes out->search->commit
Always this pattern goes again and again till boot properly?
3. i'm quite curious with backports. What i know is that "backports" are the files which is compatible for lower version kernels. For example, backported audio driver originally based on 4.9 can be used in kernels with version below 4.9. Is it right?
4. If there is an useful links, anything could be helped a lot.
THANKS IN ADVANCE.

Making an own android image?

Hello everybody. I love this community and I have been lurking for a long time.
I have noticed on a foreign language forum that some people were offering a custom rom for my android 9 TV box.
The chinese box is based on a s905x3 CPU and has a mediatek wifi chip for which it is hard (if not impossible to find the wifi drivers).
The site claims that the image was made by modifying the stock rom that came with the box. Is this possible or do all custom roms need to be build from the source?
The custom rom I want to make is going to replace the launcher with kodi.
I am prepared to build the whole rom from source but I do have a couple of questions.
Since the mediatek wifi drivers cannot be found how would I go about including the binary for the wifi?
I have noticed that the box that I have uses a .ko (kernel object) module to drive the wifi chip.
Can I include these kernel objects in build? It is a shame that the kernel is built as a 32bit system. Would that mean that I can only compile a 32bit kernel if I were to reuse those kernel modules and binaries?
Another idea is to perhaps use the kernel from coreelec in my build since it seems to include a lot of drivers.
Is it possible to use a kernel from something like coreelec but use the source from AOSP for the rest of my build?
Is there anything else that I should be aware of?
Thank you all!!!!
Can anyone give me any hints to any of the questions?
Essentially I want to swap out the stock launcher for Kodi. What is the easiest way to do so?

Categories

Resources