<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[大家好我是nono牛，在安全的世界里面我们一起学习与探讨]]></title><description><![CDATA[大家好我是nono牛，在安全的世界里面我们一起学习与探讨]]></description><link>https://blog.youkuaiyun.com/weixin_52527621</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_52527621]]></copyright><item><title><![CDATA[数字大宅的安保进化论：起底安卓 FBE 与元数据加密的工作细节]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/160476885</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/160476885</guid><author>weixin_52527621</author><pubDate>Fri, 24 Apr 2026 15:42:08 +0800</pubDate><description><![CDATA[本文深入解析了安卓文件加密机制，分为三个核心组件：vold负责密钥管理，fscrypt执行文件内容加密，dm-default-key处理元数据加密。vold通过TEE安全芯片获取密钥，使用ioctl系统调用设置加密策略；fscrypt驱动在内存中实时解密文件；元数据加密则通过dm-default-key在块设备层实现。加密采用分层密钥体系：硬件密钥用于系统启动，DE密钥解锁公共功能，用户输入PIN码后生成CE密钥解密个人数据。最终形成双重保护：FBE加密文件内容，Metadata加密隐藏文件系统结构，共同构]]></description><category></category></item><item><title><![CDATA[彻底搞懂安卓加密：一文看透 FDE、FBE 与元数据加密的爱恨情仇]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/160469910</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/160469910</guid><author>weixin_52527621</author><pubDate>Fri, 24 Apr 2026 11:33:05 +0800</pubDate><description><![CDATA[《安卓加密进化史：从铁门保镖到智能管家》 安卓加密技术经历了三代革新：FDE全盘加密像固执的仓库保镖，重启后必须输入密码才能访问任何数据，导致基础功能瘫痪；FBE文件级加密则化身五星管家，将数据分区域管理，未解锁时也能保持通话等基础服务；元数据加密进一步充当隐私窗帘，隐藏文件特征信息。现代安卓系统（Android 9+）结合FBE与元数据加密，配合TEE安全芯片形成立体防护，即使物理拆解设备也无法破解数据。这套机制既保障安全性，又兼顾使用便利性，完美诠释了移动加密技术的智慧演进。]]></description><category></category></item><item><title><![CDATA[为什么不能直接在项目 DTS 中引用平台的dts]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/158387166</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/158387166</guid><author>weixin_52527621</author><pubDate>Wed, 25 Feb 2026 15:51:57 +0800</pubDate><description><![CDATA[摘要：在设备树中覆盖 memory_ssmr_features 节点属性时，直接包含 mtxxx.dts 会导致语法冲突。解决方案是创建 .dtsi 文件：1) 复制 mtxxx.dts 为 mtxxx.dtsi 并移除顶层语法；2) 修改原 .dts 仅包含该 .dtsi；3) 在项目 DTS 中通过 &amp;memory_ssmr_features 引用并覆盖属性。这种方法实现了平台默认值与项目定制的解耦，避免全局修改带来的影响，是符合设备树设计理念的标准做法。]]></description><category></category></item><item><title><![CDATA[如何快速编译dts]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/158380549</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/158380549</guid><author>weixin_52527621</author><pubDate>Wed, 25 Feb 2026 09:51:14 +0800</pubDate><description><![CDATA[摘要：编译设备树文件(DTS)有三种方法：(1)在内核源码中使用make dtbs命令(推荐)；(2)直接使用dtc工具快速编译单个文件；(3)先预处理再编译，解决复杂头文件依赖问题。建议在完整内核环境下使用方法一，能正确处理所有依赖关系。其他方法适用于简单验证或解决特定编译问题。]]></description><category></category></item><item><title><![CDATA[平台dts代码移植到项目]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/158380448</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/158380448</guid><author>weixin_52527621</author><pubDate>Wed, 25 Feb 2026 09:46:31 +0800</pubDate><description><![CDATA[本文介绍如何将平台级设备树中的 memory-ssmr-features 节点移植到具体项目设备树，并修改 svp-region-based-size 为原值一半。主要步骤包括：1）确保项目DTS包含平台DTSI文件；2）通过节点标签引用并覆盖目标属性，将384MiB(0x18000000)改为192MiB(0xC000000)；3）验证编译结果。关键点在于正确使用节点标签引用，仅修改必要属性，同时保持其他属性不变。修改时需注意十六进制数值计算和设备树语法规范。]]></description><category></category></item><item><title><![CDATA[Makefile中打印变量]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156914719</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156914719</guid><author>weixin_52527621</author><pubDate>Tue, 13 Jan 2026 22:44:27 +0800</pubDate><description><![CDATA[输出格式：Makefile:2: VAR is set to: test value。# 使用方法：make print-CC 或 make print-CFLAGS。· 简单调试：使用 $(info) 或 $(warning)1. 调试时：使用 make -p 可以打印所有变量和规则。# 方法2：打印所有环境变量和Makefile变量。# 示例3：在规则外部打印（解析阶段打印）# 方法1：打印所有变量（包括内置变量）# 方法3：简单的所有变量打印。· 规则内打印：使用 echo。]]></description><category></category></item><item><title><![CDATA[Gatekeeper 的精确定义]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790679</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790679</guid><author>weixin_52527621</author><pubDate>Sat, 10 Jan 2026 10:32:24 +0800</pubDate><description><![CDATA[📌 摘要：Android Gatekeeper 核心解析 Gatekeeper是Android系统中由TEE/SE硬件支持的专用身份验证组件，负责安全验证用户密码/PIN/图案等知识因子。其核心价值在于： 1️⃣ 硬件隔离：验证逻辑在安全环境中执行，防止主系统被入侵时密码模板泄露 2️⃣ 信任传递：生成加密签名的AuthToken，为密钥库等安全服务提供防伪造的验证凭证 3️⃣ 抗攻击：硬件级实现尝试限制，阻断暴力破解 4️⃣ 系统协同：与密钥库形成安全链条，其验证结果是释放受保护密钥的必要条件；与生物识]]></description><category></category></item><item><title><![CDATA[TEE IPC机制]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790613</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790613</guid><author>weixin_52527621</author><pubDate>Sat, 10 Jan 2026 10:31:26 +0800</pubDate><description><![CDATA[本文深入解析了TEE（可信执行环境）中IPC（进程间通信）机制的设计特点。在标准TEE架构中，IPC支持安全世界与普通世界之间以及可信应用（TA）之间的安全通信，但会带来性能开销。相比之下，受限TEE设计取消了TA间通信，转而通过在普通世界维护认证状态缓存来智能过滤请求，从而大幅减少昂贵的TEE调用次数。这种设计以牺牲TA功能组合性为代价，换取了更好的性能和功耗表现。文章通过密码验证流程示例，展示了这种优化设计的工作原理及其优缺点。]]></description><category></category></item><item><title><![CDATA[ps -A|grep gate]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790440</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790440</guid><author>weixin_52527621</author><pubDate>Sat, 10 Jan 2026 10:28:29 +0800</pubDate><description><![CDATA[摘要：在Android系统中，gatekeeperd（PID 6590）和android.hardware.gatekeeper@1.0-service（PID 811）作为独立进程协同工作，构成安全验证的分层架构。gatekeeperd作为AIDL服务门面处理上层请求，通过HIDL接口调用HAL服务执行硬件相关操作。这种设计体现了Android从HIDL向AIDL演进的过渡状态，前者负责协议处理，后者专注硬件交互。典型调用流程为：应用请求→框架层AIDL调用→HIDL转换→硬件执行→结果返回。该架构在保持]]></description><category></category></item><item><title><![CDATA[深入理解gatekeeperd 与 android.hardware.gatekeeper@1.0-service调用规则]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790255</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790255</guid><author>weixin_52527621</author><pubDate>Sat, 10 Jan 2026 10:26:21 +0800</pubDate><description><![CDATA[摘要：gatekeeperd与android.hardware.gatekeeper@1.0-service协同完成Android密码验证，流程分为四步：(1)应用通过Binder调用LockSettingsService；(2)请求转发至gatekeeperd守护进程；(3)gatekeeperd通过HIDL/AIDL调用HAL服务；(4)HAL服务通过Trusty IPC等机制与TEE安全环境通信。TEE完成验证后返回签名令牌，最终由Keystore服务授权释放加密密钥。该架构涉及普通世界与安全世界的协]]></description><category></category></item><item><title><![CDATA[android.hardware.gatekeeper@1.0-service 与 gatekeeperd 区别]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790160</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156790160</guid><author>weixin_52527621</author><pubDate>Sat, 10 Jan 2026 10:22:51 +0800</pubDate><description><![CDATA[Android Gatekeeper安全系统包含gatekeeperd和android.hardware.gatekeeper@1.0-service两个核心组件。gatekeeperd是运行在Android框架层的守护进程，负责提供Binder接口并处理上层请求；而HAL服务则是硬件抽象层的具体实现，负责与安全硬件/TEE交互执行密码验证等敏感操作。两者分工明确，前者处理协议通信，后者专注安全计算，共同保障设备解锁过程的安全性。]]></description><category></category></item><item><title><![CDATA[创建简单可 start/stop 的 init 服务]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156398655</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156398655</guid><author>weixin_52527621</author><pubDate>Mon, 29 Dec 2025 21:50:07 +0800</pubDate><description><![CDATA[本文介绍了如何创建一个支持 start/stop 操作的简单 init 服务。项目结构包含构建配置文件、服务实现代码和 init 启动配置。服务实现代码展示了信号处理、控制 socket 监听、命令处理等功能，支持通过信号或 socket 进行控制。服务主循环采用 select 机制实现事件驱动，包含周期性任务执行和资源清理逻辑。该示例可作为基础框架，扩展实现更复杂的系统服务功能。]]></description><category></category></item><item><title><![CDATA[为什么有些服务可以用 start/stop，有些不行]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156385255</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156385255</guid><author>weixin_52527621</author><pubDate>Mon, 29 Dec 2025 11:03:41 +0800</pubDate><description><![CDATA[Android服务启动机制解析 Android系统中服务的启动控制存在显著差异，主要分为两类： init管理的原生服务： 定义在/system/etc/init/或/vendor/etc/init/目录的.rc文件中 作为独立进程运行（C/C++/Rust实现） 可通过start/stop命令控制（如gatekeeperd、netd） 具有独立生命周期，可按需启停 SystemServer管理的Java服务： 运行在SystemServer进程内（Java实现） 包括AMS、PMS等核心服务 无法单独启停，]]></description><category></category></item><item><title><![CDATA[gatekeeperd.rc 文件详细分析]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156385192</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156385192</guid><author>weixin_52527621</author><pubDate>Mon, 29 Dec 2025 11:01:15 +0800</pubDate><description><![CDATA[本文详细分析了Android系统中的gatekeeperd服务，包括其启动配置、运行机制和功能实现。主要内容包括： 服务配置：通过gatekeeperd.rc文件定义服务属性，包括以system用户身份运行、late_start启动类别和资源限制配置。 系统架构：详细描述了服务启动流程、数据存储结构（位于/data/misc/gatekeeper）以及与SELinux的安全上下文关系。 构建与运行：分析了从Android.bp构建到系统部署的完整流程，包括启动时机选择、资源限制策略和数据存储安全设计。 监控]]></description><category></category></item><item><title><![CDATA[Android.bp 配置文件详解---gatekeeperd]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156385050</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156385050</guid><author>weixin_52527621</author><pubDate>Mon, 29 Dec 2025 10:59:15 +0800</pubDate><description><![CDATA[这篇文档详细解析了Android系统中gatekeeperd守护进程的构建配置文件Android.bp。该文件采用Apache 2.0许可证，定义了gatekeeperd及其相关组件的构建规则，包括： 构建配置：详细说明了编译标志、源文件、依赖库等配置项，使用最新的KeyMint HAL AIDL NDK，并依赖多个安全相关库如libbinder、libgatekeeper、libcrypto等。 组件定义： 可执行文件gatekeeperd的主程序入口 AIDL接口文件组及其共享库实现 模糊测试目标用于安]]></description><category></category></item><item><title><![CDATA[Android.bp 实例运行结果及详细解释 2]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156315132</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156315132</guid><author>weixin_52527621</author><pubDate>Fri, 26 Dec 2025 22:21:56 +0800</pubDate><description><![CDATA[Android.bp构建系统解析与应用构建过程 本文详细阐述了Android.bp构建配置文件在Android系统中的应用，重点展示了三种典型构建场景： C++程序构建：通过cc_library_static和cc_binary模块构建静态库和可执行文件，生成可执行文件myapp及其依赖库 Android应用构建：使用android_app模块构建APK应用包，包含Java代码编译、资源处理和APK打包过程 复杂项目构建：演示多模块协同构建，包括静态库、动态库、可执行文件及配置文件的生成 构建过程在Andr]]></description><category></category></item><item><title><![CDATA[Android.bp 语法编程指南 1]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156315114</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156315114</guid><author>weixin_52527621</author><pubDate>Fri, 26 Dec 2025 22:20:12 +0800</pubDate><description><![CDATA[Android.bp 是 Android 构建系统(Soong)使用的构建描述文件，采用声明式语法替代传统的 Android.mk。本文介绍了其基本语法规则、常用模块类型(cc_binary、cc_library、java_library等)及完整实例，包含变量定义、文件操作、条件编译等特性。指南还提供了调试技巧和最佳实践，如保持模块简洁、合理分组、添加注释等。通过示例代码展示了如何构建C++程序、Android应用和多模块项目，帮助开发者快速掌握这一构建系统的核心语法和使用方法。]]></description><category></category></item><item><title><![CDATA[MTK平台Android init.rc服务详解实例]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156315097</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156315097</guid><author>weixin_52527621</author><pubDate>Fri, 26 Dec 2025 22:18:25 +0800</pubDate><description><![CDATA[本文详细介绍了MTK平台Android系统中的init.rc服务配置，重点分析了两个典型服务：perfservice性能服务和cameraserver相机服务。perfservice服务展示了MTK特有的性能优化配置，包括进程权限、CPU调度、OOM调整等细节；cameraserver服务则说明了MTK相机硬件适配层的特殊配置要求。文中提供了完整的服务定义示例，包含用户/组设置、能力控制、SELinux标签、socket创建等关键元素，并详细说明了各种触发条件（boot、property变化等）下的服务控制]]></description><category></category></item><item><title><![CDATA[MTK平台Android init.rc服务详解实例]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156278635</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156278635</guid><author>weixin_52527621</author><pubDate>Thu, 25 Dec 2025 21:17:56 +0800</pubDate><description><![CDATA[本文详细介绍了MTK平台Android系统中的init.rc服务配置，重点分析了两个典型服务：perfservice性能服务和cameraserver相机服务。perfservice服务展示了MTK特有的性能优化配置，包括进程权限、CPU调度、OOM调整等细节；cameraserver服务则说明了MTK相机硬件适配层的特殊配置要求。文中提供了完整的服务定义示例，包含用户/组设置、能力控制、SELinux标签、socket创建等关键元素，并详细说明了各种触发条件（boot、property变化等）下的服务控制]]></description><category></category></item><item><title><![CDATA[实战项目：设计一个智能温控服务]]></title><link>https://blog.youkuaiyun.com/weixin_52527621/article/details/156278605</link><guid>https://blog.youkuaiyun.com/weixin_52527621/article/details/156278605</guid><author>weixin_52527621</author><pubDate>Thu, 25 Dec 2025 21:16:24 +0800</pubDate><description><![CDATA[本文设计了一个完整的Android智能温控服务thermal_guardian的.rc配置文件。该服务监控设备温度并动态调整性能策略，包含以下核心设计：1) 服务定义部分采用最小权限原则，设置用户权限、资源限制和日志记录；2) 事件触发机制包括系统启动完成、充电状态、游戏模式、省电模式等多种场景；3) 提供温度阈值动态调整功能，根据不同使用场景自动切换温控策略；4) 包含安全设计如SELinux上下文、进程间通信权限控制等。整个设计体现了模块化、可配置性和安全性原则，确保温控服务高效稳定运行。]]></description><category></category></item></channel></rss>