recovery

RK3228H开发之Rockchip Recovery及android系统升级详解

假如想象 提交于 2020-02-08 04:25:57
一、引言 Recovery 模式指的是一种可以对安卓机内部的数据或系统进行修改的模式,(类似于 windows pe 或 DOS)。在这个模式下我们可以刷入新的安卓系统,或者对已有的系统进行备份或升级,也可以在此恢复出厂设置,本篇文章即来介绍下Rockchip中的recovery 二、Recovery 模式在框架层的位置 Android 启动后,会先运行 bootloader。Bootloader 会根据某些判定条件决定是否进入 recovery 模式。Recovery 模式会装载 recovery 分区,该分区包含 recovery.img。Recovery.img 包含了标准内核(和boot.img 中的内核相同)以及 recovery 根文件系统。 Android recovery 三个部分两个接口,recovery 的工作需要整个软件平台的配合,从架构角度看,有三个部分: Main System: 用 boot.img 启动的 Linux 系统,Android 的正常工作模式。 Recovery:用 recovery.img 启动的 Linux 系统,主要是运行 recovery 程序。 Bootloader:除了加载、启动系统,还会通过读取 flash 的 MISC 分区获得来自 Main System 和Recovery 的消息,并以此决定做何种操作。 两个通信接口:

【读书笔记】https://source.android.google.cn/devices/bootloader

前提是你 提交于 2020-02-06 18:48:51
https://source.android.google.cn/devices/bootloader 本文主要记录aosp官网关于bootloader的相关资料 Bootloader A bootloader is a vendor-proprietary image responsible for bringing up the kernel on a device. It guards the device state and is responsible for initializing the Trusted Execution Environment (TEE) and binding >its root of trust. The bootloader is comprised of many things including splash screen. To start boot, the bootloader may directly flash a new image into an appropriate partition or optionally use recovery to start the reflashing >process that will match how it is done for OTA. Some device

Android系统Recovery工作原理之使用update.zip升级过程分析(一)

时光总嘲笑我的痴心妄想 提交于 2020-02-05 13:08:47
通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理。我们先从update.zip包的制作开始,然后是Android系统的启动模式分析,Recovery工作原理,如何从我们上层开始选择system update到重启到Recovery服务,以及在Recovery服务中具体怎样处理update.zip包升级的,我们的安装脚本updater-script怎样被解析并执行的等一系列问题。分析过程中所用的Android源码是gingerbread0919(tcc88xx开发板标配的),测试开发板是tcc88xx。这是在工作中总结的文档,当然在网上参考了不少内容,如有雷同纯属巧合吧,在分析过程中也存在很多未解决的问题,也希望大家不吝指教。 一、 update.zip包的目录结构 |----boot.img |----system/ |----recovery/ `|----recovery-from-boot.p `|----etc/ `|----install-recovery.sh |---META-INF/ `|CERT.RSA `|CERT.SF `|MANIFEST.MF `|----com/ `|----google/ `|----android/ `|----update-binary `|---

oppo r9s 解bl锁,刷入第三方recovery

最后都变了- 提交于 2020-02-05 12:27:09
前言: 在对目前安卓手机刷入第三方REC时,需要简单介绍一下bootloader,recovery,fastboot,rom的概念。其中刷机有卡刷,线刷,9008深度刷机,卡刷指将rom复制到手机SD中进行刷入,线刷则是用手机连接电脑,在fastboot模式下刷入rom。以下是线刷第三方rec,然后再用第三方的rec工具卡刷rom,root,xposed,面具等。 流程: 1. 手机解除bootloader锁。 2. 开启fastboot模式刷入第三方recovery。 3. 进入rec卡刷rom入手机,也可刷root包(zip后缀),xposed(zip后缀),面具包(zip后缀)等。 4. 重启手机,等待进入手机并进行初始的设置。 bootloader: 这是手机开机调用操作系统前需要运行的一个小程序。和电脑的BOIS类似,设备开机加电后第一先启动的就是这个,对设备硬件进行初始化,自检等操作后再调用系统内核。然而目前国内的手机商为了让用户使用自家开发的深度定制的安卓系统,比如小米的MIUI,华为的EMUI,vivo的FUNTOUCH OS,oppo的COLOR OS等,搞机的同学称他们为ROM。而手机厂商为了防止用户给自己手机刷入其他的rom,所以对bootloader加了锁。 fastboot: 这是安卓系统中的一个刷机模式,比下面介绍的recovery模式更底层,俗称

How to do selective Mongo recovery?

你离开我真会死。 提交于 2020-02-02 11:50:09
问题 Suppose I have a Mongo replica set (a primary and few secondaries) with two databases: db1 and db2 . One secondary Mongo crashed and lost its data. Now when this Mongo restarts it will recover and copy both db1 and db2 from the primary. Since such recovery takes a lot of time I would like this secondary Mongo to copy only db1 (but not both db1 and db2 ) upon recovery. Can I do it with Mongo 2.4.6 ? 回答1: MongoDB does not yet have the capacity for selective replication. Feel free to open a JIRA

Rebuild loose missing tree in Git when there are no other missing objects

可紊 提交于 2020-01-25 06:14:31
问题 My Git repository claims there is a corrupted object: running git fsck --full says that there's a corrupted loose object in the repo. Since the object is corrupted, I can't unpack it using git cat-file -t , but removing the file causes fsck to report only: broken link from tree 93e54230ef... to tree 5aec4ad... missing tree 5aec4ad... I think this missing tree is the only file that is missing, or rather that there are no dangling commits/blobs, because running git ls-tree 93e54230ef... shows

Rebuild loose missing tree in Git when there are no other missing objects

孤街浪徒 提交于 2020-01-25 06:13:05
问题 My Git repository claims there is a corrupted object: running git fsck --full says that there's a corrupted loose object in the repo. Since the object is corrupted, I can't unpack it using git cat-file -t , but removing the file causes fsck to report only: broken link from tree 93e54230ef... to tree 5aec4ad... missing tree 5aec4ad... I think this missing tree is the only file that is missing, or rather that there are no dangling commits/blobs, because running git ls-tree 93e54230ef... shows

how to change log_reuse_wait and log_reuse_wait_desc

老子叫甜甜 提交于 2020-01-25 01:59:53
问题 I have been created new database and the log file groth very past, and I get error mesaage that the log is full due to 'BACKUP'. I looked in the differences between this Database and other databases in the SERVER, and I seen that in all databases log_reuse_wait is 0 and log_reuse_wait_desc is NOTHING and in my database log_reuse_wait is 0 and log_reuse_wait_desc is LOG_BACKUP. I want to change this property in my database to 0 and NOTHING. How can I do that? 回答1: This is a read-only status

dg switchover后的问题

痞子三分冷 提交于 2020-01-24 09:44:22
场景:备库只能接收归档日志,不能实时应用redo log,如果主端日志不切换,备端一直会有adg延迟 后台日志: RFS[1]: Assigned to RFS process 5351 RFS[1]: No standby redo logfiles available for thread 1 RFS[2]: Assigned to RFS process 5353 RFS[2]: No standby redo logfiles available for thread 1 RFS[1]: Opened log for thread 1 sequence 102 dbid 1485808053 branch 960908345 RFS[2]: Opened log for thread 1 sequence 103 dbid 1485808053 branch 960908345 Archived Log entry 175 added for thread 1 sequence 102 rlc 960908345 ID 0x579951e6 dest 3: Serial Media Recovery started Managed Standby Recovery starting Real Time Apply Waiting for all non-current

Recover corrupt zip or gzip files?

 ̄綄美尐妖づ 提交于 2020-01-22 23:59:10
问题 The most common method for corrupting compressed files is to inadvertently do an ASCII-mode FTP transfer, which causes a many-to-one trashing of CR and/or LF characters. Obviously, there is information loss, and the best way to fix this problem is to transfer again, in FTP binary mode. However, if the original is lost, and it's important, how recoverable is the data? [Actually, I already know what I think is the best answer (it's very difficult but sometimes possible - I'll post more later),