优秀的编程知识分享平台

网站首页 > 技术文章 正文

Android 开机问题分析(android无法开机)

nanyue 2024-10-24 11:50:17 技术文章 7 ℃

阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

一、 如何抓取开机问题Log

二、开机问题Log 分析流程

三、 kernel Log 搜索关键字fs_mgr 初步分析定位

四、uart log中搜索关键字 SBC,是否存在error/ fail/ assert

五、开始时间长的问题分析方法

一、 如何抓取开机问题Log

当我们遇到开机问题时候,不同阶段,我们需要不同的Log分析,这样才可以快速方便的解决开机问题,如果没有Log,我们几乎很难分析解决开机问题。

开机问题 抓取 Log 流程如下:



如何抓取开机问题Log

二、开机问题Log 分析流程

通过不同阶段的Log,我们进行不同的重点分析。

开机问题Log 分析流程如下:



开机问题Log分析流程

三、 kernel Log 搜索关键字 fs_mgr

在 kernel Log 中搜索关键字 fs_mgr 初步分析定位分区问题。

1. fs_mgr: __mount(source=/dev/block/dm-0,target=/system,type=ext4)=-1

System分区mount失败debug方法

  • a.Kernel log中有emmc “I/O error” ,需要检查emmc相关供电,替换物料交叉实验
  • b.Log中没有I/O error, 回读system分区对比正常机器system.img看文件是否被破坏

2.fs_mgr: __mount(source=/dev/block/dm-0,target=/data,type=ext4)=-1

Data分区mount失败debug方法

a.一般加密的情况/userdata分区会先出现 mount fail情况, 然后才解密节点/dev/block/dm-0 or dm-1 , target=/data mount成功 ,正常

b.如果只有userdata mount失败, 可能是分区数据毁损, 请先readback img, 然后手动进recovery mode 做factory reset 看能否恢复

c.Readback 的userdata img可以对比正常机器看是哪个文件毁损

3. init: fs_mgr_mount_all returned an error

Dm-verity配置错误引起user版本开不了机(eng版本正常)

同步打开/kernel-3.18/arch/arm/configs/${project}_defconfig中如下两个定义:

 CONFIG_DM_VERITY=y
 CONFIG_DM_VERITY_FEC=y

4.fs_mgr: Error loading verity table (Invalid argument) ?跳转至3

四、uart log中搜索关键字 SBC,是否存在error/ fail/ assert

五、开始时间长的问题分析方法

1. MTK 平台开机时间保存的文件

a.手机中(/proc/bootprof)

b.mobile Log中的bootprof文件。

c. Kernel Log 中搜索关键字 BOOTPROF

2. 开机时间耗时分解

a.Preloader耗时(5~8s): preloader

b.Lk耗时(4~6s): lk

c.Kernel初始化完成(5~10s): Kernel_init_done

d.开始播放动画30~35s: BOOT_Animation:START

e.动画播放完毕: BOOT_Animation:END

/proc/bootprof记录开机时间的文件举例如下:

<< /proc/bootprof >>:
----------------------------------------
0 BOOT PROF (unit:msec)
----------------------------------------
 // preloader LK
 1336 : preloader
 8331 : lk (Start->Show logo: 1382)
----------------------------------------
 ... ...
 // Kernel 初始化完成
 2902.540083 : 1-swapper/0 : Kernel_init_done
 
 ... ... 
 // 开机动画开始
 7958.560172 : 705-SurfaceFlinger: : BOOT_Animation:START
 ... ... 
 // 开机动画播放完毕
 298996.885174 : 2097-Binder:463_5 : BOOT_Animation:END
 299055.478251 : 1083-ActivityManager : AP_Init:[service]:[com.android.bluetooth]:[com.android.bluetooth/.btservice.AdapterService]:pid:3854
 299079.525174 : OFF
----------------------------------------
================ END of FILE ===============



/proc/bootprof 记录开机时间的文件

Tags:

最近发表
标签列表