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

استاندارد

به نام خدا

امروز برای اولین بار در بین سایتهای ایرانی میخوام براتون آموزش اختصاصی برای سازگار کردن سورس سیانوژن برای کامپایل رام مختص گوشی خودتون بزارم.

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

[button link=”http://www.gsm-developers.com/guide-to-developing-rom-step-by-step/” size=”medium”]مبانی و آماده سازی محیط[/button]

[button link=”http://www.gsm-developers.com/%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%b1%d8%a7%d9%85-%d9%87%d8%a7%db%8c-%d8%a2%d9%86%d8%af%d8%b1%d9%88%db%8c%d8%af-%d8%a7%d8%b2-%d9%be%d8%a7%db%8c%d9%87-%d8%aa/” size=”medium”]نصب ابزارکها و منابع مورد نیاز[/button]

از بیس رام cm میتوان برای ساخت رامهای زیادی استفاده کرد ما اینجا سراغ رام پر طرفدار slim میرویم و گوشی گلکسی گرند دو سیمکارت را هم بعنوان نمونه استفاده میکنیم.

 

تذکر: اگر شما برای دستگاه دیگری رام میسازید فقط کافیست که بجای i9080 نام گوشی مورد نظر و اگر رام شما اسلیم نیست فقط بجای slim نام رام خود را بگذارید.

در کل سه فایل در درخت سیانوژن وجود دارد که نیاز به ویرایش دارند.

1) cm.mk

2) cm.dependencies

3) AndroidProducts.mk

 

عکس پایین تمام فایلهای بیس سیانوژن را نمایش می دهد،که سه فایل مورد نیازمان برای ویرایش را با کادر قرمز نشان داده ایم.

cm-tree1

1- فایل cm.mk را به slim.mk تغییر نام دهید.

در عکس زیر مشاهده کنید تا تغییرات لازم  بین فایلهای cm.mk و slim.mk را بدهید.

cm-tree-2

همان طور که شما در عکس بالا مشاهده میکنید فقط به جایی CM نوشتیم SLIM  و مسیر بوت انیمیشن اسلیم را هم اضافه کردیم.( تمام رامها نیاز به بوت انیمیشن ندارند فقط رامهای SLIMROMS,VANIRAOSP,LIQUIDSMOOTH AND SOKP )

همچنین بوت انیمیشن به نسبت رزولوشن دستگاه شما هم متفاوت هست و باید اعمال کنید در متن بعنوان نمونه اگر صفحه نمایش شما اچ دی باشد (XHDPI ) پس باید مانند کد زیر باشد.

# Bootanimation

TARGET_SCREEN_HEIGHT := 1280

TARGET_SCREEN_WIDTH := 720

PRODUCT_COPY_FILES += \

     vendor/slim/prebuilt/common/bootanimation/720.zip:system/media/bootanimation.zip

 

الان ممکن هست فکر کنید که چرا نام فایل راعوض کردیم، جواب ساده است به پوشه vendor بروید و نام را بررسی و جایگزین کنید.( در بعضی رامها ممکن است با اشکال مواجه شوید)

cm-tree-3

برای نمونه در vaniraosp اگر cm.mk را به vanir.mk تغییر دهید،مانند شکل زیر اشکال میدهد.

cm-tree4

در صورت بروز این مشکل کافی که نام فایل cm.mk را به vanir_i9082.mk تغییر دهید.

این قانون دقیقا برای محتوای درون slim.mk هم اجرا میشود .

اول مطمئن میشویم تمام فایلها درون مسیر عکس زیر وجود دارند.

cm-tree5

همانگونه که مشاهده میکنید،فایلها در مسیر vendor/slim/config وجود دارند پس تا اینجا در مسیر درست حرکت کردیم.دیگر نیازی به ویرایش این فایل  نمی باشد.

2- اکنون نوبت فایل cm.dependencies

نام این فایل را طبق رام خود تغییر می دهید،برای ما که اسلیم هست می شودslim.dependencies

 

3- در آخرین مرحله نیاز به ویرایش فایل AndroidProducts.mk داریم.

 

در این فایل به سادگی هر فایلی به اسم device_i9082.mkوجود داشت به نامslim.mk  تغییر دهید.

برای درک بیشتر به عکس زیر دقت کنید.

cm-tree-6

کار تمام هست،بیس سیانوژن کاملا سازگار شده موفق باشید.

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

برای بحث و تبادل نظر میتوانید به لینک همین آموزش در انجمن مراجعه کنید.

 

[button link=”http://forum.gsm-developers.com/thread12651.html#post44695″ size=”medium”]لینک آموزش در انجمن[/button]

 

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

 

 

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

راهنمای توسعه رام های اندروید از پایه تا پیشرفته (بخش دوم؛ نصب ابزارکها و منابع مورد نیاز)

استاندارد

androiddev

گام اول؛ نصب برنامه لازم در درون Ubuntu

برای شروع کدنویسی، ایجاد و ویرایش رام های اندروید نیاز است تغییراتی در محیط Ubuntu اعمل گردد و نرم افزارهای جانبی بر روی آن نصب شود.

  • نصب افزونه جاوا (Java Development Kit)

– برای رام های KitKat نسخه 6 برنامه جاوا بایستی نصب شود. برای نصب یک ترمینال باز کنید و دستورات زیر را به ترتیب وارد کنید، توضیحات مربوط به عملکرد هر کدام از دستورات در کنار آن گفته خواهد شد.

  1. دستور زیر کدهای اشتباه جاوا را از روی Ubuntu حذف می کند.
    sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\
  2. دستور زیر را برای نصب برنامه جاوا وارد کنید.
    wget https://launchpad.net/~webupd8team/+archive/ubuntu/java/+files/oracle-java6-installer_6u45-0%7Ewebupd8%7E8_all.deb sudo dpkg -i oracle-java6-installer_6u45-0~webupd8~8_all.deb wget https://launchpad.net/~webupd8team/+archive/ubuntu/java/+files/oracle-java6-set-default_6u45-0%7Ewebupd8%7E8_all.deb sudo dpkg -i oracle-java6-set-default_6u45-0~webupd8~8_all.deb
  3. در آخر چک کردن ورژن جاوای نصب شده.
java -version

-برای اندروید لالی پاپ به جاوا ورژن 7 نیاز داریم که برای نصب کد زیر را در ترمینال اجرا میکنیم.

sudo apt-get update && sudo apt-get install openjdk-7-jdk

نصب ابزارهای مورد نیاز

-کد زیر را در ترمینال وارد کنید.

sudo apt-get install git-core gnupg ccache lzop flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5 lib32z1 lib32bz2-1.0 lib32ncurses5-dev x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z-dev libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev python

اگر خطایی  گرفتید کد بالا را بزنید بعد دو کد زیر را در ترمینال وارد کنید.

sudo apt-get update
sudo apt-get upgrade

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

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

تا اینجا این کدهای بالای دانلود پکیجهای مورد نیاز بودند.

اکنون زمان آماده سازی باینری به نام Repo هست

ریپو چیست؟

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

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

mkdir ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo && chmod a+x ~/bin/repo

با استفاده از ویرایشگر متن فایل ~/.bashrc را باز کنید برای این کار از دستور زیر استفاده کنید.

sudo nano ~/.bashrc

در پایینترین خط کد زیر را اضافه کنید

export PATH=~/bin:$PATH

فایل را ذخیره کنید. برای ذخیره Ctrl+O و اینتر و Ctrl+X برای خروج اکنون کد زیر را وارد کنید.

source ~/.bashrc

تبریک الان سیستم شما آماده ساخت رام می باشد…

دانلود منابع

برای ساخت رام از منبع ما نیاز به دانلود منابع از git داریم.

[symple_box style=”boxnotice”]
منابع برای دانلود دارایی حجم بسیار بالایی میباشند،نزدیک به 13 تا 14 گیگ برای دانلود نیاز به یک اینترنت پرسرعت و صبر فراوان دارید.
[/symple_box]

خوب شروع میکنیم

اینجا برای مثال از cm11 استفاده میکنیم.

1- یک مکان در حافظه جایی که منابع دانلود شدند بسازید.دستور زیر را در ترمینال برای ایجاد مکان بزنید.

mkdir cm11

اکنون در پوشه هوم خود یک پوشه به اسم cm11 میبینید.

1

2- در قدم بعدی نیاز دارید تا ریپو را آغاز کنید،دستور زیر را در ترمینال بزنید.

cd cm11

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

2

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

repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0

3

4

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

اکنون وارد پوشه cm11 شوید و Ctrl+H بزنید تا فایلهای مخفی نمایان شوند .repo جاییست که منابع دانلود شده اند.

5

6

الان ممکن هست که یک اشکال از ایمیلتان بگیرد، برید به سایت github و یک اکانت برای خود بسازید و کد زیر را در ترمینال وارد کنید.

git config --global user.email "[email protected]"
git config --global user.name "Your Name"

به جای [email protected] ایمیل خود و به جای Your Name نامی که در سایت github با آن ثبت نام کردید را بنویسید.

3- اکنون برای اینکه فایلهای دانلود شده و همگام سازی آنها برای وارد کردن به شاخه دیوایستان از local_manifest.xml استفاده میکنیم.

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

cd /your/repo/path
adb pull /system/etc/build-manifest.xml .repo/manifests/cm-10.0.0.xml

روش دوم از رام گوشی خودتان در این مسیر /system/etc/build-manifest.xml فایل را به .repo/manifests کپی کنید.

برای فعالسازی کد زیر را وارد کنید

repo init -m cm-10.0.0.xml
repo sync

4- اکنون زمان دانلود منبعمان میباشد،برای این کار دستور زیر را اجرا کنید.

repo sync -j2

 

7

8

اکنون شروع به دانلود میکنم حجم هم 13 تا 14 گیگ هست،دستور بالای برای منبع رام cm11 میباشد برای دانلود منابع رام دیگری باید به جای cm11 نام رام مورد نظر خود را بنویسید.

تعدادی لینک منابع رام:

CM

AOKP

Carbon Rom

SlimRom

بسیار ممنون از صبر وشکیبایی شما تا اینجا بخش دوم آموزش به پایان میرسید با ما باشید بزودی در بخش سوم با چگونگی ساخت رام اندروید برای موبایل مورد نظرتان با ما همراه باشید در کانال تلگرام و انجمن تخصصی gsm-developers

 

برای بحث و تبادل نظر میتوانید به انجمن تخصصی جی اس ام مراجعه کنید.

[button link=”http://forum.gsm-developers.com/thread12626.html#post44583″ size=”medium”]لینک آموزش در انجمن[/button]

 

[button link=”http://www.gsm-developers.com/guide-to-developing-rom-step-by-step/” size=”medium” target=”new”]پارت اول آموزش[/button]

 

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

 

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

آموزش کامل ساخت یا پورت رام MIUI

استاندارد

به نام خدا

یکی از بهترین رامهای ساخته شده برای اندروید رام MIUI هست.که رام سریع و سبکی میباشد طی سالیان این رام تغییرات زیادی داشته والان شرکت سازنده این رام یکی از فروشندهای بزرگ گوشی هوشمند شرکت شیاومی میباشد که این رام را در گوشیهای خود این شرکت می توان مشاهده کرد ولی همانند گذشته این رام را می توان برای هر دیوایس اندرویدی دیگری نیز پورت یا ساخت در این مقاله به آموزش ساخت رام MIUI  می پردازیم.

miui-1

در کل دو روش برای ساخت رام miuiوجود دارد.

روش اول :ساخت از منبع رام دستگاهتان از طریق پچ رام(در این روش رام اصلی دستگاهتان را با منبع موجود miui تبدیل میکنید)

روش دوم :ساخت پورت دستی از دستگاه دیگری که miui در آن نصب باشد.

آموزش روش اول پچ رام

موراد مورد نیاز:

1-اوبنتو (بصورت ماشین مجازی هم نصب شود مشکلی نیست) برای راه اندازی میتونید از این آموزش استفاده کنید.راهنمایی توسعه رام های اندروید از توسعه تا پیشرفته

2- رام پایه برای دیوایس مورد نظر(میتونید از رام AOSP استفاده کنید کارتون کمتر میشه در عین حال میشه از سیانوژن هم استفاده کرد)

3- برنامه Apktool میتوانید از این نسخه استفاده کنید کار باهاش آسون Advanced Apktool by BDFreak

4-در آخر هم  مغز راحت و صبر و حوصله

پیش نیازها

اول از همه فایلهای زیر را از رام اصلیتون حالا رام سیانوژن باشه یا حتی رام رسمی جدا میکنید.

framework-res.apk, framework.jar, framework2.jar, services.jar, android.policy.jar ,telephony-common.jar

بعد با استفاده از برنامه Apktool آنها را decompile میکنیم.

وارد سه پوشه خروجی برنامه میشویم و نام آنها را به شکل زیر عوض میکنیم.

[toggle title=”نام پوشه ها” load=”show”]framework-res
framework.jar.out
framework2.jar.out
services.jar.out
android.policy.jar.out
telephony-common.jar.out [/toggle]

به این پوشها برای پچ فریمور miui نیاز پیدا میکنیم.

آماده سازی محیط ساخت

اول از همه اوبنتو رو چه در ماشین مجازی یا بصورت نصب کامل آماده میکنیم.

در قدم بعدی android sdk را آملده میکنیم.

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

sudo apt-get update

بعد از فرستادن این دستور متن زیر را باید مشاهده کنید

sudo apt-get install bison build-essential curl flex git git-core gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev unzip lib32readline-gplv2-dev lib32z1-dev make python-networkx zlib1g-dev:i386 phablet-tools

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

در ترمینال بترتیب کدهای زیر را اجرا کنید.

mkdir -p ~/bin
PATH=~/bin:$PATH
cd ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir ~/patchrom
cd ~/patchrom
repo init -u git://github.com/MiCode/patchrom.git -b miui-7 -m android-4.4.4.xml

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

git config --global user.email ENTER_YOUR_EMAIL_ID_HERE
git config --global user.name ENTER_YOUR_REAL_NAME_HERE

در اولی به جای ENTER_YOUR_EMAIL_ID_HERE ایمیل خود را وارد کنید و در دستور دومی بجای ENTER_YOUR_REAL_NAME_HERE نام واقعی خود را وارد کنید.

الان زمان دانلود منبع کدهای miui هست. آنها را در این سایت پیدا میکنید. کد زیر را هم وارد ترمینال کنید بعد از دانلود فایلها

repo sync

بعد از اتمام دانلود یک پوشه در مسیر home درست کنید نام آن را به دلخواه انتخاب کنید( مثلا نام کد گوشی خودتان در اینجا ما از اسم سایت استفاده میکنیم)

cd /home/stryder/
mkdir gsm-developers
cd taoshan

 

اکنون یک makefile برای دستگاهتان درست میکنید. یه نمونه زیر براتون میزارم که میتونید رد آن تغییراتی ایجاد کنید نسبت به دستگاه خودتان.

gedit makefile

 

نمونه makefile در زیر را میتوانید استفاده کنید ولی حتما تغییرات را نسبت به دستگاه خودتان اعمال کنید.

# Makefile for gsm-developers
#

# The original zip file, MUST be specified by each product
local-zip-file := stockrom.zip

# The output zip file of MIUI rom, the default is porting_miui.zip if not specified
local-out-zip-file := MIUI8_gsm-developers.zip

# All apps from original ZIP, but has smali files chanded
local-modified-apps :=

local-modified-priv-apps :=

local-modified-jars :=

# All apks from MIUI
local-miui-removed-apps :=

local-miui-removed-priv-apps :=

local-miui-modified-apps :=

# All apps need to be removed from original ZIP file
local-remove-apps := Gallery2 Exchange2

# Config density for co-developers to use the aaps with HDPI or XHDPI resource,
# Default configrations are HDPI for ics branch and XHDPI for marshmallow branch
local-density := XHDPI

PORT_PRODUCT := gsm-developers

# To include the local targets before and after zip the final ZIP file,
# and the local-targets should:
# (1) be defined after including porting.mk if using any global variable(see porting.mk)
# (2) the name should be leaded with local- to prevent any conflict with global targets
#local-pre-zip := local-pre-zip-misc
#local-after-zip:= local-put-to-phone

# The local targets after the zip file is generated, could include 'zip2sd' to
# deliver the zip file to phone, or to customize other actions

#include phoneapps.mk

include $(PORT_BUILD)/porting.mk

local-pre-zip-misc:
@echo Update boot.img
cp other/boot.img $(ZIP_DIR)/boot.img

@echo Update build.prop
cp other/build.prop $(ZIP_DIR)/system/build.prop

@echo Delete some unneeded files
rm -rf $(ZIP_DIR)/system/etc/.has_su_daemon

rm -rf $(ZIP_DIR)/system/priv-app/Dialer.apk

rm -rf $(ZIP_DIR)/system/priv-app/Keyguard.apk

rm -rf $(ZIP_DIR)/system/priv-app/SystemUI.apk

rm -rf $(ZIP_DIR)/system/priv-app/VoiceDialer.apk

rm -rf $(ZIP_DIR)/system/priv-app/Launcher3.apk

rm -rf $(ZIP_DIR)/system/priv-app/ParanoidOTA.apk

rm -rf $(ZIP_DIR)/system/priv-app/ThemeChooser.apk

rm -rf $(ZIP_DIR)/system/priv-app/ThemesProvider.apk

 

توضیحات لازم:

 

  • ‘local-zip-file’ = نام رام بیس خودتان را اینجا بنویسید .
  • ‘local-out-zip-file’ =نام رام miui که دارید روی آن کار میکنید.
  • ‘local-modified-apps’ = برنامه های که نیاز به ویرایش دارند تا با فریمورک دستگاهتان ست شوند،نیاز به این کار دارند چون با سیستم گوشی سر و کار دارند.
  • ‘local-remove-apps’ = برنامه های که میخواهید از رام اصلی حذف کنید.
  • ‘local-pre-zip’ = اشاره به کدهای دارد که قبل از کامل شدن رام زیپ شده دارد.
  • ‘local-after-zip’ = اشاره به کدهای دارد که بعد از کامل شدن رام زیپ شده دارد.
  • ‘local-zip-misc’ = این کد فقط شرح میده که در ‘local-pre-zip’. مقداری برنامه های گوگل و کد هایbuild.prop
  • ‘local-test’ = یک کد دیگر فقط برای تست.

اکنون پوشه اولی فریمور که decompile کردیم را درون پوشه دستگاهتان کپی میکنید.

  • framework-res
    framework.jar.out
    framework2.jar.out
    services.jar.out
    android.policy.jar.out
    telephony-common.jar.out
     

و بعد فایل زیپ رام اصلیتون را کپی میکنید.

اکنون وارد پوشه پچ رام میشوید. کدهای زیر را وارد کنید

cd ~/patchrom
source build/envsetup.sh

دوباره وارد پوشه دیوایس خود شود و پچ کردن فریمورک miui خود را آغاز کنید

cd /home/stryder/gsm-developers
make firstpatch

 

 

اکنون یک پوشه جدید به اسم temp ایجاد میشود ممکن هست به مشکل بخورید که در این صورت یک پوشه به اسم reject ایجاد میشود که فعلا میتوانید از این لینک برای رفع مشکل استفاده کنید.

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

make fullota

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

make zipfile

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

ویرایش فایل boot.img

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

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

برنامه را دانلود و در یک مکان مجزا بذارید فایل بوت رام اصلی را در آن پوشه کپی میکنیم

اکنون فایل بوت را کشیده و بر روی unpackimg ببرید و رها کنید کرنل تا در پوشه های ramdisk و split_img استخراج شود.

اول باید ramdisk را ویرایش کنید وارد پوشه میشویم در پوشه sbin فایلهای استخراج شده را مشاهده میکنید.

اکنون دو اتفاق ممکن هست بیفتد دارید اول ramdisk شما همراه با فایلهای دیگر دروه یک پوشه استخراج میشوند.که در این صورت قدم بعدی را میپریم و با Notepad++ آنها را ویرابش میکنیم

اما در صورت اتفاق دوم ramdisk شما بصورت ramdisk.cpio استخراج میشود که در این صورت باید با اوبنتو اقدام به استخراج آن بکنید.

فایل ramdisk.cpio را در یک پوشه جدید کپی کنید ترمینال را باز کنید و دستور زیر را وارد کنید.

cd stryder
cpio -i -F ramdisk.cpio

بعضی از خروجی ها در ترمینال بصورت یلوکهای 2320 یا چیزی نزدیک به این عدد نمایش داده میشود. میبیند که درون پوشه ramdisk استخراج میشوند

خوب میریم برای ویرایش

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

فایل default.prop و آنرا مانند زیر ویرایش میکنیم.

# 
# ADDITIONAL_DEFAULT_PROPERTIES 
# 
ro.adb.secure=0 
ro.secure=0 
ro.allow.mock.location=0 
ro.debuggable=1 
persist.sys.usb.config=mtp,adb 
persist.service.adb.enable=1 
persist.service.debuggable=1  

تغییرات ذخیره شده را ذخیره کنید بعد فایل init.cm.rc (در صورت بیس سیانوژن) یا init.pa.rc در صورت بیس AOSP را باز کنید.یک # بزارید قبل از ویرایش اینگونه فایلها مثل کد زیر

# Superuser 
#import /init.superuser.rc  

ذخیره کنید اکنون فایل init.rc را باز میکنیم در آخر فایل init.rc کد زیر را اضافه کنید.

#service for shelld
service shelld /system/xbin/shelld
class main

#service for su
service su_daemon /system/xbin/su --daemon
class main
oneshot

service lbesec /system/xbin/lbesec
class main
oneshot

 

فایل را ذخیره بعد فایل seapp_contexts را باز میکنید و کد زیر را در آخر بهش اضافه میکنید

user=theme seinfo=platform domain=platform_app type=platform_app_data_file
user=backup seinfo=platform domain=platform_app type=platform_app_data_file
user=updater seinfo=platform domain=platform_app type=platform_app_data_file
user=theme_man domain=system_app type=system_data_file

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

user=_app domain=untrusted_app type=app_data_file
user=_app seinfo=platform domain=platform_app type=app_data_file
user=_app seinfo=shared domain=shared_app type=app_data_file
user=_app seinfo=media domain=media_app type=app_data_file
user=_app seinfo=release domain=release_app type=app_data_file

ذخیره کنید فایل init.qcom.rc باز میکنیم در آخر قبل از این کد

on property:sys.boot_completed=1

این کد را اضافه کنید

service shelld /system/xbin/shelld
class main

 

فایل رو ذخیره کنید هم اکنون زمان ریپک کردن فایل ramdisk هست. اول فایل اصلی ramdisk.cpio را به پوشه home  و اگه استخراج شده بود فایل در پوشه /home/stryder/  پیداش میکنید.

فایل اصلی ramdisk را هم به home انتقال می دهیم بعد از آن دستور زیر را در ترمینال اجرا کنید.

cpio -i -t -F ../ramdisk.cpio | cpio -o -H newc -O ../ramdisk_new.cpio

اکنون فایلی به اسم ramdisk_new.cpio درست میوشد که نسبت به فایل اصلی حجم کمی بالاتری دارد

همچنین فایل ramdisk_new.cpio را باز کنید و مطمئن شوید که فایلهای جدید در ان بوجود آمده است مانند otad در پوشه bin .

اکنون فایل ramdisk_new.cpio در مسیر ramdisk/sbin/ بگذارید و فایل اصلی ramdisk.cpio را پاک کنید و نام ramdisk_new.cpio را به ramdisk.cpio تغییر دهید.

اکنون برگردید و مستقیم دستور repackimg را در ترمینال اجرا کنید فایل اصلاح شده image_new بوجود می آید که نام آنرا به boot تغییر میدهیم و این فایل اصلاح شده را در MIUI ROM zip خود قرار می دهیم اکنون می توانید رام خود را فلش کنید و از رام زیبایی miui لذت ببرید.

 

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

پیش نیازها:

برنامه 7zip یا winrar و Notepad++

دستور العمل ساخت

اول از همه دو پوشه میسازیم به نامهای  1. BASE ROM 2. PORT ROM

456

 

base rom : رام اصلی که مال خود موبایلتان هست.( cm یا AOSP)

port rom: رام miui موبایلی دیگر که میخواهید برای دستگاه خود پورت کنید.

[symple_box style=”boxerror”]
حتما سعی کنید از رام موبایلی پورت بگیرید که cpu و دیگر مشخصات شبیه به موبایل اصلی باشد یا حداقل اختلاف خیلی کمی میان مشخصات دو دیوایس باشد.
[/symple_box]

اکنون دو رام را هر کدام در پوشه های که درست کردید استخراج میکنید.

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

 

4568

اکنون همین پوشه های addon.d (If present), app, framework, fonts, media and priv-app را از رام پورت جابه جا میکنید.

پوشه etc را درون هر دو فولدر باز کنید،برید به پوشه init.d در رام پورت شده هر چی فایل هست به جز فایل 00banner را کپی کنید به پوشه init.d در رام اصلی.

اکنون پوشه permissions را از پوشه etc در هر دو رام باز کنید و تمام فایلهای پوشه permissions را از رام پورت شده به رام اصلی انتقال بدهید و جایگزین کنید.به جز دو پوشه handheld_core_hardware.xml و org.cyanogenmod.hardware.xml اگر وجود داشتند.

همچنین هر چی پوشه در مسیر etc را پورت شده هست را به رام اصلی اصلی در مسیر etc کپی کنید مانند پوشه miui_feature

اکنون فایل system_fonts.xml را در رام اصلی پوشه etc باز کنید و در آخر فایل قبل از کد </familyset> کد زیر را قرار دهید.

<family>
        <nameset>
            <name>miui</name>
        </nameset>
        <fileset>
            <file>Miui-Regular.ttf</file>
            <file>Miui-Bold.ttf</file>
        </fileset>
    </family>

    <family>
        <nameset>
            <name>miuiex</name>
        </nameset>
        <fileset>
            <file>MiuiEx-Regular.ttf</file>
            <file>MiuiEx-Bold.ttf</file>
        </fileset>
    </family>

    <family>
        <nameset>
            <name>miuiex-light</name>
        </nameset>
        <fileset>
            <file>MiuiEx-Light.ttf</file>
        </fileset>
    </family>

اکنون هر چی فایل در پوشه های bin, lib و xbin در رام پورت شده هست را به رام اصلی کپی کنید.(فقط کپی کنید هیچ فایلی را جایگزین نکنید)

الان فایل build.prop را از رام اصلی باز میکنیم.مقدارهای پایین را همانگونه که میل دارید میتوانید تغییر دهید.

ro.build.id=
ro.build.display.id=
ro.build.date=
ro.build.date.utc=
ro.product.locale.language=en
ro.product.locale.region=US
ro.cm.version=
ro.modversion=

اکنون کدهای زیر کپی کنید و در آخر فایل build.prop رام اصلیتون کپی کنید، شما می توانید کدهای زیر را ویرایش کنید ولی ساختار اصلی را نگه دارید برای اطلاع از ساختار اصلی به build.prop رام پورت شده مراجعه کنید.

ro.build.description=devicename-user 4.4.2 yourname C2104XXUCNG1 release-keys
ro.build.fingerprint=devicemanufacturer/devicemodel/device:4.4.2/yourname/C2104XXUCNG1:user/release-keys
ro.product.model=Xperia L
ro.product.device=taoshan
ro.build.characteristics=default
#MIUI_Features
ro.miui.has_real_blur=0
ro.miui.has_handy_mode_sf=1
ro.config.sms_received_sound=FadeIn.ogg
ro.config.sms_delivered_sound=MessageComplete.ogg
ro.product.manufacturer=Xiaomi
ro.config.elder-ringtone=Angel.mp3
persist.sys.mitalk.enable=true
ro.miui.ui.version.code=5
ro.miui.ui.version.name=V7
persist.sys.strictmode.disable=true
ro.product.mod_device=yourdevice

کدهای زیر را همانند build.prop رام پورت شده تغییر دهید

ro.config.notification_sound=
ro.config.alarm_alert=
ro.config.ringtone=

اگر موبایلتان دارای دکمه های بر روی صفحه هست،کد زیر را در پایان build.prop رام اصلی قرار دهید.

qemu.hw.mainkeys=0

خوب تا اینجا کارمون با build.prop تموم شده. اکنون فایل META-INF/com/google/android/updater-script را از رام اصلی با Notepad++ باز میکنیم و تمام کدهای  symlink و  set_metadata را از رام پورت شده به رام اصلی کپی میکنیم.کدهای دیگری در رام اصلی هم هستن به آنها کاری نداشته باشید. یک نمونه  updater-script برای دانلود هم براتون میذارم که ازش استفاده کنید.

کد زیر را هم قبل از unmount(“/system”); در پایان updater-script قرار بدهید.

set_perm(0, 1000, 06750, "/system/xbin/shelld");
run_program("/sbin/busybox", "mount", "/data");
package_extract_dir("data", "/data");
package_extract_file("META-INF/com/miui/relink", "/tmp/relink");
set_perm(0, 0, 0555, "/tmp/relink");
run_program("/tmp/relink");
delete("/tmp/relink");
set_perm_recursive(1000, 1000, 0755, 0644, "/data/miui");
set_metadata("/system/bin/debuggerd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/bin/debuggerd_vendor", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:debuggerd_exec:s0");
set_metadata("/system/xbin/su", "uid", 0, "gid", 2000, "mode", 06755, "capabilities", 0x0, "selabel", "u:object_r:su_exec:s0");
delete_recursive("/data/miui/preinstall_apps");
delete_recursive("/data/miui/cust/preinstall_apps");
ui_print("Installation finished...Enjoy!");
unmount("/data");

همچنین پوشه META-INF/com/miui and data folder را از رام پورت شده به رام اصلی کپی کنید.

اکنون فایل boot.img را طبق آموزشهای بالاتر ویرایش کنید و در رام اصلی قرار دهید.

و در آخر در پوشه Base rom  تمام فایلها و پوشها را با کلیک راست میکشیم و با برنامه winrar مانند تصویر زیر به زیپ تبدیل میکنیم.باید حاوی فایلهای META-INF, system, boot.img, file_contexts(If present) and data باشد.

win

 

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

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

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

برای اطلاعات بیشتر می توانید به منبع آموزش مراجعه کنید.ولی در این آموزش سعی شده تغیراتی برای بروزتر بودن ایجاد شود.

برای بحث و تبادل نظر با کوکرهای انجمن میتوانید به لینک همین آموزش در انجمن مراجعه کنید.

لینک آموزش در انجمن

 

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

 

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

آموزش استخراج کامل فایلهای update.app و img هووای برای ویرایش

استاندارد

به نام خدا

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

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

HuaweiUpdateExtractor

برای استخراج فایلهای update.app

Ext4 Unpacker

Ext2Explore

این دو برنامه برای استخراج فایلهای IMG

HuaweiUpdateExtractor را اجرا کنید

1

گزینه یک را انتخاب فایل رام مورد نظر را انتخاب میکنیم و حالا با فشردن کلیک چپ همه فایلها را انتخاب کنید یا فقط فایلی که میخواهید استخراج کنید تا ابی رنگ شود و سپس راست کلیک را بزنید و گزینه extract all selected را انتخاب کنید و در اخر مسیری را که میخواهید فایل ها ذخیره شوند را میدهید. تا فایلها استخراج شوند.

اکنون فایلهای img رو داریم طبق آموزش زیر میریم برای اسخراج فایلها

  1. برنامه Ext4 Unpacker را باز کنید و دکمه open button رابزنید
  2. فایل img مورد نظر را انتخاب کنید
  3. سپس دکمه save as ext4 را انتخاب کنید
  4. محل ذخیره را در کامپیوترتان مشخص و هر اسمی میخواهید بزارید و با پسوند “.ext4” ذخیره نمایید.
  5. حال برنامه Ext2Explore را راست کلیک کرده و run as administrator را انتخاب نمایید
  6. در قسمت file گزینه open image را زده و سپس فایلی که با پسوند .ext4 ذخیره کرده بودید را انتخاب نمایید
  7. حال پس از انتخاب دکمه save را زده و آدرسی که میخواهید img را استخراج شود را انتخاب نمایید

اکنون راحت میتوانید فایلهای خود را ویرایش کنید موفق باشید.

 

راهنمای توسعه رام های اندروید از پایه تا پیشرفته (بخش اول؛ مبانی و آماده سازی محیط)

استاندارد

picture1

در طول آموزش سعی خواهد شد تمام نقاط کور و مورد سوال توسعه دهندگان عزیز پوشش داده شود و برای دوستانی که تازه شروع به ویرایش رام کرده اند بصورت گام به گام توضیح داده خواهد شد. از آنجایی که آموزش جامع و شامل است به صبوری و همراهی نیاز است. امید است آموزش براتون مفید واقع قرار بگیرد. در طول آموزش هر سوال و پیشنهادی بود می توانید به صورت سوال در میان بگذارید.

گام اول؛ مفاهیم پایه

آشنایی با هر مبحثی نیازمند دانستن مطالب پایه آن است. در ادامه و برای شروع آموزش مفاهیم پایه ای سیستم اندرویدی بصورت مختصر و کامل تشریح خواهد شد.

اندروید چیست؟

اندروید سیستم عامل طراحی شده برای گوشی های هوشمند جدید است. از آنجایی که می توان کدهای دستوری را تغییر و باگ های احتمالی را اصلاح کرد آن را متن باز (Open Source) می نامند.

کدهای متنی اندروید (Android Source Code) چیست؟

اندروید یک نرم افزار متن باز است که برای سیر گسترده ای از تلفن های همراه با فاکتورهای متنوع طراحی شده است. هدف اصلی از اندروید ایجاد پلتفرمی از نرم افزار هایی با قابلیت تغییر و بهبود برای OEM و توسعه دهندگان است. به این منظور کدهای دستوری متنوعی برای اجرای بخش های متنوع آن در نظر گرفته شده است. به صورت کلی اندروید به کاربران خود قابلیت و اجازه تغییر در ساختار خود را بدون محدودیت می دهد.

رام اندروید (Android ROM) چیست؟

رام اندروید همان سیستم عامل اندروید است. رام اندروید شامل رابط کاربری (User Interface) و فایل های سیستمی برای نگهداری اطلاعات کاربر از قبیل مخاطب و … است. رام براساس کرنل لینوکسی طراحی شده که به آن برای افزایش کارآیی و راحتی استفاده قابلیت هایی اضافه شده است.

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

به صورت کلی رام اندروید از بخش های زیر تشکیل شده است:

  • Kernal
  • Bootloader
  • Recovery
  • Radio
  • Framework
  • Apps
  • Core
  • Android-Runtime

توضیح اجزای رام اندرویدی:

کرنل:

کرنل اساسی ترین جزء سیستم عامل اندروید است و وظیفه برقراری ارتباط بین برنامه ها و سخت افزار دستگاه را بر عهده دارد. دستگاه هایی با سیستم عامل اندروید از کرنل لینوکسی استفاده می کنند البته این کرنل دقیقاً مشابه کرنل سایر دستگاه های لینوکسی نیست. کدهای تخصصی زیادی برای اندروید ارائه شده است اما با این حال تنها کرنل اندرویدی گوگل توانسته بر سایر روش ها برتری داشته باشد. OEM (تولید کننده های تجهیزات تلفن همراه) به منظور توسعه درایورهای سخت افزار قطعات نیاز دارند که از کرنل هایی با ورژن های مختلف استفاده می کنند. به همین دلیل توسعه دهندگان مستقل رام و هکرها ورژن های جدید را برای دستگاه های قدیمی ایجاد می کنند تا همه اجزا طوری که می خواهند اجرا شوند، بدین صورت که کرنل های نوشته شده برای اندروید ها پایین تر (مثلا 2.3.7) لزوما با ورژن های بالاتر سازگاری نخواهند داشت. توجه به این نکته بسیار ضروری است چون وظیفه اصلی کرنل همان طوری که در بالا اشاره شد هماهنگی برنامه با سخت افزار است.

بوتلودر:

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

ریکاوری:

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

رادیو:

پایین ترین لایه نرم افزاری دستگاه قسمت رادیو است. این قسمت جزء اولین قسمت هایی است که اجرا می شود (حتی قبل تر از بوتلودر). وظیفه این قسمت کنترل قسمت های ارتباطی مانند GSM، آنتن و GPS را بر عهده دارد.

گام دوم؛ آماده سازی محیط برنامه نویسی

قبل از شروع نصب بایستی خاطر نشان کرد که فضای لینوکس و علی الخصوص Ubuntu دنیای بزرگی است و کدنویسی در آن مستلزم مهارت بالایی است، در این آموزش فقط به عنوان توسعه دهنده رام اندرویدی در لینوکی فعالیت خواهیم کرد، با توجه به این نکته در صورت تمایل و درخواست کاربران گرامی به صورت کامل تر و جامع تر آموزش هایی ارائه خواهیم کرد.

به خاطر اینکه سیستم عامل اندروید بر پایه لینوکس کدنویسی شده است به همین منظور برای اجرا و ویرایش رام های اندروید بایستی در محیط لینوکس قرار بگیریم. برای اجرای لینوکس در محیط ویندوز نیاز به شبیه سازی و آماده سازی برای بوت شدن لینوکس است. از همین رو نرم افزارهای زیر بایستی در سیستم نصب شوند:

  • نرم افزارهای مورد نیاز:

– سیستم عامل لینوکسی ( استفاده از Ubuntu 13.10 به دلیل رابط کاربری آسان و مناسب توصیه می شود)

– پک نرم افزاری جاوا (Java Development Kit)

 

برای داشتن سیستم Ubuntu و نصب آن بر روی سیستم سه راه می توان در پیش گرفت:

– نصب Ubuntu به عنوان سیستم عامل اصلی

– نصب و اجرا Ubuntu در داخل ویندوز (با استفاده از نرم افزارهای VM یا VB)

– نصب Ubuntu به صورت مجزا در کنار ویندوز به صورت Dual Boot (نصب بر روی پارتیشن مجزا)

 

چون در این آموزش سعی می شود از پایه تا سطوح بالای ویرایش رام آموزش داده شود، از روش دوم به دلیل راحتی و سهولت استفاده خواهد شد؛ برای نصب Ubuntu در داخل ویندوز می توان از دو نرم افزار محبوب VirtualBox (رایگان) و Workstation/Player (نسخه پولی) استفاده کرد. بالتبع در ادامه آموزش از VB استفاده خواهد شد 😀 .

نصب Ubuntu

قبل از شروع بحث نصب Ubuntu باید خاطر نشان کرد که فضای لینوکس دنیای بزرگی است و در این آموزش فقط به عنوان توسعه دهنده رام به آن پرداخت خواهد شد. در صورت تمایل و درخواست کاربران گرامی مطالب مربوط به صورت جداگانه و کامل تر در آموزش های دیگر توضیح داده می شود.

  • برنامه VirtualBox را اجرا کنید.
  • بر روی New  کلیک کنید.

1-gsmdevelopers-com-ubunto

  •  سپس در پنجره باز شده، نامی برای سیستم عامل مجازی خود وارد کنید. با این نام هر بار در اجرای Virtual Box سیستم عامل فراخوانی خواهد شد. در این آموزش سیستم عامل را با نام Ubuntu 13.10 نامگذاری شده است.

2-gsmdevelopers-com-ubunto

3-gsmdevelopers-com-ubunto

  • در این مرحله بایستی مقداری از RAM برای سیستم عامل مهمان اختصاص بدهیم. این قسمت از عملیات بسیار حساس است ولی مراحل کار بسیار آسان است. با مثالی مراحل کار آموزش داده می شود:

در نظر بگیرید سیستم عاملی با ویندوز 7 64بیتی در اختیار دارید که 10 گیگ RAM بر روی آن نصب است. از این میزان بایستی در حدود 6 گیگ به Virtual Box اختصاص دهیم تا سیستم عامل مهمان را اجرا کند.

4-gsmdevelopers-com-ubunto

  • در گام بعدی بایستی برای سیستم عامل مهمان یک درایو مجازی ایجاد شود، در پنجره بعدی گزینه  Virtual Hard Drive را انتخاب کرده و دکمه Creat را انتخاب کنید. برای درایو مجازی می توان فرمت های مختلفی وجود دارد بهترین فرمت برای اجرای برنامه ها و نرم افزارهای متنوع فرمت VMDK است.

5-gsmdevelopers-com-ubunto

6-gsmdevelopers-com-ubunto

  • در ادامه فضای دینامیکی برای سیستم عامل مهمان بایستی در نظر بگیریم؛ در پنجره بعدی گزینه Dynamically Allocated را انتخاب کرده و همچنین توجه شود که گزینه Split into files of less than 2 GB تیک زده نشود.

7-gsmdevelopers-com-ubunto

  • در پنجره بعدی میزان فضای لازم برای نصب و اجرای سیستم عامل مهمان را تعیین خواهید کرد. بایستی توجه نمود که این میزان فضا بر روی هارد دیسک وجود داشته باشد. به عنوان مثال اگر برای سیستم عامل مهمان 200GB در نظر بگیرید بایستی حداقل 220GB فضای خالی بر روی سیستم داشته باشید. کمترین فضایی را که برای بهینه اجرا شدن و ساخت رام های اندرویدی برابر 100GB است، در حالیکه توصیه می شود این مقدار فضا را برابر 150GB در نظر بگیرید. دلیل انتخاب این مقدار فضا در ادامه روشن خواهد شد.

8-gsmdevelopers-com-ubunto

9-gsmdevelopers-com-ubunto

  • در پنجره بعدی بر روی Setting کلیک کرده و بر روی تب Processor بروید. در این قسمت مقدار Processor (s) را تا آخر قسمت سبز رنگ بکشید. با این عمل تعداد هسته های درگیر CPU را مشخص می کنید.

10-gsmdevelopers-com-ubunto

  • در ادامه به تب Acceleration رفته و هر دو گزینه را تیک بزنید.

11-gsmdevelopers-com-ubunto

  • حال به قسمت Storage  رفته و بر روی Controller: IDE کلیک کنید؛ در مقابل آن بر روی آیکون CD که با علامت (+) مشخص شده است کلیک کنید.

12-gsmdevelopers-com-ubunto

  • فایل ISO سیستم عامل Ubuntu را آدرس دهی کرده و انتخاب کنید:

13-gsmdevelopers-com-ubunto
14-gsmdevelopers-com-ubunto

  • حال در قسمت Setting بخش System را انتخاب کنید و در قسمت Boot Order الویت بوت شدن سیستم عامل را بر روی CD/DVD انتخاب کنید. (این عمل را نیز می توانستید به صورت مستقیم در هنگام بوت شدن سیستم و فشردن کلید F12 و انتخاب CD/DVD انجام دهید.)

15-gsmdevelopers-com-ubunto

  • حال بر روی دکمه Start کلیک کنید تا سیستم عامل مهمان بر روی VirtualBox اجرا شود.
  • در زمان بارگذاری Ubuntu برای اولین بار با پنجره زیر مواجه خواهید شد. با دو گزینه Try Ubuntu و Instal Ubuntu که به ترتیب به معنی نصب آزمایشی و نصب کامل Ubuntu است. برای ادامه نصب بر روی Instal Ubuntu کلیک کنید.

16-gsmdevelopers-com-ubunto

  • در پنجره بعدی شرایط لازم برای ادامه نصب سیستم عامل نشان داده می شود، در حالت کلی برای سبکی سیستم عامل توصیه می شود که دو گزینه زیرین را انتخاب نکرده و ادامه دهید.

17-gsmdevelopers-com-ubunto

  • در گام بعدی نحوه نصب Ubuntu تعیین خواهد شد. چون در درون Virtual Box سیستم عامل را نصب می کنیم، گزینه ها را در حالت پیش فرض خود ادامه دهید.

18-gsmdevelopers-com-ubunto

  • در پنجره های بعدی مشابه با نصب ویندوز منطقه زمانی، زبان نوشتاری و بقیه جزئیات را وارد کنید.

19-gsmdevelopers-com-ubunto

20-gsmdevelopers-com-ubunto

  • در پنجره بعدی مشخصات خود را وارد کنید.

21-gsmdevelopers-com-ubunto

  • در پنجره بعدی از شما خواسته می شود با ایمیلتان وارد سیستم عامل شوید، پیشمهاد می شود این مرحله را با زدن Skip رد شوید.

22-gsmdevelopers-com-ubunto

  • مراحل نصب تقریبا تمام شده است. حال منتظر پیام به پایان رسیدن نصب شوید.

23-gsmdevelopers-com-ubunto

  • 😎 😎  😎 تبریک به راحتی توانستید سیستم عامل Ubuntu را بر روی سیستم خود نصب کنید.

 

از صبوری و همراهی دوستان عزیز تشکر می شود، برای جلوگیری از طولانی و خسته کننده شدن مطلب، کل بحث در چند بخش طراحی شده است تا هم ارجاع به مطالب آسانتر شود و هم خواننده گرامی بتواند در ذهن خود دسته بندی مناسبی داشته باشد.

[button link=”http://www.gsm-developers.com/%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%b1%d8%a7%d9%85-%d9%87%d8%a7%db%8c-%d8%a2%d9%86%d8%af%d8%b1%d9%88%db%8c%d8%af-%d8%a7%d8%b2-%d9%be%d8%a7%db%8c%d9%87-%d8%aa/” size=”medium”]قسمت دوم آموزش[/button]

برای بحث و تبادل نظر میتوانید به انجمن تخصصی جی اس ام مراجعه کنید

[button link=”http://forum.gsm-developers.com/thread12626.html#post44583″ size=”medium”]لینک آموزش در انجمن[/button]

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

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

استاندارد

kernal-gsmdevelopers-com

گام اول؛ نرم افزارهای مورد نیاز

آماده سازی محیط

  • سیستم عامل Ubuntu 12.04 را نصب کنید.
  • بسته های برنامه ای مورد نیاز:

[php]

pre class="lang:default decode:true">git-core, gnupg, flex, bison, gpref, libsdl-dev, libesd0-dev, libwxgtk2.6-dev, build-essential, zip, curl, libncurses5-dev, zlib1g-dev, ia32-libs, lib32z1-dev, lib32ncurses5-dev, gcc-multilib, g++-multilib و ADB

[/php]

  • حال ترمینالی باز کنید و دستورات زیر را به ترتیب وارد کنید:

[php]
//Open a terminal
//"Type "
mkdir android
cd android
mkdir kernal
[/php]

توضیحات مراحل بالا:

  • استفاده از پک سیستم عامل Ubuntu (Arch=epicness) به دلیل راحتی استفاده و نصب برنامه و پشتیبانی گسترده توصیه می شود.
  • نصب پک برنامه های یاد شده به منظور انجام دستورات مورد نیاز است.
  • با دستورات مرحله سوم مسیری فهرست وار برای دسته بندی و حفط منظم داده ها ایجاد می شود. دستور mkdir مسیر ایجاد کرده و با دستور cd وارد مسیر می شویم. البته با دستور “mkdir -p android/kernal” می توان دو دستور قبلی را ادغام کرد.

گام دوم؛ Source

یک Terminal prompt باز کنید و دستور زیر را وارد کنید.

[php]

<pre class="lang:default decode:true ">//"Type "
cd android/kernel
git clone git://github.com/DooMLoRD/android_prebuilt_toolchains.git toolchains</pre>

[/php]

در این مرحله باید سورس هایی برای کرنال خودتان ایجاد کنید،  به این منظور به سایت های دستگاه خود مراجعه کنید. بعد از دانلود آن را استخراج کرده و در مسیر کرنال خود ذخیره کنید.

HTC

SAMSUNG

SONY

LG

گام سوم؛ کرنال خود را ویرایش کنید

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

در این گام میاموزید که تغییرات مورد نظراتان را در کرنال دستگاه خود اعمال کنید.

  • حالت اول: در نظر بگیرید فایل Patch دارید و می خواهید آن را در کرنال خود اعمال کنید.

– فایلی که می خواهید در کرنال خود اعمال کنید را دانلود کنید.

– فایل مورد نظر را با نام KernalPatch در مسیر کرنال ذخیره کنید.

– ترمینال باز کنید.

– به مسیر ریشه کرنالی که می خواهید پچ کنید بروید.

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

[php]

patch -p1 < ../kernelPatch

[/php]

فایل زیر را اجرا کنید:

 

“drivers/cpufreq/Kconfig”

 

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

config CPU_FREQ_DEFAULT_GOV_SMARTASS

bool “smartass”

select CPU_FREQ_GOV_SMARTASS

select CPU_FREQ_GOV_PERFORMANCE

help

Use the CPUFreq governor ‘smartass’ as default.

config CPU_FREQ_GOV_SMARTASS

tristate “‘smartass’ cpufreq governor”

depends on CPU_FREQ

help

smartass’ – a “smart” optimized governor!

If in doubt, say N.

 

فایل زیر را باز کرده و دستورات گفته شده را وارد کنید:

[php]

"drivers/cpufreq/Makefile"

&nbsp;

obj-$(CONFIG_CPU_FREQ_GOV_SMARTASS)     += cpufreq_smartass.o

[/php]

فایلی با مشخصات زیر ایجاد کنید:

[php]

"drivers/cpufreq/cpufreq_smartass.c"

[/php]

حال تغییرات گاورنر خود را اعمال کرده اید.

هر گونه کپی برداری از این مطلب شرعاً حرام است و قطعا مورد رضایت نویسنده نمیباشد

Android Kitchen مبدل رام های استوک به فایل های قابل فلش

استاندارد

android-kitchen-gsmdevelopers-com

قابلیت ها

  • با تمام نسخه های لینوکس سازگار است.
  • پشتیبانی از تمامی پردازنده های ARM/X86: برای تمامی فایل های باینری (Root, Busybox)
  • دسترسی دینامیک: لیستی از تمامی دسترسی ها و توان فیلتر کردن برای بیلد و دستگاه های کاربر
  • Symlink دینامیک: لیستی عمومی از تمامی symlink های در دسترس، با توان اعمال فیلتر برای بیلد و دستگاه مورد بررسی. علاوه بر آن اگر از فایل image استوک استفاده میکنید، توانایی ارائه symlink از خود فایل image با قابلیت کپی کردن یک به یک را داراست.
  • سازگار با FS در حین فلش کردن: رام های ایجاد شده توسط این برنامه با تمامی پارتیشن های موجود سازگار است. به این معنی که در عین فلش پارتیشن سیستمی را فرمت نخواهد شد. این ویژگی برای پشتیبانی از dual-FS به عنوان مثال EXT4 و F2FS بر روی SGS3 از اهمیت بالایی برخوردار است.
  • توانایی پک دوباره کرنال: با روش mkbootimg پک کردن دوباره فایل کرنال ساده نیست. در حالیکه با این روش میتوان با یک کلیک فایل کرنال را استخراج کرده و دوباره آن را پک کرد.
  • Deodexing: با فرآیند Multi-threaded و تشخیص اتوماتیک API می توان کل رام را یک جا Deodex کرد.

آموزش ویدیوئی

فیلم آموزش نصب برنامه و تنظیمات لینوکس بر روی ویندوز در لینک زیر قرار داده شده است:

با مشاهده فیلم بالا بصورت گام به گام؛ نکات زیر را خواهید آموخت:

  • آموزش نحوه نصب Debian بر Virtual Box Machine
  • نحوه اتصال ویندوز به لینوکس از طریق پوشه VBox
  • نحوه نصب برنامه
  • آموزش تولید اولین رام کاستوم خودتان با built-in Root و Busybox

اطلاعات بیشتر درباره لینوکس

  • از تمام روش های شبیه سازی که می خواهید برای اجرای برنامه می توانید بهره بگیرید. استفاده از Virtual Box به علت سادگی استفاده و آسانی شبیه سازی توصیه می شود.
  • از تمام پک های مبتنی بر لینوکس می توان استفاده کرد. استفاده از Debian و Ubuntu در مقایسه با دیگر محصولات مشابه به علت آسانی نصب و استفاده و پشتیبانی بهتر توصیه می شود.

با این وجود اگر استفاده از محیط لینوکس ترجیح داده شود، می توانید از دیگر سیستم عامل ها استفاده کنید.

کیچن اندروید چیست

  • Android kitchen چیست؟
    ابزاری مبتنی بر لینوکس است، که به منظور تبدیل رام های استوک به img. و tar.md5 یا فرمت های مشابه مانند .zip قابل فلش از طریق ریکاوری CWM طراحی شده است.
  • با استفاده از این ابزار می توان رام های کاستوم براساس رام استوک ساخت؟
    دقیقا.
  • این برنامه فقط تحت لینوکس کار می کند؟ چرا برای ویندوز طراحی نشده است؟
    اندروید براساس کرنال لینوکسی طراحی شده است و حتی می توان آن را Unix fork نیز نامید. کار با برنامه مبتنی ب لینوکس در محیط ویندوز دشوار است، در حقیقت ویندوز توانایی ارائه Bourne-again shell (Bash) را که در حقیقت هسته این ابزار است را ندارد. کار با ویندوز به علت عدم توانایی در اجرای فایل هایی مانند img. به راحتی لینوکس نیست در حالیکه فایل های سیستمی img. را می توان به سادگی با یک خط دستور در لینوکس اجرا کرد در صورتی که برای اجرای آن در ویندوز نیاز است که فایل حجیم image را به zip. تبدیل کرد و سپس آن را به صورت یک فایل مجزا استخراج کرد. همچنین ویندوز توانایی پشتیبانی از لینک های Symbolik را ندارد، بواسطه این فرامین می توان فایل های image را به صورت 1:1 به zip تبدیل کرد.

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