最初に私のコンピューターの構成を見てください
computer.png
ここでは、仮想マシンを使用してubuntuをインストールします。 VMwareの具体的なインストール方法は、自分でバイドゥできます。私が使用しているバージョンはここに掲載されています。
vmware.png
VMwareをインストールした後、ubuntuをインストールします。最初にシステムイメージをダウンロードする[ubuntu](https://link.jianshu.com/?t=http://www.ubuntu.org.cn/download/desktop)
ubuntu.png
次のステップは、vmwareにubuntuをインストールすることです。自分でBaiduの手順を実行できるので、ここでは繰り返しません。ただし、** ubuntuに割り当てられたスペースで十分であることに注意する必要があります。 150G **以上をお勧めします。そうしないと、コンパイルの半分がそれまでに行われ、十分なスペースがないと恥ずかしいことになります。私はこの損失に苦しんでいるので、誰もがこのピットをスキップしようとします。ここに私の構成を投稿してください:
ubuntu_set.png
上記のubuntuをインストールした後。 ubuntuを起動し、必要なソフトウェアのインストールを開始します。
sudo apt-get install git
次に、ユーザー情報を構成します
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
その他の操作については、[Git CommonCommands](https://www.jianshu.com/p/d68a4fa57108)を参照してください。
Ubuntu 16.04のインストールソースにはデフォルトでopenjdkがないため、自分でウェアハウスを手動で追加する必要があります
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
インストールを開始します
sudo apt-get install openjdk-8-jdk
ここで最新のandroidソースコードをコンパイルしているので、jdk8がインストールされています。他のバージョンをコンパイルする場合は、必要に応じて対応するバージョンをインストールしてください。
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
ここでは、インストール中に問題がないことを個人的にテストしました。これまでにコンパイル環境が準備されました。次のステップはソースコードをダウンロードすることです
アンドロイドのソースコードは非常に大きく、いくつかの場所は外国のウェブサイトにアクセスする必要があるためです。そこで、清華大学の鏡像を使用します。詳細な手順[Androidミラーリングヘルプ](https://link.jianshu.com/?t=https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/)に詳細な手順があります。ここでは、手順を簡単に書き留めます。
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo >~/bin/repo
chmod a+x ~/bin/repo
開始するたびにPATHを設定する必要がないように、環境変数に追加することをお勧めします
vim ~/.bashrc
bashrc.png
最後の2行にPATHを設定します。最後に更新します。
source ~/.bashrc
ソースコードが大きいため、直接ダウンロードが失敗したり、途中で遅くなったりする可能性があるため、ここでは最初に[初期化パッケージをダウンロード](https://link.jianshu.com/?t=http://mirrors.ustc.edu.cn/aosp-monthly/)します。約30ギガバイト
すべてのコードは非表示の.repoディレクトリからチェックアウトされるため、aosp解凍後の.repoディレクトリのみがチェックアウトされます。 aosp同期を入力して、コードを取得します。
repo sync
ソースコードのルートディレクトリに移動します
source build/envsetup.sh
lunch aosp_arm64-eng
または直接ランチを入力してください。
142377- 030890 ab8be7bc46.jpg
次に、必要なタイプを選択します。ここでは、最初のaosp_arm-engを選択します。
make -j4
ここでの-j4は、マシンのcpuコアの数に依存することに注意してください。ここでは4つのスレッドを使用します。次に、コンパイルプロセスに入ります。これは長いプロセスになります。消費される時間は必ずしもあなたのマシンの構成によるとは限りません、そして私はここでほぼ1時間40分を過ごしました(私のマシンはまだかなり素晴らしいようです、ハハ!)。緑の「####ビルドが正常に完了しました**** ####」の最後の文字列が表示されたら、成功したことを意味します
QQスクリーンショット20170929230721.png
現在の端末に直接入力します
emulator
QQスクリーンショット20170929231629.png
それでおしまい。
コンパイルされたファイルはoutディレクトリにあります。最後の3つの画像ファイルramdisk.img、system.img、userdata.img、およびそれらに対応するディレクトリツリールートは、 out / target / product / generic
の下にあります。
3つのミラーファイルと3つのディレクトリツリー間の生成関係は、ROM生成の基礎です。
img.png
make clobber
つまり、outディレクトリと以下のすべてのファイルが削除されます。