MTK:oemlock介绍
参考:
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介绍相关推荐
- MTK PerfService介绍
1.在MTK芯片上如何控制CPU的核数和频率-MTK PerfService 一句话:PerfService就是用来调整CPU/GPU资源的.对于老的API,可以更简单地讲就是调CPU核数和CPU频率 ...
- MTK介绍MTK平台介绍
MTK是联发科技股份有限公司的英文简称,英文全称叫MediaTek.其创立于1997年,是世界顶尖的IC专业设计公司,位居全球消费性IC片组的领航地位. 2007年9月10日,联发科(MTK)宣布与A ...
- [专栏目录]-Android专栏目录
Android 类别 博文 参考/说明 security gatekeeper 1.Android locksettings/gatekeeper代码导读 2.Android Gatekeeper流程 ...
- 疯壳-MTK智能穿戴入门篇
目录 一.MTK开发环境搭建 3 二.MTK平台框架 6 三.MTK编译指令 11 四.MTK编程入门 11 五.资源 12 六.新增APP 22 MTK 平台介绍 MTK 是全球著名IC设计厂商台 ...
- 看到大神移植系统了,我来整理下市面上的系统...
http://bbs.anzhi.com/thread-7611106-1-1.html 希望能移植几个算几个!!! ARM芯片优化的系统 Linaro Linaro,一间非营利性质的开放源代码软件工 ...
- 手机操作系统开源软件
http://www.oschina.net/project/tag/218/mobile-os?lang=0&os=0&sort=view&p=1 开源手机操作系统 Andr ...
- 个人收集的一些手机研发资料
FlashTool_v3.1.04 FlashTool v3[1][1].1.04 MTK平台板测校准原理 FlashTool v5.1140.00 MTK6223方案介绍 高薪诚聘软件J2ME开发工 ...
- MTK DRM常见问题介绍
[DESCRIPTION] 主要介绍mtk支持的DRM Widevine Level; WV与DRM feature option的开关;play movies play videos popups ...
- Camera4 MTK camera驱动结构介绍
一.概述: MTK camera主要的内容在hal层,现在有hal1/hal3,当下主流的使用的是hal3,驱动主要负责sensor 电源的控制以及sensor相关寄存器的操作,MTK采用设备和驱动 ...
最新文章
- (读) 周鸿祎重新思考360(有感)
- JavaScript之Style属性学习
- [转]31个让你变聪明的方法
- 外媒:微信小程序顺应“APP中启动APP”的行业潮流
- Linux学习134 Unit 8
- 如何导出已有的谷歌插件,又如何把导出的插件安装到360浏览器中,又如何对插件小修小改?...
- 面向对象的特点_java基础 之 面向对象
- wap base.inc.php,MetInfo database.inc.php配置
- C#使用NPOI导出excel设置单元格背景颜色
- Atitit 数据分析之道 attilax著 1. 数据分析的目的	2 1.1. 描述型:发生了什么?可视化仪表盘化很重要。	3 1.2. 2. 诊断型:为什么会发生?结合历史记录	3 1.3. 3
- Linux 空间占用100%,查找大文件命令(亲测有效)
- matlab 计算工时,C# + Matlab 实现计件工时拟合
- 将VSCode添加到鼠标右键菜单
- 选股策略与技巧 选股策略报告
- Redis过期策略 实现原理
- macOS Monterey 12.5 (21G72) Boot ISO 原版可引导镜像
- 专访中科创达软件工程师龙辉:Idea赋予实践的演进之路
- 锁定计算机忘记密码,笔记本防盗锁忘记密码_笔记本电脑锁忘记密码
- 技术贴(1):将移动硬盘名从F盘改为E盘
- 波音737连续坠毁,AI要背锅?
热门文章
- 数据中心机房常用通信管道塑料管材
- 从“新基建”重新认识数据中心
- 百度地图 key_Android百度地图导航的接入(包含驾车、公交、步行)
- Python之schedule:schedule库的简介、安装、使用方法之详细攻略
- Computer:屏幕录像专家软件的简介、安装、使用方法之详细攻略
- Linux之apt-get:apt-get的简介、安装、使用方法之详细攻略
- leetcode 235. 二叉搜索树的最近公共祖先
- 输入、输出与Mad Libs游戏
- 【提权思路】绕过SecureRDP限制远程连接
- Linux设备驱动--块设备(二)之相关结构体