Come costruire una ROM personalizzata da Android Progetto Open Source

Se si ha familiarità con il tifo il vostro telefono Android o il download di ROM personalizzate, come ad esempio il popolarissimo CyanogenMod o il suo successore Lineage OS, si può avere chiesto – come fanno le persone a costruire queste ROM? Quanto lavoro va esattamente nello sviluppo di una ROM personalizzata?

Questa guida ti guiderà attraverso le basi dello sviluppo della tua ROM Android personalizzata. Va notato che questa è un’impresa enorme – se hai zero esperienza nella codifica o scherzare nei terminali Linux, potresti voler ottenere qualche conoscenza sotto la cintura prima di immergerti in questo deep-end. Ma se hai almeno un’idea di base di queste cose, cercherò di spiegare le cose nel modo più semplice possibile, in modo da poter seguire.

Fondamentalmente quello che stiamo facendo è scaricare il codice sorgente raw Android (AOSP) e modificarlo a nostro piacimento. Poiché ci sono così tante fonti tra cui scegliere per diversi dispositivi, questa guida farà semplicemente riferimento alla fonte principale nota come AOSP (Android Open Source Project).

Ora la cosa su AOSP è che il codice sorgente puro non include proprietà hardware specifiche del dispositivo. In parole povere, l’hardware come la fotocamera e la GPU non funzionerà “fuori dalla scatola” quando si sviluppa con l’AOSP. In realtà, il dispositivo non sarà nemmeno l’avvio senza questi binari hardware.

Se stai sviluppando per un telefono con marchio Google (Pixel, Nexus, ecc.), puoi trovare i binari hardware direttamente da Google e questa guida ti guiderà attraverso l’ottenimento e la costruzione nella tua ROM. Tuttavia, se stai sviluppando una ROM per un telefono di marca (Sony, Samsung, ecc.) well beh, benedici il tuo cuore, perché sei dentro per un giro.

Alcuni produttori hanno i propri progetti open source o rilasciano strumenti di sviluppo per aspiranti sviluppatori, mentre altri produttori mantengono un coperchio stretto sui loro codici proprietari. Ecco un breve elenco dei progetti open source più popolari produttori:

Samsung Open Source Release Center
Sony Sviluppatore Mondo
Supporto Lenovo
Huawei Open Source Release Center
Motorola Sviluppatori

Con che fuori del modo, continuiamo sotto l’ipotesi che stiamo costruendo una ROM per più di base, vaniglia esperienza di Android, di Google Pixel del dispositivo. Con questa conoscenza sotto la cintura, sarete in grado di espandersi da soli e iniziare a sviluppare versioni personalizzate di ROM specifiche del produttore.

Requisiti per questa Guida:

  • Android Progetto Open Source
  • Pixel XL telefono o un emulatore di Android per Linux
  • Sistema operativo Linux a 64 bit-Ubuntu o Linux Mint sono le distribuzioni più newbie – friendly, mentre BBQLinux è stato sviluppato specificamente con gli sviluppatori Android in mente.
  • Python
  • Un computer muscoloso (la compilazione del codice richiede molta memoria e spazio!)

Impostazione dell’ambiente di compilazione

Iniziamo impostando l’emulatore Android sulla tua macchina Linux. Che tu abbia o meno un dispositivo Google Pixel XL, è sempre più sicuro provare la tua nuova ROM su un emulatore Android prima di lampeggiarla sul tuo dispositivo. Il mio preferito è Genymotion, quindi ti guiderò attraverso l’installazione di quel particolare emulatore. Tuttavia, è anche possibile controllare questa guida “Migliori emulatori Android”, come la maggior parte di loro hanno anche la compatibilità Linux.

Vai al sito Web di Genymotion, registra un account, verificalo tramite e-mail e scarica l’eseguibile sul tuo desktop Linux.

Ora apri un terminale Linux e digita:

Chmod +x genymotion-xxxxx.bin (sostituire xxxx con il numero di versione nel nome del file)
./ genymotion-xxxxxx.bin

Premere Y per creare la directory Genymotion. Ora digitare il terminale:

cd genymotion &&./ genymotion

Ora ti chiederà di iniziare il processo di installazione, quindi continua a fare clic su Avanti fino ad arrivare alla finestra Aggiungi dispositivi virtuali. Seleziona “Pixel XL” sotto l’opzione Modello dispositivo, quindi completa l’installazione. Puoi testare il dispositivo virtuale se vuoi, sarà fondamentalmente come avere un telefono Pixel XL sul tuo desktop.

Impostiamo ora Python:

$ apt-get install python

Ora abbiamo bisogno di impostare il Kit di sviluppo Java sulla vostra macchina Linux. Aprire il terminale Linux e digitare i seguenti comandi:

open sudo apt-get update
Now sudo apt-get install openjdk-8-jdk

Ora è necessario configurare il sistema Linux per consentire l’accesso ai dispositivi USB. Eseguire il seguente codice nel terminale Linux:

Questo scaricherà il 51-Android richiesto.file txt che consente l’accesso al dispositivo USB di cui sopra. Aprire il .file txt e modificarlo per includere il nome utente Linux, quindi posizionare il.file txt nel seguente percorso: (come utente root). Ora collegare il dispositivo al computer tramite USB per le nuove regole per entrare in vigore automaticamente.

Scaricando il sorgente Android

L’AOSP è ospitato su Git, quindi useremo uno strumento chiamato Repo per comunicare con Git.

Per prima cosa dobbiamo impostare una cartella /bin nella tua Home directory. Digitare i seguenti comandi nel terminale Linux:

mk mkdir ~ / bin
PATH PATH = ~ / bin:PATH PATH

Ora scaricheremo lo strumento Repo, quindi digita nel terminale Linux:

curl curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
ch chmod a+x ~/bin/repo

Dopo l’installazione di Repo, dobbiamo ora creare una directory vuota per contenere i file di lavoro. Quindi digita questo nel terminale Linux:

mk mkdir WORKING_DIRECTORY
cd cd WORKING_DIRECTORY

Ora configureremo Git con il tuo nome e indirizzo email – usa un indirizzo Gmail che controlli regolarmente, altrimenti non sarai in grado di usare lo strumento di revisione del codice Gerrit.

g git config –utente globale.nome “Il tuo nome”
g git config-utente globale.email [email protected]

Ora diremo a Repo di estrarre l’ultimo manifesto master di AOSP da Git:

rep repo init-u https://android.googlesource.com/platform/manifest

Se fatto correttamente, riceverai un messaggio che Repo è stato inizializzato nella tua directory di lavoro. Troverete anche un “.repo ” directory all’interno della directory client. Quindi ora scaricheremo l’albero dei sorgenti Android con:

sync repo sync

Costruire il sorgente Android

Questo è dove entrano in gioco i binari hardware menzionati all’inizio di questa guida. Andiamo oltre alla pagina dei driver AOSP e scaricare i binari Pixel XL per Android 7.1.0 (NDE63P). Si desidera scaricare sia l’immagine del fornitore che i componenti hardware. Questi vengono come archivi compressi, in modo da estrarli sul desktop ed eseguire lo script autoestraente dalla cartella principale. Scegli di installare i binari nella radice di WORKING_DIRECTORY che abbiamo creato in precedenza.

Ora digita nel tuo terminale Linux:

make crea clobber
source source build/envsetup.sh

Ora sceglieremo l’obiettivo da costruire, quindi digita:

lunch lunch aosp_marlin-userdebug
set setpaths
make make –j4

Lì, ora abbiamo “costruito” una ROM Android dalla sorgente. Quindi testiamolo nell’emulatore, digitando nel terminale:

emulator emulatore

Quindi gioca un po ‘ nell’emulatore. Come puoi vedere, un’esperienza Android puramente vanigliata è abbastanza minima, ed è per questo che i produttori personalizzano l’AOSP in base alle loro esigenze. Quindi potresti far lampeggiare questa ROM che abbiamo appena costruito sul tuo dispositivo se lo volessi, ma senza aggiungere alcun miglioramento, un’esperienza Android puramente vanigliata sarebbe davvero una cosa molto noiosa.

Quindi ciò che i produttori faranno in genere con l’AOSP è fork it, aggiungere i propri binari proprietari, personalizzare l’interfaccia utente, aggiungere un logo di avvio, ecc. Produttore fondamentalmente solo dipingere sopra il magazzino ROM Android, e in modo che sarà il vostro prossimo obiettivo pure.

Restate sintonizzati, come la seconda parte di questa guida passerà attraverso l’aggiunta di font, temi, e un’animazione di avvio per la vostra ROM!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.