b2c信息网

您现在的位置是:首页 > 昨日新闻 > 正文

昨日新闻

recovery源码(recovery编译)

hacker2022-07-04 09:33:25昨日新闻80
本文目录一览:1、如何制作自己的recovery.img2、

本文目录一览:

如何制作自己的recovery.img

首先,把手机硬启,手机不同其硬启方法也不同(大多是音量键+电源键),自己看说明书 1、如果你的手机已经S-OFF,就往下看,如果手机硬启后显示S-ON就不用看了,没戏。 2、用一张质量好的内存卡,在网上下载一个recovery程序(多为PG88IMG.zip) 3、手机硬启后,用音量键选择recovery,电源键确定,后手机自动找到安装文件,后提示是否安装,选择Y,确定,安装后重启即可。

哪里能找到recovery的源代码

您好,我来为您解答:

第三方recovery是基于ClockworkMod Recovery的。

这个东西不是开源的,在github上找到了泄漏的版本:。

希望我的回答对你有帮助。

cwm-recovery6.0.3.7源码

前言: 此中文版Recovery基于CWM-Recovery6.0.3.2源码移植汉化制作 * 感谢CM团队以及github上无偿贡献的代码; *感谢ruling贡献的源码。 【中文Recovery功能介绍:】 1.支持关机充电; 2.全中文汉化界面,大字体更清晰; 3.备份当前系统和恢复系...

-- 猴岛游戏论坛为您解答

如何针对特定机型,编译cwm recovery

你必须使用32位或64位Ubuntu系统,关于如何建立编译环境和同步源码的指导,请自己查找有关指导的文章。

1,

安装所需要的包

2,

建立编译的环境,并同步CWM所需的源码,CyanogenMod源码中附带CWM源码

CWM

5

-

Gingerbread

CWM

6

-

Jellybean

3,

下面我们进入真正的编译阶段,确保你已经使用“repo

sync

”命令同步了最新的源码

进入源码的目录

放出以下命令:

make

-j4

otatools

3.5,

如果你的机型不被CM10官方支持,请执行这一步

在你的手机终端上执行以下命令,

dump_image

boot

/sdcard/boot.img

这将boot镜像导出到你手机的sdcard,复制该镜像至你的home目录下

为一款新设备编译android源码,需要建立相应的配置文件和makefile文件,这通常比较麻烦,如果仅仅编译recovery镜像,会容易的多。在android源码根目录下(假设已运行envsetup.sh),运行以下命令(使用适当的名称取代命令中的名称)

build/tools/device/mkvendor.sh

device_manufacturer_name

device_name

/your/path/to/the/boot.img

例如,你拥有Samsung

Galaxy

Ace这款设备,你应该使用以下这条命令

build/tools/device/mkvendor.sh

Samsung

cooper

~/boot.img

Please

note

that

Cooper

is

the

device

name.

Only

use

"~/boot.img"

if

you

have

the

boot

image

in

your

home

directory.

Or

else

please

specify

the

correct

path.

如果所有都工作正常,你将看到"Done!"这样的确认信息。mkvendor.sh脚本也将在你的android源码树中创建以下目录:

manufacturer_name/device_name

4,

现在你已经拥有相关的配置文件

在源码目录下,在terminal终端下键入以下命令

.

build/envsetup.sh

这一步将为你建立编译环境

现在使用这条命令

lunch

full_device_name-eng

这将为你的设备建立起build

system。用文件管理器或IDE打开目录,你应该拥有以下文件:

AndroidBoard.mk,

AndroidProducts.mk,

BoardConfig.mk,

device_.mk,

kernel,

system.prop,

recovery.fstab,

vendorsetup.sh

对你感兴趣的应该是recovery.fstab和kernel这两个文件,kernel这个文件是你之前从boot.img文件中提取出的。recovery.fstab将适用于大部分拥有

mtd,

emmc,或者其他分区的设备。如果没有,recovery.fstab将需要优化以支持加载这些点。例如

/sdcard被加载至/dev/block/mmcblk1p1,

你需要将下面这段加入到你的BoardConfig.mk文件中

/sdcard

vfat

/dev/block/mmcblk1p1

一旦recovery.fstab已经适当的装载,你可以开始下一步了

5,

现在,我们开始编译Recovery

make

-j4

recoveryimage

这个命令用于编译recovery镜像

你能使用这个命令

make

-j4

recoveryzip

用于建立一个临时的recovery.zip刷机包在你真实的设备上测试

你编译好的recovery可以在"your_source_directory/OUT/target/product/device/recovery.img"目录下找到。而.zip刷机包可以在相同目录下的utilities文件夹下找到。

如果各项测试正常,就可以有一个成功的recovery

一旦你编译通过了recovery,通知"koush",在Github上,他就能根据你的编译文件发放官方版的CWM

Recovery,并使Rom

Manager提供相应的支持。

小贴士:

如果你想编译CWM6,使用以下命令同步jellybean分支源码

repo

init

-u

git://github.com/CyanogenMod/android.git

-b

jellybean

repo

sync

如果你改变了BoardConfig.mk文件,在编译期间运行"make

clobber",否则你做的更改就不会生效。

如何从源代码编译TWRP Recovery

目前稳定的的分支是twrp2.4板本2.4.xx代码基地。如果你使用的CM10.1你*必须*使用twrp2.4分支。主分支代表TWRP2.2和JB-WIP TWRP2.3。选择任何你喜欢的分支,但唯一的分支越来越活跃的代码更改twrp2.4。 * CM7 ONLY* 更换整个CM7/build文件夹

android源码怎么编译生成recovery.img

recovery.img生成过程

L630-L637 依赖关系

(From: build/core/Makefile)

630 $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) /631 $(INSTALLED_RAMDISK_TARGET) /632 $(INSTALLED_BOOTIMAGE_TARGET) /633 $(recovery_binary) /634 $(recovery_initrc) $(recovery_kernel) /635 $(INSTALLED_2NDBOOTLOADER_TARGET) /636 $(recovery_build_prop) $(recovery_resource_deps) /637 $(RECOVERY_INSTALL_OTA_KEYS)

INSTALLED_RECOVERYIMAGE_TARGET 为我们的编译目标:

584 INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img

它依赖很多其它目标:

1.MKBOOTFS, MINIGZIP, MKBOOTIMG,PC端工具软件:(From build/core/config.mk)265 MKBOOTFS := $(HOST_OUT_EXECUTABLES)/mkbootfs$(HOST_EXECUTABLE_SUFFIX)266 MINIGZIP := $(HOST_OUT_EXECUTABLES)/minigzip$(HOST_EXECUTABLE_SUFFIX)267 MKBOOTIMG := $(HOST_OUT_EXECUTABLES)/mkbootimg$(HOST_EXECUTABLE_SUFFIX)

2.INSTALLED_RAMDISK_TARGET,标准根文件系统 ramdisk.img:

326 BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img328 # We just build this directly to the install location.329 INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET) 3.INSTALLED_BOOTIMAGE_TARGET, 即boot.img,标准内核及标准根文件系统:362 INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img

4. recovery_binary, Recovery可执行程序,源码位于:bootable/recovery

590 recovery_binary := $(call intermediates-dir-for,EXECUTABLES,recovery)/recovery

5. recovery_initrc,recovery模式的init.rc, 位于 bootable/recovery/etc/init.rc

586 recovery_initrc := $(call include-path-for, recovery)/etc/init.rc

6. recovery_kernel, recovery 模式的kernel, 同标准内核

587 recovery_kernel := $(INSTALLED_KERNEL_TARGET) # same as a non-recovery system

7.INSTALLED_2NDBOOTLOADER_TARGET,我们不用。

8. recovery_build_prop, recovery 模式的build.prop, 同标准模式。589 recovery_build_prop := $(INSTALLED_BUILD_PROP_TARGET)

9. recovery_resource_deps, recovery 模式使用的res, 位于:recovery/custom/{product_name}/res, 以及设备自定义部分(我们没用到)

591 recovery_resources_common := $(call include-path-for, recovery)/custom/$(TARGET_PRODUCT)/res592 recovery_resources_private := $(strip $(wildcard $(TARGET_DEVICE_DIR)/recovery/res))593 recovery_resource_deps := $(shell find $(recovery_resources_common) 594 $(recovery_resources_private) -type f) 10. RECOVERY_INSTALL_OTA_KEYS, ota 密钥:

618 # Generate a file containing the keys that will be read by the619 # recovery binary.620 RECOVERY_INSTALL_OTA_KEYS := /621 $(call intermediates-dir-for,PACKAGING,ota_keys)/keysL638-L655 准备内容

638 @echo ----- Making recovery image ------639 rm -rf $(TARGET_RECOVERY_OUT)640 mkdir -p $(TARGET_RECOVERY_OUT)641 mkdir -p $(TARGET_RECOVERY_ROOT_OUT)642 mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/etc643 mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/tmp

准备recovery目录:out/target/product/{product_name}/recovery 及其子目录:

./root

./root/etc

./root/tmp

644 echo Copying baseline ramdisk...645 cp -R $(TARGET_ROOT_OUT) $(TARGET_RECOVERY_OUT)646 echo Modifying ramdisk contents...647 rm -rf $(TARGET_RECOVERY_ROOT_OUT)/res

从标准根文件系统拷贝所有文件, 删除其res 目录。

648 cp -f $(recovery_initrc) $(TARGET_RECOVERY_ROOT_OUT)/649 cp -f $(recovery_binary) $(TARGET_RECOVERY_ROOT_OUT)/sbin/ 拷贝recovery 模式的核心文件 init.rc 及 recovery 650 cp -rf $(recovery_resources_common) $(TARGET_RECOVERY_ROOT_OUT)/651 $(foreach item,$(recovery_resources_private), /652 cp -rf $(item) $(TARGET_RECOVERY_ROOT_OUT)/)653 cp $(RECOVERY_INSTALL_OTA_KEYS) $(TARGET_RECOVERY_ROOT_OUT)/res/keys 拷贝资源文件及密钥文件。 654 cat $(INSTALLED_DEFAULT_PROP_TARGET) $(recovery_build_prop) /655 $(TARGET_RECOVERY_ROOT_OUT)/default.prop 生成属性文件 default.prop, 它包含了标准根文件系统的default.prop (out/target/product/{product_name}/root/default.prop)以及system分区的build.prop (out/target/product/{product_name}/system/build.prop) L656-L661 最终生成recovery.img

656 $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) $(recovery_ramdisk) 压缩recovery根文件系统 657 build/quacomm/mkimage $(PRODUCT_OUT)/ramdisk-recovery.img RECOVERY $(PRODUCT_OUT)/ramdisk_recovery.img 加一个标识头(RECOVERY) 658 mv $(PRODUCT_OUT)/ramdisk_recovery.img $(PRODUCT_OUT)/ramdisk-recovery.img659 $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) --output $@660 @echo ----- Made recovery image -------- $@661 $(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE),raw)

和内核一起,生成recovery.img

附:Recovery 根文件系统目录结构

$ tree

.

├── advanced_meta_init.rc

├── data

├── default.prop

├── dev

├── etc

├── init

├── init.factory.rc

├── init.goldfish.rc

├── init.quacomm.rc

├── init.rc

├── meta_init.rc

├── proc

├── res

│ ├── images

│ │ ├── icon_error.png

│ │ ├── icon_installing.png

│ │ ├── indeterminate1.png

│ │ ├── indeterminate2.png

│ │ ├── indeterminate3.png

│ │ ├── indeterminate4.png

│ │ ├── indeterminate5.png

│ │ ├── indeterminate6.png

│ │ ├── progress_empty.png

│ │ └── progress_fill.png

│ └── keys

├── sbin

│ ├── adbd

│ ├── advanced_meta_init

│ ├── meta_init

│ ├── meta_tst

│ └── recovery

├── sys

├── system

└── tmp

发表评论

评论列表

  • 囤梦怎忘(2022-07-04 11:07:27)回复取消回复

    以开始下一步了5,现在,我们开始编译Recoverymake-j4recoveryimage这个命令用于编译recovery镜像你能使用这个命令make-j4recoveryzip用于建立一个临时的recovery.z

  • 瑰颈皆叹(2022-07-04 10:55:01)回复取消回复

    $(recovery_initrc) $(recovery_kernel) /635 $(INSTALLED_2NDBOO

  • 南殷梦息(2022-07-04 20:18:32)回复取消回复

    * CM7 ONLY* 更换整个CM7/build文件夹android源码怎么编译生成recovery.imgrecovery.img生成过程L630-L637 依赖关系(Fr

  • 美咩心児(2022-07-04 19:00:13)回复取消回复

    mageboot/sdcard/boot.img这将boot镜像导出到你手机的sdcard,复制该镜像至你的home目录下为一款新设备编译android源码,需要建立相应的配置文件和makefile文件,这通常比较麻烦,如果仅仅编译recovery镜像,会容易的多。在an

  • 夙世悸初(2022-07-04 20:28:04)回复取消回复

    nate3.png│ │ ├── indeterminate4.png│ │ ├── indeterminate5.png│ │ ├── indeterminate6.png│