Depois de passar um dia inteiro configurando o ambiente e construindo o Android a partir de suas fontes; Quero compartilhar as informações úteis que encontrei flutuando por aí.
Meu sistema é um Asus S56C (i7-3537U) com 4 GB de RAM. Eu baixei o branch master, que neste momento é android-4.0.1_r1
A primeira coisa a fazer é configurar o ambiente. Isso é claramente explicado em source.android.com . Há três coisas para prestar atenção:
- Embora o source.android.com ofereça a opção de usar o make 3.81 - 3.82, a compilação falhará se você não tem 3,81 set. Portanto, este é o que você deve usar.
- Eu instalei inicialmente o openjdk-6-jre, no entanto esta era a versão errada do jre. Seguindo este link , eu instalei
oracle-java6-installer
em vez - Há um erro de digitação na seção sobre configuração do ccache . Deve ler
prebuilt/misc/linux-x86/ccache/ccache -M 50G
A seguir, é apresentada uma lista de links que derivam as alterações nos arquivos de origem / criação que serão seguidos.
- [GUIA] Construindo o CyanogenMod 9 a partir do Source com o openSuSE 12.1 .
- Correção do erro de compilação do Dalvik no CyanogenMod 9
- Registros de relatórios de erros do Debian
- relatório de bug do lenario
- Criando o Android 4.0.4 (ramificação principal) no Arch Linux de 64 bits
Como resultado, as seguintes alterações foram feitas:
-
Na linha 31 de
frameworks/base/tools/aapt/Android.mk
, adicione-fpermissive
LOCAL_CFLAGS += -Wno-format-y2k -fpermissive
-
Na linha 64 de
frameworks/base/libs/utils/Android.mk
, adicione-fpermissive
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
-
Na linha 183 de
frameworks/base/libs/rs/Android.mk
, adicione-fpermissive
LOCAL_CFLAGS += -Werror -Wall -Wno-unused-parameter -Wno-unused-variable -fpermissive
-
Na linha 22 de
frameworks/compile/slang/Android.mk
, remova-Werror
local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter
-
Na linha 125 de
frameworks/compile/linkloader/Android.mk
, substituaLOCAL_LDFLAGS with LOCAL_LDLIBS
LOCAL_LDLIBS := \ -lpthread \ -ldl
-
Na linha 94 de
external/oprofile/libpp/format_output.h
, remova o especificadormutable
-
na linha 41 de
external/gtest/include/gtest/internal/gtest-param-util.h
, depois de#include <vector>
, adicione#include <stddef.h>
-
Nas linhas 52 e 71 de
external/gtest/src/Android.mk
, adicione-fpermissive
LOCAL_CFLAGS += -O0 -fpermissive LOCAL_CFLAGS += -O0 -fpermissive
-
Na linha 25 de
development/tools/emulator/opengl/Android.mk
, adicione-fpermissive
EMUGL_COMMON_CFLAGS := -DWITH_GLES2 -fpermissive
-
Após a linha 7 de
development/tools/emulator/opengl/host/renderer/Android.mk
, adicione nova linhaLOCAL_LDLIBS += -lX11
Espero que isso facilite sua vida ao criar o Android.