Ubuntu20.04를 구현하는 단계별 Android10 시스템 소스 코드 컴파일

1. 소개

    Ubuntu20.04를 사용하여 Android 시스템을 컴파일하여 Android10 소스 코드 컴파일 빌드

2. 세부 단계

   1. VMware Workstation Pro 다운로드

    여기에서는 최신 버전의 VMware Workstation Pro16을 예로 사용합니다 공식 웹사이트 다운로드 주소는 Windows 가상 머신 | Workstation Pro | VMware | CN  평가판을 선택합니다 .

 설치 과정은 비교적 간단합니다. 여기에 자세한 소개가 있습니다.

    2. 우분투20.04 다운로드

        여기서는 20.04 버전을 사용하며 공식 다운로드 주소는 Ubuntu 시스템 다운로드 | Ubuntu 입니다.

       해당 Ubuntu 버전을 찾아 다운로드합니다.

    3. VM에 Ubuntu20.04 설치

       1. 아래 그림과 같이 VM 홈 페이지에서 새 가상 머신 생성을 선택합니다.

   

  2. 일반 설치를 선택합니다.

    

 3. 아래 그림과 같이 설치 프로그램 CD 이미지 파일에서 다운로드한 Ubuntu 시스템을 찾습니다.

    

 4. 사용자 정보 입력

   

 5. 물리적 시스템에서 시스템의 디스크 위치 설정

  

 6. 디스크 크기 설정

   권장 디스크 크기는 300G 입니다.안드로이드 시스템의 소스 코드는 상당히 크며(당시 다운로드한 안드로이드 10의 소스 코드는 거의 100G 였습니다), 이후 컴파일은 디스크 공간이 여유가 있을 경우 약 200G 정도가 됩니다. 불충분하여 Android 시스템이 컴파일에 실패합니다.

  

7. Ubuntu의 메모리 및 프로세서 설정

   

 메모리를 16G로 설정하고(메모리를 16G로 설정하는 것이 좋습니다. 너무 작으면 메모리 오버플로 등의 비정상적인 문제가 많고 다양한 이상한 문제가 발생합니다) 프로세서는 8코어입니다. 또한 프로세서에서 가상화된 VT를 선택해야 합니다. 그렇지 않으면 Android 시스템이 성공적으로 컴파일된 후 에뮬레이터 명령으로 Android 에뮬레이터를 시작할 수 없습니다.

 

 마침을 클릭하면 VM에 Ubuntu 시스템을 설치할 수 있습니다.

  

설치가 완료된 후의 Ubuntu는 다음과 같으며, 이 시점에서 VM에 Ubuntu 20.04의 설치가 완료된 것입니다.

 4. Android 소스 코드 다운로드

     Android 소스 코드를 다운로드하기 전에 컴파일 종속성 라이브러리 및 도구 다운로드를 설치해야 합니다.

 1. 자식 설치 

sudo apt-get install git

설치가 성공적으로 완료되면 git 버전을 확인하십시오.

git --version

 git 버전이 나타납니다. 즉, 설치가 성공적입니다.

 git 다운로드 후 git 계정 설정

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

2. jdk 설치

sudo apt-get install openjdk-8-jdk

  3. PATH 환경 변수 구성

mkdir ~/bin
echo "PATH=~/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc

  4. curl 라이브러리 설치

sudo apt-get install curl

  5. repo 다운로드 및 권한 설정

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo

 6. 파이썬 설치

sudo apt-get install python

 파이썬 버전 확인

python --version

 파이썬 버전이 보이면 설치가 성공한 것입니다.

 소스 코드 다운로드

1. Android 소스 코드 디렉토리를 생성합니다.

mkdir source
cd source
mkdir android_10
cd android_10

2. 여기에 사용된 tanna 소스인 repo의 주소를 설정합니다.

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

 3. 창고 초기화:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

4. Android 버전을 만들고 초기화합니다.

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r10

5. 코드 소스 동기화를 시작합니다.

repo sync

 Android 소스 코드가 매우 커서 오랜 시간 동안 동기화해야 합니다. 동기화 프로세스 중에 오랫동안 붙어 있는 곳이 있으면 ctrl+z를 사용하여 동기화를 중단하고 repo 동기화하여 동기화할 수 있습니다.

소스 코드 컴파일

  1. 종속성 설치

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install libssl-dev

  위의 설치 종속성에는 두 가지 문제가 있습니다.

   (1) sudo apt-get install libesd0-dev를 설치하면 libesd0-dev 패키지를 찾을 수 없음 오류가 보고됩니다.

해결책:

sudo gedit /etc/apt/sources.list  //在行尾添加如下两行的内容
deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe

   (2) 安装sudo apt-get install lib32ncurses5-dev可能报"lib32ncurses5-dev : 의존: libncurses5-dev(= 6.0+20160213-1ubuntu1) 문제를 해결할 수 없습니다. 손상된 패키지를 보관했습니다."

해결책:

  1. 적성 설치

sudo apt install aptitude

 2. lib32ncurses5-de 설치

이 lib32ncurses5-de   의 설치는 암호를 입력하거나 수정하기 위해 루트 권한으로 전환해야 합니다(Ubuntu 루트 암호의 첫 번째 설치는 무작위이며 sudo passwd 루트를 사용할 수 있음).

sudo passwd root

  su를 사용하여 입력하여 루트 사용자로 전환

su

  루트 비밀번호를 입력하면 됩니다. 루트 사용자 명령줄 앞에 #이 있습니다. 즉, 슈퍼 사용자로 전환하고 lib32ncurses5-de를 설치합니다.

aptitude install lib32ncurses5-dev

  설치시 현재 버전을 유지할지 여부를 묻는 메시지가 표시되면 먼저 n을 입력한 다음 다운그레이드 여부를 묻는 메시지가 표시되면 y를 입력합니다.

컴파일 시작

source build/envsetup.sh
lunch 21  (X86版本)
make -j8

여기서 -j8은 8개의 스레드가 컴파일에 참여하도록 허용한다는 의미로, 이 숫자는 일반적으로 cpu 코어 수 * 2를 충족합니다. cat /proc/cpuinfo를 통해 관련 cpu 정보를 볼 수 있습니다.

아래와 같이 컴파일이 성공적으로 완료되었습니다.

에뮬레이터 시작

emulator

 성공적으로 실행되었습니다. 이것은 우리가 수동으로 컴파일한 Android 소스 코드입니다.

рекомендация

отblog.csdn.net/h5630/article/details/127715207