Android AB系统recovery镜像构建分析

A/B系统是Google推的一种方便OTA升级版本的特性,好像是N就开始了。之前有好几个问题都是异常进recovery的,不过A/B系统里已经去掉recovery分区了,不再编译recovery.img,那系统是怎么进的recovery?带着这个问题来看下。先看看Google对recovery的介绍:recovery: The recovery partition sto...阅读全文

Android启动时在加密界面后进恢复模式分析

异常进recovery前面已经分析过主要是persist进程crash too many,所以导致进恢复模式,显示"Can't load Android system"。现在又出现这个恢复界面,是在刷完版本第一次开机加密时进入,看离线logcat,竟然没有"FACTORY_RESET"记录,难道和加密有关?上OpenGrok搜下prompt_and_wipe_data:/...阅读全文

Android P LMKD分析二

关于mp_event_common接受的内存压力事件,是从内核而来,简单说下。先来看下官方的介绍:Historically, Android used in-kernel lowmemorykiller driver to handle memory pressure situations by killing non-essential processes. This ...阅读全文

Android P LMKD分析一

Android P lmkd新增了许多机制和属性,包括引入原来内核的minfree算法等,看样子是越来越复杂了,下面来看看,内核版本4.9,高通平台。how to kill先看下应该杀掉哪个process or 哪些processes(yes, 已经支持)?主要改动是:support kill heaviest processsupport kill multiple p...阅读全文

F2FS保留块特性分析及如何在Android上使用

Android Go data分区启用了f2fs文件系统,从介绍看是为了提高life time和4K文件读写性能,这个暂不关心,三星init,看kernel提交记录后面主要是huawei也参与进来,据说是重金聘用,多少米?前段时间项目在Go上遇到一个问题:data填满100%一直起不来(kernel: 3.18)。不过可以使用保留空间加一层保护, 重要系统进程可以使用保留...阅读全文

Android Go在data分区填近满后不能启动bug分析

最近遇到一个问题:重启压测十来天后出现大量手机不能启动, Android Go/MSM8909,有FWK同事发现空间满了,如下:/dev/block/mmcblk0p39 5.2G 4.8G 340M 94% /data原来是我们自定义的logd一直写满了data分区,删除后立即启动正常,为什么data满了会导致起不来,看了下Z的手机,我折腾了下1h都没起来:msm...阅读全文