Androidは、世界で最も広く使用されているモバイルオペレーティングシステムです。 そして最良の部分は、完全にオープンソースであるということです。つまり、素人の言葉で言えば、実際のプログラムであるソースコードは、誰もが自分のROMをダウンロード、カスタマイズ、構築できるようにオープンに利用できます。
そこにはたくさんのカスタムAndroidディストリビューションがあり、人気のあるものはCyanogenMod、SlimROM、Paranoid Android、AOKP、Liquid Smooth、MIUI、Xylon、Ice ColdJellyなどです。
今日のガイドでは、最も人気のあるAndroidアフターマーケットROMであるCyanogenMod10.2をコンパイルします。 手順は、そこにあるすべてのカスタムROMで99%同じであるため、このガイドは、他のROMをコンパイルするためのリファレンスとしても使用できます。
前提条件
- すぐに利用できるカーネルとデバイスソースを備え、すでにルート化されており、カスタムリカバリがインストールされているAndroidフォン。
- 64ビットLinuxディストリビューション(Ubuntuをお勧めします)。
- ハードディスクに少なくとも100GBの空き容量があります。
- Linuxターミナルコマンドの実用的な知識。
- 適度に速いインターネット接続。
注記: 64ビットのLinuxOSは必須であり、仮想マシンではなくネイティブインストールである必要があります。
ビルドマシンをセットアップする
1.選択したLinuxOSをインストールします。 公式の指示によると、64ビットバージョン。 (ガイドでは、Ubuntu 13.04を実行していることを前提としています)。 100GBのスワップパーティションで少なくとも16GBのパーティションを維持します。
2.次のパッケージのリストをインストールします。 ターミナルアプリを開き、次のように入力します
[html] sudo apt-get install [/ html]
Enterキーを押すと、パスワードの入力を求められます。
パッケージ一覧
[html]
git-コア
グング
フレックス
バイソン
パイソン
RAR
オリジナル-awk
ガック
p7zip-フル
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
squashfs-ツール
ビルドに不可欠な
ZIP
curl
libncurses5-dev
zlib1g-dev
Pngcrush
スケジュールツール
libc6-dev
x11プロトコア開発
libx11-dev
libg11-mesa-dev
みんぐ32
トフロドス
python-マークダウン
libxml2-utils
g ++-multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g ++-multilib
xsltproc
[/ HTML]
3. Linux1.6ビット用のJavaJDK64をインストールします。 ファイル名はjdk-6u ##である必要があります-linux-x64.bin、##はバージョン番号です。 ダウンロードしたパッケージをホームディレクトリに移動します。 ターミナルアプリを開き、次の一連のコマンドを実行します。
[html]
sudoapt-getパージopenjdk-\ * icedtea- \ * icedtea6- \ *
sudo mkdir –p / opt / java / 64 /
sudo cp jdk-6u ##-linux-x64.bin / opt / java / 64
南に-
cd / opt / java / 64
chmod a + x jdk-6u ##-linux-x64.bin
./jdk-6u##-linux-x64.bin
終了する
[/ HTML]
ここで、JDKパスを.bashrcに追加する必要があります
[html]
sudo gedit〜/ .bashrc
[/ HTML]
テキストファイルの最後にこれらの行を追加します
[html]
#Javaパス
export JAVA_HOME = / opt / java / 64 / jdk1.6.0 _ ##
PATH = $ PATH:$ JAVA_HOME / binをエクスポートします
[/ HTML]
4. AndroidSDKをインストールします。 ターミナルアプリを開く
[html]
CD〜
mkdir android && cd android
mkdir SDK
[/ HTML]
からAndroidSDKをダウンロード http://developer.android.com/sdk/index.html。 パッケージの内容を〜/ android / sdkに抽出します。AndroidSDKパスを.bashrcに追加する必要があります。
[html]
sudo gedit〜/ .bashrc
[/ HTML]
次の行をテキストファイルの末尾に追加します。
[html]
#AndroidSDKパス
PATH = $ PATH:〜/ android / sdkをエクスポートします
export PATH = $ PATH:〜/ android / sdk / platform-tools
PATH = $ PATH:〜/ android / sdk / toolsをエクスポートします
[/ HTML]
次に、次のように入力してAndroidSDKツールをインストールします
[html]
アンドロイド
[/ HTML]
5.githubアカウントとリモートリポジトリを設定します。 CyanogenModが電話を公式にサポートしている場合は、この手順をスキップできます。 github.comにアクセスして、自分のアカウントを作成します。 このガイドでは、ユーザー名を「ユーザー」と見なしています。
'github.com/CyanogenMod/android'にアクセスし、フォークを押します。 リモートマニフェストはフォークされ、個人のリポジトリで利用できるようになります。
次に、「github.com/user/android」にアクセスします。 default.xmlファイルを開き、[編集]を押します。 この行を見つけます:
[html]
[/ HTML]
そしてこれを
[html]
[/ HTML]
Android 4.3のデバイスのカーネルソース、デバイスソース、ベンダーライブラリを
[html]
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor
[/ HTML]
ブランチの名前は「jb4.3」であると想定しています。 正確な名前は実際のリポジトリで確認できます。 次に、ファイルの最後にこれらの行を追加し、デバイスのソースコードに従って変更します。
[html]
[/ HTML]
変更をコミットします。 リモートマニフェストをデプロイする準備ができました。
6.リポジトリコマンドをインストールします。 ターミナルを開いて入力します
[html]
CD〜
mkdir〜 / bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo>〜/ bin / repo
chmod a + x〜 / bin / repo
[/ HTML]
.bashrcにリポジトリパスを追加する必要があります
[html]
sudo gedit〜/ .bashrc
[/ HTML]
この行をテキストファイルの最後に追加します
[html]
PATH = $ PATH:〜/ binをエクスポートします
[/ HTML]
7.ROMソースコードを取得します。 ターミナルを開いて入力します
[html]
mkdir〜 / android / cm
cd〜 / android / cm
[/ HTML]
手順5が必要な場合は、次のように入力します
[html]
repo init –u git://github.com/user/android.git –b cm-10.2
[/ HTML]
お使いのデバイスがCyanogenMod10.2を正式にサポートしている場合は、次のように入力します
[html]
repo init –u git://github.com/CyanogenMod/android.git –b cm-10.2
[/ HTML]
今すぐ実行する
[html]
リポジトリ同期–j16
[/ HTML]
コーヒーや食事を取りに行ってください、それは長い時間がかかるでしょう。 ソースコードのサイズは10GBをはるかに超えているため、かなり時間がかかります。

8.デバイス固有のものを設定します。 お使いのデバイスがCyanogenMod10.2を正式にサポートしている場合は、ターミナルを開いて次のように入力します
[html]
cd〜 / android / cm
。 build / envsetup.sh &&朝食
[/ HTML]
しばらく時間がかかります。デバイスソースのサイズは約3GBです。 次に、公式のCM10.2を電話にインストールし、USBデバッグモードでPCに接続して、次のコマンドを実行する必要があります。
[html]
adbルート
cd〜 / android / cm / device / / /
./extract-files.sh
[/ HTML]
お使いのデバイスがCyanogenMod10.2を公式にサポートしていない場合、このステップでは何もする必要はありません。ソースはすでにあなたを待っています。
9.ビルド済みのものをダウンロードし、ツールチェーンを設定します。 ターミナルを開いて入力します
[html]
cd〜 / android / cm / vendor / cm
sh ./get-prebuilts
[/ HTML]
ここで、ツールチェーンパスを./bashrcに追加する必要があります
[html]
cd〜 / android / cm
sudo gedit〜/ .bashrc
[/ HTML]
これらの行をテキストファイルの最後に追加します
[html]
#Androidツールチェーン
エクスポートARCH = arm
CCOMPILE = $ CROSS_COMPILEをエクスポートします
エクスポートCROSS_COMPILE = arm-eabi-
export PATH = $ PATH:〜/ android / cm / prebuilt / linux-x86 / toolchain / arm-eabi-4.4.3 / bin
[/ HTML]
10.ROMを構築します。 だから、すべてが大丈夫で準備ができています。 ROMを構築する時が来ました。 ターミナルを開いて入力します
[html]
cd〜 / android / cm
。 build / envsetup.sh
ブランチ
[/ HTML]
昼寝をする時間です。 平均的なコンピューターでROMを構築するには、数十億年かかるでしょう。 まあ、それは誇張でしたが、私の自宅のPC(5GBRAMを搭載したCorei2第8世代)では、最初から構築するのに3時間以上かかります。 うまくいけば、エラーは発生せず、ビルドは正常に完了します。 で出力パッケージを取得します
[html]
〜/ android / cm / out / target / product / /cm-10.2-何か-非公式- 。ジップ
[/ HTML]
新しくコンパイルしたROMを携帯電話にインストールする時が来ました。 適切なAndroidバージョンについては、「www.goo.im/gapps」からGoogleAppsパッケージをダウンロードしてください。 これらのパッケージを両方とも携帯電話に入れ、リカバリモードでフラッシュします。 出来上がり、あなた自身のコンパイルされたROMがあなたのデバイスを実行しています。
さて、あなたはROMをコンパイルする方法を学びました。 んで、どうする?
ソースROMを更新する
ローカルにダウンロードしたソースコードに新しいソースコードの更新をフェッチするには、ターミナルを開いて次のように入力します
[html]
cd〜 / android / cm
リポジトリ同期–j16
[/ HTML]
ROMをビルドするには、ソースコードを更新した後、ターミナルを開いて、次のように入力します。
[html]
cd〜 / android / cm
installcleanを作成します
find ./out/ -name'build.prop '| xargs rm
./out/ -name'cm_を検索します-target_files-eng。*。zip '| xargs rm
。 build / envsetup.sh
ブランチ
[/ HTML]
ゼロから再構築するのではなく、そのまま再構築するため、時間は大幅に短縮され、ほとんどの場合、約15〜30分しかかかりません。 ローカルソースを最新の状態に保つために、毎週かそこらでローカルソースを同期する必要があります。
作業ディレクトリをクリーンアップする
作業ディレクトリを完全にクリーンアップするには(読み取り:ソースフォルダをストック状態に戻します)、ターミナルを開いて次のコマンドを入力します。
[html]
cd〜 / android / cm
installcleanを作成します
クローバーを作る
[/ HTML]
これらのコマンドを実行すると、すべての出力データが削除されるため、すべてが最初から再構築されるため、次の構築には3〜4時間かかることに注意してください。 ハードディスクのパーティションが小さい場合、たとえば約100GBの場合は、4ビルドごとに約XNUMX回作業ディレクトリをクリーンアップする必要があります。そうしないと、ハードディスクの空き容量が不足します。
CCACHEによるビルドのスピードアップ
ROMの構築には時間がかかります。 ただし、CCACHEを使用すると、時間を約30〜45%短縮できます。 CCACHEはコンパイラキャッシュの略で、以前のビルドからのコンパイル出力をキャッシュして、後のビルドで再利用できるようにします。
CCACHEは、コンテンツをキャッシュするためにハードディスク上に多くのスペースを必要とするため、ハードディスクパーティションが200GB以上の近くにある場合にのみ推奨されることに注意してください。 CCACHEを設定するには、ターミナルを開いて次のように入力します。
[html]
cd〜 / android / cm
USE_CCACHE = 1をエクスポートします
CACHE_DIR =〜/ .ccacheをエクスポートします
prebuilts / misc / linux-x86 / ccache / ccache –M 50G
[/ HTML]
CCACHEへの最大サイズ割り当てを50GBから任意のサイズに変更できますが、良好な結果を得るには、最小で約30GBを使用する必要があります。
他のROMからコミットをフェッチする
他のROMソースコードから機能を選択できます。 たとえば、リポジトリ「github.com/user/reporepo」からコミットID「12345」の機能Aを選択するとします。
ローカルソースコードのパッケージに移動し、ターミナルでこれらを実行します。
[html]
cd〜 /
git フェッチ https://github.com/user/reporepo
git Cherry-pick 12345
[/ HTML]
有名なAndroidカスタムROMディストリビューションのソースコードリンク
CyanogenMod – https://github.com/CyanogenMod
スリムROM – https://github.com/SlimRoms
ParanoidAndroid – https://github.com/ParanoidAndroid
アオク – https://github.com/AOKP
リキッドスムーズ – https://github.com/liquidsmooth
ザイロン ROM –
アイスコールドゼリー – https://github.com/IceColdJelly
つまり、AndroidAOSPベースのROMを10の簡単なステップでコンパイルするためのシンプルでわかりやすいガイドです。 私のガイドはCyanogenModに焦点を当てていますが、リポジトリリンクを変更するだけで、ほぼすべてのAOSPROMをコンパイルできます。 または、機能を選択してコミットし、変更して独自のパーソナライズされたROMを作成し、ROMをオンラインで共有することもできますか?
ヴィシュヴァスト
こんにちは今日この記事をありがとうこのアンドロイドの世界は流行のように広がっているので素敵な記事
ジュリーラ音
印象的な作品! アプリ用に独自のコードを作成したいです。
ジェシカ
私はこのコードを見るのが大好きですが、このコードの一部が理解できません。
シャンタンデブ
hii Shaunak、
Androidは本当に全世界に広がっています。 そしてこの素晴らしい投稿に感謝します
スージーランプマン
素晴らしい。 さて、これらの用語しか理解できなかったとしたら。 次に、AndroidROMをコンパイルできます