AndroidオープンソースプロジェクトからカスタムROMを構築する方法

ソース AOSP(Androidオープンソースプロジェクト)として知られています



AOSPについてのことは、純粋なソースコードです 含まれていません デバイス固有のハードウェアプロパティ。素人の言葉で言えば、AOSPを使用して開発する場合、カメラやGPUなどのハードウェアは「箱から出して」機能しません。実際、これらのハードウェアバイナリがないと、デバイスは起動しません。

Googleブランドのスマートフォン(Pixel、Nexusなど)向けに開発している場合は、ハードウェアバイナリを見つけることができます Googleから直接 、およびこのガイドでは、それらを取得してROMに組み込む方法について説明します。ただし、ブランドの電話(Sony、Samsungなど)用のROMを開発している場合は、乗り物に乗っているので、心を祝福してください。



いくつか メーカーは独自のオープンソースプロジェクトを持っているか、開発者になる予定の開発ツールをリリースしていますが、他のメーカーは独自のコードを厳重に管理しています。人気のあるメーカーのオープンソースプロジェクトの簡単なリストは次のとおりです。



サムスンオープンソースリリースセンター
ソニーデベロッパーワールド
Lenovoサポート
Huaweiオープンソースリリースセンター
モトローラ開発者



それが邪魔にならないように、GooglePixelデバイス用の最も基本的なバニラAndroidエクスペリエンス用のROMを構築しているという仮定の下で続けましょう。この知識があれば、自分で分岐して、特定のメーカーのROMのカスタマイズされたバージョンの開発を開始できます。

このガイドの要件:

  • Androidオープンソースプロジェクト
  • PixelXLスマートフォン または Linux用のAndroidエミュレーター
  • 64ビットLinuxオペレーティングシステム– Ubuntu または Linuxミント 最も初心者に優しいディストリビューションですが、 BBQLinux 特にAndroid開発者を念頭に置いて開発されました。
  • Python
  • 頑丈なコンピュータ(コードのコンパイルには多くのメモリとスペースが必要です!)

ビルド環境のセットアップ

LinuxマシンにAndroidエミュレーターをセットアップすることから始めましょう。 Google Pixel XLデバイスを使用しているかどうかに関係なく、Androidエミュレータで新しいROMを試すのが常に最も安全です。 デバイスにフラッシュします。私の個人的なお気に入りはGenymotionなので、その特定のエミュレーターのインストールについて説明します。ただし、このガイドを確認することもできます。 最高のAndroidエミュレーター 」、それらのほとんどはLinuxとの互換性もあります。

に向かいます Genymotionのウェブサイト 、アカウントを登録し、電子メールで確認して、実行可能ファイルをLinuxデスクトップにダウンロードします。



Linuxターミナルを開き、次のように入力します。

Chmod + x genymotion-xxxxx.bin(xxxxをファイル名のバージョン番号に置き換えます)
./genymotion-xxxxxx.bin

押す そして Genymotionディレクトリを作成します。次に、ターミナルに入力します。

cd genymotion && ./genymotion

インストールプロセスを開始するように求められるので、[仮想デバイスの追加]ウィンドウが表示されるまで[次へ]をクリックし続けます。 [デバイスモデル]オプションで[PixelXL]を選択し、インストールを完了します。必要に応じて仮想デバイスをテストできます。基本的には、デスクトップにPixelXLスマートフォンを置いているようなものです。

Pythonをセットアップしましょう:

$ apt-get install python

次に、LinuxマシンでJava DevelopmentKitをセットアップする必要があります。 Linuxターミナルを開き、次のコマンドを入力します。

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

次に、USBデバイスアクセスを許可するようにLinuxシステムを構成する必要があります。 Linuxターミナルで次のコードを実行します。

これにより、前述のUSBデバイスへのアクセスを許可する必要な51-android.txtファイルがダウンロードされます。 .txtファイルを開き、Linuxユーザー名が含まれるように変更してから、.txtファイルを次の場所に配置します。 (として rootユーザー )。次に、新しいルールを自動的に有効にするために、デバイスをUSB経由でコンピューターに接続します。

Androidソースのダウンロード

AOSPはGitでホストされているため、Repoというツールを使用してGitと通信します。

まず、ホームディレクトリに/ binフォルダを設定する必要があります。 Linuxターミナルに次のコマンドを入力します。

$ mkdir〜 / bin
$ PATH =〜/ bin:$ PATH

次に、リポジトリツールをダウンロードするので、Linuxターミナルに入力します。

$ curl https://storage.googleapis.com/git-repo-downloads/repo>〜/ bin / repo
$ chmod a + x〜 / bin / repo

Repoをインストールしたら、作業ファイルを保持するための空のディレクトリを作成する必要があります。したがって、これをLinuxターミナルに入力します。

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

次に、名前とメールアドレスを使用してGitを構成します– 定期的にチェックするGmailアドレスを使用する そうしないと、Gerritコードレビューツールを使用できなくなります。

$ git config –global user.name“ Your Name”
$ git config –global user.email
you@gmail.com

次に、GitからAOSPの最新のマスターマニフェストをプルするようにリポジトリに指示します。

$ repo init -u https://android.googlesource.com/platform/manifest

正常に完了すると、作業ディレクトリでリポジトリが初期化されたことを示すメッセージが表示されます。また、「 .repo」 クライアントディレクトリ内のディレクトリ。そこで、Androidソースツリーを次のようにダウンロードします。

$リポジトリ同期

Androidソースの構築

1

ここで、このガイドの冒頭で説明したハードウェアバイナリが役立ちます。に向かいましょう AOSPドライバー Android 7.1.0(NDE63P)用のPixelXLバイナリをページングしてダウンロードします。ベンダーイメージとハードウェアコンポーネントの両方をダウンロードする必要があります。これらは圧縮アーカイブとして提供されるため、デスクトップに解凍し、ルートフォルダーから自己解凍型スクリプトを実行します。以前に作成したWORKING_DIRECTORYのルートにバイナリをインストールすることを選択します。

次に、Linuxターミナルに入力します。

$ clobberを作る
$ source build / envsetup.sh

次に、ビルドするターゲットを選択するので、次のように入力します。

$ランチaosp_marlin-userdebug
$ setpaths
$ make –j4

そこで、ソースからAndroidROMを「構築」しました。それでは、ターミナルに入力して、エミュレータでテストしてみましょう。

$エミュレーター

だからエミュレータで少し遊んでみてください。ご覧のとおり、純粋にバニラなAndroidエクスペリエンスはごくわずかであり、これがメーカーがAOSPをニーズに合わせてカスタマイズする理由です。だからあなたは たぶん......だろう 必要に応じて、デバイスに構築したばかりのこのROMをフラッシュしますが、拡張機能を追加しないと、純粋にバニラなAndroidエクスペリエンスは非常に退屈なものになります。

したがって、メーカーがAOSPで通常行うことは、フォーク、独自のバイナリの追加、UIのカスタマイズ、ブートロゴの追加などです。メーカーは基本的に、ストックのAndroid ROMにペイントするだけなので、それが次の目標にもなります。 。

このガイドの第2部では、フォント、テーマ、およびブートアニメーションをROMに追加する方法について説明しますので、しばらくお待ちください。

読んだ5分