آموزش ساخت رام LineageOS 14.1

استاندارد

با سلام خدمت تمامی همراهان همیشگی Gsm-Developers با یک آموزش به روز در خدمتتان هستم

همان طور که میدانید سیانوژن به LineageOS  تغییر نام داده است

ما آموزش ساخت کامل رام کاستوم را داریم در سایت با آموزشهای مرتبط اما گفتم یک آموزش کامل براتون بزارم با ساخت جدیدترن نسخه این رام پرطرفدار

در این آموزش گوشی مورد استفاده برای ساخت رام گوشی OnePlus 3 می باشد(گوشی خود بنده)

میشه گفت OnePlus 3 اکنون یکی از پرطرفدارترین گوشیها برای توسعه دهندگان است

تقریبا از این آموزش می شود برای تمام دستگاهای دیگر نیز استفاده کرد

توصیه های اولیه

ساخت رام بر روی سیستم عامل اوبونتو 64 بیتی می باشد

اگر می خواهید اذیت نشوید و زیاد منتظر نمانید از سیستم قدرتمندی استفاده کنید

نیاز به 100 تا 150 گیگ فضای خالی

صبر و حوصله فراوان به خصوص اگر اولین بارتان می باشد

توصیه می شود از هارد SSD استفاده کنید

سعی کنید اگر می شود با ماشین مجازی رام را درست نکنید(در کنار ویندوز لینوکس نصب کنید)

آماده سازی سیستم

آخرین ورژن ماشین مجازی را دانلود و نصب کنید: ماشین مجازی

آخرین نسخه اوبونتو را نیز دانلود کنید: دانلود اوبونتو

اگر شما اکنون اوبونتو را نصب دارید این مرحله را رد کنید

راه اندازی ماشین مجازی

بعد از نصب ماشین مجازی آنرا اجرا کرده بر روی New بزنید و یک نام انتخاب کنید

لینوکس را انتخاب و بر روی اوبونتو 64 بزنید

مقدار رم برای ماشین مجازی را انتخب کنید(نصف کل رم سیستم یا اگر بشود بیشتر اختصاص دهید)

بر روی گزینه Create a virtual hard disk now کلیک کنید و Create بزنید

در صفحه جدید چیزی را تغییر ندهید فقط مقدار حافظه را انتخاب کنید(100 گیگ به بالا انتخاب کنید)

اکنون در بالا سمت چپ بر روی Settings کلیک کنید

بر advanced کلیک کنید و دو گزینه Shared clipboard و Drag’n’Drop بر روی bidirectional تنظیم کنید

در زیر system بر روی Processor بزنید و بیشترین مقداری که سبز رنگ شود را انتخاب کنید

در زیر حافظه بر روی دیسک خالی کلیک کنید

آیکون دیسک در سمت راست را انتخاب کنید

گزینه Choose virtual optical disc file را انتخاب و ایمیج اوبونتوی که دانلود کردید را بدهید

تمام ماشین مجازی ما آماده شد

نصب اوبونتو در ماشین مجازی

ماشین مجازی را اجرا کرده بر روی Install Ubuntu کلیک کنید

دو گزینه موجود را بزنید و ادامه دهید

گزینه های پیش فرض را در جلو انتخاب کنید تا به انتخاب زبان و کیبورد برسید

بعد از آن نام کامپیوتر را انتخب کنید و اگر دوست داشتید رمز بگذارید

بر روی Log in automatically کلیک کنید برای ذخیره وقت بهتر در آینده

بعد از آن نصب شروع می شود منتظر بمانید تا کامل نصب شود

بعد از اتمام نصب ریستارت کنید و وقتی درخواست برداشتن ایمیج را کرد اینتر بزنید

تمام ماشین مجازی شما آماده شد

آماده سازی سیستم عامل برای ساخت رام

تریمنال را باز کنید و کد زیر را وارد کنید

sudo apt-get update

اگر رمز دارید ازتون میپرسه واردش کنید

بعد از اون کد زیر را وارد کنید

sudo apt-get upgrade

با کدهای بالا برنامه های شما بروز میشوند.اگر سوال پرسید Y بزنید

با کد زیر پکیج کامل برای ساخت LineageOS 14.1 را نصب کنید

sudo apt-get install bison build-essential curl flex git gnupg libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libxml2 libxml2-utils lzop maven pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev bc ccache automake lzop gperf zlib1g-dev g++-multilib  gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev python-networkx libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev squashfs-tools schedtool dpkg-dev liblz4-tool make optipng libwxgtk3.0-dev openjdk-8-jdk

تاییدش کنید طبق سرعت اینترنت شما زمان میبرد نصب

کد زیر را وارد کنید برای ساخت مکان ذخیره سازی جدیدترین بیلدهایLineageOS

mkdir -p ~/bin

یک پوشه کار هم درست میکنم برای رام

mkdir -p ~/android/system

برای دانلود دستورات repo کد زیر را وارد کنید

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

اجازه دسترسی به دستورات را هم می دهیم با کد زیر

chmod a+x ~/bin/repo

تا اینجا سیستم آمادست

راه اندازی git

قبلا در ساخت رام کامل توضیح داده شده این قسمت ما بر اساس ثبت نام شما و داشتن یوزر توضیحات را میدهیم

کد زیر را وارد کنید برای نام و رمز ورود

git config --global user.name "YOUR USERNAME"
 git config --global user.email [email protected]

برای اطمئنان از مکان repo کد زیر را وارد کنید

cd ~/android/system/

اینم تمام شد

همگام سازی و دانلود سوری

برای دانلود سورس و تنظیم repository کد زیر را وارد کنید

cd ~/android/system/
repo init -u https://github.com/LineageOS/android.git -b cm-14.1

و بعد از آن کد زیر

repo sync

اینجاست که باید اینترنت خوبی داشته باشید تا سورس کامل LineageOS 14.1 بر روی کامپیوتر شما دانلود شود

توصیه میشه شب بزارید تا صبح

اگه بعدا نیاز به اپدیت داشتید کد ~/android/system  را وارد کنید

تا اینجای کار مراحلی که توضیح دادم برای تمامی دستگاها می باشد

ساخت LineageOS 14.1 از منبع برای وانپلاس 3

از این مرحله به بعد مختص گوشی وانپلاس 3 می باشد

به پوشه کار خود بروید و کد زیر را وارد کنید

cd ~/android/system
 source build/envsetup.sh
 breakfast oneplus3

گاهی این کد به خوبی اجرا نمی شود برای خطا نگرفتن کد زیر را اجرا کنید

nano ~/android/system/.repo/local_manifests/roomservice.xml

باید مانند زیر بشود

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project name="LineageOS/android_device_oppo_common" path="device/oppo/common" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-14.1" />
  <project name="TheMuppets/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_device_oneplus_oneplus3" path="device/oneplus/oneplus3" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_kernel_oneplus_msm8996" path="kernel/oneplus/msm8996" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_external_sony_boringssl-compat" path="external/sony/boringssl-compat" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_external_stlport" path="external/stlport" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_vendor_nxp-nfc_opensource_Nfc" path="vendor/nxp-nfc/opensource/Nfc" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_vendor_nxp-nfc_opensource_frameworks" path="vendor/nxp-nfc/opensource/frameworks" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_vendor_nxp-nfc_opensource_libnfc-nci" path="vendor/nxp-nfc/opensource/libnfc-nci" remote="github" revision="cm-14.1" />
  <project name="TheMuppets/proprietary_vendor_qcom_binaries" path="vendor/qcom/binaries" remote="github" revision="cm-14.1" />
</manifest>

اکنون Ctrl+X را بزنید و با Y تایید کنید و اینتر بزنید

دوباره کد ساین را وارد کنید تا تکه های باقیمانده از سورس کامل شوند

repo sync

با کد بالا repositories جدید دانلود می شوند

فعال کردن کش برای سرعت بخشیدن به ساخت رام

خوب اینجاست که هارد زیادی بالایی 100 گیگ که گفتم به دردتون میخوره

با اجرای کد زیر 50 گیگ رو به کش اختصاص میدیم که سرعت ساخت بره بالا

export USE_CCACHE=1
 prebuilts/misc/linux-x86/ccache/ccache -M 50G

تبریک 50 گیگ کش فعال شد

اختصاص مقدار رم برای ساخت

این مرحله را فقط در صورتی اجرا کنید که خطای your build fails گرفتید

کد زیر را وارد کنید

cd ~/android/system
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx8g"
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server

در خط دوم کد رقم 8 مقدار رم می باشد

با مقدار رم اختصاص داده شده به ماشین مجازی یا سیستم خود عوضش کنید

ساخت رام

کد زیر را وارد کنید

cd ~/android/system/
 brunch oneplus3

و به همین سادگی کار ساخت رام شروع می شود

منتظر بمانید تا تمام شود

در آخر کد زیر را وارد کنید

cd $OUT

بعد از آن می توانید رام خود را ببینید

تبریک از رام خود لذت ببرید

هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد

راهنمای توسعه رام های اندروید از پایه تا پیشرفته(بخش چهارم:آپلود سورس رام در Github)

استاندارد

دوستان تا اینجا چیزهای زیادی یاد گرفتیم و یک رام را ساختیم در طول ساخت رام سورس خود را ممکن هست تغییرات زیادی بدهیم یا کدهای از آن پاک کنیم و در صورت غیررسمی بودن رام و این قبیل مشکلات شما باید سورس خود را در سایت Github آپلود کنید،که مزایای زیادی برای شما دارد.

آپلود در Github

1- یک اکانت در Github بسازید.

2- یک کلید SSH key بسازید،کد زیر را در ترمینال وارد کنید.

ssh-keygen -t rsa -C "[email protected]"

به جایی [email protected]”  ایمیلی که ثبت نام کردید را بنویسید.

بعد از زدن اینتر باید خروجی زیر را به شما بدهد.

# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
# Enter file in which to save the key (/home/you/.ssh/id_rsa):

اینتر بزنید اکنون باید رمز عبور خود را وارد کنید.

# Enter passphrase (empty for no passphrase): [Type a passphrase] # Enter same passphrase again: [Type passphrase again]

بعد از پایان باید کد زیر را مشاهده کنید.

Your identification has been saved in /home/you/.ssh/id_rsa.
# Your public key has been saved in /home/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]

اکنون به مسیر ~/.ssh میرویم و id_rsa.pub اطلاعات خود را به سایت Github میبریم وارد اکانت خود شده تنظیمات و SSH در آنجا id_rsa.pub خود را کپی و ذخیره کنید.

اکنون زمان بررسی هست که ببینیم همه چیز کار می کند کد زیر را وارد کنید.

ssh -T [email protected]

باید به شکل زیر نمایان شود

The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?

در آخر جواب بله میدهیم(YES) و اینتر میزنیم.

Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.

تمام اکنون زمان آپلود سورسمون هست.

دستگاه نمونه GT-I9082 و رام نمونه AOGP می باشد پس فقط کافیست شما نام دستگاه و رام خود را با آموزش ما جایگزین کنید.

دستور زیر را وارد کنید.

cd aogp/device/samsung/i9082

http-_i-imgur

http-_i-imgur

اکنون کد زیر را وارد کنید.

git init

http-_i-imgur

http-_i-imgur

تنظیمات آماده شدن اکنون برای فرستادن فایلها به اکانت خود کد زیر را وارد کنید.

git add .

http-_i-imgur

اکنون به یک اظهار نظر نیاز داریم از این رو کد زیر را وارد کنید.

git commit -m "first commit"

http-_i-imgur

اکنون به اکانت خود در سایت Github بروید و بر روی علامت + بالا سمت راست کلیک کنید و New repository را بزنید.

http-_i-imgur

اکنون یک نام برای مکان ذخیره سازی خود بنویسید،برای نمونه به عکس زیر دقت کنید.

http-_i-imgur

اکنون میتوانید اظهار نظرهای زیادی را مشاهده کنید در مکانی که فایلهای خود را ذخیره کردید کدی برای این کار در ترمینال وارد کنید به عنوان مثال کد زیر برای گوشی مورد نظر ما

git remote add origin https://github.com/username/aogp_device_samsung_i9082.git

http-_i-imgur

http11-_i-imgur

در مرحله آخر ارسال سورس به سایت Github است برای این کار کد زیر را وارد کنید.

git push origin master

http-_i-imgur

رمز عبور هم مانند رمزی است که زمانی کلید ssh را درست کردیم.

http-_i-imgur

بلاخره کار ما تمام شد و سورس را در سایت Github آپلود کردیم وفقط نام فایل رام خود را بنویسید.

هر گونه کپی برداری از مطالب شرعا حرام و مورد پسند نویسنده نمی باشد.

آموزش چگونگی پچ کردن سورس سیانوژن

استاندارد

دستگاهای زیادی وجود دارند که برای رفع اشکالات و کارکرد بهتر هسته اندروید با سورس سیانوژن باید پچ بشوند.در این آموزش ما درباره پچ کردن از دو سایت github و Gerrit Code Review صحیبت می کنیم و برای نمونه باز I9082 استفاده میکنیم.

1-پچ کردن از سایتGERRIT CODE REVIEW

تذکر: اگر رامی که دارید کامپایل میکنید از سورس سیانوژن باشد و کامل مرتب شده و کامل باشد و خود گروه سیانوژن بصورت رسمی رفع مشکل کرده است نیازی به پچ کردن نیست.

در عکس زیر یک نمونه از شکل سایت میبینید برای پچ کردن اول نیاز هست که بر روی پچ مورد نظر کلیک کنید و لینک را کپی کنید.

1-cm

2- در ترمینال به مسیر ذخیره فایلهای میرویم.( در این نمونه مسیر ما frameworks/native هست)

2-cm

همانگونه که مشاهده میکنید در عکس زیر در کادر آبی باید دستورات تا حدودی شبیه به  زیر باشند.

3-cm

بعد از پچ شدن یک سوالی میپرسد که در جواب آن فقط q  را بزنید.تبریک سورس خود را پچ کردید.

پچ کردن از طریق سایت GITHUB GISTS

برای دانلود gist مورد نظر میتوانید این لینک  نام گوشی را جستجو کنید.(فرمت هم باید “.diff” or “.patch” باشد)

cm-4

در عکس زیر میتوانید ببینید که چه شکلی هست پچ.

5-cm

این پچها معمولا برای پورتهای غیر رسمی رام سیانوژن استفاده میشود و گاهی پورت رسمی که برای پورت رام دیگری باشد مانند پورت رام miui می باشد.

از نوار جستجوی سایت استفاده کنید برای جستجوی پچ مورد نظر و آنرا دانلود و در مسیر hardware/broadcom/libbt قرار بدهید.

اکنون کد زیر را برای قرار دادن پچ در سورس در ترمینال وارد کنید.

cd nameoftheromfolder/hardware/broadcom/libbt
 git checkout . 
patch -p1 < nameofthefile.diff or nameofthefile.patch

باید مانند عکس زیر باشد.

6-cm

به این آسانی کار ما تمام شد.موفق باشید

[button link=”https://telegram.me/gsm_developers” size=”medium”]لینک کانال تلگرام[/button]

 

هر گونه کپی برداری از پست شرعاً حرام بوده و مورد پسند نویسنده نمی باشد.