首页 > 其他分享 >ABL获取XBL信息记录

ABL获取XBL信息记录

时间:2024-09-02 23:04:12浏览次数:11  
标签:Status EFI 获取 ABL XBL UEFI XblStatus

generate a GUID.
4c698461-54ba-4963-a12b-e9c77c0728d8
e2575d56-a5c2-4baf-ad5d-58a0dde9fcfa

https://www.cnblogs.com/linhaostudy/p/18360420
Uefi ABL读取XBL设置的标志位

https://www.cnblogs.com/yyy8/p/18393668
https://www.cnblogs.com/yyy8/p/18393675
https://www.cnblogs.com/yyy8/p/18393700

Android系统中,ABL(Android Boot Loader)通过UEFI协议与句柄机制调用XBL(Boot Loader)中的驱动。这一过程涉及几个关键步骤和组件:

‌创建Protocol驱动‌:首先,在boot_images目录下的QcomPkg/Drivers/TestDxe目录中创建两个文件:TestDxe.inf和TestDxe.c。TestDxe.inf文件定义了驱动的入口点和编译内容,类似于makefile,而TestDxe.c定义了驱动的具体内容。这包括设置PLATFORM_UEFI_PROTOCOL_VERSION,BASE_NAME,FILE_GUID,MODULE_TYPE,VERSION_STRING,以及ENTRY_POINT,即驱动的入口函数。
‌ABL调用XBL中的驱动‌:ABL作为UEFI的一个应用,可以直接使用UEFI核心中定义的协议来访问硬件信息,如DAL,SDCC等。这涉及到将相关的头文件和GUID从boot_images复制到ABL的目录中,以便ABL能够识别和使用这些协议。

abl调用xbl中的驱动
高通xbl创建protocol驱动 及 abl调用xbl中的驱动
Uefi ABL读取XBL标志位
abl如何调用xbl里面的protocol

百度AI结果
Uefi ABL读取XBL标志位
UEFI ABL读取XBL标志位的操作涉及到UEFI规范中的EFI变量服务。XBL标志通常用于表示UEFI固件是否处于解锁状态,允许用户加载未签名的EFI应用程序。

以下是一个简单的UEFI ABL代码示例,用于读取XBL标志位:

include <Uefi.h>

include <Library/UefiLib.h>

include <Library/UefiBootServicesTableLib.h>

include <Protocol/VariableLock.h>

EFI_STATUS ReadXblFlag(OUT BOOLEAN *XblStatus) {
EFI_STATUS Status;
UINTN Size = sizeof(BOOLEAN);
// 定义XBL变量名称
CHAR16 XblVariableName[] = L"XblMode";

// 分配内存保存XBL变量值
*XblStatus = AllocatePool(Size);
if (*XblStatus == NULL) {
    return EFI_OUT_OF_RESOURCES;
}

// 获取XBL变量值
Status = gRT->GetVariable(XblVariableName, &gEfiSecureBootVariableGuid, NULL, &Size, *XblStatus);
if (EFI_ERROR(Status)) {
    // 变量不存在或者其他错误
    FreePool(*XblStatus);
    *XblStatus = NULL;
}

return Status;

}

EFI_STATUS EFIAPI UefiMain (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
) {
EFI_STATUS Status;
BOOLEAN XblStatus;

Status = ReadXblFlag(&XblStatus);
if (!EFI_ERROR(Status)) {
    // 输出XBL状态
    if (XblStatus) {
        Print(L"XBL is enabled.\n");
    } else {
        Print(L"XBL is disabled.\n");
    }
} else {
    // 处理错误
    Print(L"Error reading XBL status.\n");
}

return EFI_SUCCESS;

}

在这个例子中,ReadXblFlag函数负责读取XBL标志位。它首先分配内存来存储变量值,然后尝试获取变量。如果成功,它将返回变量值;如果失败,它将释放分配的内存并将指针设置为NULL。UefiMain函数则简单地调用ReadXblFlag并输出结果。

请注意,这个代码需要在UEFI环境中运行,并且可能需要相应的权限才能访问EFI变量。此外,具体的XBL变量名称和GUID可能会根据不同的UEFI实现而有所不同。

标签:Status,EFI,获取,ABL,XBL,UEFI,XblStatus
From: https://www.cnblogs.com/yyy8/p/18393711

相关文章

  • 高通xbl创建protocol驱动,abl调用xbl中的驱动
    UEFI有关的文件格式介绍:fdf:flashdefinitionfile,描述flash分区地址范围dec:packagedeclarationfile,定义了不同模块的GUID信息dsc:descriptionfile,主要包含需要用到的所有inf文件inf:单个模块的编译信息,类似makefileefi:最终编译生成的UEFI可执行文件一、xbl创建protocol驱......
  • abl如何调用xbl里面的protocol
    参考:高通文档HowtouseSMEMinABL?Forpreviousplatform,AndroidLKwasusedforbootloader,whileinrecentplatformsUEFIisusedtoreplacetheoldAndroidLKbootloader.TherearetwopartsofUEFImodules,oneisinboot_imageswhichiscalledUEFIco......
  • (多模态)CoDi:Any-to-Any Generation via Composable Diffusion
    摘要我们提出了可组合扩散(CoDi),这是一种新的生成模型,能够从任何输入模式组合生成任何输出模式组合,如语言、图像、视频或音频。与现有的生成式人工智能系统不同,CoDi可以并行生成多种模式,其输入不限于文本或图像等模式的子集。尽管缺乏许多模式组合的训练数据集,但我们建议在输......
  • 安全:nftables的常用命令(查看规则)
    一,nftables的地址簇和相应的iptables命令行工具nftables的地址簇iptables命令行工具ip  仅匹配IPv4数据包。如果没有指定地址系列,这是默认设置iptablesip6   ip6tablesinet   iptables和ip6tablesarp   arptablesbridge   ebtable......
  • 获取导出题号范围
    ///<summary>///获取导出题号范围///</summary>///<paramname="strRangeText">导出题号范围表达式,如:0,3,5-9,20</param>///<returns>List<int>导出题号范围</returns>privateboolgetImportNumber(stringstrRangeText,outList<......
  • 在Angular v3以上版本中,怎么获取 HTML 元素的属性值?
    在Angular中,怎么获取HTML元素的属性值?或者说类似js来操作操作html元素的属性1:使用ElementRef使用ElementRef可以直接访问DOM元素,并获取其属性值。父组件(ParentComponent)import{Component,OnInit,ViewChild,ElementRef}from'@angular/core';@Component({......
  • Arduino基础入门学习——使用DHT11温湿度传感器获取温湿度
    使用DHT11温湿度传感器获取温湿度一、前言二、DHT11介绍三、准备工作四、程序代码五、运行结果六、结束语一、前言老规矩,再来一句名言激励激励大家,当然,也激励自己(狗头):             读书百遍,其义自见。——晋·陈寿二、DHT11介绍DHT11采用单总线......
  • 【Qt笔记】QTableView控件详解
     目录引言 一、定义与架构二、主要功能与特点2.1 显示表格数据2.2编辑表格数据2.3自定义外观和交互2.4数据排序和过滤2.5支持拖放操作2.6自适应大小2.7上下文菜单2.8信号与槽三、常用属性设置3.1设置模型3.2 设置选择模型3.3 隐藏垂直标题3.4 ......
  • 这份 Stable diffusion 提示词攻略,记得收好了!
    大家好,今天给大家分享的是关于Stablediffusion提示词的基础和进阶语法,为什么有必要了解这个呢?首先是提示词对出图效果影响很大,了解提示词的用法有助于我们写出更优秀的提示词;其次就是我们可能会去C站拷贝别人的提示词,虽然直接拷贝过来也能得到不错的效果,但这样只会“知其......
  • Kettle 发送Http请求获取数据,并保存到db
    布局图 1.Generaterows:设置请求参数 2.配置第一个接口(登录)- POST  2.1.往请求head中插入数据2.2.从响应的head中读取数据  2.3.对获取的数据进行处理 3.配置第二个接口(获取数据)-GET 3.1.从响应的结果中,反序列化数据  5.保存到DB Reference:......