umikaki diary

ガジェットから日常まで

自作カスタムROMをつくろう

Androidを使っていると、「この機能がほしい」、「こういう表示にしたい」という願望が芽生えるかと思います。Androidオープンソースですので、ソースコードが公開されています。よって、プログラミングの知識があれば改造も可能です。

この記事では、私が実施しているAndroidのカスタムROMであるLineageOSを改造し、オリジナルなカスタムROMを作る手順を、備忘録代わりに記載します。

 

ソースコードのフォーク

改造元であるLineageOSのソースコードを自身のリポジトリにフォークします。ソースコードといってもかなりの量があるため、改造したい部分のコードをフォークするようにします。私がフォークしたのは以下の3つです。

ソースコードをローカルリポジトリにクローン

フォークしたソースコードを、自身のローカルリポジトリにクローンします。

ソースコードの編集

クローンしたソースコードを編集します。編集終了後はコミットし、リモートリポジトリへプッシュします。

フォーク元リポジトリへの追従

フォーク元リポジトリの変更を反映させる方法については、下記サイトが参考になると思います。

カスタムROMのビルド

ソースコードを改造したら、コンパイル・ビルドし実際に端末で動かせるようにしなければなりません。この手順については下記サイトに詳しい手順が書かれていますので、本記事では割愛させて頂きます。

フォークしたソースコードの反映

ビルド用ディレクトリのlocal_manifestsに、フォークしたリポジトリを記載します。私が実際に記載しているものを下記に示します。


<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remove-project name="LineageOS/android_frameworks_base" />
  <project path="frameworks/base" name="LineageYui/android_frameworks_base" groups="pdk-cw-fs,pdk-fs" />
  <remove-project name="LineageOS/android_vendor_lineage" />
  <project path="vendor/lineage" name="LineageYui/android_vendor_lineage" />
  <remove-project name="LineageOS/android_lineage-sdk" />
  <project path="lineage-sdk" name="LineageYui/android_lineage-sdk" />
</manifest>

あとは、上記のやり方でビルドを行い、端末にインストールします。

実際に改造したこと

こちらのスライドにまとめてみました。