06 2021 档案
摘要:概述 源码解析 1. NetlinkListener模块-处理socket消息的 1.1 NetlinkListener构造函数 NetlinkListener::NetlinkListener(int socket) : SocketListener(socket, false) { mForma
阅读全文
摘要:概述 vold进程启动流程: 注册vold服务 创建emulated volume 创建netlinkmanager,用来监听uevent事件,add disksource属于mmc1(sd卡)和usb的 源码解析 1. main模块 1.1 main函数 int main(int argc, ch
阅读全文
摘要:概述 用于A/B系统切换A/B的hal 源码解析 源码位置:android/hardware/interfaces/boot/1.1/default/boot_control/libboot_control.cpp文件 1. bootctl模块 1.1 IsSlotMarkedSuccessful-
阅读全文
摘要:概述 rc文件中的配置 on fs mount_all /vendor/etc/fstab.sun50iw10p1 --early on late-fs mount_all /vendor/etc/fstab.sun50iw10p1 --late 这个--early和--late是用在metadat
阅读全文
摘要:概述 ftrace:是一个内核函数跟踪器,function tracer,旨在帮助开发人员和系统设计者可以找到内核内部发生的事情。 atrace:Android tracer,使用ftrace来跟踪Android上层的函数调用。为数据采集部分 systrace:Android的trace数据分析工具
阅读全文
摘要:概述 ├── aac // 用于Android的全称Fraunhofer FDK AAC编解码器库,多媒体相关 ├── adeb // 为Android设备提供Ubuntu那样的shell环境,可以运行python,apt-get安装软件等等 ├── adhd // 用于监视A / V设备事件的守护
阅读全文
摘要:概述 android/system/core/init目录下,init进程解析rc文件 rc文件三个关键字打头: on 为action service 为service import 引入其他rc文件 源码解析 1. ActionManager类 actionmanager用来收集action的 1
阅读全文
摘要:概述 创建进程会话密钥 初始化属性服务-创建线程-建立socket通信-用来设置属性的 SELinux 第二阶段准备后续工作 初始化子进程终止信号处理函数 初始化init进程唤醒函数-使用eventfd机制-唤醒来处理action 设置mount namespace 新建subcontext进程-建
阅读全文
摘要:概述 1. 按context来进行分类 属性是以context为基础的 (1)读/system/etc/selinux/plat_property_contexts文件,按照Trie形式,组织成树形形式 三种情况 (1)ro.boot. u:object_r:exported2_default_pr
阅读全文
摘要:概述 android/system/core/libmodprobe-first stage init阶段用来加载内核模块的 源码解析 1. Modprobe模块 1.1 Modprobe构造函数 // "/lib/modules","modules.load" Modprobe::Modprobe
阅读全文
摘要:概述 粒子的属性: 寿命 a_lifetime 开始位置 a_startPosition 结束位置 a_endPosition 中心位置 u_centerPosition 颜色 u_color随机生成 时间 u_time持续一秒钟 1000个粒子,在1秒钟的时间,从开始位置,线性移动到结束位置。 1
阅读全文
摘要:概述 android/system/core/liblog-logd的接口函数库 源码解析 1. logger_write-往logd写消息 1.1 __android_log_set_logger void __android_log_set_logger(__android_logger_fun
阅读全文
摘要:概述 android/system/core/base-log打印,字符串,文件读写 源码分析 1. logging模块 1.1 InitLogging-初始化进程的log输出 // android::base::KernelLogger和InitAborter void InitLogging(c
阅读全文
摘要:概述 android/system/core/fs_mgr/libdm和dm设备的创建 源码解析 1. DmTarget模块 1.1 DmTargetLinear构造函数 DmTargetLinear(uint64_t start, uint64_t length, const std::strin
阅读全文
摘要:概述 android/system/core/fs_mgr/liblp目录下的库,和super分区的数据结构的解析相关 源码解析 1. utility模块-工具函数 1.1 SlotNumberForSlotSuffix-a为0-b为1 uint32_t SlotNumberForSlotSuffi
阅读全文
摘要:概述 android/system/core/fs_mgr,system文件系统管理的主模块 源码解析 1. 解析fstab文件 1.1 ReadFstabFromDt-从dts中读取fstab // Returns fstab entries parsed from the device tree
阅读全文
摘要:概述 android/system/core/libcutils系统的一些工具库 源码解析 1. uevent模块 1.1 uevent_kernel_multicast_recv ssize_t uevent_kernel_multicast_recv(int socket, void* buff
阅读全文
摘要:概述 1. 进行第一阶段挂载工作 主要工作: 1. 读dts中的fstab,以及fstab文件 2. 创建分区的设备节点,设备节点的文件链接。dm设备 3. 配置avb,创建dm-verity设备 4. 挂载分区 5. 将根目录切换到/system目录下 源码解析 android/system/co
阅读全文
摘要:概述 在Ubuntu环境中下载并编译源代码 git clone https://github.com/bradfa/tlpi-dist.git make all 问题 1. <sys/capability.h>头文件找不到 userns_functions.c:25:10: fatal error:
阅读全文
摘要:概述 1. 多重渲染目标 多重渲染目标允许应用程序一次渲染到多个颜色缓冲区。利用多重渲染目标,片段着色器输出多个颜色(可以用于保存RGBA颜色,法线,深度或者纹理坐标),每个颜色用于一个连接的颜色缓冲区。 片段着色器输出多个颜色 → attachments指定为新创建的framebuffer → 从
阅读全文
摘要:步骤 注意:这个过程需要在Android源码环境中运行,可以使用adb端口转发工具,来连接服务器端的源码进行运行 关于adb端口转发:请看https://www.cnblogs.com/pyjetson/p/14828485.html 1. 运行gdbclient.py脚本 首先是使用vscode
阅读全文

浙公网安备 33010602011771号