O documento descreve o Android Open Source Project (AOSP), incluindo o que é de código aberto e o que não é. O AOSP consiste no sistema operacional Android, middleware e aplicativos mantidos pelo Google. Embora o código do sistema operacional seja aberto, aplicativos e serviços do Google como o Google Play não são.
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 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
5. 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)
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
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