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>
):
-
git
para 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.