开始建立我们要编译机器的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编译学习笔记的更多相关文章

  1. 获取编译学习笔记 (六)—— si、di,双环

    疯狂暑期学习  汇编入门学习笔记 (六)-- si.di,双重循环 參考: <汇编语言> 王爽 第7章 1. and和or指令,与[bx+idata] and和or.就不多说了. [bx+ ...

  2. 【转】Ant学习笔记——自己构建Ant编译环境

    自从年初开始用NetBeans6.0,才接触到Ant. 这是今年6月份的一篇Ant学习笔记.安装 1.下载并构建环境.   去官网下载src包和bin包.解压缩它们到同一目录,运行build.bat, ...

  3. linux 驱动学习笔记01--Linux 内核的编译

    由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...

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

    redis 学习笔记(1)-编译.启动.停止   一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...

  5. thinkphp学习笔记3—项目编译和调试模式

    原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并 ...

  6. Typescript 学习笔记一:介绍、安装、编译

    前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...

  7. 学习笔记:自己编译安装OpenCV+测试opencv安装是否成功

    1. 安装编译依赖的软件包 # 安装读写不同图片类型的库: sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12- ...

  8. blfs(systemv版本)学习笔记-编译安装i3-wm平铺式窗口管理器

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! i3-wm项目的官网:https://i3wm.org/ 首先需要lfs基础上编译安装完整的xorg服务 我的xorg服务编译安 ...

  9. Oracle RAC学习笔记01-集群理论

    Oracle RAC学习笔记01-集群理论 1.集群相关理论概述 2.Oracle Clusterware 3.Oracle RAC 原理 写在前面: 最近一直在看张晓明的大话Oracle RAC,真 ...

随机推荐

  1. Linux网卡驱动架构分析

    一.网卡驱动架构 由上到下层次依次为:应用程序→系统调用接口→协议无关接口→网络协议栈→设备无关接口→设备驱动. 二.重要数据结构 1.Linux内核中每一个网卡由一个net_device结构来描述. ...

  2. Data Guard 之 浅析Switchover与Failover

    Data Guard主从库之间的角色切换分为以下两种:1)SwitchoverSwithchover通常都是人为的有计划的进行角色互换,比如升级等.它通常都是无损的,即不会有数据丢失.其执行主要分为两 ...

  3. ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】

    今天主要讲Model的两个方面: 1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍 2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model ...

  4. &quot;蓝筹&quot;如何使程序猿?

    "蓝筹"这个词可能不是很多人知道这意味着什么.我会来普及知识.这是最重要的概念是指"越来越从长远来看更有价值"的含义.作为一个程序猿,我想你想使自己通过实际行动 ...

  5. AsMVC:一个简单的MVC框架的Java实现

    当初看了<从零开始写一个Java Web框架>,也跟着写了一遍,但当时学艺不精,真正进脑子里的并不是很多,作者将依赖注入框架和MVC框架写在一起也给我造成了不小的困扰.最近刚好看了一遍sp ...

  6. 在Windows环境中安装并使用kafka

    [TOC] 安装部署 安装部署Java 下载需要安装的软件,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jre8-down ...

  7. 【转】iOS实时卡顿监控

    转自http://www.tanhao.me/code/151113.html/ 在移动设备上开发软件,性能一直是我们最为关心的话题之一,我们作为程序员除了需要努力提高代码质量之外,及时发现和监控软件 ...

  8. css内容生成器

    一,内容生成器:content 补充before和after伪类选择器: 1):将内容添加到某个选择器定义的单个或者多个元素的每一个实例之前或者之后 2)与before选择器配合使用(同理大家想下会不 ...

  9. Flash与DIV的层叠顺序问题

    很多人在写页面代码时都会遇到过这样一个问题,那就是当Flash与页面中的其它HTML结构有重叠的时候,默认情况下Flash总是显示在最上 面,从而遮挡住了与它有重叠部分的HTML结构,就算为该Flas ...

  10. java transient关键字和transaction的区别

    transient:表示临时的,不会被持久化,保存进数据库 transaction:表示事务 <div style="background: #fff; color: #0ff;&qu ...