Como alguém constrói o kernel android a partir de fontes no Ubuntu 13.04

2

Estou tentando criar o Android a partir de fontes no Ubuntu 13.04, mas há vários problemas:

  1. Configurando os problemas do ambiente (cadeias de ferramentas incorretas)
  2. Erros de compilação / construção
por levengli 25.07.2013 / 12:04

1 resposta

3

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:

  1. 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.
  2. 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
  3. 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.

  1. [GUIA] Construindo o CyanogenMod 9 a partir do Source com o openSuSE 12.1 .
  2. Correção do erro de compilação do Dalvik no CyanogenMod 9
  3. Registros de relatórios de erros do Debian
  4. relatório de bug do lenario
  5. Criando o Android 4.0.4 (ramificação principal) no Arch Linux de 64 bits

Como resultado, as seguintes alterações foram feitas:

  1. Na linha 31 de frameworks/base/tools/aapt/Android.mk , adicione -fpermissive

    LOCAL_CFLAGS += -Wno-format-y2k -fpermissive
    
  2. Na linha 64 de frameworks/base/libs/utils/Android.mk , adicione -fpermissive

    LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
    
  3. Na linha 183 de frameworks/base/libs/rs/Android.mk , adicione -fpermissive

    LOCAL_CFLAGS += -Werror -Wall -Wno-unused-parameter -Wno-unused-variable -fpermissive
    
  4. Na linha 22 de frameworks/compile/slang/Android.mk , remova -Werror

    local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter
    
  5. Na linha 125 de frameworks/compile/linkloader/Android.mk , substitua LOCAL_LDFLAGS with LOCAL_LDLIBS

    LOCAL_LDLIBS := \
      -lpthread \
      -ldl
    
  6. Na linha 94 de external/oprofile/libpp/format_output.h , remova o especificador mutable

  7. na linha 41 de external/gtest/include/gtest/internal/gtest-param-util.h , depois de #include <vector> , adicione #include <stddef.h>

  8. Nas linhas 52 e 71 de external/gtest/src/Android.mk , adicione -fpermissive

    LOCAL_CFLAGS += -O0 -fpermissive 
    LOCAL_CFLAGS += -O0 -fpermissive
    
  9. Na linha 25 de development/tools/emulator/opengl/Android.mk , adicione -fpermissive

    EMUGL_COMMON_CFLAGS := -DWITH_GLES2 -fpermissive
    
  10. Após a linha 7 de development/tools/emulator/opengl/host/renderer/Android.mk , adicione nova linha

    LOCAL_LDLIBS += -lX11
    

Espero que isso facilite sua vida ao criar o Android.

    
por levengli 25.07.2013 / 12:04