• Nenhum resultado encontrado

CONFIGURANDO UM AMBIENTE DE COMPILAÇÃO PARA LINUX

No documento Customização da plataforma Android (páginas 70-75)

5 DESENVOLVIMENTO

5.3 CONFIGURANDO UM AMBIENTE DE COMPILAÇÃO PARA LINUX

Segundo Android Open Source Project (2013) a compilação do Android é rotineiramente testada “in house” na versão do Ubuntu 10.04 LTS, mas a maioria das distribuições Linux devem ter as ferramentas requeridas para a compilação.

Para as versões do Android 2.3 e versões mais recentes, incluindo a versão “master”, é necessário um ambiente de 64 bits. Versões mais antigas podem ser compiladas em sistemas de 32 bits.

Também é possível compilar o Android em uma máquina virtual. Os requisitos mínimos para a compilação utilizando o Linux em uma máquina virtual é de pelo menos 2GB de RAM e 30GB ou mais de espaço no disco rígido.

Nos capítulos a seguir são listadas instruções detalhadas para a configuração do ambiente no Ubuntu. Estas instruções aplicam-se a todas as versões, incluindo a versão “master”. Em geral são necessários os seguintes softwares de terceiros:

 Python 2,6-2,7, que pode ser baixado no site python.org.

 JDK59 6, se você quiser compilar a versão Gingerbread ou uma mais recente, ou o JDK 5 para a compilação da versão Froyo ou mais antiga. Ambos podem ser baixados no site java.sun.com.

 Git 1.7 ou mais recente. Pode ser baixado no site git-scm.com.

5.3.1 Instalando o JDK

Atualmente os pacotes do JDK não estão mais no repositório principal de pacotes da versão 10.04 LTS do Ubuntu. Dessa forma, para fazer o download é necessário adicionar o repositório apropriado para indicar ao sistema qual JDK deve ser usado.

Para baixar o Java 6, necessário para as versões Gingerbread e mais recentes, é necessário executar os seguintes comandos:

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" $ sudo apt-get update

$ sudo apt-get install sun-java6-jdk

O comando “sudo” provém ao usuário permissão de super usuário no Linux, ou seja, é necessário para instalação de programas, tarefas administrativas do sistema, alteração em configurações importantes, etc. O comando “add-apt-repository” adiciona a URL que está entre parênteses, na lista de repositórios do Apt, que por sua vez é a ferramenta do Ubuntu para download de pacotes. O comando “update” do Apt, atualiza a lista de repositórios e o comando “install”, instala determinado pacote, no caso o “sun-java6-jdk”.

Para baixar o Java 5 necessário para as versões Froyo e mais antigas, é necessário executar os seguintes comandos:

$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"

$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy- updates main multiverse"

$ sudo apt-get update

$ sudo apt-get install sun-java5-jdk

5.3.2 Instalando pacotes necessários para o Ubuntu 10.04

Para fazer o download e instalação dos pacotes necessários para a compilação do Android na versão do Ubuntu 10.04 de 64 bits, é necessário digitar o seguinte comando no terminal do Linux.

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \

x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \ libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \ libxml2-utils xsltproc

Este comando instalará todos os softwares e bibliotecas necessárias para a compilação da plataforma Android.

Segundo Android Open Source Project (2013), a compilação utilizando outras versões do Linux é considerada experimental e não existe garantia de funcionamento.

5.3.3 Configurando o acesso USB

No sistema operacional Ubuntu, por padrão, os usuários comuns não tem permissão de acessar diretamente dispositivos USB. Para utilizar algum dos dispositivos da

linha Nexus no processo de compilação e customização da plataforma, o sistema precisa ser configurado para permitir o acesso direto a estes dispositivos.

Dessa forma para que o acesso aos dispositivos seja permitido pelo Ubuntu, é necessário criar o arquivo “/etc/udev/rules.d/51-android.rules” (como “super usuário”) e em seguida, copiar as linhas abaixo dentro dele, substituindo as expressões <nomedeusuário>, pelo nome real do usuário no Linux que esta sendo autorizado a acessar os dispositivos USB listados.

# adb protocol on passion (Nexus One)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"

# fastboot protocol on passion (Nexus One)

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"

# adb protocol on crespo/crespo4g (Nexus S)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"

# fastboot protocol on crespo/crespo4g (Nexus S)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"

# adb protocol on stingray/wingray (Xoom)

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"

# fastboot protocol on stingray/wingray (Xoom)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"

# adb protocol on maguro/toro (Galaxy Nexus)

SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"

# fastboot protocol on maguro/toro (Galaxy Nexus)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"

# adb protocol on panda (PandaBoard)

SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"

# fastboot protocol on panda (PandaBoard)

SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"

# usbboot protocol on panda (PandaBoard)

SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"

# usbboot protocol on panda (PandaBoard ES)

MODE="0600", OWNER="<username>"

# adb protocol on grouper/tilapia (Nexus 7)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"

# fastboot protocol on grouper/tilapia (Nexus 7)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"

# adb protocol on manta (Nexus 10)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"

# fastboot protocol on manta (Nexus 10)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"

Este arquivo configura o acesso USB no Linux para todos os dispositivos da linha Nexus. Depois de o arquivo ser salvo, estas regras entram em vigor no momento que um dispositivo USB é plugado. Entretanto, caso ele já esteja conectado, pode ser necessário desligar e ligar novamente o computador.

5.3.4 Configurando a ferramenta CCache

Esta é uma configuração opcional, ou seja, não é obrigatória para o funcionamento da compilação do Android. A ferramenta CCache atua como um cache do compilador que pode ser usado para acelerar a compilação. Ela é extremamente útil caso seja necessário executar por muitas vezes o comando “make clean” (que serve para limpar a compilação do sistema) ou quando o Android é compilado para diferentes dispositivos em um curto espaço de tempo. Para configurar o CCache é necessário executar o comando abaixo no terminal, para manipular a variável de ambiente do CCache.

Por padrão, o cache será armazenado em “~/.Ccache”. O tamanho do cache sugerido é entre 50GB até 100GB. É necessário executar o seguinte comando para efetuar esta configuração:

prebuilts/misc/linux-x86/ccache/ccache -M 50G

Esta configuração fica armazenada no diretório CCACHE_DIR da pasta “home” do usuário e é persistente.

No documento Customização da plataforma Android (páginas 70-75)

Documentos relacionados