参考:

1、https://source.android.com/security/verifiedboot/boot-flow
2、vendor/mediatek/proprietary/bootable/bootloader/lk/platform/common/boot/vboot_state.c
3、system/core/fastboot/device/utility.cpp
4、system/core/fs_mgr/libfs_avb/util.cpp

重要属性介绍:

1、androidboot.verifiedbootstate
androidboot.verifiedbootstate有四个值
green、yellow、orange(设备已UNLOCKED)、red

在uboot(lk中),根据 g_boot_state全局变量,对该属性进行赋值
在fastboot代码中,会通过cat /proc/cmdline去查找androidboot.verifiedbootstate=orange
在system/core/fs_mgr/libfs_avb中,提供IsDeviceUnlocked,返回unlock的状态

2、androidboot.veritymode

引导加载程序通过内核命令选项将启动时验证状态传达给 Android。它会将 androidboot.verifiedstate 选项设置为以下其中一个值:

green:如果设备已LOCKED且未使用可由用户设置的信任根
yellow:如果设备已LOCKED且使用了可由用户设置的信任根
orange:如果设备已UNLOCKED
androidboot.veritymode 选项设置为 eio 或 restart,具体取决于引导加载程序在处理 dm-verity 错误时所处的状态。

androidboot.verifiedbootstate相关代码

vendor/mediatek/proprietary/bootable/bootloader/lk/platform/common/boot/vboot_state.c

int set_boot_state_to_cmdline()
{int ret = 0;#ifndef MTK_SECURITY_SW_SUPPORTcmdline_append("androidboot.verifiedbootstate=orange");
#elseswitch (g_boot_state) {case BOOT_STATE_ORANGE:cmdline_append("androidboot.verifiedbootstate=orange");break;case BOOT_STATE_YELLOW:cmdline_append("androidboot.verifiedbootstate=yellow");break;case BOOT_STATE_RED:cmdline_append("androidboot.verifiedbootstate=red");break;case BOOT_STATE_GREEN:cmdline_append("androidboot.verifiedbootstate=green");break;default:break;}
#endifreturn ret;
}

system/core/fastboot/device/utility.cpp

bool GetDeviceLockStatus() {std::string cmdline;// Return lock status true if unable to read kernel command line.if (!android::base::ReadFileToString("/proc/cmdline", &cmdline)) {return true;}return cmdline.find("androidboot.verifiedbootstate=orange") == std::string::npos;
}

system/core/fs_mgr/libfs_avb/util.cpp

bool IsDeviceUnlocked() {std::string verified_boot_state;if (fs_mgr_get_boot_config("verifiedbootstate", &verified_boot_state)) {return verified_boot_state == "orange";}return false;}

MTK:oemlock介绍相关推荐

  1. MTK PerfService介绍

    1.在MTK芯片上如何控制CPU的核数和频率-MTK PerfService 一句话:PerfService就是用来调整CPU/GPU资源的.对于老的API,可以更简单地讲就是调CPU核数和CPU频率 ...

  2. MTK介绍MTK平台介绍

    MTK是联发科技股份有限公司的英文简称,英文全称叫MediaTek.其创立于1997年,是世界顶尖的IC专业设计公司,位居全球消费性IC片组的领航地位. 2007年9月10日,联发科(MTK)宣布与A ...

  3. [专栏目录]-Android专栏目录

    Android 类别 博文 参考/说明 security gatekeeper 1.Android locksettings/gatekeeper代码导读 2.Android Gatekeeper流程 ...

  4. 疯壳-MTK智能穿戴入门篇

    目录 一.MTK开发环境搭建 3 二.MTK平台框架 6 三.MTK编译指令 11 四.MTK编程入门 11 五.资源 12 六.新增APP 22 MTK  平台介绍 MTK 是全球著名IC设计厂商台 ...

  5. 看到大神移植系统了,我来整理下市面上的系统...

    http://bbs.anzhi.com/thread-7611106-1-1.html 希望能移植几个算几个!!! ARM芯片优化的系统 Linaro Linaro,一间非营利性质的开放源代码软件工 ...

  6. 手机操作系统开源软件

    http://www.oschina.net/project/tag/218/mobile-os?lang=0&os=0&sort=view&p=1 开源手机操作系统 Andr ...

  7. 个人收集的一些手机研发资料

    FlashTool_v3.1.04 FlashTool v3[1][1].1.04 MTK平台板测校准原理 FlashTool v5.1140.00 MTK6223方案介绍 高薪诚聘软件J2ME开发工 ...

  8. MTK DRM常见问题介绍

    [DESCRIPTION] 主要介绍mtk支持的DRM Widevine Level; WV与DRM feature option的开关;play movies play videos popups  ...

  9. Camera4 MTK camera驱动结构介绍

    一.概述: MTK  camera主要的内容在hal层,现在有hal1/hal3,当下主流的使用的是hal3,驱动主要负责sensor 电源的控制以及sensor相关寄存器的操作,MTK采用设备和驱动 ...

最新文章

  1. (读) 周鸿祎重新思考360(有感)
  2. JavaScript之Style属性学习
  3. [转]31个让你变聪明的方法
  4. 外媒:微信小程序顺应“APP中启动APP”的行业潮流
  5. Linux学习134 Unit 8
  6. 如何导出已有的谷歌插件,又如何把导出的插件安装到360浏览器中,又如何对插件小修小改?...
  7. 面向对象的特点_java基础 之 面向对象
  8. wap base.inc.php,MetInfo database.inc.php配置
  9. C#使用NPOI导出excel设置单元格背景颜色
  10. Atitit 数据分析之道 attilax著 1. 数据分析的目的 2 1.1. 描述型:发生了什么?可视化仪表盘化很重要。 3 1.2. 2. 诊断型:为什么会发生?结合历史记录 3 1.3. 3
  11. Linux 空间占用100%,查找大文件命令(亲测有效)
  12. matlab 计算工时,C# + Matlab 实现计件工时拟合
  13. 将VSCode添加到鼠标右键菜单
  14. 选股策略与技巧 选股策略报告
  15. Redis过期策略 实现原理
  16. macOS Monterey 12.5 (21G72) Boot ISO 原版可引导镜像
  17. 专访中科创达软件工程师龙辉:Idea赋予实践的演进之路
  18. 锁定计算机忘记密码,笔记本防盗锁忘记密码_笔记本电脑锁忘记密码
  19. 技术贴(1):将移动硬盘名从F盘改为E盘
  20. 波音737连续坠毁,AI要背锅?

热门文章

  1. 数据中心机房常用通信管道塑料管材
  2. 从“新基建”重新认识数据中心
  3. 百度地图 key_Android百度地图导航的接入(包含驾车、公交、步行)
  4. Python之schedule:schedule库的简介、安装、使用方法之详细攻略
  5. Computer:屏幕录像专家软件的简介、安装、使用方法之详细攻略
  6. Linux之apt-get:apt-get的简介、安装、使用方法之详细攻略
  7. leetcode 235. 二叉搜索树的最近公共祖先
  8. 输入、输出与Mad Libs游戏
  9. 【提权思路】绕过SecureRDP限制远程连接
  10. Linux设备驱动--块设备(二)之相关结构体