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


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

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


修改图片的位置在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
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编译学习笔记的更多相关文章
- 获取编译学习笔记 (六)—— si、di,双环
疯狂暑期学习 汇编入门学习笔记 (六)-- si.di,双重循环 參考: <汇编语言> 王爽 第7章 1. and和or指令,与[bx+idata] and和or.就不多说了. [bx+ ...
- 【转】Ant学习笔记——自己构建Ant编译环境
自从年初开始用NetBeans6.0,才接触到Ant. 这是今年6月份的一篇Ant学习笔记.安装 1.下载并构建环境. 去官网下载src包和bin包.解压缩它们到同一目录,运行build.bat, ...
- linux 驱动学习笔记01--Linux 内核的编译
由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...
- (转)redis 学习笔记(1)-编译、启动、停止
redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...
- thinkphp学习笔记3—项目编译和调试模式
原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并 ...
- Typescript 学习笔记一:介绍、安装、编译
前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...
- 学习笔记:自己编译安装OpenCV+测试opencv安装是否成功
1. 安装编译依赖的软件包 # 安装读写不同图片类型的库: sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12- ...
- blfs(systemv版本)学习笔记-编译安装i3-wm平铺式窗口管理器
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! i3-wm项目的官网:https://i3wm.org/ 首先需要lfs基础上编译安装完整的xorg服务 我的xorg服务编译安 ...
- Oracle RAC学习笔记01-集群理论
Oracle RAC学习笔记01-集群理论 1.集群相关理论概述 2.Oracle Clusterware 3.Oracle RAC 原理 写在前面: 最近一直在看张晓明的大话Oracle RAC,真 ...
随机推荐
- Socket的协议地址属性
首先列举所需要的头文件 #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #in ...
- E - QS Network - zoj 1586(简单)
题意:在一个叫做QS的星系,他们使用一些特殊的通讯方式,两个人之间通讯需要使用一个网络适配器,但是一个网络适配器只能跟一个人联系,所有它连接几个人就需要及格适配器,而且每个人都有一些不同的偏好,喜欢的 ...
- 《BackboneJS框架的技巧及模式》(2)
<BackboneJS框架的技巧及模式>(2) 本文紧接第一部分:<BackboneJS框架的技巧及模式(1)> 作者:chszs,转载需注明.博客主页:http://blog ...
- 报错:Failed to create BuildConfig class
1. Project | Clean| Build Automatically 2. 在目录中找到gen目录,手动删除(一般是没有写权限导致Failed),再执行第一步方案.
- Codeforces 362D Fools and Foolproof Roads 构造题
题目链接:点击打开链接 题意: 给定n个点 m条边的无向图 须要在图里添加p条边 使得图最后连通分量数为q 问是否可行,不可行输出NO 可行输出YES,并输出加入的p条边. set走起.. #incl ...
- juce: 跨平台的C++用户界面库
如果你用过QT和MFC,那你必然知道QT是基于C++的跨平台库,而MFC是微软针对widows平台推出来基础类库.且不论MFC的设计如何,从我个人和身边朋友的经历来看,MFC是一些非常难以理解的类的组 ...
- [AngularJS] Design Pattern: Simple Mediator
We're going to use rootScope emit here to send out events and then we're going to listen for them in ...
- HDU -2524 矩形A + B
找规律题,这种题目比较巧妙,要仔细观察找出规律 1. 假设只有一行,一共有n列,那么由一个小矩形构成的矩形个数为n, 由两个小矩形构成的矩形个数为 n - 1个 .... 由 n 个小矩形构成的矩形个 ...
- 最小生成树--->NYOJ-38 布线问题
此题是最基础的最小生成树的题目,有两种方法, 一个是prim一个是kruskal算法,前者利用邻接矩阵,后者是利用边集数组 prim算法的思想是:一个点一个点的找, 先找从第一个点到其他点最小的, 把 ...
- W3C小组宣布:HTML5标准制定完成
近日,W3C小组宣布已经完成对HTML5标准以及Canvas 2D性能草案的制定,这就意味着开发人员将会有一个稳定的“计划和实施”目标. Web性能工作组已经推出W3C的两个版本建议草案. Navig ...