本站长期提供ROM下载,可以定制多国语言刷机包和和刷机方案。点击这里给我发消息

recovery编译学习笔记

博主备忘笔记 半夏月 5616℃ 0评论

开始建立我们要编译机器的device目录
./build/tools/device/mkvendor.sh htc vivo ~/boot.img
需要自己配置的部分:
位置:cm/deviec/品牌/国际名称/BoardConfig.mk
修改键值倒数第三行,把#去掉,然后回车加一行空格,返回键就好用啦,如下图。
recovery1recovery2

加入两行// 电源键就好用啦,如图
位置:cm/bootable/recovery/default_recovery_keys.c

recovery3修改顶端版本信息
目录所cm/bootable/recovery/android.mk
添加个人信息
目录是cm/bootable/recovery/recocery.c
\n 的意思的换行输入 可以加微薄等地址 (备注:两地都能改。我改的是改recovery.c)

recovery4recovery5

修改图片的位置在cm/bootablr/recovery/res/images
改分区的目录文件是cm/device/htc/vivo/recovery.fstab

如不会修改 请提取第三方recovery改名为boot.img解包之后替换掉recovery.fstab
在etc目录下

找个cm的包把boot解包,提取zImage(内核)和三个int文件放到要编译的文件中
例如cm/decice/htc/vivo
开始编译
. build/envsetup.sh && lunch full_vivo-eng && make recoveryimage -j16
———————————————————————————————————————————————————————————————-其他备注

$ adb shell
出现错误error: insufficient permissions for device
需要root权限
$sudo -s
$adb kill-server
$adb start-server
提示成功之后
$adb shell
就可以了
$cat /proc/emmc

可以查看分区大小
例如我的目录
cm10/device/htc/pyramid/Boardconfig.mk
按照名字改就可以了,就是size那个16进制表示的大小。
中文recovery挂载和备份不显示中文
在cm10/device/htc/pyramid/recovery/boardconfig.mk
里最后一样添加
BOARD_CUSTTOM_GRAPHICS:=home/ximen/cm10/device/htc/pyramid/recovery/graphics.c

不能挂载的话 最boardconfig.mk最后添加
# USB Mounting
BOARD_UMS_LUNFILE := “/sys/class/android_usb/android0/f_mass_storage/lun%d/file”
TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/class/android_usb/android0/f_mass_storage/lun%d/file
TW_INTERNAL_STORAGE_PATH := “/sdcard”
TW_INTERNAL_STORAGE_MOUNT_POINT := “sdcard”
TW_EXTERNAL_STORAGE_PATH := “/external_sd”
TW_EXTERNAL_STORAGE_MOUNT_POINT := “external_sd”
RECOVERY_GRAPHICS_USE_LINELENGTH := true
TW_NO_REBOOT_BOOTLOADER := true
注意:TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/class/android_usb/android0/f_mass_storage/lun%d/file
cm/bootable/recovery/ui.c
改字体颜色
#define MENU_TEXT_COLOR 255, 160, 49, 255
前三个是rgb颜色 第四个是透明度

挂载问题:
cm10.1/bootable/recovery/extendecommadns.c文件
以下:
“/sys/devices/platform/usb_mass_storage/lun%d/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun%d/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun_ex/file”,

编译时候找不到device
在机型目录下建立文件夹vendorsetup.sh
内容:add_lunch_combo cm_u8825d-userdebug
Android.mk
内容:
LOCAL_PATH := $(call my-dir)

include $(call all-makefiles-under,$(LOCAL_PATH))

中文乱码解决办法
把graphics_cn.c放进cm10.1/bootable/recovery/minui
然后在Android.mk中找到LOCAL_SRC_FILES += graphics.c
改成LOCAL_SRC_FILES += graphics_cn.c

挂载问题
boardconfig.mk里面的”/sys/class/android_usb/android0/f_mass_storage/lun%d/file”
换成bootable/recovery/extendedcommands.c
里面四条挨个试一下
“/sys/devices/platform/usb_mass_storage/lun%d/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun%d/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun_ex/file”,

中文recovery挂载和备份不显示中文
在cm10/device/htc/pyramid/recovery/boardconfig.mk
里最后一样添加
BOARD_CUSTTOM_GRAPHICS:=home/ximen/cm10/device/htc/pyramid/recovery/graphics.c

不能挂载的话 最boardconfig.mk最后添加
# USB Mounting
BOARD_UMS_LUNFILE := “/sys/class/android_usb/android0/f_mass_storage/lun%d/file”
TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/class/android_usb/android0/f_mass_storage/lun%d/file
TW_INTERNAL_STORAGE_PATH := “/sdcard”
TW_INTERNAL_STORAGE_MOUNT_POINT := “sdcard”
TW_EXTERNAL_STORAGE_PATH := “/external_sd”
TW_EXTERNAL_STORAGE_MOUNT_POINT := “external_sd”
RECOVERY_GRAPHICS_USE_LINELENGTH := true
TW_NO_REBOOT_BOOTLOADER := true
注意:TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/class/android_usb/android0/f_mass_storage/lun%d/file

cm/bootable/recovery/ui.c
改字体颜色
#define MENU_TEXT_COLOR 255, 160, 49, 255
前三个是rgb颜色 第四个是透明度

挂载问题:
cm10.1/bootable/recovery/extendecommadns.c文件
以下:
“/sys/devices/platform/usb_mass_storage/lun%d/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun%d/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun_ex/file”,

编译时候找不到device
在机型目录下建立文件夹vendorsetup.sh
内容:add_lunch_combo cm_u8825d-userdebug
Android.mk
内容:
LOCAL_PATH := $(call my-dir)

include $(call all-makefiles-under,$(LOCAL_PATH))

中文乱码解决办法
把graphics_cn.c放进cm10.1/bootable/recovery/minui
然后在Android.mk中找到LOCAL_SRC_FILES += graphics.c
改成LOCAL_SRC_FILES += graphics_cn.c

挂载问题
boardconfig.mk里面的”/sys/class/android_usb/android0/f_mass_storage/lun%d/file”
换成bootable/recovery/extendedcommands.c
里面四条挨个试一下
“/sys/devices/platform/usb_mass_storage/lun%d/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun%d/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun/file”,
“/sys/class/android_usb/android0/f_mass_storage/lun_ex/file”,

make -j4 otatools 时候报错
build/core/base_rules.mk:130: *** external/jpeg: MODULE.TARGET.SHARED_LIBRARIES.libjpeg already defined by external/Focal/libjpeg-turbo。 停止。

这个意思就是MODULE.TARGET.SHARED_LIBRARIES.libjpeg already defined在external/Focal/libjpeg-turbo被重复定义。
解决办法是删除external/focal 文件夹

lunch时候出错,这个意思所找不到device
** Don’t have a product spec for: ‘full_F160l’
** Do you have the right repo manifest?

在device文件夹下建立 vendorsetup.sh文件 里面内容是add_lunch_combo cm_f160-userdebug

添加下面代码中的TARGET_CPU_VARIANT := cortex-a7

TARGET_ARCH := arm
TARGET_NO_BOOTLOADER := true
TARGET_BOARD_PLATFORM := unknown
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_CPU_VARIANT := cortex-a7
TARGET_ARCH_VARIANT := armv7-a-neon
ARCH_ARM_HAVE_TLS_REGISTER := true

 

新代码里不能 lunch full_u8825d-eng了 一律是 lunch cm_u8825d-eng

转载请注明:半夏月 » recovery编译学习笔记

喜欢 (3)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(5)个小伙伴在吐槽
  1. 楼主你好,我现在编译了一个recovery,进入recovery之后黑屏,但是屏幕背光可以调节,不知道是什么问题呢?
    andy2014-02-28 23:08 回复
    • 楼上的,我跟你遇到一样的情况,想跟你交流一下
      未知2015-11-07 10:13 回复
      • 好久了,我已经没有关注这个问题了。
        andy2015-11-08 21:46 回复
        • 那能告诉我一下,当时你是怎么解决的啊?
          未知2015-11-15 12:14 回复