1月 18, 2022

DIY:ソースコードからAndroid ROMをコンパイル

Androidは、世界で最も広く使用されているモバイルオペレーティングシステムです。 そして、最良の部分は、それは素人の言葉で、ソースコードは、実際のプログラムは、誰もが、ダウンロードカスタマイズし、独自のRomを構築するために公然と利

人気のあるものはCyanogenMod、SlimROM、Paranoid Android、AOKP、Liquid Smooth、MIUI、Xylon、Ice Cold Jellyなどで、そこに利用可能なカスタムAndroidディストリビューションがたくさんあります。

今日のガイドでは、最も人気のあるAndroidアフターマーケットROMであるCyanogenMod10.2をコンパイルします。 手順は、そこにあるすべてのカスタムRomで99%同じであるため、このガイドは他のRomをコンパイルするための参照として使用することができます。

前提条件

  1. 容易に利用可能なカーネルとデバイスソースを持つAndroid携帯電話、すでにルート化され、カスタムリカバリがインストールされています。
  2. 64ビットLinuxディストリビューション(私たちはUbuntuを好む)。
  3. ハードディスクに100GB以上の空き容量があります。
  4. Linux端末コマンドの実用的な知識。

注意点:64ビットLinux OSは必須であり、仮想マシンではなくネイティブインストールでなければなりません。

ビルドマシンのセットアップ

1. 公式の指示に従って、お好みのLinux OSをインストールしてください:64ビットバージョン。 (このガイドでは、Ubuntu13.04を実行していることを前提としています)。 少なくとも100GBのパーティションを16GBのスワップパーティションで保持します。

2. 次のパッケージのリストをインストールします: ターミナルアプリを開き、sudo apt-get install<package-name>

enterキーを押すと、パスワードの入力を求められます。パッケージリスト

パッケージリスト

git-core
gnupg
flex
bison
python
rar
original-awk
gawk
p7zip-full
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
squashfs-tools
build-essential
zip
curl
libncurses5-dev
zlib1g-dev
pngcrush
schedtool
libc6-dev
x11proto-core-dev
libx11-dev
libg11-mesa-dev
mingw32
tofrodos
python-markdown
libxml2-utils
g++-multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g++-multilib
xsltproc

3. Install Java JDK 1.6 for Linux 64-bit: File name should be jdk-6u##-linux-x64.bin, ## are version numbers. Move the downloaded package to your home directory. ターミナルアプリを開き、次の一連のコマンドを実行します:

sudo apt-getパージopenjdk-\*icedtea-\*icedtea6–\*
sudo mkdir-p/opt/java/64/
sudo cp jdk-6u##-linux-x64.cd/opt/java/64
chmod a+x jdk-6u##-linux-x64.ビン
。/jdk-6u##-linux-x64.bin
exit

ここで、JDKパスを追加する必要があります。bashrc

sudo gedit~/.bashrc

テキストファイルの末尾にこれらの行を追加します

# Java Path
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin

4. Android SDKをインストールします:ターミナルアプリを開きます

cd~
mkdir android&&cd android
mkdir sdk

Android SDKをhttp://developer.android.com/sdk/index.htmlからダウンロードします。 パッケージの内容を〜/android/sdkに抽出し、Android SDKパスを追加する必要があります。bashrc

sudo gedit~/.bashrc

これらの行をテキストファイルの末尾に追加します:

# Android SDK Path
export PATH=~PATH:~/android/sdk
export PATH=~PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools

次に、

androidと入力してAndroid SDK Toolsをインストールします

5. Githubアカウントとリモートレポを設定する:CyanogenModが正式に携帯電話をサポートしている場合は、この手順をスキップできます。 に行くgithub.com、そしてあなた自身のための記述を作りなさい。 このガイドでは、私はあなたのユーザー名を’user’と考えています。

github.com/CyanogenMod/android’、フォークを押します。 リモートマニフェストはフォークされ、あなたの個人的なレポで利用可能になります。

github.com/user/android’.ファイルをデフォルトで開きます。xml、編集を押します。 この行を見つける:

<プロジェクトパス=”android”名前=”CyanogenMod/android” />

これを次のように置き換えます

<プロジェクトパス=”android”名=”ユーザー/android” />

私はあなたのデバイスのカーネルソース、デバイスソース、およびandroid4.3用のベンダー libsが

にあると考えています

github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor

私はブランチを’jb4.3’という名前にすると仮定しています。 実際のレポで正確な名前を見つけることができます。 次に、ファイルの最後にこれらの行を追加し、デバイスのソースコードに従って変更します。

<プロジェクトパス=”kernel/your_company/your_device”name=”user2/kernel_source”remote=”github”revision=”jb4.3″ />
<プロジェクトパス=”device/your_company/your_device”name=”user2/device_source”remote=”github”revision=”jb4.3″ />
<プロジェクトパス=”device/your_company/your_device-common”name=”user2/device-common_source”remote=”github”revision=”jb4.3″ />
<プロジェクトパス=”vendor/your_company”name=”user2/vendor”remote=”github”revision=”jb4.3″ />

変更をコミットします。 リモートマニフェストを展開する準備が整いました。

6. Install Repoコマンド:ターミナルを開き、

cd~
mkdir~/bin
curlhttps://dl-ssl.google.com/dl/googlesource/git-repo/repo>~/bin/repo
chmod a+x~/bin/repo

レポパスを追加する必要があります。bashrc

sudo gedit~/.bashrc

テキストファイルの最後にこの行を追加します

export PATH=$PATH:~/bin

7. ROMソースコードの取得: ターミナルを開き、mkdir~/android/cm
cd~/android/cm

ステップ5が必要な場合は、

repo init–u git://github.com/user/android.git–b cmと入力します-10.2

お使いのデバイスが正式にCyanogenMod10.2をサポートしている場合は、

repo init–u git://github.com/CyanogenMod/android.git–b cmと入力します-10.2

今すぐ実行

repo sync–j16

コーヒー、または食事をつかむに行く、それは長い時間がかかるだろう。 ソースコードのサイズは10GBをはるかに超えているため、かなりの時間がかかります。

ソースの取得

8. デバイス固有のものを設定します:デバイスがCyanogenMod10.2を正式にサポートしている場合は、ターミナルを開き、

cd~/android/cm
と入力します。 build/envsetup.sh &&<<<<<<>

時間がかかりますが、デバイスソースのサイズは約3GBです。 次に、公式のCM10.2を携帯電話にインストールし、USBデバッグモードでPCに接続し、次のコマンドを実行する必要があります:

adb root
cd~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh

9. ターミナルを開き、

cd~/android/cm/vendor/cm
shと入力します。/get-prebuilts

ここで、ツールチェーンパスを追加する必要があります。/bashrc

cd~/android/cm
sudo gedit~/.bashrc

これらの行をテキストファイルの最後に追加します

# Androidツールチェーン
export ARCH=arm
export CCOMPILE=arm CROSS_COMPILE
export CROSS_COMPILE=arm-eabi-
export PATH=~PATH:~/android/cm/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

10. あなたのROMを構築する:だから、すべてがすべての権利と準備ができています。 ROMを構築する時が来ました。 端末を開き、

cd~/android/cm
と入力します。 build/envsetup.sh
<>

昼寝する時間だ これは、平均的なコンピュータ上でROMを構築するために無数の年がかかります。 まあ、それは誇張でしたが、私の自宅のPC(8GB RAMを搭載したCore i5 2nd gen)では、最初から構築するのに3時間以上かかります。 うまくいけば、エラーはなく、ビルドは正常に完了します。 出力パッケージは次のようになります

~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip

それはあなたの携帯電話に新しくコンパイルされたROMをインストールする時間です。 Google Appsパッケージのダウンロードは「www.グー適切なAndroidバージョンのim/gapps”。 お使いの携帯電話にこれらのパッケージの両方を入れて、リカバリモードでそれらをフラッシュします。 出来上がり、あなた自身のコンパイルされたROMは今、あなたのデバイスを実行しています。

さて、ROMのコンパイル方法を学びました。 だから、今何?

ソースROMを更新する

ローカルでダウンロードしたソースコードへの新しいソースコードの更新を取得するには、ターミナルを開き、

cd~/android/cm
repo sync–j16

と入力してROMをビルドするには、ソースコードを更新した後、ターミナルを開き、

と入力します。956>cd~/android/cm
installclean
を検索します。/out/-name’ビルド。prop’/xargs rm
を検索します。/out/-name’cm_<your_device>-target_files-eng.*.zip|/xargs rm
. build/envsetup.sh
ブランチ<あなたのデバイス>

あなたはゼロから再構築するのではなく、そのまま再構築するので、ほとんどの場合、約15-30分しかかからない大幅に少ない時間がかかります。 あなたのローカルソースを新鮮に保つために、毎週かそこらあなたのローカルソースを同期する必要があります。

作業ディレクトリを完全にクリーンアップするには

作業ディレクトリを完全にクリーンアップします(読み取り: ソースフォルダを在庫状態に戻します)、ターミナルを開き、次のコマンドを入力します。

cd~/android/cm
make installclean
make clobber

これらのコマンドを実行すると、すべての出力データが削除されるため、次のビルドには3-4時間かかります。 あなたのハードディスクの仕切りが小さい場合、100GBのまわりで言って下さい、4つの造り毎に約一度あなたの作業用ディレクトリをきれいにするべきであるまたはさもないと、ハードディスクのスペースを使い果たす。

CCACHEによるビルドの高速化

ROMのビルドには多くの時間がかかります。 しかし、CCACHEを使用することで、時間を約30-45%削減することができます。 CCACHEはcompiler cacheの略で、以前のビルドからのコンパイル出力をキャッシュして、後のビルドで再利用できるようにします。

CCACHEは、コンテンツをキャッシュするためにハードディスクに多くのスペースを必要とするため、ハードディスクのパーティションが200GB以上の近くにある場 CCACHEを設定するには、ターミナルを開き、次のように入力します:

cd~/android/cm
export USE_CCACHE=1
export CACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache/ccache–M50G

CCACHEへの最大サイズ割り当てを50GBから好きなものに変更できますが、良い結果を得るには最低約30GBを使用する必要があります。

他のRomからコミットをフェッチ

他のRomのソースコードから機能をチェリーピックすることができます。 たとえば、リポジトリからコミットID「12345」の機能Aを選択したいとします。github.com/user/reporepo”と述べている。

ローカルのソースコードでパッケージに移動し、ターミナルでこれらを実行します。

cd~/<path_to_reporepo_packages>
git fetchhttps://github.com/user/reporepo
git cherry-pick12345

有名なAndroidカスタムROMディストリビューションのソースコードリンク

CyanogenMod–https://github.com/CyanogenMod
SlimROM-https://github.com/SlimRoms
ParanoidAndroid–https://github.com/ParanoidAndroid
AOKP-https://github.com/AOKP
LiquidSmooth–https://github.com/liquidsmooth
Xylon ROM–
Ice Cold Jelly– https://github.com/IceColdJelly

だから、あなたはみんな、10の簡単な手順で実質的に任意のAndroid AOSPベースのROMをコンパイルするための簡単な、簡単なガイドが行きます。 私のガイドはCyanogenModに焦点を当てていますが、リポジトリのリンクを変更するだけで、ほとんどすべてのAOSP ROMをコンパイルできます。 または、機能を選択したり、コミットしたり、変更したり、独自のパーソナライズされたROMを作成したり、ROMをオンラインで共有したりできますか?

コメントを残す

メールアドレスが公開されることはありません。