Ambiente de máquina virtual Ubuntu para construir ambiente de compilação de código-fonte do sistema Android e métodos de solução de problemas

1. Obtenha o código-fonte do Android e a configuração de rede para acessar o google (método um)

2. Obtenha a configuração de rede do código-fonte do Android para acessar o google (método dois)

3. Altere a fonte do apt para a fonte Aliyun no Ubuntu 18.04

Quarto, a solução para o problema do certificado quando o proxy torna a rede inacessível

5. O método de operação para usuários comuns no ambiente Ubuntu para baixar automaticamente o código-fonte de cada versão do sistema Android dos modelos suportados do LineageOS

6. MoKee (Magic Fun) ou LineageOS

Sete, magia MoKee

Oito, base de compilação de código-fonte do sistema Android comumente usado

Nove, a solução para o problema da ocupação portuária

10. Aumente a partição Swap no Ubuntu 16.04 

11. Espaço em disco insuficiente, você pode usar os seguintes métodos para expandir o espaço em disco

12. Caso não consiga acessar o google, adicione o modelo de seleção de equipamentos do sistema de compilação ao espelho Mokee (almoço)

13. No caso de não conseguir acessar o google, o espelhamento do Lineage OS adiciona o modelo de seleção de equipamentos do sistema de compilação (almoço)

 

1. Obtenha o código-fonte do Android e a configuração de rede para acessar o google (método um) 

imagem

 

imagem

 

Configure o proxy http, https e ftp ( onde IP é o endereço IP do host )

export http_proxy = socks5: //172.20.10.2: 1080

export https_proxy = socks5: //172.20.10.2: 1080

export FTP_PROXY = socks5: //172.20.10.2: 1080

export ALL_PROXY = socks5: //172.20.10.2: 1080

 

Configure o proxy http ( onde IP é o endereço IP do host )

git config --global http.proxy http://172.20.10.2:1080

git config --global https.proxy https://172.20.10.2:1080

git config --global user.email "****@email.address"

git config --global user.name "****"

 

Cancelar proxy http

git config --system (或 --global 或 --local) --unset http.proxy

git config --system (ou --global ou --local) --unset https.proxy

 

2. Obtenha a configuração de rede do código-fonte do Android para acessar o google ( método dois ) 

imagem

 

imagem

 

3. Altere a fonte do apt para a fonte Aliyun no Ubuntu 18.04

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo apt-get install vim

 

Comente o conteúdo original e adicione o seguinte

sudo vim /etc/apt/sources.list

ou

sudo gedit /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ biônico principal universo restrito multiverso

deb-src http://mirrors.aliyun.com/ubuntu/ multiverso universo restrito principal biônico

deb http://mirrors.aliyun.com/ubuntu/ bionic-security multiverse universo restrito principal

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security multiverso universo restrito principal

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates multiverse do universo restrito principal

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates multiverse universo restrito principal

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports multiverse universo restrito principal

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports multiverse universo restrito principal

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposto multiverso universo restrito principal

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposto universo restrito principal multiverso

 

Atualizar lista de software

sudo apt-get update

 

Pacote de atualização

sudo apt-get upgrade

 

Quarto, a solução para o problema do certificado quando o proxy torna a rede inacessível

Cancelar proxy

git config --global --unset http.proxy

git config --global --unset https.proxy

 

Excluir arquivo de configuração local

apt-get purge openssl

rm -rf / etc / ssl

 

reinstalar

sudo apt-get install libssl-dev openssl

apt-get install ca-certificados

 

5. O método de operação para usuários comuns no ambiente Ubuntu para baixar automaticamente o código-fonte de cada versão do sistema Android dos modelos suportados do LineageOS

(1). Obtenha permissões de root

sudo su

Siga as etapas de https://wiki.lineageos.org/devices/ para obter o código-fonte do sistema Android (o método de obtenção do código-fonte para cada modelo é semelhante), conforme mostrado na figura:

https://wiki.lineageos.org/devices/hammerhead/build (semelhante a outros modelos)

imagem

 

imagem

 

imagem

 

imagem

 

imagem

 

imagem

 

imagem

 

6. MoKee (Magic Fun) ou LineageOS

(1). O método de download do dispositivo, kernel, código-fonte do sistema do fornecedor compatível com cada modelo por meio do git (semelhante a cada modelo) é o seguinte:

https://github.com/LineageOS/android_device_xiaomi_cancro

https://github.com/LineageOS/android_kernel_xiaomi_cancro

https://github.com/MoKee/android_vendor_xiaomi_cancro

https://github.com/MoKee/android_device_xiaomi_cancro

https://github.com/MoKee/android_kernel_xiaomi_cancro

 

https://github.com/LineageOS/android_device_lge_hammerhead

https://github.com/LineageOS/android_kernel_lge_hammerhead

https://github.com/MoKee/android_vendor_lge_hammerhead

https://github.com/MoKee/android_kernel_lge_hammerhead

 

https://github.com/LineageOS/android_device_huawei_angler

https://github.com/MoKee/android_vendor_huawei_angler

https://github.com/LineageOS/android_kernel_huawei_angler

 

(2). Configure o ambiente de compilação do código-fonte do sistema Android (usuários comuns)

vim ~ / .bashrc

imagem

 

fonte ~ / .bashrc

 

./prebuilts/sdk/tools/jack-admin kill-server

./prebuilts/sdk/tools/jack-admin start-server

 

(3). Configure o ambiente de compilação do código-fonte do sistema Android (usuário root)

vim ~ / .bashrc

 

export USE_CCACHE = 1

export CCACHE_EXEC = / usr / bin / ccache

ccache -M 50G

exportar CCACHE_COMPRESS = 1

export ANDROID_JACK_VM_ARGS = "- Dfile.encoding = UTF-8 -XX: + TieredCompilation -Xmx4096"

export JACK_SERVER_VM_ARGUMENTS = "- Dfile.encoding = UTF-8 -XX: + TieredCompilation -Xmx4096m"

export LC_ALL = C

 

imagem

 

fonte ~ / .bashrc

 

./prebuilts/sdk/tools/jack-admin kill-server

./prebuilts/sdk/tools/jack-admin start-server

 

imagem

 

Sete, magia MoKee

Instalar Repo

Crie uma pasta bin no diretório raiz do usuário atual e adicione-a às variáveis ​​de ambiente do sistema

mkdir ~ / bin

PATH = ~ / bin: $ PATH

 

Baixe o Repo e dê permissão de execução

curl https://download.mokeedev.com/git-repo-downloads/repo> ~ / bin / repo

curl https://raw.githubusercontent.com/MoKee/git-repo/stable/repo> ~ / bin / repo

chmod a + x ~ / bin / repo

 

imagem

 

8.1 Código-fonte do Magic Fun, branch modificado para mko-mr1

repo init -u https://github.com/MoKee/android -b mko -mr1

sincronização repo

repo sync -f -j8

repo sync -c -f -j8 --force-sync --no-clone-bundle

 

Comando para compilar Android 8.1

fazer bacon

fazer bacon -j4

fazer bacon -j8

fazer bacon -j16

 

. 9 . 0 magia interessante fonte, é modificado para ramo mkp

git config --global http.proxy http://192.168.101.102:1080

git config --global https.proxy https://192.168.101.102:1080

 

git config --global user.email "[email protected]"

git config --global user.name "gouyp"

repo init -u https://github.com/MoKee/android -b mkp

repo init -u https://github.com/MoKee/android -b mkp-dev

repo init -u https://github.com/MoKee/android.git -b mkp

sincronização repo

 

. 9 . 0 magia interessante fonte compilado

. build / envsetup.sh && lunch (insira o número do dispositivo) && mka bacon

 

repo init -u https://github.com/MoKee/android -b mkp --depth 1

sincronização repo

. build / envsetup.sh

almoço

 

Opções do compilador: 28 ( modelos OnePlus 6 )

bacon mka

mka bacon  -j8

 

Método de piscar de uma tecla para sistema Android

imagem

 

fastboot --disable-verity --disable-verification flash vbmeta stock_vbmeta.img

fastboot flash vbmeta vbmeta.img

fastboot flash boot boot.img

sistema flash de inicialização rápida system.img

fastboot flash userdata userdata.img

fastboot -w reboot

 

imagem

 

imagem

 

imagem

 

imagem

 

imagem

 

Oito, base de compilação de código-fonte do sistema Android comumente usado

Exclua todas as configurações compiladas e os arquivos de resultado de saída

fazer clobber

 

Depois de adicionar a API do sistema ou modificar a API de @hide, você precisa executar o seguinte comando e, em seguida, fazer

make update-api

 

Depois de modificar a API pública, você precisa executar o seguinte comando e, em seguida, fazer

make update-api

 

Compilação de submódulo

Compile boot.img

fazer bootimage

 

Compile userdata.img

make userdataimage

 

Compile system.img

fazer imagem do sistema

 

Reembalar system.img

fazer snod

 

Pré-instale o aplicativo no sistema (os aplicativos que precisam ser pré-instalados são fornecidos na forma de código-fonte e precisam ser compilados primeiro)

Execute o seguinte comando no diretório raiz do código-fonte

source build / envsetup.sh

pacotes mmm / apps / TestApp

 

Após a conclusão da compilação, o arquivo apk correspondente será gerado no caminho out / target / product / xxx / system / app / (xxx é o código do dispositivo). Se já houver um arquivo apk, ele será colocado diretamente em este caminho; se for um aplicativo do sistema, deve ser colocado no caminho out / target / product / xxx / system / priv-app / e, em seguida, você precisa reembalá-lo em um arquivo de imagem, retornar ao diretório raiz de origem e execute o seguinte comando para empacotar novamente system.img

fazer snod

 

Nove, a solução para o problema da ocupação portuária

netstat -tln | grep jack-port number, ver apenas o uso da porta jack-port

lsof -i: número da porta jack para verificar a qual programa a porta pertence e por qual processo a porta está ocupada

kill -9 jack-port número de processo pid

 

sudo vim ~ / .jack-settings

imagem

 

sudo vim ~ / .jack-server / config.propertie 

imagem

sudo chmod 600 ~ / .jack-settings

sudo chmod 600 ~ / .jack-server / config.properties

 

sudo vim ~ / .bashrc

fonte sudo ~ / .bashrc 

imagem

 

imagem

 

export USE_CCACHE = 1

export CCACHE_EXEC = / usr / bin / ccache

ccache -M 50G

exportar CCACHE_COMPRESS = 1

export ANDROID_JACK_VM_ARGS = "- Dfile.encoding = UTF-8 -XX: + TieredCompilation -Xmx4096"

export JACK_SERVER_VM_ARGUMENTS = "- Dfile.encoding = UTF-8 -XX: + TieredCompilation -Xmx4096m"

export LC_ALL = C

 

./out/host/linux-x86/bin/jack-admin stop-server

./out/host/linux-x86/bin/jack-admin start-server

 

./prebuilts/sdk/tools/jack-admin kill-server

./prebuilts/sdk/tools/jack-admin start-server

 

10. Aumente a partição Swap no Ubuntu 16.04 

imagem

 

Verifique o tamanho do espaço em disco

df -h

 

Verifique o tamanho do arquivo no disco

du -sh

 

Ver o uso de memória

livre -m

 

gnome-system-monitor

 

11. Espaço em disco insuficiente, você pode usar os seguintes métodos para expandir o espaço em disco

imagem

 

Instale o software de gerenciamento de partição gparted

sudo apt-get install gparted

imagem

 

imagem

 

https://blog.csdn.net/u011345885/article/details/73060897

 

Doze, o Google não pode acessar a situação sob o espelho mágico adicionar interesse Mokee número de seleção de equipamento do sistema de compilação (almoço) 

imagem

 

XIII não pode acessar o caso L do Google na imagem do  SO ineage para adicionar o número de seleção do equipamento do sistema de compilação (almoço)

imagem

 

A implementação de arquivos vendorsetup.sh nos subdiretórios correspondentes do fornecedor e do dispositivo, são principalmente para adicionar o modelo do dispositivo correspondente e seu suporte de tipo de compilação ao menu Lunch

 

Adicione add_lunch_combo aosp_angler-userdebug em device / huawei / angler / vendorsetup.sh ao final de vendor / cm / vendorsetup.sh. Ao compilar o código-fonte, você pode inserir o comando lunch para obter o modelo de seleção de dispositivo

imagem

 

Siga a conta pública do WeChat para obter mais informações sobre os artigos mais recentes, obrigado pelo seu apoio

imagem

Acho que você gosta

Origin blog.csdn.net/u011426115/article/details/112123908
Recomendado
Clasificación