1 はじめに
Ubuntu20.04 を使用して Android システムをコンパイルし、Android10 ソース コード コンパイルをビルドします。
2. 詳細な手順
1.VMware Workstation Pro をダウンロード
ここでは最新バージョンの VMware Workstation Pro16 を例として使用します.公式 Web サイトのダウンロード アドレスは次のとおりです: Windows 仮想マシン | Workstation Pro | VMware | CN 試用版を選択してください
インストール プロセスは比較的簡単です。詳細な紹介を次に示します。
2. Ubuntu20.04 をダウンロード
ここでは 20.04 バージョンが使用されており、公式のダウンロード アドレスは次のとおりです: Ubuntu システムのダウンロード | Ubuntu
対応する Ubuntu バージョンを見つけてダウンロードします
3. VM に Ubuntu20.04 をインストールします。
1. 次の図に示すように、VM ホームページで新しい仮想マシンの作成を選択します。
2. 標準インストールを選択します
3. 下の図に示すように、インストーラ CD イメージ ファイルでダウンロードした Ubuntu システムを見つけます。
4. ユーザー情報を入力する
5. 物理マシンでシステムのディスクの場所を設定します
6. ディスクのサイズを設定する
ディスクの推奨サイズは 300G です Android システムのソース コードはかなり大きく (当時ダウンロードされた Android 10 のソース コードは 100G 近くありました)、その後のコンパイルはディスク容量が少ない場合に約 200G になります。不十分なため、Android システムがコンパイルに失敗します。
7. Ubuntu のメモリとプロセッサを設定する
メモリを 16G に設定 (メモリを 16G に設定することをお勧めします。メモリが小さすぎると、メモリ オーバーフローなどの異常な問題が多く発生し、さまざまな奇妙な問題が発生します)、プロセッサは 8 コアです。さらに、プロセッサでは、仮想化された VT をチェックする必要があることに注意してください。そうしないと、Android システムが正常にコンパイルされた後、エミュレータ コマンドで Android エミュレータを起動できません。
[完了] をクリックすると、Ubuntu システムを VM にインストールできます。
正常にインストールされた後の Ubuntu は次のとおりです。この時点で、VM への Ubuntu 20.04 のインストールは完了です。
4. Android ソースコードをダウンロードする
Android ソース コードをダウンロードする前に、コンパイル依存ライブラリとツール ダウンロードをインストールする必要があります。
1. git をインストールする
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. リポジトリをダウンロードして権限を設定する
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
6. パイソンをインストールする
sudo apt-get install python
Python のバージョンを確認する
python --version
pythonのバージョンが表示されていればインストール成功です
ソースコードをダウンロード
1. Android ソース コード ディレクトリを作成します。
mkdir source
cd source
mkdir android_10
cd android_10
2. ここで使用する tanna ソースであるレポのアドレスを設定します。
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 sync を使用して同期することができます。
ソースコードをコンパイルする
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
上記のインストール依存関係には 2 つの問題があります。
(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. aptitude をインストールする
sudo apt install aptitude
2. lib32ncurses5-de をインストールします
パスワードを入力または変更するには、このlib32ncurses5-de のインストールをroot 権限に切り替える必要があることに注意してください (Ubuntu root パスワードの最初のインストールはランダムです。sudo passwd root を使用できます)。
sudo passwd root
su を使用して入力し、root ユーザーに切り替えます
su
ルートパスワードを入力するだけ.ルートユーザーのコマンドラインの前に#があります.つまり、スーパーユーザーに切り替えてlib32ncurses5-deをインストールします.
aptitude install lib32ncurses5-dev
インストール時に、現在のバージョンを維持するかどうかを尋ねられます。最初に n を入力し、次にダウングレードするかどうかを尋ねられます。y を入力します。
コンパイルを開始
source build/envsetup.sh
lunch 21 (X86版本)
make -j8
ここで -j8 は 8 つのスレッドがコンパイルに参加できるようにすることを意味します. この数は一般に CPU コアの数 * 2 を満たします. 関連する CPU 情報は cat /proc/cpuinfo で確認できます.
以下に示すように、コンパイルは成功します。
エミュレーターを起動する
emulator
正常に実行された、これが自分で手動でコンパイルした Android ソース コードです。