自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Deep Lee的专栏

一个程序员的笔记

  • 博客(68)
  • 资源 (34)
  • 收藏
  • 关注

原创 Android 14 系统中 Tombstone 深度分析与解决指南

Android 14 Tombstone 崩溃分析指南 本文深入解析Android 14系统中的Tombstone崩溃机制及其改进: 核心机制:Tombstone记录Native层崩溃信息,包括寄存器状态、堆栈回溯和内存映射,存储在/data/tombstones/目录下。 Android 14增强: 新增ARMv9 MTE寄存器状态 优化堆栈帧压缩技术 引入AES-256加密保护崩溃数据 分析方法: 使用addr2line和ndk-stack工具解析符号 结合内存映射定位非法访问地址 通过Perfetto

2025-12-09 10:22:33 991

原创 Android 14系统启动流程深度解析:Display设备的发现与通知流程

本文深入解析了Android 14系统启动过程中显示设备的发现与通知流程。从内核层DRM/KMS驱动加载开始(0-5秒),到SurfaceFlinger初始化HWComposer(5-8秒),再到SystemServer启动DisplayManagerService(8-12秒),最后完成显示设备发现(12-15秒)。文章详细分析了热插拔事件传递链、跨进程通信流程,并介绍了Android 14新增的可变刷新率支持等特性。同时提供了性能优化关键点和常用调试命令,如dumpsys display、Surface

2025-11-17 09:42:13 1066

原创 Android 14 系统启动流程深度解析:内置SD卡挂载流程

《Android 14内置SD卡挂载流程深度解析》摘要: 本文系统剖析了Android 14在存储架构上的创新优化,重点聚焦内置SD卡挂载机制。通过时序图、类图和甘特图等形式,详细展示了从内核初始化到用户空间的完整挂载流程,包括数据分区准备、FUSE守护进程启动和命名空间隔离等关键步骤。文章深入分析了多层安全防护体系(硬件加密/FBE/SELinux)和性能优化技术(并行挂载/F2FS原子写),提供了详细的调试命令集和故障排查方案。数据显示,Android 14通过架构革新将挂载时间缩短了45%,为开发者呈

2025-11-05 16:46:36 942

原创 Android 14 系统启动流程深度解析:rc文件的语法、解析及常见语法详解

Android 14启动流程与rc文件解析摘要(148字) Android 14启动流程包含Boot ROM、Bootloader、Linux内核、Init和Zygote五个阶段,新增并行启动、延迟初始化等优化。Init进程通过解析rc文件管理系统服务,rc文件采用触发器-命令结构,支持条件导入、动态控制等新特性。服务定义包含class、user等关键选项,通过start/stop命令控制。解析过程经历词法分析、语法树构建、依赖排序等步骤。最佳实践包括:使用disabled选项控制默认启动状态,通过属性触发

2025-10-27 13:56:27 983

原创 Android 14 系统启动流程深度解析:AVB流程

摘要: Android 14的AVB 2.0技术通过加密签名验证构建完整信任链,核心机制包括:1)防篡改(RSA-4096逐级验证,失败触发黄/红屏警告);2)回滚保护(eFuse存储版本计数器,确保系统只升级不降级);3)兼容增强(支持虚拟A/B分区和GKI 2.0)。启动流程分为Boot ROM验证引导程序、vbmeta分区验证内核两阶段,采用哈希树/dm-verity实时监控。Android 14新增init_boot独立验证、快照元数据签名等优化,使存储占用减少31%,启动时间缩短18%。

2025-10-23 17:56:01 1401

原创 Android 14 系统启动流程深度解析:Init 进程的演进与核心机制

本文深入解析了Android 14系统启动流程中Init进程的架构演进与核心机制。主要内容包括:1)从Android 1.0到14的Init架构变革,重点分析Android 14引入的FD代际传递、APEX深度集成等创新;2)内核到Init的启动路径优化,如新增16个内核参数和DM-verity增强;3)两阶段Init实现细节,包括rc文件解析算法、服务拓扑排序和Zygote启动优化;4)Android 14三大突破:属性服务Binder化改造、cgroups v2资源管控和Rust安全组件应用。通过启动耗

2025-10-21 09:16:04 377

原创 Android 14 系统启动流程深度解析

Android 14 系统启动流程摘要 Android 14 (Upside Down Cake) 的启动流程是一个复杂的多阶段过程: 硬件启动阶段:从通电复位开始,Boot ROM执行基础硬件初始化并加载验证Bootloader。 引导加载程序:分阶段初始化硬件,验证系统分区完整性(AVB机制),加载Linux内核和initramfs。Android 14强化了分区验证,采用init_boot和vendor_boot分区提升模块化。 Linux内核启动:完成自解压和架构相关初始化,挂载临时根文件系统。An

2025-10-13 11:02:01 918

原创 Android 14 Input 事件派发机制深度剖析

Android 14输入系统架构深度解析 本文详细剖析了Android 14输入事件处理流程的架构演进与优化改进。主要内容包括: 架构变革:从嵌入式SystemServer升级为独立InputFlinger进程,采用AIDL通信协议,支持热更新和细粒度权限控制 事件处理管线:从硬件中断到应用层View树派发的完整流程,新增批处理增强、低延迟模式等优化 内核层改进:输入驱动新增高分辨率事件、手掌检测等支持,EventHub实现8ms低延迟采集 系统服务优化:InputDispatcher引入预测性手势处理、多

2025-10-10 15:01:51 1191

原创 Android 14 SystemServer Watchdog 机制深度解析

Android 14 的 SystemServer Watchdog 机制作为系统稳定性的关键保障,通过多层次的监控策略保护核心系统服务。该机制采用 HandlerChecker 监控主线程、MonitorChecker 检测服务锁状态、BinderChecker 跟踪跨进程通信,形成立体防护体系。新版本引入动态超时阈值(30-90s)和智能场景豁免(如OTA期间),通过渐进式恢复策略(从日志收集到服务重启)处理异常。监控范围从服务级扩展到组件级,并增强日志收集能力(线程堆栈、CPU状态、内存快照等),显著

2025-09-29 13:25:48 1097

原创 Android 14 系统 ANR (Application Not Responding) 深度分析与解决指南

Android 14 ANR深度分析与解决指南 本文系统剖析Android 14系统中ANR问题的核心机制、诊断方法和解决方案。重点内容包括: ANR机制增强:详解Android 14新增的前台服务超时延长(10秒)、更严格的电池优化等特性对ANR的影响 诊断方法论: 核心分析工具链:traces.txt日志解析、logcat过滤技巧、adb bugreport完整系统快照 Android Studio Profiler可视化分析 第三方APM工具线上监控 典型场景解决方案: 主线程I/O阻塞优化策略 跨进

2025-09-25 17:38:24 1093

原创 Android Log打印开发指南

本文介绍了Android日志系统的开发指南,主要内容包括:1) Android日志系统的分层架构和核心组件(Logd、Logger驱动等);2) Java层和Native层的日志打印API使用;3) 多缓冲区日志控制方法;4) Logcat工具的常用命令与过滤技巧;5) 日志调试高级技巧与性能优化建议;6) 日志记录的安全注意事项。系统详细讲解了从基础日志打印到高级调试技巧的全套开发方法,并提供了性能优化与安全规范建议,帮助开发者高效使用Android日志系统进行开发和调试。

2025-07-10 15:52:25 484

原创 Android Automotive OS 的发展历程:从概念到智能汽车的核心

摘要: Android Automotive OS(AAOS)正重塑车载系统格局,从2017年概念提出到2023年技术成熟,逐步解决传统车机封闭、生态匮乏等痛点。其分层安全架构(ASIL-D级)、实时性优化(延迟<50ms)及开发者生态(2000+应用)获得沃尔沃、通用等车企采用。尽管面临碎片化、安全风险等挑战,AAOS在5G/AI驱动下向混合现实座舱、车云一体化演进,预计2025年装机量突破1200万台。AAOS的发展标志着汽车从机械产品向"轮上计算机"的转型,未来软件服务收入或

2025-06-19 14:13:59 798

原创 Android 14 Binderized HAL开发实战指南(AIDL版)

本文介绍了如何在Android 14中开发Binderized HAL服务,使用AIDL定义接口并实现HAL服务。首先,环境要求包括Android 14源码编译环境、AOSP android-14.0.0_r7分支、Soong构建系统、Java 17和NDK r25c。项目结构分为接口定义、实现层和SELinux策略。实现步骤包括定义AIDL接口、实现HAL服务、编写服务入口代码,并配置构建文件和SELinux策略。最后,通过VINTF配置确保服务在系统中可用,并提供了客户端调用示例。

2025-05-23 11:01:41 3506

原创 Android使用固定的key给ko(kernel module) 签名

Android 原生默认每次编译使用自动生成在out目录的 pem和x509文件签名,由于种种原因我们可能需要使用固定的key给ko做签名,经过研究发现如果要使用固定的key来签名,需要做一下修改。

2022-10-13 20:56:21 2228

原创 Android Kernel Module 预编译同步签名方法

Android Kernel Module 预编译同步签名方法

2022-09-20 20:15:44 1017

转载 提升 C++ 开发效率的几个小技巧

以下文章来源于程序员小方 ,作者张小方程序员小方技术,生活,编码,加班,读书学习,这里是程序员小方的 IT 生活。我们说的 Modern C++,一般指的是 C++11 及以后的标准,从 C++ 11 开始,Modern C++ 引入了大量的实用的特性,主要是两大方面,学习的时候也可以从这两大方面学习:增强或者改善的语法特性;新增的或者改善的 STL 库。我们来看几个具体的案例:案例 1:统一的类成员初始化语法与 std::initializer_list:在 C++98/03 中,假设我们

2021-08-24 10:43:58 996

转载 C++常见的三种内存破坏场景和分析

C++常见的三种内存破坏场景和分析以下文章来源于一个程序员的修炼之路 ,作者河边一枝柳一个程序员的修炼之路主要分享Windows开发与调试, Linux, C/C++, 以及后端开发技术有一定C++开发经验的同学大多数踩过内存破坏的坑,有这么几种现象:比如某个变量整形,在程序中只可能初始化或者赋值为1或者2, 但是在使用的时候却发现其为0或者其他的情况。对于其他类型,比如字符串等,可能出现了一种出乎意料的值!程序在堆上申请内存或者释放内存的时候,在内存充足的情况下,居然出现了堆错误。当出现以上

2021-08-24 10:28:20 482

原创 Android 生成自己的签名key(releasekey platform shared media networkstack verify等)

Android官方文档https://source.android.google.cn/devices/tech/ota/sign_builds?hl=zh-cnhttps://android.googlesource.com/platform/build/+/refs/heads/master/target/product/security/README前言Android 操作系统映像在三个地方使用加密签名:映像中的所有 .apk 文件都必须经过签名。Android 软件包管理器通过下列两种方

2021-08-11 15:27:00 1905

原创 Android 刚开机就出现“正在关机”对话框的问题分析

前言之前项目,一直会出现刚开机就出现“正在关机”对话框,然后就关机了,通过串口看内核log。发现进入了recovery模式,然后就跟了一下代码,看什么情况下会进入这个模式代码分析关机对话框关机对话框显示在frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java而调用者在frameworks/base/services/core/java/com/android/server/power/Pow

2021-07-29 16:21:50 1129 1

原创 Android GDB的使用

官网介绍https://source.android.com/devices/tech/debug/gdb简单使用前提source build/envsetup.shlunch aosp_arm64-userdebugNative processdevelopment/scripts/gdbclient.py -p 例如:mediacodec 的 pid是 388 要dbg mediacodec 只需要development/scripts/gdbclient.py -p 388下面就是

2021-07-21 17:15:13 731

原创 Android9 HWbinder使用-获取service流程解析

前言接上篇Android9 HWbinder使用-注册service流程解析讲了hidl service的注册流程,这篇文章接着解析hidl service的获取流程HwBinder框架流程解析废话不多说,继续以USB HAL 1.0为例,解析一下获取的流程以vts为参考获取的代码获取流程1. hardware/interfaces/usb/1.0/vts/functional/VtsHalUsbV1_0TargetTest.cpp改一下代码,以常见的不带参数为例usb = IUsb::

2020-12-30 18:19:44 2588

原创 Android9 HWbinder使用-注册service流程解析

前言写一个自己的 Android Hidl Service这里写了怎么创建一个自己的hidlservice,现在讲一下hidlservice的注册和获取流程HwBinder的框架

2020-12-30 13:33:39 3432

原创 增加真随机数的熵值,以便快速获取随机数

#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#include <stdlib.h>#include <time.h>#include <string>#include <linux/random.h>#include <sys/ioctl.h>#include <stdio.h

2020-12-17 14:57:03 958 1

原创 VS Code常用配置

前言vs code 所有用户自己更改的配置都存储在settings.json文件中存储路径不同的系统存储路径不同linux${HOME}/.config/Code/User/settings.jsonwindows%APPDATA%\Code\User\settings.json常用配置禁止预览。每次打开文件总是新开tab页"workbench.editor.enablePreview": false,字体大小"editor.fontSize": 14,根据出口大

2020-12-17 14:44:19 335

原创 Android Android.bp 预编译/集成三方so 二进制 rc etc 配置文件等

前言现在大多数项目需要集成三方的so 二进制 rc etc 配置文件等,下面的方法基本可以覆盖,备用语法参考语法参考官方链接实例预编译继承二进制文件/bin 和启动rc源文件vendor/bin/hw/android.hardware.configstore@1.1-servicerc文件android.hardware.configstore@1.1-service.rccc_prebuilt_binary { name: "android.hardware.config

2020-08-04 15:29:31 7970

原创 国内 repo 拉取android源码

sudo gedit /etc/hosts复制代码在hosts文件中加入203.208.49.187 googlesource.com203.208.49.187 android.googlesource.com203.208.49.187 gerrit.googlesource.com复制代码注意,203.208.49.187只是

2020-06-12 15:39:22 3255

原创 写一个自己的 Android Hidl Service

HIDLHAL 接口定义语言(简称 HIDL,发音为“hide-l”)是用于指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL)。HIDL 允许指定类型和方法调用(会汇集到接口和软件包中)。从更广泛的意义上来说,HIDL 是用于在可以独立编译的代码库之间进行通信的系统。HIDL 旨在用于进程间通信 (IPC)。进程之间的通信采用 Binder 机制。对于必须与进程相关联的代码库,还可以使用直通模式(在 Java 中不受支持)。HIDL 可指定数据结构和方法签名,这些内容会整理归类到接口(与类

2020-06-11 17:13:14 3835 5

原创 Android native/C/C++ 监控文件夹变化

前言

2020-05-08 15:13:07 1235

翻译 下载编译LineageOS代码

文章目录介绍前期准备构建你的LineageOS和LineageOS Recovery安装SDK安装构建软件包Java创建文件夹安装repo命令将~/bin目录放在环境变量中初始化LineageOS源码仓库介绍这些说明有望帮助您的Motorola Moto X 2014开始,解锁引导加载程序(如有必要),然后为您下载所需的工具以及LineageOS的最新源代码(基于Google的Android操...

2020-03-16 10:38:33 2587

原创 Android源代码编译脚本

前言在Android源代码编译过程中经常要source,lunch等一系列命令,这个脚本实现了默认保存编译log,无参可编译,可根据需求使用参数,可以单编,清编 update-api等脚本代码#!/bin/bash##creat by Deep Lee for android build# set -o errexitusage() { cat <<USAGE...

2020-01-16 14:57:41 1130 3

原创 Bash脚本之多线程处理

前言在bash中并没有线程的概念,我们可以用多进程来模拟多线程的操作来达到同样的效果示例代码#!/bin/bash# thread number can modify if neededTHREAD=10ROOTDIR="$(pwd)"TMP_FIFO="/tmp/$.fifo"#cannot del here. this is thread controlmkfifo "$...

2020-01-16 14:39:56 2653

原创 Android C/C++获取屏触屏输入设备、屏幕分辨率

#include <stdlib.h>#include <stdio.h>#include <gui/ISurfaceComposer.h>#include <gui/Surface.h>#include <gui/SurfaceComposerClient.h>#include <ui/DisplayInfo.h>...

2020-01-14 18:17:07 4748 4

转载 C语言关键字const作用及其应用

只要学过C语言的,都有知道const这个关键字,知道是用来定义常量的,如果一个变量被const修饰,那么它的值就不能再被改变,那么还有什么其他作用呢?一、const常用作用1. 修饰局部变量const int n=5;int const n=5;/*二者是等价的,均表示变量n的值不能被改变了*/注意:在使用const修饰变量时,一定要给变量初始化,否则之后就不能赋值了!接下来看看co...

2020-01-14 16:41:02 549

转载 .gitignore使用详解

1. 简绍我们做的每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。比如我们项目中的npm包(node_modules),它在我们项目中是很重要的,但是它占的内存也是很大的,所以一般我们用Git管理的时候是不需要添加npm包的。2. 常用的规则Git忽略文件的原则忽略操作系统自动生成的文件,比如缩略图等;忽略编译生成的中间...

2020-01-14 14:45:42 764

转载 Bash脚本编程之算术运算

简介Bash所支持的算术运算和C语言是一样的,这里指的是操作符(operator)以及它们的优先级(precedence)、结合性(associativity)和值,详见Shell Arithmetic (Bash Reference Manual)。注意:如果乘号“*”在某些场景中失效,有可能是它被解释成了通配符,可尝试对其转义。1+2=3在上面这个简单的算术运算中,1和2叫做操作数/运...

2020-01-07 10:37:43 1095

转载 Bash脚本编程之数组

数组简介在bash脚本编程当中,变量是存储单个元素的内存空间;而数组是存储多个元素的一段连续的内存空间。数组由数组名和下标构成,如下。ARRAY_NAME[SUBSCRIPT]数组按照下标的类型可分为两种:索引(indexed)数组:下标为0、1、2等非负整数。关联(associative)数组:下标为用户自定义的字符串。数组的操作声明索引数组可以不声明直接使用;而关联数组如果...

2020-01-07 10:19:46 729

转载 Bash脚本编程之字符串处理

简介其实这里说得字符串处理,对应的是bash官网中的【Shell Parameter Expansion】,不过直接去看这部分内容实在是太难以理解了。字符串处理会比较好理解,平常使用应该也是足够的了。字符串切片这块在上一篇讲解数组的文章中(https://www.linuxidc.com/Linux/2020-01/161945.htm),也大概提到了Shell Parameter Expa...

2020-01-07 10:08:32 447

原创 针对特定作者/文件/文件夹的git format-patch

针对特定作者git log X..Y --author='<AUTHOR>' --format="%H" | sed 's/$/^!/g' | xargs -I{} git format-patch {}git log X…Y –author =’< AUTHOR>‘ –format =“%H”以commit id的格式生成X到Y之间author为输出sed’s /...

2019-09-27 18:29:00 2856

转载 Clang-format 配置文件

官方文档官方详细配置解释点击此处文件格式.clang-format配置文件放置规则不指定,默认字需要格式化的文件同级目录向上寻找.clang-format文件--stype指定配置文件或者默认配置参考配置文件#基于那个配置文件BasedOnStyle: GoogleLanguage: CppColumnLimit: 120BraceWrapping: # class...

2019-09-16 10:04:10 8811

原创 利用ContentObserver获取系统时间制式12/24小时

Function 1直接获取 Settings.System.getInt(getContext().getContentResolver(), Settings.System.TIME_12_24, 0);Function 2利用数据库的回调 // 注册监听 getContext().getContentResolver().registerContentObserver(Set...

2019-09-12 10:54:00 445

scrt-9.1.1-2638.ubuntu20-64.x86_64.deb for unbuntu 20.04

SecureCRT client for Windows, Mac, and Linux combines rock-solid terminal emulation with the strong encryption, broad range of authentication options, and data integrity of the SSH (Secure Shell) protocol for secure network administration and end user access.

2022-01-11

jpeg转BMP565图像的jni代码

目前是jni库代码添加man函数可以用作二进制或者ubuntu直接用 ubuntu直接使用请用下面的命令编译:g++ tobmp.cpp -ljpeg 程序直接把jpg图片转换为bmp565的图片

2015-05-27

scrt-sfx-9.1.0-2579.ubuntu20-64.x86_64.deb

SecureCRT client for Windows, Mac, and Linux combines rock-solid terminal emulation with the strong encryption, broad range of authentication options, and data integrity of the SSH (Secure Shell) protocol for secure network administration and end user access.

2021-09-29

android调用vlcjni.so解码播放视频demo

android调用vlcjni.so解码播放视频demo

2015-01-10

NTFS-3g android 移植版

ntfs-3g 20140215版本 移植到android的源码 放到external目录编译即可使用

2015-01-08

V4l2_get_fps_demo

V4l2获取不同分辨率下摄像头支持的分辨率

2015-02-12

.clang-format

clang-format配置文件,基于Google style自定义配置,仅供大家参考

2019-09-16

secureCRT-7.3.2-752-ubuntu 64

secureCRT-7.3.2-752-ubuntu 64bit deb

2015-03-17

chmod的C语言实现

chmod命令的C语言实现 仅支持数字命令

2013-05-28

VMware-Tools-core-10.3.2-9925305.zip

Vmware Tools For Linux & windows Version 10.3.2 It use for vmaware player or workstation to share files,Clipboard etc...

2020-01-10

scrt-7.3.3-779.ubuntu13-64.x86_64.deb

scrt-7.3.3-779.ubuntu13-64.x86_64.deb

2015-04-02

ubuntu-QQ国际版

ubuntu QQ 国际版 深度linux制作

2015-04-20

sshfs-win-3.5.20024-x64.msi

SSHFS-Win is a minimal port of SSHFS to Windows. Under the hood it uses Cygwin for the POSIX environment and WinFsp for the FUSE functionality.

2020-05-27

android C解压Zip

android 下C写的一个解压Zip的小demo

2015-03-26

Vmware Tools For Linux

Vmware Tools For Linux Version 10.3.2 It use for vmaware player or workstation to share files,Clipboard etc...

2020-01-10

winrar 5.0 beta4 繁体中文版

winrar 5.0beta4繁体中文版

2013-05-30

winrar 5.0beta3简体中文版

winrar5.0beta3 简体中文版

2013-05-30

ubuntu14.04 3D 桌面配置文件

我自己使用的ubuntu14.04 3D 桌面配置文件 导入即可使用

2015-06-15

VMwaretoos MAC版

虚拟机 vmware workstation 的 VMwaretoos MAC版

2014-11-05

secureCRT-7.3-ubuntu 64

secureCRT-7.3-ubuntu 64位deb版

2014-11-05

secureCRT-7.2.6-606-ubuntu 64

secureCRT-7.2.6-606-ubuntu 64位deb版

2014-10-10

APK反编译工具包

APK反编译工具包v1.6, 下载即可使用哟

2015-05-19

secureCRT-7.2.6-606-ubuntu32

secureCRT-7.2.6-606-ubuntu32 deb版

2014-10-10

空空如也

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

TA关注的人

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