Everywhere I go I see guide for porting ROMs/recoveries/etc and they're all for MTK devices, and I don't mean to be a noob but I want to know why they are so different. I know they have a different chipset, but they all run android and should all correspond to the same rules. Could anyone experienced give me an overview of what the difference is between Qualcomm and Mediatek devices that makes it so much easier to build for Mediatek.
There is a difference at the GPL policy as I read somewhere... whereas quallcomm is open-source and mediatek isn't?
Also quallcomm is much further at Hardware level in comparison to Mediatek, In which Mediatek serves for a good low-cost replacements for infamous brands.
Also the energy consumption is less then Quallcomm's
But the difference for those 2 sorts, I couldn't say anymore then I told you .
Related
Is this possible?
I was thinking of getting the focus S (which is so much cheaper), and putting Android on it. Same hardware isn't it?
If I just gave you guys this idea, I want the credit for it
I Think its not Possible to Port Android to that Phone,because it dont has the Same Hardware.
Ive Read it Just has a Singlecore Cpu etc
And it dont uses an Exynos Prozessor its a Qualcomm Chipset
So my current understanding is that a kernel is essentially the software that connects android with the hardware of the phone. Somewhat of a driver in terms of Windows?
Now I understand that different versions of Android will require different kernels even if the phone is the same (is this true?). For instance ICS for say... Phone X will have a kernel of X.Y.Z while Gingerbread for Phone X will be A.B.C.
Now would the kernel be the same for say gingerbread 2.3.3 and 2.3.5 and 2.3.7?
Also... Would it be possible to take a "shotgun" approach so to speak with the kernels for the Android phones?
For instance write one kernel that covers all android phones. The kernel file itself would be HUGE, but would it be possible or is there too much variation within the hardware. I know a lot of people are currently waiting for the HTC Desire HD's ICS rom to be released by HTC in order to get that ICS Kernel Source code.
The reason I ask is because having one universal kernel could potentially solve a lot of problems especially for the less popular phones. With this combined with the Easy Development Studio (being developed: http://forum.xda-developers.com/showthread.php?t=1446233) this could be pretty beneficial in my opinion at least.
I'm not a programmer and recently got into Android so that's why I'm asking. I just figured ask and learn more. So any opinions and even teachings that you have that you guys are willing to share with me would be awesome.
I think there is to many problems with writing kernel for all hardware... This is just linux kernel compiled for Android platform... Linux kernel is free but hardware specification not always free, there is already two different ways to write code for this hardware:
1. Write some code which would works on your device (but it does not mean that it would works on all devices which the same model).
2. Or you can go to hardware manufacturer and tell something like 'Hi guys, could you give me specifications of Phone X?' - (as i know it is commercical secret...maybe i am mistaken here)
Linux kernel (~Android kernel) is commonly support a lot of devices (include TV, Routers etc), but i think that enhance code of this kernel for each group device or for each manufacturer it is only one way to get stable and fast work with your gadget...
wlfpck said:
So my current understanding is that a kernel is essentially the software that connects android with the hardware of the phone. Somewhat of a driver in terms of Windows?
Now I understand that different versions of Android will require different kernels even if the phone is the same (is this true?). For instance ICS for say... Phone X will have a kernel of X.Y.Z while Gingerbread for Phone X will be A.B.C.
Now would the kernel be the same for say gingerbread 2.3.3 and 2.3.5 and 2.3.7?
Also... Would it be possible to take a "shotgun" approach so to speak with the kernels for the Android phones?
For instance write one kernel that covers all android phones. The kernel file itself would be HUGE, but would it be possible or is there too much variation within the hardware. I know a lot of people are currently waiting for the HTC Desire HD's ICS rom to be released by HTC in order to get that ICS Kernel Source code.
The reason I ask is because having one universal kernel could potentially solve a lot of problems especially for the less popular phones. With this combined with the Easy Development Studio (being developed: http://forum.xda-developers.com/showthread.php?t=1446233) this could be pretty beneficial in my opinion at least.
I'm not a programmer and recently got into Android so that's why I'm asking. I just figured ask and learn more. So any opinions and even teachings that you have that you guys are willing to share with me would be awesome.
Click to expand...
Click to collapse
"Now I understand that different versions of Android will require different kernels even if the phone is the same (is this true?). For instance ICS for say... Phone X will have a kernel of X.Y.Z while Gingerbread for Phone X will be A.B.C"
The kernel is basically a collection of device drivers and services which needs to be loaded to work as a mediator between the OS (ROM) and the phone hardware and it is off course device specific. And kernel does not depend on ROM rather ROM depends on kernel. The different kernel available for same device will have almost same structure excepts some specific drivers and services may be different . Same kernel may work with different roms if the rom is ported to or complied to work with that kernel. So even a GB kernel may work in ICS.
hm... I see.
I guess then that leads to another question of...
What about a universal kernel for each phone manufacturer? I believe that there is a way to find out the specific hardware within a phone. If that's the case, targeting just HTC or just Samsung, could allow for the shotgun approach to work since the overall target is smaller.
Wouldn't it also be possible to say to take a HTC Inspire 4G existing kernel and the rest of HTC's existing phones and consolidate the kernels?
I'm not a programmer so I'm just trying to learn but maybe I am over simplifying things.
@sos1g3: I see what you are saying as well but couldn't the hardware specifications be obtained from the existing kernels?
wlfpck said:
hm... I see.
I guess then that leads to another question of...
What about a universal kernel for each phone manufacturer? I believe that there is a way to find out the specific hardware within a phone. If that's the case, targeting just HTC or just Samsung, could allow for the shotgun approach to work since the overall target is smaller.
Wouldn't it also be possible to say to take a HTC Inspire 4G existing kernel and the rest of HTC's existing phones and consolidate the kernels?
I'm not a programmer so I'm just trying to learn but maybe I am over simplifying things.
@sos1g3: I see what you are saying as well but couldn't the hardware specifications be obtained from the existing kernels?
Click to expand...
Click to collapse
"Wouldn't it also be possible to say to take a HTC Inspire 4G existing kernel and the rest of HTC's existing phones and consolidate the kernels?"
Not exactly, it is only possible if the hardware is same . But off course a part of it will be same.
hardware specification can be obtained from a kernel source only . Not from the compiled kernel.
musarraf172 said:
"Wouldn't it also be possible to say to take a HTC Inspire 4G existing kernel and the rest of HTC's existing phones and consolidate the kernels?"
Not exactly, it is only possible if the hardware is same . But off course a part of it will be same.
hardware specification can be obtained from a kernel source only . Not from the compiled kernel.
Click to expand...
Click to collapse
If I am not mistaken, HTC and Samsung provide their source codes for their kernels.
"Not exactly, it is only possible if the hardware is same . But off course a part of it will be same. "
So then it's not possible to create a kernel that covers say a Snapdragon processor and a Nvidia Tegra 2?
I really wish the android world was more consolidated... of course that wouldn't do well for the phone manufacturers.
wlfpck said:
If I am not mistaken, HTC and Samsung provide their source codes for their kernels.
"Not exactly, it is only possible if the hardware is same . But off course a part of it will be same. "
So then it's not possible to create a kernel that covers say a Snapdragon processor and a Nvidia Tegra 2?
I really wish the android world was more consolidated... of course that wouldn't do well for the phone manufacturers.
Click to expand...
Click to collapse
Well , to make it more clear you should know that a full linux kernel ( desktp / server ) does have support for different hardware, peripherals, gpu etc, even for different cpu. Only limitation is that the processor architecture should be same i.e various x86 processor can be supported by a single kernel but a single kernel will not support both x86 , x64 or ppc , ARM architecture . (By the word architecture I mean the instruction sets on which they work). It is called a generic kernel.But for mobile devices the kernel is trimmed down to the specific set of hardwares and peripherals because of resource limitations. A full generic kernel will size will be much bigger approx 80 to 120 MB. But a kernel for mobile device is arround 5 to 6 MB. So make an universal kernel for all mobiles , the size will be bigger which won't fit in the current device setup. So theoretically we can write a kernel which will support both Snapdragon processor and Nvidia Tegra 2 as they both uses ARMv7 instruction set.
I heard that MediaTek phones are different to port to?
I want to learn porting to phones and have a phone with a mediatek processor, a chinese phone, I don't minds a challenge, but I've heard phones with MediaTek requires a different approach, can anyone enlighten me whats different if there is any?
Can anyone please make a custom rom for our SAMSUNG J200G? Even the Samsung J2005 has unofficial cyanogenmod.
I think we are abandoned.
The processor is Exynos 3475, any Exynos processor is difficult to make custom ROMs for. This can be mainly an issue with devices that are not that popular since it becomes difficult to develop and not many people use the phone. By the way, I was trying to look up the Samsung J2005 and I could not find the device, are you sure you spelled it right?
Hi, I'm not an Android expert in any way but I'm prototyping an app that runs Tensorflow deep learning models for image processing on this tablet.
I convert various models from Keras to TF-Lite in various modes, trying to find the best-performing method - comparing normal FP32 with quantisation to FP16 and INT8, and running each in CPU mode and on the GPU and NNAPI delegates.
NNAPI is supposed to assign compatible operations to the chip that runs them fastest, ie most INT8 stuff to the Hexagon DSP. Except my timings show 8b models running faster in CPU, or no difference, or worse, like it's always falling back to CPU. Suspicious!
Looking at the ai-benchmark com ranking (sorry, new account, can't do links) rankings and comparing the Tab S6 with a high-performing SN855 device like the Galaxy S10+ shows that their CPU perf is more or less equal, but quantised perf is WAY too low on the Tab S6.
From the paper arxiv org 1810.01109.pdf
...Qualcomm delivers these drivers in the software images provided to its OEM customers, which then in turn determine when and how to include them to end devices: with their initial release or later over the air in subsequent software updates. As a result, their presence and actual version might vary significantly across the phones on the market.
Click to expand...
Click to collapse
This suggests to me that Samsung haven't bothered including the NNAPI drivers for the tab S6! So what, they only do it for the premium products? Personally I'd say a £600 tab is pretty premium.
Am I right about this and if so is there anything I can do? Any way to get the drivers in, a custom ROM that includes them? I'd buy something else but there's not a lot of choice with tablets, this seems to be the most powerful one available. I'd love one with a Kirin 990 but no such thing exists yet AFAIK.
"Qualcomm’s first NNAPI driver for running quantized neural networks on Hexagon DSPs was introduced in the Android
O-MR1, though it was not used in any commercial devices
at that time and first appeared only later in the OnePlus 6
and Xiaomi Mi8 with the next Android version. In Android
P, these drivers got additional support for running float models on the Adreno GPU. Yet, they are currently not present
in the market."
I'd say there is little to no support by OEMs
gottahavit said:
...
I'd say there is little to no support by OEMs
Click to expand...
Click to collapse
The ai-benchmark com ranking list (that i can't link) shows many Snapdragon 855 devices with high performance that can only be due to NNAPI support I believe. But anyway, as there aren't any better tablets about, I wonder if there's a way to make a ROM that adds those drivers? I know nothing about custom Android builds.