Etapa 1
Siga o Guia completo de instalação para Android SDK no Ubuntu .
Etapa 2
Instale os seguintes pacotes (eu uso o gerenciador de pacotes Synaptic do Ubuntu Software Repository, mas você poderia fazer isso na linha de comando via sudo apt-get install <package> ):
-
gitpara fazer o download da toolchain do ARM -
lzopt, que é necessário para construir o kernel
Etapa 3
Faça o download do arquivo de código aberto para o telefone do site da Sony , o link direto é link
Extraia o arquivo que contém os três subdiretórios external , kernel e vendor , eu os coloco em ~/10.4.B.0.569 .
Etapa 4
Faça o download dos binários de conjuntos de ferramentas ARM pré-construídos a partir do repositório Git do android usando o seguinte comando:
$ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
Eu fiz isso no meu diretório ~/ , onde um subdiretório arm-eabi-4.6 foi criado.
Etapa 5
Para configurar a compilação, basicamente segui as instruções dadas no arquivo ~/10.4.B.0.569/kernel/README_Xperia . Com as estruturas de diretório que usei, isso se resume à seguinte sequência de comandos:
$ cd ~/10.4.B.0.569/kernel
$ export ARCH=arm
$ export CROSS_COMPILE=/home/<USER>/arm-eabi-4.6/bin/arm-eabi-
$ make fusion3_dogo_defconfig
Observe que fusion3_dogo_defconfig é para o Xperia ZR e deve ser substituído se você quiser criar um dispositivo diferente (o ~/10.4.B.0.569/kernel/README_Xperia lista o Z , ZL , ZR , Tablet Z e Tablet Z SGP311/SGP312 variants). Também o <USER> precisa ser alterado para o seu nome de usuário do Ubuntu.
Etapa 6
Agora estamos prontos para construir o kernel simplesmente executando make no diretório ~/10.4.B.0.569/kernel/ . Isso levará algum tempo e, se funcionar corretamente, deve resultar em um arquivo ~/10.4.B.0.569/kernel/arch/arm/boot/zImage .
EDITAR:
Infelizmente, ainda não encontrei um jeito de gerar um disco virtual ou uma imagem de inicialização para executar ou atualizar o kernel, por isso criei esta questão relacionada no Stackoverflow sobre isso.