آموزش ساخت ریکاوری CWMاز منبع(بخش دوم)

استاندارد

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

https-_drive-google

برای شروع نیاز به ساختن فایل vendorsetup.sh داریم در محتوای زیر

add_lunch_combo cm_P780-eng

یا برای راحتی کار میتوانید از یک گوشی دیگر فایل راکپی کنید و فقط نام گوشی خود را وارد کنید

در کل فایل شبیه به محتوای زیر می باشد

#
# Copyright (C) 2013 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# This file is executed by build/envsetup.sh, and can use anything
# defined in envsetup.sh.
#
# In particular, you can add lunch options with the add_lunch_combo
# function: add_lunch_combo generic-eng

add_lunch_combo cm_P780-eng

 

در مرحله بعد فایل AndroidBoard.mk را به Android.mk تغییر دهید و تغییرات زیر را اعمال کنید

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET)

# برای دستگاهای منبع باز نیستن
-include vendor/lenovo/P780/AndroidBoardVendor.mk

باید دارایی کدهای زیر باشد

#
# Copyright (C) 2013 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# WARNING: Everything listed here will be built on ALL platforms,
# including x86, the emulator, and the SDK.  Modules must be uniquely
# named (liblights.tuna), and must build everywhere, or limit themselves
# to only building on ARM if they include assembly. Individual makefiles
# are responsible for having their own logic, for fine-grained control.

LOCAL_PATH := $(call my-dir)

ifeq ($(TARGET_DEVICE),P780)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif

فایل AndroidProducts.mk نیازی به تغییر ندارد،فایل BoardConfig.mk را هم برای آخر کارمان می گذاریم

یک پوشه به نام prebuilt درست کنید و فایل kernel را درون آن بگذارید

پوشه ای به نام recovery ایجاد و فایل recovery.fstab را درونش بگذارید

فایل device_P780.mk را باز کنید برای ادیت از برنامه خوبی استفاده کنید ما از  Geany استفاده می کنیم برای فراخوانی کرنل چون مکان آن را تغییر دادیم مسیر را از

LOCAL_PATH := device/lenovo/P780

به مسیر زیر تغییر می دهیم

LOCAL_PATH := device/lenovo/P780/prebuilt

همچنین برای قرار دادن قوانینی در default propوramdisk می توانید کدهای زیر را اضافه کنید

ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0 \
ro.allow.mock.location=1 \
persist.mtk.aee.aed=on \
ro.debuggable=1 \
persist.service.acm.enable=0 \
persist.sys.usb.config=mass_storage \
ro.bootloader.mode=download \
ro.mount.fs=EXT4 \
ro.persist.partition.support=no

و اگر فایلهای بلااستفاده goldfish را در ramdisk نمی خواهید کد زیر را هم اضافه کنید

PRODUCT_COPY_FILES_OVERRIDES += \
 root/fstab.goldfish \
root/init.goldfish.rc \
 recovery/root/fstab.goldfish

این را هم بدانید در cm11 هر فایل با init شروع شود از روت ramdisk پاک می شوند همان طور که در build/core/Makefile می بینید

@echo -e ${CL_CYN}"Modifying ramdisk contents..."${CL_RST}
$(hide) rm -f $(TARGET_RECOVERY_ROOT_OUT)/init*.rc

پس برای قرار دادن فایلهای init در ramdisk شما باید یک پوشه بنام recovery درست کنید که ما قبلا درست کردیم و در آنجا یک پوشه که مطابق recovery ramdisk باشد درست کنید مانند etc, res, sbin… و در آخر یک پوشه root و فایلها را در آنجا قرار دهیم.

خوب زمان آن است تا فایلهای را به پوشه ریکاوری انتقال دهیم، پس فایلهای init.rc و fstab  نسبت به چیپ مانند نمونه برای کوالکام init.qualcomm.rc و fstab.qualcomm و اگر مدیاتک باشد init.mt6589.rc و fstab.mt6589 و یا اسم هر چیپ که باشد. فایل fstab در مسیر recovery/root قرار می گیرد و فایلهای init در ریکاوری باقی می مانند

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

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