自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 收藏
  • 关注

原创 OpenHarmony学习笔记【篇二:常用调试手段】

上一篇介绍了鸿蒙系统的编译机制,接下来需要介绍一下鸿蒙系统的常用调试方法,这块设计原理基本同android一致,但是命令工具这些可完全不一样了。

2026-09-10 21:48:15 92

原创 OpenHarmony学习笔记【篇一:编译构建机制】

在学习纯血鸿蒙系统各个模块之前,我们需要先了解纯血鸿蒙的编译构建机制。本篇主要基于鸿蒙系统的编译,和各模块的编译配置两个维度去进行梳理。

2026-09-02 21:44:20 335

原创 学习记录之人工智能新时代AI案例

结合万能公式,本篇使用超级智能体扣子空间来分享一下我的提问模块和ai的回答。

2026-08-18 14:07:56 29

原创 Android SystemServer 系列专题【篇九:DevicePolicyManagerService详解】

DevicePolicyManagerService是安卓中一个非常重要的系统级服务,但是使用场景却远远低于什么AMS/PMS/WMS这些,因此导致大多数人对他的认知其实是模糊的,我最开始也一样,只知道是安卓为企业级设备的管控进行设计的一个服务,最近花了一些时间研究这个,因此在此记录一下。

2026-07-27 22:00:21 440

原创 OpenHarmony学习笔记【总篇:从入门到放弃】

本文以鸿蒙开源代码为基础,记录我在学习鸿蒙系统中的一些关键逻辑和重要模块,以及针对想从安卓工程师转到鸿蒙工程师提供一条思路。

2026-06-24 15:30:22 231

翻译 Android 性能优化【篇六:滑动卡帧分析流程】

本篇主要围绕Android性能优化,滑动卡帧这类问题为主题,先结网上已有的一些资料阐述滑动出帧流程,然后结合MTK的分析思路,其他厂商的思路,进行说明。首先需要注意一下,我对这块了解的其实不多,本篇属于单纯的摘抄、归纳、总结。PS:本人对这块不是很熟,所以本篇内容基本上都是摘抄各位大佬的资料在学习滑动卡帧类问题分析思路之前,需要先对Android Display显示模块的功能原理进行解读,我对这块不是很熟,这里主要引用整理网上的一些大神的资料。

2026-06-03 20:57:34 249

原创 Android 性能优化【篇五:应用启动分析流程】

本篇主要围绕Android性能优化,应用启动类性能问题为主题,先结合MTK的文档阐述应用启动流程,然后结合MTK的分析思路,其他厂商的思路,和我之前有段时间研究过某音的TOP300分析思路的案例,进行说明。

2026-06-01 15:50:23 364 4

原创 Android 性能优化 【总篇:深入浅出】

本篇的主要针对整机性能的一个解读,主要拆解整机性能有哪些小的领域,对应的测试用例是怎么样的,这类问题优化思路是怎么样的。各家厂商针对性能的测试都设计了不同的用例,因此针对性能测试其实是比较五花八门的。我这里凭着经验来总结一下通常都有哪些场景和性能测试相关。

2026-05-25 22:12:25 465

原创 Android Build系列专题【篇七:VINTF源码解析】

这里还是以如上案例,自定义两个IGoogleKey.hal和​​如上device manifest和framework compatibility matrix能匹配,所以编译成功。​这里的案例不再是完整的实现一个IXXX HAL服务进程,背景是高通已经实现好了一个HAL服务端进程vendor.qti.gptupdater@1.1-service和一个HAL客户端进程gpt_updater_client,(HAL服务进程可以修改分区)并且已经提供了对应的可执行bin文件,我们只需要快速编译进去即可。

2026-05-19 21:34:51 666

原创 Android Google XTS

GMS全称为Google Mobile Service,即谷歌移动服务。GMS是Google开发并推动Android的动力,是Google提供的Mobile Device上的一系列应用服务。

2026-04-30 11:57:46 1836

原创 Android Google KEY

在Android安全架构这篇文章中,我们了解到了Android系统的整体安全架构,那么这套架构,应用于那些场景呢?Google KEY就是其中非常重要的场景。本篇就详细介绍一下Google KEY的这套机制。google提供了gms package应用,还有gms core等核心服务,那么这些应用和功能到底要怎么激活呢?肯定需要得到google的授权和认可,因此google通过gms包和xts来进行授权与认证。因此我们在做一个海外项目,首先要做的就是像google注册,提供白名单申请google keybo

2026-04-30 11:44:15 1700

原创 Android Google MADA

类别/FeatureROWIN(印度)EEA(欧盟)RU(俄罗斯)TR(土耳其)US(美国)JP(日本)备注送测要求单独送测使用IMADA单独送测不走IMADA可与ROW合并自动识别激活单独送测(DMA要求)必须与ROW分开送测必须与ROW分开送测必须与ROW分开送测必须与ROW分开送测送测要求指设备GMS认证时需要向Google提交测试的地区版本策略。- 单独送测:该地区设备需单独进行GMS认证。

2026-04-25 21:10:10 705

原创 Android Google Widevine

Widevine是Google提供的数字版权管理(DRM)解决方案,用于保护流媒体内容。它支持L1(硬件级)和L3(软件级)两种安全级别,其中L1设备需要满足严格的安全要求。集成流程分为三个阶段:注册问卷调查、配置密钥(RKP或Keybox方式)和集成代码库。设备必须通过GTS测试验证,并经历从"In Testing"到"Released"的状态流转。实施前需签署MLA协议并获取访问权限,不同Android版本需选择对应的Widevine分支。该方案为内容提供商提供了

2026-04-23 22:55:11 450 4

原创 Android Google EDLA

《企业设备EDLA许可协议实施指南》摘要 EDLA是Google针对商用设备(如POS机、工业平板等)制定的GMS预装协议,与消费级MADA协议相比具有更长生命周期(5-10年)和更高安全要求。当前处于费用豁免期,建议ODM厂商尽快完成审批锁定免费资格。核心要求包括:Android版本需在Google规定的审批窗口期内;必须提供24个月安全补丁支持;最小2GB内存;需配置ENTERPRISE_DEVICE等FeatureFlag。设备分为标准形态(手机/平板)和非标准形态(需额外配置标志),地区划分为Glo

2026-04-23 22:52:43 739

原创 Android Safety 系列专题【篇七:Android AVF机制】

AVFAndroid Virtualization Framework,Android虚拟化框架,Android 13引入的系统级框架,允许在Android设备上创建和运行隔离的虚拟机虚拟机,通过软件模拟的完整计算机系统,拥有独立的操作系统和资源Hypervisor虚拟机管理器,负责创建、管理和调度虚拟机的软件层受保护虚拟机,内存被硬件隔离,宿主系统无法访问,用于安全敏感场景MicrodroidAVF提供的轻量级Android虚拟机镜像,专为虚拟化场景优化。

2026-04-11 16:42:00 850

原创 学习记录之人工智能新时代AI

一句提示词,AI秒变废柴或大神?这4套万能公式,让我效率翻10倍!

2026-04-08 21:00:42 523

原创 Android Binder【篇六:AIDL HAL避坑与SELinux配置】

前文已经介绍了硬件抽象层中的HIDL接口,然而在Android 14之后,Google计划废弃HIDL接口,转而使用AIDL进行替换。因此基于上一篇介绍的自定义HIDL HAL进程的基础上,本篇介绍一下如何从零开始新增一个AIDL HAL进程,或者如何把之前HIDL HAL转换为一个AIDL HAL进程。

2026-03-22 11:08:27 350

原创 Android Safety 系列专题【篇六:SecureElement安全硬件】

针对本系列前面几篇有提到安全硬件,但是这块接触的比较少,唯一接触到的场景有SecureElement,本篇主要就是围绕SecureElement的使用和相关案例进行解说。

2026-03-13 20:27:38 835

原创 Android SystemServer 系列专题【篇五:SystemConfig系统功能配置】

本篇主要针对SystemConfig的流程进行一个梳理,SystemConfig翻译过来就是系统配置,对应于xxx/etc/目录下面的一些配置。systemserver进程在启动的时候从etc目录下读取这些配置文件,加载到系统中,供fw+app层进行调用判断对应的功能是否启用。

2026-02-14 12:52:21 303

原创 Android Safety 系列专题【篇二:Android AVB机制】

AVB 是 Google 为 Android 系统设计的一套安全机制,用于确保设备在启动过程中加载的系统软件(如 bootloader、内核、system 分区等)是经过授权且未被篡改的。其核心目标是,并支持保护。

2026-01-30 17:41:11 661

原创 Android OTA 之 升级包编译机制

前面介绍了OTA的一些基本概念和常用的两种OTA升级方式(recovery和update_engine),基于之上本篇继续介绍一下OTA包的编译生成机制。

2026-01-23 19:42:24 1248

原创 Android Build系列专题【篇六:VINTF基本原理】

VINTF架构的原理剖析,以及相关配置策略

2026-01-06 16:59:49 699

原创 Android Safety 系列专题【篇一:Secure Boot机制】

Secure Boot从字面上面来讲,是安全启动,就是为了保证设备里刷入的镜像是安全的,这里安全的意思是,这些刷入的镜像是由厂商编译生成的,而不是刷入的别的厂商或者恶意破坏后的镜像。Secure boot主要是保证BP 侧镜像,在加载kernel 之前的镜像的安全,防止刷入设备的镜像,不是由厂商自己编译生成,使设备遭受到恶意攻击。

2026-01-06 16:41:19 1666

原创 Android Safety 系列专题【篇三:Android安全架构】

Android安全架构与密钥管理机制解析 摘要:本文系统介绍了Android安全架构中的密钥管理机制。Android Keystore通过将密钥保留在应用程序进程空间之外,并利用TEE安全硬件提供保护,有效防止密钥泄露。文章详细分析了Keystore的发展历程、架构设计(包括TEE、Keymaster HAL等组件),以及Google KEY和Widevine KEY这两种关键密钥的功能与实现原理。通过多个实际案例(如XTS测试失败、身份认证异常等),展示了密钥管理在实际应用中的重要性。特别指出,密钥认证和

2026-01-06 16:38:17 1329

原创 Android Safety 系列专题【篇四:应用签名】

Android应用签名是系统构建时对应用包进行的数字签名验证机制,涉及/build/target/product/security/目录下的密钥文件

2025-12-27 10:11:46 363

原创 Android Qualcomm USB 专题系列【篇一:UsbHost模式配置】

X。

2025-12-21 10:59:38 196

原创 Android Qualcomm USB 专题系列【总篇:USB HAL架构】

摘要:本文分析了高通在Android USB系统上的定制实现,主要分为HOST模式(负责主机端管理)和DEVICE模式(Gadget功能)。重点介绍了USB启动配置流程,包括init.qti.usb.qmaa.rc等文件的执行顺序和作用,以及HAL层的两个服务实现:android.hardware.usb-service.qti(主机管理)和android.hardware.usb.gadget-service.qti(从设备功能支持)。最后详细说明了usb_compositions.conf中定义的各种功

2025-12-19 22:49:10 1562

原创 Android Qualcomm USB 专题系列【篇二:UsbGadget模式配置】

Android设备的主流调试方式还得是通过usb线进行连接,通过adb或者serial进行调试,除此之外高通项目还可以通过diag进行诊断。本篇先围绕usbd进程,引申出后续的adb和diag。

2025-12-19 20:57:42 1568

原创 Android Qualcomm USB 专题系列【篇四:Qualcomm Diag】

高通平台架构分为三部分:右侧为Android系统(HLOS),左侧为高通专有子系统(NON-HLOS),包含Modem、DSP、TrustZone等模块。高通独立开发了这些子系统和专用编译工具链(如Hexagon SDK),需要配置特殊环境变量进行编译。子系统编译后会生成.mbn/.bin等固件文件,每个模块都有特定版本标识,如MPSS(Modem)、ADSP(音频DSP)、TZ(安全区)等。完整的高通平台开发需要同时使用Android SDK和Qualcomm SDK,后者包含ARM、Hexagon等专用

2025-11-29 15:42:05 1995 4

原创 Android Init 系列专题【篇四:Init RC Language解析】

摘要:Android初始化语言(Android Init Language)是构建Native层的基础,主要包含Actions、Commands、Services等五类语句。Actions通过触发器(Trigger)激活命令序列,Services定义后台运行的服务。RC文件分布在/system、/vendor等分区,通过LOCAL_INIT_RC宏配置。APEX模块支持版本化RC文件(如init.31rc)以适应不同SDK版本。关键命令包括启动服务(class_start)、设置属性(setprop)等

2025-11-08 22:05:22 401

原创 Android Init 系列专题【篇五:reboot & shutdown】

在android系统中,init进程不仅仅作为第一个进程,涉及设备的开机流程,其实android系统的关机和重启流程,也都离不开init。本篇以android系统的关机/重启流程为切入点,重点来介绍一下init进程在这个过程中是如何举足轻重。如上每一行日志的都是非常关键,这个案例是autotesttool自动化测试工具在压测过程中通过设置属性sys.powerctl='reboot,autotesttool'方式来对系统进行重启。

2025-11-05 22:11:38 733

原创 Android Build系列专题【篇五:构建系统build.prop生成机制】

这里我们主要介绍一下android构建系统的主入口文件build/core/makefile,它承担着整个编译的启动和调度工作。该文件作为构建系统的起点,负责初始化编译环境并包含所有必要的子模块文件。Android构建系统采用模块化设计,位于build/core/目录下,由makefile和多个mk文件组成。makefile作为启动入口,main.mk作为核心流程文件,通过包含关系组织起整个构建框架。由于整个流程过于复杂,这里只记录我跟读过的一些模块。

2025-11-01 15:00:40 1334 2

原创 Android Build系列专题【篇四:编译文件相关语法】

本文介绍了Android Build系统的核心组件,包括Makefile、mk文件和bp文件等。重点针对相关语法进行解析

2025-10-14 11:57:05 448

原创 Android Build系列专题【篇三:平台编译流程】

本文基于AOSP的编译流程,重点介绍了MTK LD2架构和高通NON-HLOS架构的基本原理和相关差异

2025-10-14 11:55:13 1144

原创 Android SystemServer 系列专题【篇六:UserController用户状态控制】

本篇接着SystemServer的启动流程,围绕SystemServer最后阶段关于主用户的启动和解锁的流程,作为切入点,来看看SystemServer是如何讲用户状态同步到所有的系统级服务中。本篇先介绍UserController是如何管理用户状态,SystemServiceManager是如何把用户状态通知到所有的系统级服务,如上三个场景的触发条件来分别介绍。

2025-09-12 23:43:58 1252 3

原创 Android SystemServer 系列专题【篇八:AttentionManagerService】

AttentionManagerService是framework中用来实现屏幕感知的一个系统级服务,他继承于systemserver。我们可以通过dumpsys attention来获取他的一些信息。如下针对屏幕感知的功能的引入来针对这个服务进行一个介绍。

2025-09-04 15:16:53 408

原创 Android SystemServer 系列专题【篇四:SystemServerInitThreadPool线程池管理】

本篇重点介绍一下SystemServerInitThreadPool,顾名思义此类针对SystemServer进程的提供了一套ThreadPool线程池的统一标准方案,下面从源码和日志的角度来剖析一个这个类。

2025-08-26 19:40:59 678

原创 Android Input 系列专题【inputflinger事件的读取与分发】

文章摘要: ServiceManager是Android Binder机制的核心管理组件,负责服务注册与查询。作为独立进程,它通过Binder驱动与其他进程通信。启动时完成三个关键步骤:1)打开并映射Binder驱动设备;2)注册为上下文管理者;3)进入循环处理服务请求。服务进程注册时,ServiceManager将句柄保存到链表并通知Binder驱动创建内核对象;客户端查询时,通过句柄查找服务。Binder驱动在内核空间维护红黑树管理服务引用,实现跨进程通信。整个过程体现了观察者模式的设计思想,通过用户空

2025-07-05 15:29:33 2122 7

原创 Android Input 系列专题【dumpsys input解读】

Android IMS原理解析 - 简书Android 输入事件分发全流程梳理(一)_android input事件分发流程-CSDN博客Android 输入事件分发全流程梳理(二)_android输入事件流程图-CSDN博客inputflinger模块与surfaceflinger模块在同级目录之下,即aosp/frameworls/native/services,放在这个目录下面,是因为和fw里面的ims存在大量的交互,其结构如下:

2025-07-02 19:58:32 484

原创 Android Init 系列专题【篇二:Selinux启动流程】

文章摘要: 本文详细剖析了Linux内核和Android系统中SELinux的初始化与配置过程。主要内容包括:1) Linux内核阶段SELinux的初始化流程,涉及LSM安全框架启动、内核参数处理机制以及selinuxfs文件系统的实现;2) Android init进程的三个阶段(vendor init、selinux_setup和second_stage)中SELinux的配置过程;3) 系统如何通过kernel cmdline参数(如androidboot.selinux=permissive)和宏

2025-07-02 19:35:36 1056

空空如也

空空如也

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

TA关注的人

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