Cosa succede se faccio il flash di un kernel Android 7 in Android 6?
Tecnicamente non esiste un "kernel Android 7". Le versioni del kernel per i dispositivi Android usano un sistema di nomenclatura completamente diverso dalla versione attuale di Android. Android OS utilizza una variazione del kernel Linux che è tipicamente basato e costruito sulla toolchain GCC (GNU Compiler Collection). Se la vostra domanda è se un kernel compilato per Android 7.0 Nougat può essere lanciato su un dispositivo con Android 6.0 Marshmallow, la regola generale è che una tale configurazione funziona bene. Una delle regole fondamentali della compilazione dei kernel è che una versione più recente non "rompe" nulla di una versione precedente di Android. Userò il mio dispositivo Lenovo Tab 3 come esempio qui. Il mio tablet sta eseguendo un firmware Android 6.0 stock. Tuttavia, la mia versione del kernel è 3.18.31 - un kernel effettivamente compilato per Android 7.0/7.1.1 Nougat che ho costruito da fonti upstream, e tutto è perfettamente compatibile. Nella comunità di sviluppo Android ci si riferisce tipicamente a un kernel come questo come a un kernel ibrido - un kernel che è compatibile con due o più versioni di Android.
In parole molto semplici, un kernel su un dispositivo Android è il ponte, o nexus, tra il software e l'hardware. Il kernel comprende tutti i driver e i blob dell'hardware. Ogni pezzo di hardware su un dispositivo Android che ha bisogno di istruzioni (display, fotocamera, radio, sensori, ecc.) deve passare attraverso il kernel. Allo stesso modo, il sistema operativo Android stesso ottiene i suoi set di istruzioni per i vari componenti hardware dal kernel. Quindi, in generale, ogni volta che una nuova versione del kernel viene compilata da repo e sorgenti upstream, nulla di una versione precedente viene "rotto" dalla nuova build. Dopo tutto, l'hardware del vostro dispositivo Android non cambia quando viene installata una nuova versione di Android o una nuova versione del kernel. Tuttavia, detto questo, per favore non interpretate questo nel senso che un kernel compilato specificamente per Android 6.0 funzionerà necessariamente con Android 7.x.x Nougat. Un tale scenario viceversa non sarebbe necessariamente vero. Infatti, la compatibilità in questo scenario sarebbe probabilmente problematica perché un kernel compilato specificamente per Android Marshmallow non comprenderebbe il codice sorgente necessario per una corretta funzionalità con la stessa build del sistema operativo Android Nougat. Quindi, come regola generale, un kernel di versione più recente è tipicamente compatibile con una versione più vecchia di Android - su una configurazione specifica del dispositivo - ma non necessariamente viceversa.
Articoli simili
- Cosa si intende per kernel stock e kernel personalizzato?
- Cos'è un kernel? Quali sono i vantaggi e gli svantaggi di installare kernel personalizzati sugli smartphone Android?
- Come fare il porting del kernel più recente su un dispositivo Android con il kernel esistente
- Se faccio il root al mio telefono Android riceverò gli aggiornamenti OTA o devo aggiornare il kernel manualmente?