魅族内核团队

一个有内涵的技术分享平台

eBPF初体验:Android设备网络优化实践

1. 概述1.1 eBPF是什么先看看官方原文释惑 eBPF is a revolutionary technology with origins in the Linux kernel that can run sandboxed programs in a privileged context such as the operating system kernel. It is use......

Android Input 调试与优化

Android input系统负责处理与管理用户输入, 是用户交互体验的中枢,涉及从上到下各个领域。当遇到一些复杂的 Input 相关性能问题时,如何进行精准的 Debug 定位呢?本篇旨在介绍android Input的工作流程及debug手段,并借助perfetto工具,分享一些 Android Input Debug 与优化的实践和相应的优化方案。 一. Android input 常......

人脸解锁带来的安卓系统崩溃之谜!

问题背景用户反馈开启人脸解锁后,偶现密码解锁、指纹解锁、人脸解锁均无法使用,系统卡死随后出现安卓重启。 问题分析SWT之初步释疑查看android SWT(Software Watchdog Timeout)日志,发现android.ui线程卡死。1Subject: Blocked in handler on ui thread (android.ui) 查看android.ui堆栈,可以看......

Android Verified Boot 2.0

Android Verified Boot 2.0流程Android Verified Boot(AVB)的作用是校验各个镜像,确保各个镜像没有被篡改过的。如果镜像被篡改过,设备将会报启动异常。 概览: 设备上电最早启动pbl(primary bootloader),进行secboot(secure boot)工作,secboot主要工作是校验bootloader的合法性,校验没问题才启动......

Android Binder

1、binder原理纵观现有市面上所有讲binder的文章,都存在一个最大的问题:没有讲清楚binder对象是什么?不清楚binder对象是什么,那就不能理解handle是什么?不能理解什么时候是binder什么时候是handle,那就不能真正理解整个IPC的通讯过程。 我们首先回到binder的目的,就是IPC(Inter-Process Communication)进程间通讯。那么怎么样......

kernel 空间加载用户空间fw实现原理

随着手机外围器件的集成度和复杂度越来越高, 单纯的设置相关寄存器已经无法使得器件可以正常的工作. 在一般情况下,需要将一个特定的fw下载到器件中, 确保器件可以正常稳定的运行, 比如:camera ois,camera actuator, TP等等. 一般情况下, 有以下三种方案: 直接将fw data转化为特定的数组,编码在驱动代码中. 将fw data烧录到一个分区中,需要的时候从分区......

Android FBE

Android FBE1. FBE 简介 名称: FBE, File-Based Encryption,基于文件的加密 凭据加密 (CE) 存储空间:这是默认存储位置,只有在用户解锁设备后才可用。设备加密 (DE) 存储空间:在直接启动模式期间以及用户解锁设备后均可用。 开启 FBE 方式,在相关的 fstab 文件中添加相关的代码: 1/dev/block/bootdevice/by-n......

Linux Time

1、Linux时钟框架DroidPhoneo 上图是linux时钟框架一个经典的描述。本质上linux各种时钟架构和服务是基于硬件提供的两种timer而构建的。 1、定时Timer 这类timer每个cpu都有一个独立的,称为local timer。这类timer的中断一般都是PPI(Private Peripheral Interrupt)类型,即每个cpu都有独立一份中断。 与PPI对......

Device Tree 详解

1、DTS语法对于DeviceTree的来历和用处大部分人都已经非常了解了,DeviceTree发源于PowerPC架构,为了消除代码中冗余的各种device注册代码而产生的,现在已经成为了linux的通用机制。 DeviceTree的结构非常简单,由两种元素组成:Node(节点)、Property(属性)。下图是一个真实的简单的DeviceTree树形结构图。 Node节点。在DTS中......

TEE 软件交互流程概述

前言 本文建立在你已经对 TEE 技术的基础知识有一定了解的基础之上,如需了解,可以阅读本博客的文章《指纹 TEE》1。 本文将基于 OP-TEE2 开源 TEE 软件,介绍 TEE 软件中,REE 客户端访问 TEE 环境资源的具体调用流程。 为此,本文首先会介绍实现 REE 到 TEE 调用的各个基础组件组成以及各自功能,然后分析各个基础组件的交互流程时序,使读者对 TEE 软件的运行逻......