自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序猿Ricky的日常干货

学而不思则罔,思而不学则殆! (xiehaocheng127@163.com)

  • 博客(16)
  • 资源 (4)
  • 收藏
  • 关注

原创 android property实现路径

上层接口实现system/core/libcutils/properties.cpp:property_set/property_get:#include <sys/_system_properties.h>int property_set(const char *key, const char *value) { return __system_prope...

2018-06-29 14:36:10 4519

原创 UEFI开发与调试---文件操作

和存储器相关的Protocol有BlockIo,BlockIo2,DiskIo,DiskIo2。DiskIo/DiskIo2的实现分别依赖与BlockIo/BlockIo2,其中BlockIo,DiskIo提供了访问设备的阻塞函数,BlockIo2,DiskIo2提供异步函数。。它们的区别是BlockIo只能按照扇区为单位访问存储器,而DiskIo可以按照字节为单位访问。UEFI也会为每个分区生成...

2018-06-22 17:46:52 3445 1

原创 UEFI开发与调试---事件的处理

UEFI SPEC目前不支持多线程,是单线程环境,但是它必须提供一种异步机制来支持有限多任务。UEFI不再为开发者提供中断支持,也就是说我们无法利用UEFI提供的接口设置中断服务程序,那么如果来实现异步操作呢?那就用到了本章所介绍的事件(Event)功能,UEFI提供了对事件Event的支持,Event的内部实现当然也是依赖与中断的。事件的支持是由BootServices启动服务表提供的。...

2018-06-22 16:00:47 3534

原创 UEFI开发与调试---运行阶段介绍

UEFI的运行可以分为如下几个阶段:SEC阶段 此阶段是安全验证阶段,系统上电后即进入此阶段,作为UEFI的第一阶段,它是可信系统的根,一般可以在此阶段验证后面的PEI,此阶段大部分工作是为后面的PEI阶段提供运行环境。PEI阶段 PEI(Pre-EFI-Initialization)是EFI前期初始化阶段,资源依然十分有限,内存到了PEI后期才被初始化,其主要功能是为DXE准备执行环...

2018-06-22 11:39:22 1882

原创 UEFI开发与调试--edk2中的基础组件

还记得前面介绍的MdePkg和MdeModulePkg吗?这两个包中会实现UEFI内核中的基础组件,其中就包括了系统表,启动服务表,运行时服务表。系统表(System Table)系统表是edk2提供的一个最重要也是最基础的数据结构之一,它是沟通内核和应用/驱动的桥梁。通过系统表,应用程序和驱动才能够访问到内核和硬件资源。系统表包含了如下信息: - 表头 - 固件信息 - ...

2018-06-22 10:57:24 3955

原创 UEFI开发与调试---edk2中的应用模块/库模块/驱动模块

应用模块应用模块包含标准应用程序模块,shell应用程序模块,以及main应用程序模块标准应用程序模块 它是所有其他应用程序模块的基础,作为一个模块来说,同样由源文件和工程文件(.inf)组成。 它的特征如下:(1) .inf中的ENTRY_POINT一般设置为UefiMain,这是一个约定俗称的名字,所以这个规则并不是一定的。(2) 指定的ENTRY_POINT入口函数必须要...

2018-06-21 17:42:51 2865 2

原创 UEFI开发与调试---edk2中的Module

Edk2在设计是按照模块来进行的,其中模块包含有很多种类型,比如最常见的三种:应用程序模块,驱动模块,库模块。每个模块都包含了一个工程元数据文件(.inf)和源文件。.inf文件是用来辅助编译的,功能类似于Makefile;而源文件就是功能代码的实现了。本文主要用来介绍.inf的编写规则。类似于前文介绍的.dsc和.dec文件,工程元数据文件(.inf)也是由一系列块组成,它们有一些是必需块:...

2018-06-21 15:02:38 2635 1

原创 UEFI开发与调试---edk2中的Package

在开始编写UEFI APP之前,我们需要先对UEFI包和模块的概念有个了解。在edk2的根目录下,我们可以发现有很多*Pkg命令的目录,这些实际上都是各个不同的包,每个包中都是一组模块的集合,每个包中都有对应的描述文件(.dsc),声明文件(.dec)。当然如果这个包是用来生成固件Image或者Option Rom Image,那么这个包还需要包含一个.fdf文件(Flash Descript...

2018-06-21 14:57:17 7061

原创 UEFI开发与调试---edk2中子目录介绍

AppPkg UEFI Application Development Kit是一系列用来进行uefi app开发的套件,标准依赖库,工具以及demo,目标是降低UEFI app的开发门槛。MdePkg 全称为“Module Development Environment Package”,这是一个特殊的package,包含了用于开发一个module所需要的最小环境。一个module可能也...

2018-06-21 14:38:50 5155

原创 UEFI开发与调试---利用QEMU虚拟盘调试UEFI APP

由前文我们知道如何制作qemu虚拟盘了,那么对于UEFI的开发者,也可以通过虚拟盘来模拟启动过程,或者方便自己uefi app的调试。当我们制作好了虚拟盘之后,后续可以通过编译生成uefi app,然后把app放到虚拟盘中并更新,即可快速调试和验证,这种方式的优点是不用重复编译整个UEFI OVMF系统。QEMU可以支持很多种文件格式,下面将以qcow2和raw两种格式的镜像为例进行讲解。需要...

2018-06-21 14:24:45 7097 4

原创 UEFI开发与调试---QEMU虚拟盘的创建与修改

支持的文件格式qemu支持多种类型的文件系统,而最原生的以及最灵活的是qcow2类型了,这种文件系统支持写时复制,加密,压缩以及VM快照。 除了这种文件系统之外,如下类型也是被支持的:raw ,cloop ,cow,qcow,vmdk ,vdi ,vhdx,vpc 等等,每个版本会有一些差别,具体参考对应的Document文档。虚拟盘的创建方法既然qemu支持很多中类型的文件系统,...

2018-06-21 14:21:56 3031

原创 UEFI开发与调试---OVMF 固件简介

OVMF (Open Virtual Machine Firmware ) 旨在支持虚拟机启动的一套edk2 Package。目前支持如下特性:Current capabilities:* IA32 and X64 architectures* QEMU (0.10.0 or later) - Video, keyboard, IDE, CD-ROM, serial ...

2018-06-21 14:19:04 8640 13

原创 UEFI开发与调试---开发环境搭建

EDK2全称为“uEFI Development Kit”,是intel开源的一套符合UEFI标准的实现。edk2环境搭建代码下载github:https://github.com/tianocore/edk2.gitgit clone https://github.com/tianocore/edk2.git安装编译环境sudo apt-get inst...

2018-06-21 14:15:28 6824

原创 system分区签名校验方法

##签名过程整个system签名过程如下图所示:哈希树的生成Dm-verity 使用加密散列树提供块设备的透明完整性检查,每个块以 4k 的大小来划分,都有一个 SHA256 的值。树中的每个节点是加密 hash,其中叶节点包含物理数据块的 hash,并且中间节点包含其子节点的 hash。因为根节点中的哈希是基于所有其他节点的值,所以只有根哈希需要被信任才能验证树的其余部分。...

2018-06-07 11:07:54 10759

原创 Android Verified Boot 2.0

本文由英文所写,英文水平有限,如有错误请联系本作者,谢谢!BriefAVB2.0 is used in bootloader, it add an image “vbmeta.img” for this usage. A public Key will be compiled into Bootloader for verify vbmeta data and vbmeta.img inc...

2018-06-07 11:00:49 13164

原创 android中的数字签名技术

数字签名利用非对称加密技术和消息摘要技术来保证信息的安全可靠。发送方需要提供签名文件和CA证书,接收者才可以解密出对应的数据。数字证书同样也可以认为是一个数字签名,只不过签名的内容是消息发送方的公钥。与普通数字签名不同的是,数字证书中签名者不是随随便便一个普通的机构,而是要有一定公信力的机构,签发证书的机构叫做CA(Certification Agency)。CA会使用自己的私钥对消息发送者...

2018-06-04 16:30:05 1694

linux gtk hello test

gtk hello world,test for gtk lib

2016-01-14

linux v4l2 camera config

linux v4l2 camera config

2016-01-14

v4l2 camera capture and config

linux系统下的camera capture和camera config实例

2015-08-17

linux v4l2 camera capture

v4l2接口,camera capture实例,合法合规!

2003-07-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除