CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 5 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: DreamReaper con ben 21 Thanks ricevuti negli ultimi sette giorni
Utente del mese: DreamReaper con ben 82 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

[GUIDA] Come buildare Android x86

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano VIP L'avatar di KlaasMad


    Registrato dal
    Mar 2012
    Località
    /home/klaasmad
    Messaggi
    4,098
    Smartphone
    OPO - Asus T100/Teclast x98

    Ringraziamenti
    843
    Ringraziato 2,849 volte in 1,433 Posts
    Predefinito

    [GUIDA] Come buildare Android x86

    Come buildare Android x86

    Pre-requisiti

    Per inoltrarsi nella compilazione di Android x86 dovrete essere in ambiente Linux e certi pacchetti devono essere installati. Per una guida completa su come installare e settare al meglio il vostro ambiente di lavoro, seguite questa guida.

    https://www.androidiani.com/forum/an...-buildare.html

    È altamente consigliato girare su un sistema a 64bit.

    Scaricare i sorgenti

    Create la vostra cartella di lavoro ed entrateci:

    codice:
    mkdir android-x86
    cd android-x86
    Inizializzate il repo nella cartella dando:

    codice:
    repo init -u http://git.android-x86.org/manifest -b $branch
    Dove a $branch sostituirete con il branch che intendete compilare considerando che:
    - kitkat-x86 è Android 4.4 (KitKat).
    - jb-x86 è Android 4.3 (Jelly Bean).
    - ics-x86 è Android 4.0 (Ice Cream Sandwich).
    - honeycomb-x86 è Android 3.2 (Honeycomb).
    - gingerbread-x86 è Android 2.3 (Gingerbread).
    - froyo-x86 è Android 2.2 (Froyo).
    - eclair-x86 è Android 2.1 (Eclair).
    - donut-x86 è Android 1.6 (Donut).
    - android-x86-v0.9 (obsolete) è Android 1.5 (Cupcake).

    Una volta inizializzata la sorgente, date da terminale:

    codice:
    repo sync -j4
    In alternativa, se il server di android-x86.org fosse down, potete utilizzare il repo di sourceforge.org

    codice:
    repo init -u git://android-x86.git.sf.net/gitroot/android-x86/x86/platform/manifest.git -b $branch
    repo sync -j4
    Stesso discorso di $branch si applica anche qui.

    D'ora in avanti, repo sync scaricherà circa 10gb di sorgenti, per cui state tranquilli ed aspettate. Se il processo fallisce, riavviate digitando nuovamente repo sync fin quando non termina.

    Ora si builda!

    Una volta che repo sync ha terminato di scaricare i sorgenti, sarà possibile cominciare a buildare e potrete scegliere se buildare un'immagine iso per usb o per cd. Java 1.6 è supportato anche per Froyo, a dispetto del limite imposto da AOSP.

    Scegliere un target.

    Il team offre diversi target a seconda del branch che volete buildare:

    donut-x86
    - eeepc: for ASUS EeePC family
    - q1u: for Samsung Q1U
    - s5: for Viliv S5

    eclair-x86
    - generic_x86: for generic x86 PC/notebook
    - eeepc: for ASUS EeePC family only
    - q1u: for Samsung Q1U
    - s5: for Viliv S5

    froyo-x86 / gingerbread-x86
    - generic_x86: for generic x86 PC/notebook
    - eeepc: for ASUS EeePC family only
    - asus_laptop: for some ASUS laptops
    - tegav2: for Tegatech Tegav2 (may work with other Atom N45x based tablets)
    - sparta: for Dell Inspiron Mini Duo platform
    - vm: for virtual machine (virtual box, qemu, vmware)
    - motion_m1400: for Motion M1400 (Intel Centrino M based with Intel PRO/Wireless)

    honeycomb-x86 / ics-x86
    - generic_x86: for generic x86 PC/notebook
    - amd_brazos: for AMD Brazos platform
    - eeepc: for ASUS EeePC family only
    - asus_laptop: for some ASUS laptops
    - tegav2: for Tegatech Tegav2 (may work with other Atom N45x based tablets)

    jb-x86 / kitkat-x86
    - android_x86: for x86 platform

    A partire da Jelly Bean il team ha cercato di uniformare tutti i target a quello generico.
    Se siete interessati ad implementare un nuovo target, fate riferimento al secondo post.

    Per iniziare a buildare una .iso live con target android_x86 digitate da terminale:

    codice:
    make -jX iso_img TARGET_PRODUCT=android_x86
    Dove a -jX sostituirete il numero dei core che avete, ad esempio, per indicare una macchina con 4 core:

    codice:
    make -j4 iso_img TARGET_PRODUCT=android_x86
    Onde evitare di ridare tutto il comando, è possibile creare un buildspec.mk per ricordarsi del target che si da. Create il file nella cartella android-x86 ed incollate dentro:

    codice:
    TARGET_PRODUCT:=android_x86
    TARGET_BUILD_VARIANT:=userdebug
    TARGET_BUILD_TYPE:=release
    TARGET_KERNEL_CONFIG:=android-x86_defconfig
    Così, invece di dare tutto il comando, vi basterà:

    codice:
    make -jX iso_img
    In alternativa al comando make iso_img, potete utilizzare lo standard impostato da Google nel suo AOSP, ossia l'uso di build/envsetup.sh e lunch.
    Una volta che siete dentro alla cartella android-x86 col terminale, digitate

    codice:
    . build/envsetup.sh
    *notate lo spazio tra il punto e build.
    In questo modo si caricheranno le impostazioni ed i comandi per effettuare il build.

    Adesso date il comando lunch seguito dal TARGET_PRODUCT e dal TARGET_BUILD_VARIANT
    dove per TARGET_PRODUCT si intende i target descritti sopra e TARGET_BUILD_VARIANT i vari eng, user, userdebug.

    Un rapido esempio ci è dato da:

    codice:
    lunch android_x86-eng
    Dopo di che, sempre da terminale si da

    codice:
    make -jX iso_img
    Ricordandosi che ad X si sostituisce il numero dei core del pc.

    Per buildare impiegherà più o meno un'ora come media, ma se avete un pc con basse specs, potrà arrivare anche a 3-4 ore.
    Il frutto del vostro lavoro sarà nella cartella ~/android-x86/out/target/product/x86
    Non vi resta che renderla bootabile e provarla live o installarla su virtual machine o su hard disk!

    Per quello c'è un'altra guida che vi viene in soccorso https://www.androidiani.com/forum/an...ttura-x86.html.

  2.  
  3. #2
    Androidiano VIP L'avatar di KlaasMad


    Registrato dal
    Mar 2012
    Località
    /home/klaasmad
    Messaggi
    4,098
    Smartphone
    OPO - Asus T100/Teclast x98

    Ringraziamenti
    843
    Ringraziato 2,849 volte in 1,433 Posts
    Predefinito

    Creare un nuovo target

    Per prima cosa, create la directory dove dovrete andare a lavorare:

    codice:
    cd ~/android-x86/device/xxx/yyy
    Dove per xxx si intende la marca del prodotto (ad esempio Asus) e per yyy si intende il codice del prodotto, ad esempio eeepc.

    Create 4 makefile nella nuova directory:

    AndroidProducts.mk
    Questo makefile conterrà soltanto PRODUCT_MAKEFILES che è una lista dei makefiles del prodotto da esporre al processo di build. Se il codice prodotto è yyy allora sarà

    codice:
    PRODUCT_MAKEFILES := $(LOCAL_DIR)/yyy.mk
    Il makefile del prodotto yyy.mk
    Dovrai definirci PRODUCT_PACKAGES, PRODUCT_NAME, PRODUCT_DEVICE ed eseguire una call inherit-product per il makefile del prodotto. I dev suggeriscono di richiamare generic_x86.mk per avere tutte le regole comuni x86.

    codice:
    $(call inherit-product,$(SRC_TARGET_DIR)/product/generic_x86.mk)
    BoardConfig.mk
    Puoi sovrascrivere alcune variabili, inclusa $(GENERIC_X86_CONFIG_MK)

    - TARGET_HAS_THIRD_PARTY_APPS
    setta true se speri di compilare app di terze parti come ConnectBot, FileManager etc.
    Default: false

    - BOARD_USES_ALSA_AUDIO
    Setta false se non vuoi ALSA audio.
    Default: true.

    - BOARD_HAVE_BLUETOOTH
    Se non ti serve il bluetooth setta false.
    Default: true.

    - BOARD_USES_TSLIB
    Setta true se ti serve tslib per calibrare il touchscreen.
    Default: false

    - BOARD_KERNEL_CMDLINE
    Puoi personalizzare la tua cmdline (opzioni di boot del kernel)

    - BOARD_WPA_SUPPLICANT_DRIVER
    Setta true se ti serve un supporto wifi.

    AndroidBoard.mk
    Puoi sovrascrivere alcune variabili prima di includere
    $(GENERIC_X86_ANDROID_MK)

    - LOCAL_FIRMWARES
    Specifica i firmware da includere nel target. Questi dovranno essere già presenti in build/target/board/generic_x86/firmware/.
    Puoi anche specificare una diversa directory in LOCAL_FIRMWARES_DIR.

    - TARGET_INITRD_SCRIPTS
    Specifica uno script da agganciare all'initrd.img. Solitamente lo script deve contenere una funzione detect_hardware che sarà richiamata dallo script init.

    - TARGET_PREBUILT_APPS
    Se vuoi includere alcune app precostruite (in formato apk) settale in questa variabile.

    - TARGET_KERNEL_CONFIG
    Specifica un file di configurazione di un kernel per questo target. Se non settato, sarà usato il default android-x86_defconfig.

    Oltre i 4 makefiles, è posibile anche aggiungere il file init.yyy.rc per eseguire alcune inizializzazioni al tuo prodotto. Il file sarà automaticamente incluso se esiste e richiamato da android init all'accensione.
    Ultima modifica di KlaasMad; 24-12-13 alle 21:41

  4. #3
    Androidiano VIP L'avatar di KlaasMad


    Registrato dal
    Mar 2012
    Località
    /home/klaasmad
    Messaggi
    4,098
    Smartphone
    OPO - Asus T100/Teclast x98

    Ringraziamenti
    843
    Ringraziato 2,849 volte in 1,433 Posts
    Predefinito

    Riservato #2

  5. #4
    Androidiano VIP L'avatar di KlaasMad


    Registrato dal
    Mar 2012
    Località
    /home/klaasmad
    Messaggi
    4,098
    Smartphone
    OPO - Asus T100/Teclast x98

    Ringraziamenti
    843
    Ringraziato 2,849 volte in 1,433 Posts
    Predefinito

    Riservato #3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy