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

时间: 2024-08-03 10:43:39

recovery编译学习笔记的相关文章

(转)redis 学习笔记(1)-编译、启动、停止

redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先到这里下载Stable稳定版,目前最新版本是2.8.17 1.2 上传到linux,然后运行以下命令解压 tar xzf redis-2.8.17.tar.gz 1.3 编译 cd redis-2.8.17make 注:make命令需要linux上安装gcc,若机器上未安装gcc,redhat环境下,如

马哥学习笔记七——LAMP编译安装之MYSQL

1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化my

DuiLib学习笔记1——编译运行demo

c++中皮肤问题比较麻烦,MFC自带的太难用.DirectUI界面库就比较强大了,之前像skin++之类的基于DirectUI收费昂贵.DuiLib是基于DirectUI的界面库,可以将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率. duilib的SVN地址:http://duilib.googlecode.com/svn/trunk 下载后运行DuiLib.sln 编译时可能会遇到几个报错. 0.开发环境本身有问题,比如用win7没有装win7sdk之类的. 1. TestApp1

MVC4 学习笔记 之 URL中存在编译的空格 20%20%

/Config/Edit/QQCC%20%20%20%20%20%20%20 原因是: 通过EF直接添加了空格? NO 是因为你的数据库字段设计问题,因为你当然设计如>:sID nchar(10) 那你一定想输入10个字符,但实际你只输入了必个,所以后面数据自动帮你补空了. 从EF数据库取出数据,在绑定的时候为安全,编码了,所以显示%20,代表一个空格. MVC4 学习笔记 之 URL中存在编译的空格 20%20%,布布扣,bubuko.com

异常的学习笔记+打包+doc的包编译

jvm默认的异常处理机制就是调用printStackTrace方法 对于多异常的处理.应该是定义更具体的异常来捕捉捕捉问题 捕获异常代码块出现继承关系 应该把被继承的异常放在子类异常块的后面 throw 和 throws的区别 throw是是用在函数上,而throws是使用在函数内 throw后面跟的是异常对象,而throws跟的是异常类可以 多个 对异常的分类: 1.编译时被检测到的异常. (值得去处理的异常,或者是希望得到调用者处理,并不影响运算意向) 2.编译时不被检测到的异常(运行时异常

编译原理学习笔记 -- 绪论1

1. 语言处理器 语言处理系统 _________ 经过预 _______ 源程序 --> |预处理器| --> 处理的 --> |编译器| --> 目标汇编程序 -------- 源程序 ------- _______ 可重定位的 ______________ --> |汇编器| --> 机器代码 --> |链接器/加载器| --> 目标机器代码 ------- -------------- ↑ 库文件/可重定位对象文件 预处理器:把源程序聚合在一起,并宏

马哥学习笔记八——LAMP编译安装之PHP及xcache

1.解决依赖关系: 请配置好yum源(可以是本地系统光盘)后执行如下命令: # yum -y groupinstall "X Software Development" 如果想让编译的php支持mcrypt扩展,此处还需要下载如下两个rpm包并安装之: libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm 2.编译安装php-5.4.13 首先下载源码包至本地目录. # tar xf php-5.4.13

【学习笔记】编译原理-有限自己主动机

一.定义: 不确定的有限自己主动机(NFA): 一种数学模型 (1) 一个有限的状态集合S (2) 一个输入符号集合∑(不包括ε) (3) 一个转换函数move: S X (∑ U {ε}) -> P(S) (4) 状态s0是唯一的開始状态 (5) 状态集合F是接受状态集合,S包括F 确定的有限自己主动机(DFA): 是NFA的特殊情况 (1) 不论什么状态都没有ε转换 (2) 对于不论什么状态s和不论什么输入符号a,最多仅仅有一条标记为a的边离开,即转换函数move: S X ∑-> S能够

内核编译安装学习笔记

前提:查看本地硬件信息常用工具 查看CPU信息: #cat /proc/cpuinfo #x86info #lscpu 查看PCI: #lspci 查看USB: #lsusb 查看块设备: #lsblk 查看综合的设备详细信息: #hal-device 编译:交叉编译 cross-compiling用于在宿主机上编译,应用于别的机器上架构迥异的内核. 编译内核的步骤:(安装好开发环境:Development Tools,Server Platform Development,ncurses-de