Ядра варіюються від виробника до виробника. Багато цих ядер походять з чистої лінійки базових ядер джерел, що знаходяться на CAF, що ці виробники роблять, це приймати ці запаси джерел, змінювати їх відповідно до використовуваної плати / чіпсету, а також впроваджувати власні драйвери.
Придивіться навколо себе, є варіанти сенсорних екранів, варіації наборів чіп-мереж Wifi, не кажучи вже про акселерометр, датчики, батареї, компас, звук, графіка.
Якщо взяти одне джерело ядра, наприклад, HTC не буде працювати на Samsung, і навпаки.
Виробники можуть безкоштовно вибирати або виводити різні біти, які вбудовуються в друковану плату. Тут немає жодних жорстких чи швидких правил. Звідси безліч злому / модифікацій, щоб ядро працювало належним чином.
Ви ніколи не повинні порівнювати з настільними дистрибутивними ядрами Linux, в яких у ньому є PCI, PCI-Express, SATA, VGA, SVGA, USB, Ethernet, оскільки вони є абсолютно різною грою з парковою грою. Основні відмінності як з CentOS, так і з Linux-ядром Android в цьому: всі драйвери збираються як модулі, так і вбудовані, отже, будь-який дистрибутив Linux просто «вийде з коробки». Знову ж таки, для настільних дистрибутивів Linux - у вас є одна архітектура - x86, отже, одне ядро Linux, скажімо, Dell PC, може працювати з коробки на Lenovo за умови компіляції стандартних драйверів bog.
Не забувайте, що в світі Android є варіанти ядра, створеного для конкретних наборів чіт ARM, таких як ARMv6, ARMv7, є TEGRA, є EXYNOS, і вони бінарні несумісні між собою. Отже, якщо ядро компілюється для TEGRA, забудьте, воно не працюватиме на ARMv7!
Причиною того, що деякі ядра Android є "зламаними", залежить від виробника. Деякі (Zte - це дуже хороший приклад) випускають заблокований джерело, яке може компілюватися з джерела, але не спрацьовує при завантаженні через відсутній драйвер, на який не поширюється ліцензія GPLv2 або GPLv3. У цьому проблема, отже, деяким хакерам доводиться шукати Github, шукаючи підказки; деякі виробники, якщо не всі, то відповідають. Поточне втілення джерела Zte, як передбачається, становить 2.6.35.7, але насправді його фактична база 2.6.32.9 з великою кількістю модифікацій, таким чином, не представляє справжнього джерела ядра для 2.6.35.7!
Тут виробники повинні випустити відповідні джерела, не тільки не сумісні з GPLv2 або пізнішими версіями, а навпаки, щоб спільнота змогла модифікувати це, наприклад, додавши можливості розгону.
Таким чином, хакерство задіяне за лаштунками і багато возиться з драйверами, які намагаються змусити його працювати, і його нелегко налагоджувати. Деякі драйвери можуть бути перекреслено ліцензованими, але НЕ можуть бути поширені залежно від пункту та умов, оскільки домовлялися.
На щастя, це все змінилося зараз з лінією джерел ядра 3.xx, оскільки драйвери Android тепер інтегровані в основні джерела. Але є єва!
Спробуйте перенести ядро 3.xx на існуючу трубку віком від 12 до 18 місяців; Не шанс снігової кулі в пеклі спрацює, це тому, що, з-за різних факторів, джерела 3.xx сильно відрізняються від джерела 2.6.x і знадобиться багато злому, щоб він працював - я повинен знати, спробував перенесення джерела 2.6.38.6 для клинка Zte і не вдалося.
Так само останній випуск ядра 3.0.1 - коли працював над проектом ics4blade над Modaco, зробив численні спроби перенести його, але це зводиться до простого факту, що Zte зробив дуже поганий безлад джерела, який зробив перенесення неможливим .