android open source project - aosp
DESCRIPTION
O que do Android é realmente Open Source e o que não éTRANSCRIPT
ANDROID OPEN SOURCE PROJECT – AOSP
O que realmente é Open Source e o que não é no Android
AOSPAndroid 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)
Linhas de Código
Commits por Mês
• 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
1.6 Donut2.0 Eclair
2.2 Froyo
2.3 Gingerbread
3.0 Honeycomb
4.0 Ice Cream Sandwich
4.1 Jelly Bean
4.4 KitKat
5.0 Lollipop
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 À OBRASBaixe, 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 ROM1. 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