あなたのAndroid携帯電話を応援したり、非常に人気のあるCyanogenModやその後継のLineage OSなどのカス カスタマイズされたROMの開発にはどのくらいの作業が必要ですか?
このガイドでは、独自のカスタムAndroid ROMを開発するための基本を説明します。 これは大規模な作業であることに注意する必要があります–あなたがLinux端末でコーディングやだましの経験がゼロの場合は、このディープエンドにダイブする前に、あなたのベルトの下にいくつかの知識を取得することができます。 しかし、あなたがそれらのことについて少なくとも基本的な考えを持っているなら、私はできるだけ簡単に物事を説明しようとしますので、あなたは
基本的に私たちがやっていることは、生のAndroidソースコード(AOSP)をダウンロードし、私たちの好みに合わせて変更することです。 さまざまなデバイス用に選択できるソースが非常に多いため、このガイドではAOSP(Android Open Source Project)として知られるマスターソースを参照するだけです。
AOSPについてのことは、純粋なソースコードにはデバイス固有のハードウェア固有のものが含まれていないということです。 素人の言葉では、カメラやGPUのようなハードウェアは、AOSPで開発するときに「すぐに」動作しません。 実際には、お使いのデバイスも、これらのハードウェアのバイナリなしで起動しません。
Googleブランドの携帯電話(Pixel、Nexusなど)用に開発している場合は、googleから直接ハードウェアバイナリを見つけることができます。 ただし、ブランド名の電話(Sony、Samsungなど)用のROMを開発している場合は、乗車中なので、心を祝福してください。
いくつかのメーカーは、独自のオープンソースプロジェクトを持っているか、自称開発者のための開発ツールをリリースしていますが、他のメーカーは独自のコードに厳しい蓋をしています。 より人気のあるメーカーのオープンソースプロジェクトの簡単なリストは次のとおりです。
Samsung Open Source Release Center
Sony Developer World
Lenovo Support
Huawei Open Source Release Center
Motorola Developers
これで、Google Pixelデバイス用の最も基本的でバニラなAndroid体験のためのROMを構築しているという前提の下で続けましょう。 あなたのベルトの下でこの知識を使用すると、自分で分岐し、特定のメーカーのRomのカスタマイズされたバージョンの開発を開始することができます。
このガイドの要件:
- Androidオープンソースプロジェクト
- Pixel XL phoneまたはLinux用のAndroidエミュレータ
- 64ビットLinuxオペレーティングシステム-UbuntuまたはLinux Mintは最も初心者に優しいディストロですが、BBQLinuxはAndroid開発者を念頭に置いて特別に開発されました。
- Python
- 肉付きの良いコンピュータ(コードをコンパイルするには多くのメモリとスペースが必要です!)
ビルド環境のセットアップ
まず、Linuxマシン上でAndroidエミュレータをセットアップしましょう。 Google Pixel XLデバイスを使用しているかどうかにかかわらず、デバイスに点滅させる前にAndroidエミュレータで新しいROMを試すのが常に最も安全です。 私の個人的なお気に入りはGenymotionなので、その特定のエミュレータをインストールする方法を説明します。 それらのほとんどはまた、Linuxの互換性を持っているようしかし、あなたはまた、このガイド”最高のAndroidエミュレータ”をチェックアウトすることができます。
Genymotionのウェブサイトに行き、アカウントを登録し、電子メールで確認し、実行可能ファイルをLinuxデスクトップにダウンロードします。次に、Linuxターミナルを開き、次のように入力します。Chmod+x genymotion-xxxxx。bin(xxxxをファイル名のバージョン番号に置き換えます)
。/genymotion-xxxxxx.bin
Yキーを押してGenymotionディレクトリを作成します。 次に、ターミナルに
cd genymotion&&と入力します。/genymotion
これで、インストールプロセスを開始するように求められますので、仮想デバイスの追加ウィンドウに到達するまで次へをクリックし続けます。 [デバイスモデル]オプションの下にある[Pixel XL]を選択し、インストールを完了します。 あなたが望むなら、あなたは仮想デバイスをテストすることができます、それは基本的にあなたのデスクトップ上にPixel XLの携帯電話を持っているよ
Pythonをセットアップしましょう:
$ apt-get install python
今、私たちはあなたのLinuxマシン上でJava開発キットを設定する必要があります。 Linuxターミナルを開き、次のコマンドを入力します。
sudo sudo apt-get update
$sudo apt-get install openjdk-8-jdk
これで、USBデバイスへのアクセスを許可するようにLinuxシステムを設定 Linuxターミナルで次のコードを実行します:
これにより、必要な51-androidがダウンロードされます。前述のUSBデバイスへのアクセスを可能にするtxtファイル。 を開きます。txtファイルを変更して、Linuxユーザー名を含めるように変更し、次に配置します。次の場所にあるtxtファイル:(rootユーザーとして)。 新しいルールが自動的に有効になるように、デバイスをUSB経由でコンピュータに接続します。
Androidソースのダウンロード
AOSPはGitでホストされているので、Repoと呼ばれるツールを使用してGitと通信します。
まず、ホームディレクトリに/binフォルダを設定する必要があります。 Linuxターミナルに次のコマンドを入力します。
$mkdir~/bin
PATH PATH=~/bin:$PATH
今、私たちはレポツールをダウンロードしますので、Linuxターミナルに入力します:
curl curlhttps://storage.googleapis.com/git-repo-downloads/repo>~/bin/repo
Repo chmod a+x~/bin/repo
レポがインストールされた後、我々は今、あなたの仕事のファ だから、Linuxターミナルにこれを入力します:
mk mkdir WORKING_DIRECTORY
$cd WORKING_DIRECTORY
今、私たちはあなたの名前と電子メールアドレスでGitを設定します–あなたが定期的にチェッ
git git config-グローバルユーザー。名前”あなたの名前”
git git config–グローバルユーザー。メール[email protected]
ここで、GitからAOSPの最新のマスターマニフェストをプルするようにRepoに指示します。
$repo init-uhttps://android.googlesource.com/platform/manifest
正常に完了すると、Repoが作業ディレクトリに初期化され また、”を見つけることができます。クライアントディレクトリ内のrepo”ディレクトリ。
$repo sync
Androidソースのビルド
これは、このガイドの冒頭で述べたハードウェアバイナリが登場する場所です。 AOSPドライバページに移動し、Android7.1.0(NDE63P)用のPixel XLバイナリをダウンロードしましょう。 ベンダイメージとハードウェアコンポーネントの両方をダウンロードする必要があります。 これらは圧縮されたアーカイブとして来るので、デスクトップに抽出し、ルートフォルダから自己解凍スクリプトを実行します。 前に作成したWORKING_DIRECTORYのルートにバイナリをインストールすることを選択します。Linuxターミナルに次のように入力します。
$make clobber
source source build/envsetup.sh
ビルドするターゲットを選択するので、次のように入力します:
$lunch aosp_marlin-userdebug
$setpaths
make make–j4
ここで、ソースからAndroid ROMを「構築」しました。 それでは、ターミナルに入力して、エミュレータでテストしましょう:
emulator emulator
エミュレータで少し遊んでください。 あなたが見ることができるように、純粋にバニラのAndroidの経験は非常に最小限であり、メーカーは彼らのニーズにAOSPをカスタマイズする理由です。 だから、あなたがしたい場合は、我々はちょうどあなたのデバイスに構築されたこのROMをフラッシュすることができますが、任意の機能強化を追加す
だから、メーカーは通常、AOSPで何をするかは、それをフォーク、独自の独自のバイナリを追加し、UIをカスタマイズし、ブートロゴを追加するなどです。 メーカーは基本的に在庫のAndroid ROMの上にペイントするだけなので、それもあなたの次の目標になります。
このガイドの第二部は、あなたのROMにフォント、テーマ、およびブートアニメーションを追加することを通過するように、お楽しみに!