首页»版块 历史内容 历史内容 历史内容 Recovery编译,留给屁妞弄REC的各位

Recovery编译,留给屁妞弄REC的各位

[复制帖子标题和链接]

21903

   发表于 2013-8-25 14:59:12 属地未知 来自:浏览器
本文作者:秋叶随风 (ivan)
转载者,孤伤残影
本章介绍并且讲解如何编译一个支持你设备的recovery。
前面已经介绍过CyanogenMod是什么东西,以及环境搭建,android源码的大概框架,所以这里就不再介绍。
首先你要确定你的设备,是否支持刷第三方recovery,或者是否支持fastboot模式,或者是否解锁bootloader,如果你的设备上述都不支持,那么你的机器可能就不能移植第三方系统。如果这样请跳过本文。当你确定你的设备有支持上述所讲的,那么恭喜你,你的设备可以移植第三方系统。
接下来我们开始干活了,工欲善其事,必先利其器。制作支持你手持设备的recovery。这里以 中兴n760为例子介绍如何编译 支持中兴n760的recovery.
如果你已经下载了cm源码,请往下看,如果你没有下载源码,请按照前面发的教程下载源码.首先在device目录下面
建立一个zte目录,这个目录是厂商的名字,例如中兴就是zte我就建立zte,华为的话 我就建立huawei,然后在zte 目录下面 建立一个目录为 roamer这个名字如何得到呢,在手机rom里面 system/build.prop 目录下面 搜索ro.product.device 你会发现 ro.product.device = roamer所以我把设备名称定为 roamer 目录都新建好了之后,我们来看一下 目录树
system
|-------device
|-------zte
|----roamer
这个就是目录结构,我们在roamer目录下面,新建
recovery_ui.c 这个文件里面是 手机 各按键对应的按键值,这样写入之后 才能正确选择按键
AndroidBoard.mk  连接地址到 kernel
AndroidProducts.mk 让编译工具连接到device_roamer.mk
BoardConfig.mk 手持设备 机器CPUGPU 型号参数配置
device_roamer.mk build.prop信息添加,私有库 xml文件init文件拷贝按机器设备device来写 roamer是N760的设备型号
kernel官方提取,boot.img提取 提取可以使用国外高手制作的厨房软件
recovery.fstab 手机分区表
system.prop 可有可无
从官方rom提取,比如 n760boot.img 里面提取的 init.roamer.rc 文件 这个也是需要这些文件的.
首先我们写 AndroidBoard.mk文件
# 这一句的意思的 根目录就是roamer 目录
AndroidProducts.mk看文件名
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/device_roamer.mk
BoardConfig.mk设备的配置文件
USE_CAMERA_STUB := true
# inherit from the proprietary version
-include vendor/zte/roamer/BoardConfigVendor.mk
TARGET_NO_BOOTLOADER := true
TARGET_BOARD_PLATFORM := unknown
TARGET_CPU_ABI := armeabi
TARGET_BOOTLOADER_BOARD_NAME := roamer//此处一版为device
# 此处为打包 boot.img 的信息,可以通过厨房 查看到 ,我模糊的记得用厨房解压boot.img的时候的选项应该是打开厨房,选择0 高级,然后选择 20 ,再选择S就能看到下面这三个信息了
# dev:  size erasesizename
# mtd0: 00600000 00020000 "recovery"
# mtd1: 00400000 00020000 "boot"
# mtd2: 00180000 00020000 "splash"
# mtd3: 00080000 00020000 "misc"
# mtd4: 03980000 00020000 "cache"
# mtd5: 0dc00000 00020000 "system"
# mtd6: 0a280000 00020000 "userdata"
# mtd7: 00100000 00020000 "oem"
# mtd8: 00180000 00020000 "persist"
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00500000
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00600000
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x0dc00000
BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x0a280000
BOARD_FLASH_BLOCK_SIZE := 131072
# 内核路径
TARGET_PREBUILT_KERNEL := device/zte/roamer/kernel
# 一般情况下,手机没有实体返回键,建议选择这一项,有的手机触摸返回键在recovery下面不能使用的,比如小米手机。
BOARD_HAS_NO_SELECT_BUTTON := true# 编译recovery 指定 keymap 文件,看参数 名称就知道了,不懂的可以google翻译
device_roamer.mk 这个是编译recovery的时候我写的,有些东西可以不要,以后编译rom的时候需要删除重写的
#语言配置文件
$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
# The gps config appropriate for this devicegps配置文件
$(call inherit-product, device/common/gps/gps_as_supl.mk)
# vendor 私有库配置文件
$(call inherit-product-if-exists, vendor/zte/roamer/roamer-vendor.mk)
#有些你需要对应用 或者 framework 进行初始化设定值的地方
DEVICE_PACKAGE_OVERLAYS += device/zte/roamer/overlay
#kernel路径选择
ifeq ($(TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL := device/zte/roamer/kernel
else
LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
endif
PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):kernel
$(call inherit-product, build/target/product/full.mk)
PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
PRODUCT_NAME := full_roamer
PRODUCT_DEVICE := roamer
recovery.fastab 官方recovery.img提取 自己想个办法,我用厨房提取的
全部写好之后 在源码根目录用终端输入 . build/envsetup.sh 然后输入lunch选择你的设备
然后输入 make recoveryimage就可以编译了
编译结束之后,到out/target/product/roamer目录下面可以发现 recovery.img 这个文件
使用fastboot 工具到fastboot 模式下面刷写,刷写命令为 fastboot flash recovery recovery.img
教程到此结束,有关如何进入fastboot模式 recovery模式,还有fastboot工具使用,请google 或者 baidu

评论3
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表