ANDROID OPEN SOURCE PROJECT – AOSP O que realmente é Open Source e o que não é no Android
AOSP Android Open Source Project
O QUE É O AOSP • Uma iniciativa criada para guiar o desenvolvimento da plataforma Android • Consiste no Sistema Operacional, midleware e aplicativos • Mantido pelo Google • Regulado pelo Android Compatibility Program (ACP)
• Desde 8 de Março de 2008 • Aberto em 22 de Outubro de 2008 • 10.715.902 linhas de código • 319.322 commits por 2.314 pessoas Linhas de Código Commits por Mês 5.0 Lollipop 4.4 KitKat 4.1 Jelly Bean 4.0 Ice Cream Sandwich 3.0 Honeycomb 2.2 Froyo 2.3 Gingerbread 2.0 Eclair 1.6 Donut
LICENÇAS • Preferencialmente Apache Software License 2.0 (ASLv2) para o userspace • O Kernel usa GPLv2 • Partes tem o código fechado com licenças comerciais (ex.: Serviços do Google Play)
ANDROID COMPATIBILITY PROGRAM (ACP) • Ambiente consistente de hardware e aplicativos para desenvolvedores • Experiência consistente para o usuário • Fabricantes se diferenciando, porém mantendo compatibilidade • Minimizar custos e tempo associados com compatibilidade
CONSISTE EM • Código fonte do Android • Documento de Definição de Compatibilidade (CDD) • Conjunto de Testes de Compatibilidade (CTS)
O QUE NÃO É ABERTO • Aplicativos do Google • Google Play Services • Google Mobile Services (GMS) • Experiência Google • Licença Comercial • “Tudo ou Nada"
GOOGLE MOBILE SERVICES • Gmail • Chrome • Google+ • Maps • YouTube • Google Drive • Google Translate • Google Now • Google Play
GOOGLE PLAY SERVICES • Criado em 26 de Setembro de 2012 • Sicronismo de contas • Google+ (SSO, compartilhamento) • Google Maps • Location APIs • Google Play Games • Cloud Messaging (Push Notifications) • Android Device Manager
CUSTOM ROMS • CyanogenMod • Paranoid Android • XobotOS (Xamarin + C#) • Android Open Kang Project AOKP • Baidu Yi • Replicant
ANDROID FORKS • Amazon Fire OS • Barnes & Noble Nook • Nokia X • Yandex.kit • PrivatOS
MÃOS À OBRAS Baixe, compile e instale
O AMBIENTE DE DESENVOLVIMENTO • Pelo menos 30 GB de espaço live em disco • Idealmente 16 GB de RAM e processador de 8 cores • Python 2.6 ou 2.7 (python.org) • GNU Make 3.81 ou 3.82 (gnu.org) • JDK 7 (como instalar o JDK) • Git 1.7 ou superior (git-scm.org)
A FERRAMENTA REPO 1. Coloque uma pasta bin no seu home e deixe-o acessível pelo PATH $ mkdir ~/bin $ PATH=~/bin:$PATH 2. Baixe o repo e garanta que ele pode ser executado $ curl https://storage.googleapis.com/git-­‐repo-­‐downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo
A FERRAMENTA REPO 3. Inicialize a sua pasta de trabalho $ mkdir aosp $ cd aosp 4. Baixe o código do Android Open Source Project $ repo init -­‐u https://android.googlesource.com/platform/manifest -­‐b android-­‐5.0.0_r6 $ repo sync
BAIXANDO OUTRAS ROMS • Baixe o código do Android Open Kang Project $ repo init -­‐u git://github.com/AOKP/platform_manifest.git -­‐b jb-­‐mr2 $ repo sync • Baixe o código do CyanogenMod $ repo init -­‐u https://github.com/CyanogenMod/android.git -­‐b cm-­‐11.0 $ repo sync • Baixe o código do Paranoid Android $ repo init -­‐u https://github.com/AOSPA/manifest -­‐b lollipop $ repo sync
COMPILANDO O ANDROID • Processo demorado • Mais de 2 h com 4-core e 8 GB de RAM • 15 min com 48-core e 128 GB de RAM • 45 min com 16-core e 32 GB de RAM
COMPILANDO O ANDROID 1. Inicialize o ambiente de compilação $ . build/envsetup.sh ou $ source build/envsetup.sh 2. Escolha a plataforma a ser compilada $ lunch aosp_hammerhead-­‐userdebug ou veja as alternativas $ lunch
COMPILANDO O ANDROID 3. Compile a distribuição A opção -jN cria N threads de compilação, calcule este valor da seguinte forma: N=cores do processador×1.5 $ make -­‐j24
OS BINÁRIOS DA PLATAFORMA - NEXUS 5 • O Google não distribui os arquivos de driver binários das plataformas junto com o AOSP • Alguns drivers nem mesmo estão nos pacotes de download
OS BINÁRIOS DA PLATAFORMA - NEXUS 5 1. Baixe os binários que o Google publica aqui $ wget https://dl.google.com/dl/android/aosp/broadcom-­‐hammerhead-­‐ lrx21o-­‐01fad5db.tgz $ wget https://dl.google.com/dl/android/aosp/lge-­‐hammerhead-­‐lrx21o-­‐ c6cf4582.tgz $ wget https://dl.google.com/dl/android/aosp/qcom-­‐hammerhead-­‐lrx21o-­‐ e0cd4949.tgz 2. Descompacte, execute os scripts no diretório de trabalho do AOSP e aceite as licenças $ for f in *.tgz; do tar xzf $f; done $ for extractor_script in *.sh; do bash $extractor_script; done
INSTALANDO A ROM 1. Crie o pacote $ make -­‐j24 updatepackage 2. Reinicie o aparelho $ adb reboot bootloader 3. Destrave o aparelho $ fastboot oem unlock $ fastboot format cache $ fastboot format userdata 4. Instale o pacote $ fastboot -­‐w update nome-­‐do-­‐pacote.zip

Android Open Source Project - AOSP

  • 1.
    ANDROID OPEN SOURCE PROJECT – AOSP O que realmente é Open Source e o que não é no Android
  • 2.
    AOSP Android OpenSource Project
  • 3.
    O QUE ÉO AOSP • Uma iniciativa criada para guiar o desenvolvimento da plataforma Android • Consiste no Sistema Operacional, midleware e aplicativos • Mantido pelo Google • Regulado pelo Android Compatibility Program (ACP)
  • 4.
    • Desde 8de Março de 2008 • Aberto em 22 de Outubro de 2008 • 10.715.902 linhas de código • 319.322 commits por 2.314 pessoas Linhas de Código Commits por Mês 5.0 Lollipop 4.4 KitKat 4.1 Jelly Bean 4.0 Ice Cream Sandwich 3.0 Honeycomb 2.2 Froyo 2.3 Gingerbread 2.0 Eclair 1.6 Donut
  • 5.
    LICENÇAS • PreferencialmenteApache Software License 2.0 (ASLv2) para o userspace • O Kernel usa GPLv2 • Partes tem o código fechado com licenças comerciais (ex.: Serviços do Google Play)
  • 6.
    ANDROID COMPATIBILITY PROGRAM(ACP) • Ambiente consistente de hardware e aplicativos para desenvolvedores • Experiência consistente para o usuário • Fabricantes se diferenciando, porém mantendo compatibilidade • Minimizar custos e tempo associados com compatibilidade
  • 7.
    CONSISTE EM •Código fonte do Android • Documento de Definição de Compatibilidade (CDD) • Conjunto de Testes de Compatibilidade (CTS)
  • 8.
    O QUE NÃOÉ ABERTO • Aplicativos do Google • Google Play Services • Google Mobile Services (GMS) • Experiência Google • Licença Comercial • “Tudo ou Nada"
  • 9.
    GOOGLE MOBILE SERVICES • Gmail • Chrome • Google+ • Maps • YouTube • Google Drive • Google Translate • Google Now • Google Play
  • 10.
    GOOGLE PLAY SERVICES • Criado em 26 de Setembro de 2012 • Sicronismo de contas • Google+ (SSO, compartilhamento) • Google Maps • Location APIs • Google Play Games • Cloud Messaging (Push Notifications) • Android Device Manager
  • 11.
    CUSTOM ROMS •CyanogenMod • Paranoid Android • XobotOS (Xamarin + C#) • Android Open Kang Project AOKP • Baidu Yi • Replicant
  • 12.
    ANDROID FORKS •Amazon Fire OS • Barnes & Noble Nook • Nokia X • Yandex.kit • PrivatOS
  • 13.
    MÃOS À OBRAS Baixe, compile e instale
  • 14.
    O AMBIENTE DE DESENVOLVIMENTO • Pelo menos 30 GB de espaço live em disco • Idealmente 16 GB de RAM e processador de 8 cores • Python 2.6 ou 2.7 (python.org) • GNU Make 3.81 ou 3.82 (gnu.org) • JDK 7 (como instalar o JDK) • Git 1.7 ou superior (git-scm.org)
  • 15.
    A FERRAMENTA REPO 1. Coloque uma pasta bin no seu home e deixe-o acessível pelo PATH $ mkdir ~/bin $ PATH=~/bin:$PATH 2. Baixe o repo e garanta que ele pode ser executado $ curl https://storage.googleapis.com/git-­‐repo-­‐downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo
  • 16.
    A FERRAMENTA REPO 3. Inicialize a sua pasta de trabalho $ mkdir aosp $ cd aosp 4. Baixe o código do Android Open Source Project $ repo init -­‐u https://android.googlesource.com/platform/manifest -­‐b android-­‐5.0.0_r6 $ repo sync
  • 17.
    BAIXANDO OUTRAS ROMS • Baixe o código do Android Open Kang Project $ repo init -­‐u git://github.com/AOKP/platform_manifest.git -­‐b jb-­‐mr2 $ repo sync • Baixe o código do CyanogenMod $ repo init -­‐u https://github.com/CyanogenMod/android.git -­‐b cm-­‐11.0 $ repo sync • Baixe o código do Paranoid Android $ repo init -­‐u https://github.com/AOSPA/manifest -­‐b lollipop $ repo sync
  • 18.
    COMPILANDO O ANDROID • Processo demorado • Mais de 2 h com 4-core e 8 GB de RAM • 15 min com 48-core e 128 GB de RAM • 45 min com 16-core e 32 GB de RAM
  • 19.
    COMPILANDO O ANDROID 1. Inicialize o ambiente de compilação $ . build/envsetup.sh ou $ source build/envsetup.sh 2. Escolha a plataforma a ser compilada $ lunch aosp_hammerhead-­‐userdebug ou veja as alternativas $ lunch
  • 20.
    COMPILANDO O ANDROID 3. Compile a distribuição A opção -jN cria N threads de compilação, calcule este valor da seguinte forma: N=cores do processador×1.5 $ make -­‐j24
  • 21.
    OS BINÁRIOS DA PLATAFORMA - NEXUS 5 • O Google não distribui os arquivos de driver binários das plataformas junto com o AOSP • Alguns drivers nem mesmo estão nos pacotes de download
  • 22.
    OS BINÁRIOS DA PLATAFORMA - NEXUS 5 1. Baixe os binários que o Google publica aqui $ wget https://dl.google.com/dl/android/aosp/broadcom-­‐hammerhead-­‐ lrx21o-­‐01fad5db.tgz $ wget https://dl.google.com/dl/android/aosp/lge-­‐hammerhead-­‐lrx21o-­‐ c6cf4582.tgz $ wget https://dl.google.com/dl/android/aosp/qcom-­‐hammerhead-­‐lrx21o-­‐ e0cd4949.tgz 2. Descompacte, execute os scripts no diretório de trabalho do AOSP e aceite as licenças $ for f in *.tgz; do tar xzf $f; done $ for extractor_script in *.sh; do bash $extractor_script; done
  • 23.
    INSTALANDO A ROM 1. Crie o pacote $ make -­‐j24 updatepackage 2. Reinicie o aparelho $ adb reboot bootloader 3. Destrave o aparelho $ fastboot oem unlock $ fastboot format cache $ fastboot format userdata 4. Instale o pacote $ fastboot -­‐w update nome-­‐do-­‐pacote.zip