UbuntuTouch環境のセットアップ

最近、Nexus5の[MultiRomManger](http://www.miui.com/thread-1603930-1-1.html)を実行し、UbuntuTouchとAndroidLのペアを体験しました。全体的な感触はかなり良いですが、Android LのNFCドライバーにはまだ問題があります。UbuntuTouchの最適化が不十分で、画面が少し動かなくなっています。 、およびバックライトをオフにすることはできません。そのため、Ubuntu Touchドライバーの開発に参加するというアイデアが生まれました。これは、一種の関心事と見なすことができます。

Nexus5用のUbuntuTouchは非公式であり、公式のものはNexus 4、7、および10のみです。 Nexus5の最新バージョンはMultiRomManagerから直接ダウンロードできます。

中国のブログには関連するチュートリアルがないため、UbuntuTouch環境で構築された公式ドキュメントのみを参照できます。

https://wiki.ubuntu.com/Touch/Building

以下は、Ubuntu Touchを構築する私のプロセスを記録しています(上記のwikiに従ってください)。

Building Ubuntu Touch Android pieces from source
Whether you want to build Ubuntu Touch for the currently supported Nexus devices or want to port it to a new target, you need to set up your working environment to build Android from source. This setup is more or less the same whether you are building AOSP or a project based on it such as CyanogenMod, SEAndroid or Ubuntu Touch.
If you are new to building Android sources you may want to check out this document and others in the Getting Started section on the Google documentation site, as it covers the basics and terminology of AOSP building. While Ubuntu Touch uses some helper scripts as detailed below, if will nonetheless be helpful to understand what is going on under the hood especially if you want to work on this part of the project.
http://source.android.com/source/initializing.html
For Ubuntu Touch, you can find all the needed Android git repositories at https://code-review.phablet.ubuntu.com/#/admin/projects/. This is basically a mirror of AOSP 4.4.2_r1, but containing only the needed low level services used by Android (e.g. no Dalvik at all).
For any Android related project on our git server, you’ll find a branch named phablet-4.4.2_r1. This branch contains a static known git HEAD and the required changes needed for Ubuntu, including our custom Android manifest.

ソース#からUbuntuTouchのAndroid部分をコンパイルします

現在サポートされているNexusデバイスをコンパイルする場合でも、Ubuntu Touchを新しいデバイスに移植する場合でも、Androidソースコードをコンパイルするためのコンパイル環境を構築する必要があります。このチュートリアルは、AOSP(Androidオープンソースプロジェクト)またはCyanogenMod、SeAndroid、UbuntuTouchなどのAOSPベースのプロジェクトをコンパイルするのとほぼ同じです。

Androidソースコードを初めてコンパイルする場合は、Google Docs Webサイトの「はじめに」の章にある次のドキュメントとその他の関連ドキュメントが必要になる場合があります。このドキュメントでは、AOSPコンパイルの基本といくつかの用語について説明しています。次のセクションでは、UbuntuTouchでいくつかの補助スクリプトを使用します。プロジェクトで関連する開発を行う予定の場合は、これらのドキュメントを参照することで、次の各ステップで何を行っているかをよりよく理解できます。

http://source.android.com/source/initializing.html

Ubuntu Touchの構築に必要なすべてのAndroid gitリポジトリは[https://code-review.phablet.ubuntu.com/#/admin/projects/](https://code-review.phablet.ubuntu.com/#/admin/projects/)にあります(repoはマルチgitプロジェクト管理ツールであり、これは中国の不安定なネットワークで使用するのは非常に困難です)。これはAOSP4.4.2_r1に基づくイメージですが、低レベルのAndroid操作に必要なサービスのみが含まれています(たとえば、Dalvikは含まれていません)。

gitサーバー上のAndroid関連のプロジェクトには、phablet-4.4.2_r1というブランチがあります。このブランチにはgit HEADが含まれ、[カスタムAndroidマニフェスト](https://code-review.phablet.ubuntu.com/gitweb?p=aosp%2Fplatform%2Fmanifest.git;a=shortlog;h=refs%2Fheads%2Fphablet-4.4.2_r1)(UbuntuTouchリポジトリのマニフェスト)が含まれています。 、Ubuntu Touchのすべての基本的なgitプロジェクト)およびUbuntu用に変更する必要のあるその他のコードが含まれています。 (この段落は私が言いたいことを完全には理解していません)

この段落は紹介に過ぎず、実装する必要のある部分はありません。

Set up your development environment
At this moment we’re using the Android code base provided by Android AOSP.
Everything we take from Android is just C/C++, so you’ll notice that your Android build environment will be way smaller than when comparing to the traditional Android builds.
For development you can run any 64-bit Desktop version of Ubuntu between 12.04 LTS and 13.04.
It’s not strictly necessary, but it’s helpful to install ccache. (http://source.android.com/source/initializing.html#ccache in the general Android Setup guide should help with this.)
Additional packages which are used to build the host tools:

< span id="line-1" class="anchor">$ sudo apt-get install git gnupg flex bison gperf build-essential zip bzr curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool
1
< span id="line-1" class="anchor">$ sudo apt-get install git gnupg flex bison gperf build-essential zip bzr curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool

On Utopic (and maybe other) the 4.8 version of g++ is needed:

< span id="line-1-1" class="anchor">$ sudo apt-get install g++-4.8-multilib
1
< span id="line-1-1" class="anchor">$ sudo apt-get install g++-4.8-multilib

Before 14.04 Trusty you’ll also need to set up the tools PPA.
Then you need to install phablet-tools:

< span id="line-1-2" class="anchor">$ sudo apt-get install phablet-tools
1
< span id="line-1-2" class="anchor">$ sudo apt-get install phablet-tools

This will also install the repo tool, used to sync the Android repositories. Learn more about the repo tool. If you already have a repo tool in your $PATH from previous android development, be sure to remove it or make sure it’s after the system repo command in the path. To check that the right repo command is used, you can issue $ which repo. This should return /usr/bin/repo.
You can check out the source code using the repo and git tools already familiar to Android ROM developers, as described here
https://wiki.ubuntu.com/Touch/AndroidDevel
Alternately, all the Android code can be downloaded using the phablet-dev-bootstrap tool provided by the phablet-tools package installed in the previous step. This tool is a Python wrapper around repo and used to also check out bzr repositories before all code was managed by repo and git. For the purposes of getting the source code for development it is no longer needed.
To get the code setup run:

< span id="line-1-3" class="anchor">phablet-dev-bootstrap [target_directory]
1
< span id="line-1-3" class="anchor">phablet-dev-bootstrap [target_directory]

If for some reason the sync ends midway, you can continue the sync with the -c switch, so the command would be:

< span id="line-1-4" class="anchor">phablet-dev-bootstrap -c [target_directory]
1
< span id="line-1-4" class="anchor">phablet-dev-bootstrap -c [target_directory]

Alternatively, if you are just building an image for an already supported device, you can specify the -v switch:

< span id="line-1-5" class="anchor">phablet-dev-bootstrap -v [device codenames] [target_directory]
1
< span id="line-1-5" class="anchor">phablet-dev-bootstrap -v [device codenames] [target_directory]

The phablet-dev-bootstrap command will automatically use the repo tool with the Ubuntu Touch Preview custom manifest to download all the git repositories and needed data. Be aware that this step takes a long time and requires at least 15GB (plus 2-3GB for the binary output).

コンパイル環境をセットアップします##

Androidの基本コンポーネント(Android AOSPに基づく)を使用してコンパイルします。

AndroidではC / C ++コードのみを使用するため、コンパイル環境は従来のAndroidコンパイル環境よりも小さいことがわかります。

Ubuntu 12.04LTS〜13.04の64ビットデスクトップバージョンを使用して、UbuntuTouchを開発できます。 (ブロガーはUbuntu14.04に基づくMint14.04を使用します)

ccacheをインストールできます(ccacheはAndroidのコンパイル速度を高速化します)が、必須ではありません。 ([http://source.android.com/source/initializing.html#ccache](http://source.android.com/source/initializing.html#ccache)Android構成ウィザードがインストール方法をガイドします)

ホストでコンパイルツールをコンパイルするには、次のインストールパッケージも必要です。

$ sudo apt-get install git gnupg flex bison gperf build-essential zip bzr curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool

1 $ sudo apt-get install git gnupg flex bison gperf build-essential  zip bzr curl libc6-dev libncurses5-dev:i386 x11proto-core-dev  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386  libgl1-mesa-dev g++-multilib mingw32 tofrodos  python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool

Utopic(Ubuntu 14.10)(またはその他)では、g-4.8もインストールする必要があります

$ sudo apt-get install g++-4.8-multilib

1 $ sudo apt-get install g++-4.8-multilib

Ubuntu 14.04が安定する前に、[PPAツールのインストール](https://wiki.ubuntu.com/Touch/Install#Step_1_-_Desktop_Setup)も必要です。 (「PPAの追加(Trusty以前のみ)」ステップを実行するだけで済みます。)

次に、phablet-toolsをインストールします。

$ sudo apt-get install phablet-tools

1 $ sudo apt-get install phablet-tools

これにより、Androidリポジトリの同期に使用されるリポジトリツールがインストールされます。 [レポツールについてはクリックしてください](http://source.android.com/source/using-repo.html)。すでにリポジトリツールがあり、以前のAndroid開発で実行パスを$ PATHに追加した場合は、リポジトリを削除するか、$ PATHのリポジトリパスがシステムリポジトリコマンドパス(/ binなど)にあることを確認してください。 / repo)。 $ whichリポジトリを使用して、リポジトリパスが正しいことを確認できます。正しい場合は、/ usr / bin / repoに戻ります。

(この段落の意味はまだコンパイルしていないため、まだ理解していません。したがって、/ usr / bin / repoであることを確認する必要があります。後で追加します)

次に、repoとgitを使用して(gitをインストールするだけで、実際に実行する必要はありません。repoはgitツールを呼び出します)、次のURLからAndroidソースコードを取得します。この手順は、AndroidRom開発者にはなじみのあるものです。

https://wiki.ubuntu.com/Touch/AndroidDevel

(このリンクは別の記事を書きます、そしてソースコードをダウンロードする仕事はこのリンクにあります)

前の手順でインストールしたphablet-dev-bootstrapを使用して、すべてのAndroidコードを1つずつダウンロードできます(おそらく640以上あります)。このツールはPythonを使用してリポジトリをカプセル化します。すべてのコードがrepoとgitによって管理される前に、このツールを使用してbzrリポジトリのプロジェクト(repoと同様の管理ツール)をダウンロードすることもできます。ただし、開発用のソースコードを取得するためだけに使用する場合は、この関数は不要になります。

次に、コードを実行します。

phablet-dev-bootstrap [target_directory]

1 phablet-dev-bootstrap [target_directory]

同期が途中で停止する原因となるエラーが発生した場合は、-cパラメーターを使用して同期を続行できます。

phablet-dev-bootstrap -c [target_directory]

1 phablet-dev-bootstrap -c [target_directory]

サポートされているデバイスの書き込みファイルをコンパイルするだけの場合は、-vパラメーターを使用できます。

phablet-dev-bootstrap -v [device codenames] [target_directory]

1 phablet-dev-bootstrap -v [device codenames] [target_directory]

phablet-dev-bootstrapコマンドは、リポジトリツールを使用してマニフェスト(アイテムリスト)を自動的にダウンロードしてから、すべてのgitプロジェクトと必要なデータをダウンロードします。この手順には時間がかかり、少なくとも15GB(および2〜3GBのバイナリファイル出力)のスペースが必要であることに注意してください。

Recommended Posts

UbuntuTouch環境のセットアップ
ubuntu16.04はGPU環境を展開します
Ubuntu構成開発環境
Ubuntu開発環境の構成
Python仮想環境:Ubuntu16.04
Ubuntu18.10はJava環境を構成します
ubuntu環境展開プロジェクト
ubuntuはpython2.5環境変数を設定します
ubuntu14.0464Ros環境インストールhalcon13.01
ubuntuビルドpython開発環境
ubuntuは共通の開発環境を構築します
Ubuntu16.04サーバーの初期設定
ubuntuオフラインインストールpython環境
Ubuntu18.04.1ビルドJava環境とHelloWorld
JobConverter + Ibreoffice環境をUbuntuにデプロイする
Ubuntu環境変数とADB構成
Ubuntu16.04ビルドphp5.6Webサーバー環境
docker ubuntu:14.04にpython-PIL-image環境をインストールします
Ubuntu18.04にPython仮想環境をインストールします
Ubuntu19.1のインストールと構成中国の環境
SparkUbuntu18にSparkスタンドアロン環境をインストールします
Ubuntu18.04にHadoopシステム環境をインストールします
サーバーの初期設定にはUbuntu16.04を使用します
Ubuntu16.04ビルドLAMP開発環境
ubuntuでのJDK環境変数の構成方法
ubuntuでC ++コンパイル環境を構築する
Tencent Cloud ubuntu 16.04ZenTao統合環境構築
Ubuntuサーバーへのノード環境のインストールについて
Ubuntu環境でOpenJDK11ソースコードをダウンロードする
UbuntuServerはHyperledgerFabric2.1学習環境を構築します
VagrantはUbuntu仮想マシン環境をすばやく構築します
GPUプログラミング(1):UbuntuでのCUDA8.0環境の構築
Ubuntuでpython開発環境を構築する
UbuntuでTinkPadタッチスクリーンを無効にする
Ubuntu16.04でNginx + PHP 7.0 + MySQL環境を構成します
Ubuntu環境でそれらのものをDockerする
Ubuntu環境でOpenJDK11ソースコードを編集する