魅族内核团队

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

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 软件的运行逻......

内存管理 —— ION

ION 是当前 Android 流行的内存分配管理机制,在多媒体部分中使用的最多,例如从 Camera 到 Display,从 Mediaserver 到 Surfaceflinger,都会利用 ION 进行内存分配管理。ION 的前任是 PMEM,关于 PMEM 我在 M030/M04X 项目中有接触过,后来由于 PMEM 的一些局限性,Google 推出了 ION 来取代 PMEM,当前......

Android MTP 分析

mtp简介MTP,全称是 Media Transfer Protocol(媒体传输协议)。它是微软的一个为计算机和便携式设备之间传输图像、音乐等所定制的协议。 Android 从3.0开始支持 MTP。MTP 的应用分两种角色,一个是作为 Initiator,另一个作为 Responder 。以”Android 平板电脑”连接 PC 为例,他们的关系如图所示。 Initiator —— 在......

samsung uboot fastboot command

1 fastboot协议fastboot 协议是一种通过 usb 连接 pc 和 bootloader 的机制。他被设计的非常容易实现,能够用于多种设备和运行于 Linux、Windows 或者 OSX 的主机。下面将会讲述 pc 和 bootloader 如何通信,以 fastboot flash 命令举例。 1.1 pc 端假设烧写的镜像名为 uboot.bin,烧写的分区名为 boot......

指纹 TEE

指纹 TEE TEE 介绍 TEE 架构 TEE 启动流程 TEE 应用场景以及前景 指纹硬件原理 指纹硬件原理 指纹通信接口与硬件资源 指纹软件框架 指纹TEE软件框架 指纹软件机制 一、TEE 介绍 1. TEE 架构TEE(Trusted Execution Environment) 是基于 ARM TrustZone 技术拓展而来的,TrustZone 技术是基于 A......

dump_stack 实现分析

1 简介说起 dump_stack() ,相信从事 Linux 内核或者驱动相关开发的同行对于此函数肯定不陌生。我们经常会用到此函数来对自己的代码进行 debug,可以快速帮助开发者理清函数调用流程,或者说解决 bug…… 首先我们来看一下 dump_stack 的打印,相信很多人都遇到过 : 123456789101112131415161718192021222324252627[ ......

搭建 Jenkins 服务指南

前言如果常常需要给其他相关部门输出固件验证问题,那么用 Jenkins 搭建一个自动化的编译环境会是一个不错的选择。这篇文章简单的介绍了 Jenkins 的基本使用,及如何利用插件进行权限的管理,邮件的发送设置。 一 . 在 Ubuntu 上搭建 jenkins 在终端上执行 1wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-c......