آموزش ویرایش و پورت رامهای مدیاتک (بخش ششم:توضیحات نهایی)

استاندارد

با بخش آخر آموزش و توضیحات نهایی در خدمتتان هستیم

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

زیبا سازی و تم رام

یکی از بخشهای جذاب رام رابط کاربری و ظاهر آن می باشد

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

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

یا خیلی ساده نیز می شود در مسیر drawable-hdpi عکسها را ویرایش و تغییر داد

عمدترین تغییرات را نیز در فایلهای launcher.apk و systemUI.apk می توان داد

اضافه کردن کاستوم کرنل

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

اجزایی کاستوم کرنل در فایل زیپ را استخراج کنید

به مسیر system/lib/modules بروید و تمام فایلهای کرنل کاستوم را به رام پورت شده انتقال بدهید

اکنون فایل boot.img خودتان و کاستوم کرنل را استخراج کنید

و فایل zImage را از کرنل کاستوم به کرنل خودتان انتقال دهید

در آخر فایل بوت را ریپک کنید

در آخر نیز می توانید برای زیبایی نصب از طریق آموزش زیر آروما اضافه کنید

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

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

آموزش ویرایش و پورت رامهای مدیاتک (بخش چهارم:رفع باگ)

استاندارد

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

کار نکردن FM

فایلهای زیر را از استوک به پورت کپی کنید

\system\lib\libaudio.a2dp.default.so
\system\lib\libaudio.primary.default.so
\system\lib\libaudiocompensationfilter.so
\system\lib\libaudiocustparam.so
\system\lib\libaudioeffect_jni.so
\system\lib\libaudioflinger.so
\system\lib\libaudiosetting.so
\system\lib\libfmar1000.so
\system\lib\libfmcust.so
\system\lib\libfmjni.so
\system\lib\libfmmt6616.so
\system\lib\libfmmt6620.so
\system\lib\libfmmt6626.so
\system\lib\libfmmt6628.so

یا فایلهای زیر را کپی کنید

system/etc/firmware/mt6620_patch_e3_hdr.bin
system/etc/firmware/mt6620_patch_e6_hdr.bin
system/etc/firmware/WMT.CFG

 

system/lib/modules/mtk_fm_drv.ko
system/lib/libfmcust.so

رفع باگ وای فای و بلوتوث

فایلهای زیر را کپی و اگر کار نکردن پچ کنید

system/lib/modules/mtk_wmt_wifi.ko
system/lib/libbluetooth_mtk.so
system/lib/libbluetoothem_mtk.so
system/etc/firmware

رفع باگ GPS

فایل زیر را کپی کنید

system/xbin/libmnlp

و اگر از MT6628 به MT6620 دارید پورت میکنید

فایلهای در مسیر system/vendor/operator جی پی اس را بلوک می کنند آنها را پاک کنید

فایل  build.prop را نیز ویرایش کنید

fmradio.driver.chip=1

اگر MT6628 هستید 1 را به 3 تغییر دهید

mediatek.wlan.chip=MT6620

اگر MT6628 هستید عدد آخر را به 8 تغییر دهید

mediatek.wlan.module.postfix=_mt6620

اگر MT6628 هستید عدد آخر را به 8 تغییر دهید

رفع باگ دوربین

فایل boot.img را آنپک کنید

به مسیر boot.img-ramdisk/init.project.rc بروید و فایل را باز کنید

همچنین فایل bootextracted/ramdisk/init.project.rc را از استوک کپی کنید

دنبال اجازه دوربین باشید به اسم camera permissions

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

همین کار را با init.rc نیز بکنید

یا فایلهای زیر را کپی کنید

system\lib\hw\camera.default.so 
\system\lib\libcamera_client.so
\system\lib\libcameracustom.so
\system\lib\libcameraprofile.so
\system\lib\libcameraservice.so

یا از مسیر system/lib فایلهای زیر را از استوک به پورت کپی کنید

- libmhal.so
- libmhalcontent.so
- libmhaldrv.so
- libmhalmdp.so
- libmhalpipe.so
- libmhalscenario.so
- libmhalutility.so

یا فایلهای زیر را کپی کنید

lib3a.so
liba3m.so
libacdk.so
libaudioflinger.so
libc.so
libcam.camadapter.so
libcam.campipe.so
libcam.camshot.so
libcam.client.so
libcam.paramsmgr.so
libcam.utils.so
libcam_camera_exif.so
libcamalgo.so
libcamdrv.so
libcamera_client.so
libcamera_jni_eglfence.so
libcamera_metadata.so
libcameracustom.so
libcameraservice.so
libgn_camera_feature.so
libexif
libfeatureio.so
libfrsdk.so
libft.so
libgcomm_jni.so
libgoggles_clientvision.so
libgui.so
libimageio.so
libja3m.so
libjni_mosaic.so

یا فایل camera.apk را از sysyem/app کپی کنید

همچنین در system/lib دنبال camera،camrecorder یا cam بگردید و جایگزین کنید

رفع باک مونت نشدن حافظه و USB در کامپیوتر

فایل sytem/etc/vold.fstab را از استوک به پورت کپی کنید برای رفع مونت نشدن حافظه

فایل init.usb.rc را از فایل بوت استوک به فایل بوت پورت کپی کنید برای رفع اشکال USB و ریپک کنید

رفع مشکل صدا

از مسیر sytem/lib تمام فایلهای صدا را با جستجوی audio به پورت کپی کنید

رفع اشکال دیتا و زمان

فایل build prop را باز کنید و چک کنید زمان و منطقه زمانی درست باشد

یا با gravity box فیکس شدن زمان را بزنید

رفع حداقل روشنایی

در فایل build prop کد زیر را درست کنید مانند ro.init.screen_brightness=110 تا رفع شود

رفع اشکال ظاهر بوت شدن لوگو

گاهی ممکن موقع بوت بین لوگو و اسم خط بیفته یا کمی منظم نباشند

برای رفع اشکال از رام استوک فایل system/media/images/boot_logo را به پورت انتقال دهید

 

در آخر اگر برنامه ها خطا می دادند برنامه ها را به روز کنید

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

آموزش ساخت رام با سرویسهای ابری گوگل

استاندارد

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

این آموزش به چه دردی می خورد

  1. کسانی که اینترنت پر سرعتی ندارند(شامل همه ما ایرانیها میشه خوشبختانه)

  2. کسانی که دارایی حجم اینترنت محدود هستن(اینم برای ما عادی هستش)

  3. مرحله طولانی و سنگین repo sync که ممکن چندین ساعت و حتی روز طول بکشه را با استفاده از این آموزش در نیم ساعت تمام کنید

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

  1. اکانت گوگل(جیمیل)

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

  3. یک کامپیوتر با یک اینترنت( فقط برای وصل شده به سروسیهای گوگل حجمی از شما کم نمیکند)

  4. صبر و حوصله و دقت

مرحله اول (فعالسازی مجانی سرویسهای ابری گوگل برای امتحان)

 

1-به سایت https://cloud.google.com/ مراجعه فرمایید برای فعالسازی امتحان رایگان

c1

2-با ایمیل و رمز خود وارد شوید.

c2

3-بر روی ثبت نام برای امتحان مجانی کلیک کنید

c3

اطلاعات را پر کنید و بر روی Accept and start free trial کلیک کنید

c4

 

4-در اینجا شما امتحان مجانی را کامل کردید و الان وقت نصب محیط کار است

c5

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

1- بر روی خطوط سمت چپ مانند تصویر کلیک کنید تا محصولات و خدمات نمایش داده شوند

c6

 

2- اکنون بر روی Compute Engine کلیک کنید

c7

 

3- مانند تصویر زیر بر روی Create Instance کلیک کنید

c8

 

4- اکنون در صفحه ای Create Instance page اطلاعات نام و غیره را مانند تصویر زیر پر کنید(اگر می خواهید آنها را تغییر بدهید در تب Machine Type تغییرات خود را بدهید در اینجا 4 هسته با 15 گیگ رم انتخاب کردیم)

c9

 

5- در قسمت Boot disk بر روی Change بزنید

http-_i-imgur

 

6- در اینجا سیستم عامل مورد نظر خود را انتخاب کنید

c11

 

مقدار حافظه خود را انتخاب کنید اینجا من 500 را انتخاب کردم خیلی راحت میتونه دو سه تا رام رو با هم ساین کنه( با این مقدار راحت میتونیدrepo sync که یک هفته طول میکشه رو در 30 دقیقه تمام کنید)

7- اکنون برگردید به Create Instance page و در قسمت Firewall مانند تصویر زیر دو تیک را بزنید و بر روی create کلیک کنید تا ماشین مجازیمون تکمیل بشه

c12

 

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

c13

9- بر روی سه نقطه مانند تصویر بالا کلیک کنید و Open in browser window را بزنید

 

10- با این کار اتصال SSH ماشین مجازی که درست کردید باز می شود

c14

 

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

sudo –s

c15

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

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

آموزش پورت کردن رام با چند کلیک

استاندارد

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

romporter1-3-1gsm-developers

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

برنامه نیاز به نصب NOTEPAD++ دارد.

برنامه را دانلود و استخراج کنید.همان طور که در تصویر زیر مشاهده می کنید دو پوشه داریم به اسمهای base-rom و  -port-rom

capture

بیس رام:رامی هست که برای گوشی شما توسعه یافته.

پورت رام:رامی که می خواهید برای گوشی خود پورت کنید.

یک رام سیانوژن یا AOSP را بعنوان بیس رام خود انتخاب کنید.و در پوشه بیس رام قرار بدهید.

رامی را که می خواهید برای گوشی خود پورت کنید را نیز درون پوشه پورت رام قرار بدهید.

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

یا بر روی Port.bat کلیک کنید دو بار اینتر بزنید مانند تصویر زیر گزینه ها را مشاهده کنید.

capture1

خوب کاملا واضح است رامی که می خواهید پورت کنید را انتخاب کنید وتمام

برنامه در طول پورت کردن هر وقت که تقاضایی جایگزینی و پاک کردن  داد فقط جواب بله بدهید.

گاهی در سیستمهای 32 بیتی ممکن است با خطایی استخراج مواجه بشید برای حل مشکل پوشه کامل برنامه پورت رام را در روت درایو خود بگذارید.

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

بعد از پایان کار یک رام زیپ شده دارید برای فلش اگر هم بصورت زیپ آماده نبود خوتان می توانید فایلهای META-INF, system, boot.img, data را باهم با برنامه winrar به زیپ تبدیل کنید.(در بعضی رامها فایل بوت و پوشه دیتا ممکن است وجود نداشته باشد)

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

راهنمای توسعه رام های اندروید از پایه تا پیشرفته(بخش پنجم و پایانی:نکته ها و توضیحات لازم)

استاندارد

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

سوالات متداول

1- می توانیم از یک ورژن دیگر لینوکس استفاده بکنیم؟ بله شما آزاد هستید هر ورژن از سیستم عامل لینوکس را استفاده کنید ولی ممکن هست در بعضی از سیستمها دستورات بدرستی جواب ندهند.

2-باز هم این آموزش بروزرسانی می شود؟ در صورت نیاز ممکن هست آموزشها تغییر یا اضافه بشوند در آینده ولی آموزشها کامل بوده تا اینجا و فعلا نیازی به تغییرات نیست.

3-من در حین کار به مشکلی برخورد کردم و آن را حل کردم می توانم بزارم اینجا تا به آموزشها اضافه شود؟ بله بسیار هم خوب میتوانید همراه راه حل برای ما بزارید تا در آموزشها قرار داده شود تا تمام دوستان استفاده کنند.

4-می توان از سیستم عامل 32 بیتی لیتوکس استفاده کرد؟ خیر شما فقط باید از نسخه 64 بیتی برای توسعه رام استفاده کنید.

5- میتوان از سورس دستگاه دیگری که کاملا شبیه به دستگاه ما هست استفاده کرد؟ خیر نمیشود شما با فقط از سورس خود دستگاهتان استفاده کنید و اگر نبود خودتان آن را آماده کنید یا منتظر بمانید یک توسعه دهنده آن را آماده کند.

6-آیا سورس دستگاها مختص و خاص همان دستگاه است فقط؟ بله هر سورس مختص فقط همان دستگاه هست و شما اگر بخواهید تغییراتی را در آن بوجود بیارید نیاز به تغییرات زیاد در ورژن اندروید و امنیت دارید.

7- در موقع کامپایل به مشکل جاوا برخورد کرده ام؟ برای رفع این مشکل باید ار ورژن مخصوص جاوا استفاده کنید برای اندروید 4 جاوا 1.6 و اندروید 5 جاوا 1.7

برخی از اشتباهات و راه حل آنها

1- gr_text

در خط 36 عبارت minui.h را پیدا کنید و طبق فایل recovery/graphics.c که درون device tree می باشد آنها را یکی کنید.

2-hardware ril

بخاطر زمانی اتفاق می افتد که در hardware/samsung چند فایل کم باشد.برای حل این مشکل کد زیر را در ترمینال وارد کنید.

cd hardware && git clone https://github.com/SlimRoms/hardware_samsung.git -b kk4.4 && mv hardware_samsung samsung

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

3-hwc_blit

در واقع ارزش مقدار HWC_BLIT عدد 4 می باشد برای دادن این مقدار به مسیر /hardware/hwcomposer_defs.h در device tree بروید شما می توانید مقداردهی اولیه فایل HWC_BLIT را 4 بگذارید.

4-ورژن جاوا

از اندروید 2 تا 4 نیاز به جاوا ورژن 1.6 دارید

ار اندروید 5 نیاز به جاوا 1.7 دارید

 

برای نصب جاوا 1.6 فایل بین را از این لینک دانلود کنید

برای پاک کردن ورژن نصب شده از کد زیر استفاده کنید.

sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*

برای نصب

sudo mkdir -p /opt/java/64/
sudo cp jdk-6u45-linux-x64.bin /opt/java/64
sudo su -
cd /opt/java/64
chmod +x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
exit

قرار دادن مسیر جاوا در .bashrc

gksudo gedit ~/.bashrc

این خط را به .bashrc اضافه کنید

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

نصب jre

sudo apt-get install openjdk-6-jre-headless

خطاهایی که ممکن است موقع ساخت رام صورت بگیرند

خطایی اول: build/envsetup.sh خط 1365 schedtool یافت نشد.

این کد را وارد sudo apt-get install schedtool و از اول شروع به ساخت بکنید.

خطایی دوم: /bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc: cannot execute binary file

/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc: cannot execute binary file

اگر با این مورد از خطاها برخورد کردید احتمالا سیستم شما 32 بیت هست برای اطمینان کد این کد را تایپ کنید uname -m اگر i686 دید سیستم شما 32 بیت می باشد اگر x86_64 سیستم 64 بیت می باشد. اگر 32 بیت بود از اول باید شروع کنید.

خطایی سوم:اگر خطایی 127 bison را مشاهده کردید دستورات زیر را در ترمینال وارد کنید.

sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-6-jdk openjdk-6-jre phablet-tools pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev

نکات

1- ساین یک رام جدید در سورس

گاهی شاید بخواهید یک رام دیگر هم بسازید و شما در کنار سورس cm هم می خواهیم سورس AOGP را هم داشته باشید در نظر میگیریم که شما سورس سیانوژن را در ~/roms/cm11 ساین کرده باشید و الان می خواهید سورس AOGP را در مسیر ~/roms/aogp ساین کنید.کدهای زیر را وارد کنید.

mkdir  roms/aogp &&cd roms/aogp
repo init --reference=~/roms/cm11 -u git://github.com/AOGP/android.git -b cm-11.0

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

2-استفاده از CCACHE به جایی ابزار کامپایلر کش

این کامپایلر به نسبت سریعتر عمل میکند برای فعال کردن از nano editor استفاده میکنیم.

ترمینال را باز میکنیم.(cntrl + alt + t)

nano .bashrc
export USE_CCACHE=1

بعد از یکبار ریستارت سیستم تغییرات اعمال می شوند. یک فولدر هم در روت به نام out ایجاد می شود برای تغییر مکان به مکان ذخیره سازی سیستم خود از کد زیر استفاده کنید.

export OUT_DIR_COMMON_BASE= /<path_of_your_choice>/.ccache
prebuilts/misc/linux-x86/ccache/ccache -M 50G

سایز کش می تواند بین 50 تا 100G باشد.

3- ویرایش فایل local_manifest.xml

 


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

برای اضافه کردن پروژه جدید به local_manifest.xml از کد زیر استفاده کنید.

<?xml version="1.0" encoding="UTF-8"?>
<manifest>

<project path=" directory in work tree" name="name of the repository in remote" remote="name of remote defined earlier" revision="branch of the repository" />

</manifest>

برداشتن موراد غیر قابل نیاز از manifest.xml

<project path="prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6" name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6" groups="pdk,darwin,arm" />
<project path="prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6" name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6" groups="pdk,darwin,arm" />
<project path="prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6" name="platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6" groups="pdk,darwin,mips" />
<project path="prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6" name="platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6" groups="pdk,darwin,x86" />

http-_i-imgur

قبل از برداشتن به خط زیر دقت کنید

http-_i-imgur

بعد از برداشتن کدها

http-_i-imgur

ملاحظه کردید که تعداد پروژها از عدد 462 به 444 کاهش یافت.

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

دیوایسهای زیادی هستن که توسط توسعه دهنده رام ساپورت می شوند و در شاخه Default.xml قرار داده شده اند که شما نیازی به آنها ندارید.

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

android_device_companyname_codename

برای نمونه

android_device_samsung_codename

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

راهنمای توسعه رام های اندروید از پایه تا پیشرفته(بخش چهارم:آپلود سورس رام در 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 آپلود کردیم وفقط نام فایل رام خود را بنویسید.

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

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

استاندارد

part-3-android

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

[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]

ساخت رام برای دستگاهی خاص

در این آموزش بعنوان نمونه از گوشی سامسونگ گرند دو سیمکارت با شماره مدل GT-i9082 و رام CM11 استفاده شده است.( در بعضی از دستورات باید مدل دستگاه و رامتون را جایگزین دستورات آموزش سایت بکنید)

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

  1. Device Tree
  2. Vendor
  3. Kernel

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

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

cd cm11/.repo

1

در پوشه .repo اکنون باید فایلی به نام local_manifests.xml بسازید.

ساختار فایل Local_manifest.xml مانند زیر میباشد.

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project path=" directory in work tree" name="name of the repository in remote" remote="name of remote defined earlier" revision="branch of the repository" /> 
</manifest>

اکنون سه فایل مختص دیوایس خود که دانلود کردید را وارد کنید.(Device , Kernel , Vendor )

2

حواستان باشد گوشی مورد بحث آموزش ما GT-i9082 و شکل کدها نسبت به گوشی متفاوت می باشد.بعد از وارد کردن فایلهای دیوایس خود باید Local_manifest.xml شبیه به زیر باشد.

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project path="device/samsung/i9082" name="pawitp/android_device_samsung_i9082" remote="github" revision="cm-11.0" />
  <project path="vendor/samsung/i9082" name="k2wl/android_vendor_samsung_i9082" remote="github" revision="master" />
  <project path="kernel/samsung/i9082" name="pawitp/android_kernel_samsung_i9082" remote="github" revision="cm-11.0" />

3

اکنون ctrl+O و اینتر بزنید.

4

5

برای خروج Ctrl+X میزنیم.

6rom

بعد از وارد کردن منابع Device Tree,Vendor,Kernel دوباره هم دستور repo sync را وارد کنید تا فایلهای دانلود شده دوباره همگام سازی شوند.

بعد از آن به آموزش زیر مراجعه کنید برای سازگار کردن بیس گوشی خود با رام سیانوژن

 

[button link=”http://www.gsm-developers.com/android-firmware-development/” size=”medium”]آموزش سازگار کردن بیس سیانوژن[/button]

 

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

 

شروع ساخت رام

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

cd cm11

نکته: به جای cm11 نام مکان ذخیره رام خود را بنویسید.

2-اکنون دستور زیر را هم وارد کنید

. build/envsetup.sh

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

time brunch <codename> -j#

<Codename>: نام کد گوشی شما اگر نام کد گوشی خود را نمی دانید آن را در گوگل سرچ کنید(گاهی نام خود گوشی همان نام کد آن می باشد)،به عنوان نمونه گوشی قبلی خودم اکسپریا زد2 نام کدش Sirius هستش.

به جایی # تعداد هسته های CPU دستگاه خود را وارد کنید.

تذکر: در بیشتر کدها ممکن هست بخاطر قالب و نوع نوشتن علامتها مانند علامت # در اول نوشته بیاد مانند همین کد آخری علامت # بعد از J قرار میگیرد.

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

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

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

 

[button link=”http://www.gsm-developers.com/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%86%da%af%d9%88%d9%86%da%af%db%8c-%d9%be%da%86-%da%a9%d8%b1%d8%af%d9%86-%d8%b3%d9%88%d8%b1%d8%b3-%d8%b3%db%8c%d8%a7%d9%86%d9%88%da%98%d9%86/” size=”medium”] آموزش چگونگی پچ کردن سورس سیانوژن [/button]

اکنون به مسیر OUT/target/your device/ بروید و فایل زیپ شده رام خود را مشاهده کنید. همیشه یک کپی از رام خود نگه دارید بعد از این همه زحمات نیاز است.

رام خود را از ریکاوری فلش کنید تمام…

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

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

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

 

[button link=”http://www.gsm-developers.com/guide-to-developing-rom-step-by-step/”]پارت اول آموزش[/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/”]پارت دوم آموزش[/button]

 

[button link=”https://telegram.me/gsm_developers” size=”medium”]لینک کانال تلگرام[/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]

 

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