Saltar para conteúdo


Foto
- - - - -

Como Compilar O Jelly Bean Em Debian/ubuntu

debian ubuntu compile jelly bean

  • Por favor inicie sessão para responder
10 respostas a este tópico

#1 lemmon

lemmon

    Geek de Android

  • Membros
  • PipPipPipPip
  • 666 mensagens
  • LocalizaçãoTokyo 3
  • HTC Hero G2, Sony Xperia U

Mensagem publicada 13 July 2012 - 19:37

Para compilar o Jellybean em Ubuntu, vamos primeiro prepaprar a máquina para ficar tudo conforme. Tenham em atenção que isto é uma preview do código fonte para desenvolvimento.

Isto NÃO fará uma ROM completamente funciona, mas é o ponto de partida ideal. E também NÃO consigo corrigir todos os erros encontrados.

Por favor usem o Pastebin para todos os erros encontrados. Postar o link é muito mais fácio do que uma lista enorme de erros aqui na thread.

Nota: O download do código fonte é de 6GB. Precisam de 25GB livres para compilar uma build, e cerca de 80GB ou mais para um conjunto completo de builds. O Ubuntu/Debian deverá ser a versão de 64bits e ter-se no minimo 2gb de ram na máquina.

1) Precisam:
-JDK 6 se quiseres compilar Jellybean.
$ sudo apt-get install openjdk-6-jdk

-Python 2.4 -- 2.7, que podem sacar em python.org. Ou:
$ sudo apt-get install python

-Git 1.7 ou mais recente. Que podem encontrar em git-scm.com. Ou:
$ sudo apt-get install git-core

-Android SDK' class='bbc_url' title='Link Externo' rel='nofollow external'>http://www.androidpt.info/index.php?title=SDK']SDK:
  • Saquem o SDK[/url] aqui: http://developer.and.../sdk/index.html
  • Extraim o SDK' class='bbc_url' title='Link Externo' rel='nofollow external'>http://www.androidpt.info/index.php?title=SDK']SDK e colocquem-no na directoria home.
  • Eu renomeei o SDK' class='bbc_url' title='Link Externo' rel='nofollow external'>http://www.androidpt.info/index.php?title=SDK']SDK para android-SDK[/url] para facilitar a coisa.
  • Naveguem até á directoria Home, e carreguem Ctrl+H para mostrar os files escondidos e abram o ficheiro .bashrc.
  • Adicionem estas linhas no final do ficheiro
    # Android tools
    export PATH=${PATH}:~/android-[acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK']SDK[/acrlink][/acrlink][/acrlink][/acrlink]/tools
    export PATH=${PATH}:~/android-[acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK']SDK[/acrlink][/acrlink][/acrlink][/acrlink]/platform-tools
    export PATH=${PATH}:~/bin
  • Encontrem o ficheiro .profile e adicionem estas linhas no final do ficheiro:
    PATH="$HOME/android-[acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK']SDK[/acrlink][/acrlink][/acrlink][/acrlink]/tools:$HOME/android-[acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK'][acrlink='http://www.androidpt.info/index.php?title=SDK']SDK[/acrlink][/acrlink][/acrlink][/acrlink]/platform-tools:$PATH"
  • Acabaram de instalar o Android SDK' class='bbc_url' title='Link Externo' rel='nofollow external'>http://www.androidpt.info/index.php?title=SDK']SDK.
  • Se quiserem ver se existem updates, intruduzam isto no terminal
    $ android
2) Instalem os pacotes necessários. 64-bit (recomendado)
$ 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

Em versões recencentes do Ubuntu como a 11.10 poderá ser necessário fazer:
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so

Construir os packs no Ubuntu 12.04 está em fase experimental e não é liquido que funcione.

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

3) Configurar as entradas USB.
$ gksudo gedit /etc/udev/rules.d/51-android.rules

No file vazio introduzir:
#Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"

#ASUS
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666"

#Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666"

#Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666"

#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666"

#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"

#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"

#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666"

#K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666"

#KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666"

#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666"

#Lenevo
SUBSYSTEM=="usb", ATTR{idVendor}=="17EF", MODE="0666"

#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"

#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"

#NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666"

#Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666"

#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666"

#OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666"

#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666"

#Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666"

#PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666"

#Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666"

#SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666"

#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666"

#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666"

#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666"

#Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666"

#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"

4) Salvar o ficheiro e no final correr o seguinte comando:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules

5) Instalar o repo
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

6) Iniciar o repo:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.1_r1

6.1) Para os que já haviam iniciado o repo:
$ cd WORKING_DIRECTORY
$ repo init -b android-4.1.1_r1
$ repo sync

7) Quando necessário introduzir o vosso nome e e-mail.

8) Reunam os files:
$ repo sync

9) E compilem:
$ source build/envsetup.sh

Or:
$ . build/envsetup.sh

10) Issue:
$ lunch

11) Escolham o que vos aprouver.

12) Now issue (The '#' is the number of cores your processor has plus 1, ex. I have a dual core processor so I type 'make -j3':
$ make -j#


~How To Add A Device To The List~

1) Encontrem o github para o telemóvel que queiram adicionar. (NEste caso é para o HTC Evo 3D CDMA)

2) Agora naveguem até á localização para onde vão clonar o a tree:
$ cd WORKING_DIRECTORY/device
$ mkdir htc

3) Clonem a github tree do vosso telemovel de remote para local; (The shooter would be whatever you want that folder to be named so make sure it is whatever standard name would be for your device, example: Nexus One [passion], Nexus S [crespo], Motorola Droid [sholes], HTC Incredible [inc], etc.)
$ git clone git://github.com/CyanogenMod/android_device_htc_shooter.git shooter

4) Naveguem até à segiunte pasta:
$ cd shooter

5) Liguem o telemovel ao computador em modo USB debugging is enabled para ficarem com [url="http://www.androidpt.info/index.php?title=ADB"] adb' class='bbc_url' title='Link Externo' rel='nofollow external'>http://www.androidpt.info/index.php?title=ADB']adb.

6) Extraiam os ficheiros proprietários:
$ ./extract-files.sh

7) Naveguem até á pasta home para compilarem:
$ cd ~/WORKING_DIRECTORY

8) Preparem-se para compilarem:
$ source build/envsetup.sh

ou:
$ . build/envsetup.sh

9) Procurem a lista de aparelhos:
$ lunch

10) Escolham o vosso.

11) Agora compilem:
$ make -j#

Ou se quiserem construir um zip flashsavel:
$ make -j# otapackage

~FIXES~
Se encontrarem problemas como:

Which would you like? [full-eng] 5
build/core/product_config.mk:209: *** No matches for product "full_shooter". Stop.
Device shooter not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for shooter not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml.
build/core/product_config.mk:209: *** No matches for product "full_shooter". Stop.

** Don't have a product spec for: 'full_shooter'
** Do you have the right repo manifest?

O que têm de fazer é editar as coisas até que coincidam o PRODUCT_NAME com o nome do ficheiro. Neste caso temos o full_shooter.mk e temos por isso fazer coincidir o PRODUCT_NAME com isto. Qualquer que seja o erro, basta apenas mudar a linha do PRODUCT_NAME de acordo com os erros reportados.

Se encontrarem problemas decorrentes da versão Java ser a ncorrecta ou não ser a mais recente, façam isto para corrigir o problema:
Certifiquem-se que o Java 6 JDK está instalada fazendo:
$ java -version
Abram o o ficheiro main.mk da build/core e apaguem a linha da secção de erro da java:
$(error stop)

fonte: [url="http://forum.xda-developers.com/showthread.php?t=1762641"]http://forum.xda-dev...d.php?t=1762641

Editado por lemmon, 21 July 2012 - 14:10.

  • pedronveloso, skyn3t, elduchy e 2 outros gostam disto

Main Phone: Sony Xperia S White 32GB | Stock Jelly Bean 4.1.2 | 6.2.B.0.200 Unlocked BL | CWM Recovery by DooMLoRD
Second Phone: HTC Hero G2 running Hero CronosGinger X 2.3.5


#2 lemmon

lemmon

    Geek de Android

  • Membros
  • PipPipPipPip
  • 666 mensagens
  • LocalizaçãoTokyo 3
  • HTC Hero G2, Sony Xperia U

Mensagem publicada 13 July 2012 - 23:04

Ora bem, após um pequeno desentendido com o forum admin r3pek, que foi cordialmente sanado, irei dentro em breve iniciar a tradução deste topico, de sobeja importância para os mais interessados (espero que existam alguns por aí). hoje vai ser complicado, e no decorrer das proximas 48hrs também: almoço androidPT, namoro e optimus alive, com a presença magnifica de radiohead, vão tirarme tempo. mas dps disso, vai ficar prontinho.
pede-se que alguém com dominio da coisa, cozinhe uma rom tuga, para equipamentos de topo ou que suportem este OS, para que o branding GeekLusitano voe alto em terras bretãs (alusão à letra inicial do nosso hino nacional :P )
kudos

Main Phone: Sony Xperia S White 32GB | Stock Jelly Bean 4.1.2 | 6.2.B.0.200 Unlocked BL | CWM Recovery by DooMLoRD
Second Phone: HTC Hero G2 running Hero CronosGinger X 2.3.5


#3 Duarte777

Duarte777

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 2279 mensagens
  • LocalizaçãoBraga
  • Samsung Galaxy S6

Mensagem publicada 14 July 2012 - 17:48

Boa iniciativa e boa sorte na tradução, se precisares de ajuda apita ;)
  • lemmon gosta disto
HTC One - 4.2.2 Stock

#4 lemmon

lemmon

    Geek de Android

  • Membros
  • PipPipPipPip
  • 666 mensagens
  • LocalizaçãoTokyo 3
  • HTC Hero G2, Sony Xperia U

Mensagem publicada 14 July 2012 - 18:17

Boa iniciativa e boa sorte na tradução, se precisares de ajuda apita ;)

ahah. thanks. é na boa bro. isto faz-se bem. mas tou com preguiça agora ^^
kudos
  • Duarte777 gosta disto

Main Phone: Sony Xperia S White 32GB | Stock Jelly Bean 4.1.2 | 6.2.B.0.200 Unlocked BL | CWM Recovery by DooMLoRD
Second Phone: HTC Hero G2 running Hero CronosGinger X 2.3.5


#5 joaquimorg

joaquimorg

    Membro

  • Membros
  • PipPip
  • 89 mensagens
  • LocalizaçãoLisboa

Mensagem publicada 20 July 2012 - 17:06

Parabéns pela iniciativa, só tenho um reparo a fazer, devias indicar que tem que ser uma maquina (pode ser virtual) com o Ubuntu 64Bits e que deve ter pelo menos 2Gb de Ram.

Editado por joaquimorg, 20 July 2012 - 17:07.

http://www.joaquim.org
Phone Wiko Darkmoon (CyanogenMod 12.1)


#6 lemmon

lemmon

    Geek de Android

  • Membros
  • PipPipPipPip
  • 666 mensagens
  • LocalizaçãoTokyo 3
  • HTC Hero G2, Sony Xperia U

Mensagem publicada 21 July 2012 - 14:08

Ficam aqui algumas notas da tradução e pedido de ajuda
Buid traduzi por compilar em alguns passos. Não sei se se pode aplicar o termo
Github tree deixei inalterado
Faltam traduzir o passo 3 do ~How To Add A Device To The List~ e mais dois pontinhos acima que não tive capacidade nem ousei mexer.
Aceita-se ajuda para alterações convenientes e merecidas.
kudos

Main Phone: Sony Xperia S White 32GB | Stock Jelly Bean 4.1.2 | 6.2.B.0.200 Unlocked BL | CWM Recovery by DooMLoRD
Second Phone: HTC Hero G2 running Hero CronosGinger X 2.3.5


#7 lemmon

lemmon

    Geek de Android

  • Membros
  • PipPipPipPip
  • 666 mensagens
  • LocalizaçãoTokyo 3
  • HTC Hero G2, Sony Xperia U

Mensagem publicada 21 July 2012 - 14:10

Parabéns pela iniciativa, só tenho um reparo a fazer, devias indicar que tem que ser uma maquina (pode ser virtual) com o Ubuntu 64Bits e que deve ter pelo menos 2Gb de Ram.

alterado. many thanks.
kudos

Main Phone: Sony Xperia S White 32GB | Stock Jelly Bean 4.1.2 | 6.2.B.0.200 Unlocked BL | CWM Recovery by DooMLoRD
Second Phone: HTC Hero G2 running Hero CronosGinger X 2.3.5


#8 mamv

mamv

    Novato

  • Membros
  • Pip
  • 2 mensagens

Mensagem publicada 09 August 2012 - 18:45

Boas,
Quando se trata de um telemóvel recente (neste caso u9200), em que não há as proprietary files no github como é que se faz?
Obrigado.

Editado por mamv, 07 September 2012 - 14:09.


#9 stormbr

stormbr

    Novato

  • Membros
  • Pip
  • 2 mensagens
  • Ramos W30HD

Mensagem publicada 12 January 2013 - 05:38

Boas,
Quando se trata de um telemóvel recente (neste caso u9200), em que não há as proprietary files no github como é que se faz?
Obrigado.


Desculpem desenterrar o tópico, mas tbm tenho a mesma duvida.

#10 pedronveloso

pedronveloso

    Veloso

  • Administradores
  • 1578 mensagens
  • S8

Mensagem publicada 12 January 2013 - 10:23

Desculpem desenterrar o tópico, mas tbm tenho a mesma duvida.


Quando é assim têm de tirar os proprietary files da ROM original do dispositivo. Dentro da maioria dos dispositivos que existem na árvore da CM existe um ficheiro chamado "extract-files.sh" que em conjunto com um ficheiro de nome "proprietary-files.txt" define que ficheiros irão ser extraídos da ROM original por ADB. Vejam exemplos de dispositivos que se pareçam com vosso e os tais scripts para verem como podem fazer um específico para o vosso dispositivo ;)

#11 stormbr

stormbr

    Novato

  • Membros
  • Pip
  • 2 mensagens
  • Ramos W30HD

Mensagem publicada 12 January 2013 - 16:38

Obrigado Veloso pela ajuda, entao certamente terei que criar meus arquivos de propriedade.

Se a fabricante do tablet fornecesse o source code do dispositivo, isso ajudaria em algo ou falei besteira ? Desculpe a ignorância.

Ontem tentei compilar o source direto do google pela primeira vez, mas depois do comando "repo sync", travou na mensagem: Fetching projects: 99% (278/280).

Agradeço antecipadamente.

Editado por stormbr, 12 January 2013 - 16:40.






Também marcado com uma ou mais destas tags: debian, ubuntu, compile, jelly bean