- 博客(40)
- 收藏
- 关注
原创 sh_malloc_debug_false_positive
sh malloc_debug 报告的“size 8 leaked block”实为误判,根源在于 libc++ 全局初始化时通过 newlocale 分配的 locale 对象未被释放。该分配发生在 std::ios_base::Init 构造过程中,属平台层静态初始化行为,非 mksh 真实内存泄漏。类似现象亦见于 iptables 等程序,证实为 leak_track 机制对初始化对象的误报。结论:此为 false positive,不应归责于 shell 代码。
2026-10-27 17:33:53
153
原创 malloc_debug_notes
分配时在用户数据前后埋标记校验时拿实际内存和期望模板逐字节比对一旦发现差异,就把损坏方向、偏移、字节内容和回溯一起打出来对于 native 内存问题,尤其是图像 buffer 越界、use after free、泄漏和非法 free,这是一套非常直接且有效的工具。
2026-10-27 17:31:33
335
原创 V4l2相关
是Linux内核中专门为视频设备设计的驱动框架,它为应用程序提供了一套统一的操作接口来控制摄像头、视频采集卡等设备。在Linux系统中,V4L2设备通常表现为设备节点。V4L2:顶层容器,管理整个设备:子设备抽象,支持模块化驱动开发:用户空间接口,提供标准访问方式:处理复杂数据通路,支持动态pipeline配置Videobuf2:高效缓冲区管理,支持多种内存模型这种架构使得驱动开发者可以专注于硬件相关的实现细节,而通用功能由框架提供,大大简化了V4L2驱动的开发工作。
2026-04-24 10:38:20
186
原创 Android内存相关
的机制,简单说,就是允许进程“固定”正在使用的内存,也允许在内存紧张时“释放”暂时不用的内存给内核回收。Ashmem 在较新的系统中也面临着被取代的命运,它的继任者是 Linux 标准的 memfd。来管理不同类型的内存(如物理连续的、非连续的),硬件需要什么内存,就找对应的堆去取。但 ION 有一个致命的弱点:它的用户空间接口是单一的 /dev/ion。这意味着,一旦一个进程能打开这个文件,它就有可能访问到所有类型的内存,这在安全上是巨大的隐患。系统调用与内核驱动交互,它的核心亮点是一个叫做。
2026-02-25 11:56:06
293
原创 Android010 MMC SD卡 驱动初始化通讯相关
2.2 检测到SD卡,初始化:mmc_attach_sd。2. mmc_gpio_cd_irqt:判断插拔。2.3 mmc_sd_init_card 过程。1. sdhci_irq:中断信号。2.1 SD卡插拔检测。
2025-12-17 15:04:36
397
原创 TF 卡检测&初始化通讯命令
CMD0:功能:TF卡初始化命令参数:0x00000000回复:0x00000000CMD8:功能:查询电压是否支持参数:0x000001aa[14~31]:0回复:R7CMD2:功能:读取卡的唯一标识信息(CID寄存器),获取卡的制造商、产品信息、序列号等,用于后续为卡分配相对地址(RCA)参数:必须为 0x00000000,广播命令,不需要指定特定卡,所有处于Idle状态的卡都会响应回复:R2CMD3:功能:主机分配地址给卡参数:通常为0(卡生成RCA)回复:R6。
2025-12-15 19:30:44
1084
原创 Linux dd命令介绍及简单使用
root]$参数介绍参数含义示例值说明if=输入文件input.bin指定要读取的源二进制文件of=输出文件output.bin指定将数据写入哪个文件,默认为标准输出(屏幕)bs=块大小1(字节)设置一次读取/写入的字节数。为精确控制,常设为1字节skip=跳过输入块数102567指定从文件开头跳过多少个bs大小的块后再开始读取seek=文件开头跳过10从输出文件开头跳过 10 个块后再开始写入count=读取块数253指定要读取多少个bs。
2025-11-28 10:50:06
473
原创 Android10 系统休眠调试相关
实时打印休眠日志(实测好像没作用):echo 1 > /sys/module/printk/parameters/console_suspend。查看冻结进程的超时时间(ms):cat /sys/power/pm_freeze_timeout。查看唤醒源:cat /sys/kernel/debug/wakeup_sources。查看系统启动以来唤醒次数:cat /sys/power/wakeup_count。查看休眠/唤醒模式:cat /sys/power/pm_async。
2025-08-05 19:27:49
369
原创 Android Ntp系统校时流程
NTP请求通过NtpTrustedTime实现,NtpTrustedTime处理请求逻辑与数据存储,SntpClient负责网络请求。
2025-07-25 18:12:43
1402
原创 Android 进程 线程分析
子线程创建时由内核动态分配,无固定规则,但通常按创建顺序递增,线程终止后,其。通过对进程的线程分析能直观看到相关信息,帮助优化APP或者服务提供参考。 Android线程号规则:主线程与进程号一致(首个线程(主线程)的。可能被回收并重新分配给新线程,线程的。系统调用分配,是真正的硬件线程标识。
2025-07-23 11:03:32
271
原创 Android perfetto 工具使用
控制命令解释备注立即退出命令行界面,并继续在后台记录您的跟踪数据自定义配置文件protobuf格式–out | -o保存的文件-t+time检测时长–txt–help | -h帮助–time | -t时长需要跟单位–size | -sATRACE_CAT–alert-id–config-id模块模块介绍sched跟踪CPU调度、上下文切换等内核事件freq记录CPU频率动态调整过程idle监控CPU进入/退出低功耗状态am。
2025-07-22 19:14:34
942
原创 高通Camera 调试日志开关
Camera 调试开关通过persist系统属性控制(1~6:开启 0:关闭),等级越高日志越详细,设置后无需重启。保存metadata数据开关: persist.vendor.camera.dumpmetadata。存储路径:/data/vendor/camera/metadata_dump/属性:persist.vendor.debug.sf.showfps。保存 persist.vendor.camera.dumpimg。开关:1:开 0:关。1:开启 0:关闭。
2025-07-16 14:28:30
577
原创 Android 10 Gnss数据流程
GnssLocationProvider主要通过JNI处理与HAL层交互逻辑。GnssLocationProvider通过class_init_native()初始化jni,jni 通过android_location_GnssLocationProvider_set_gps_service_handle方法判断当前HAL层使用那个版本,从2.0获取Service,如果获取不到认为不支持2.0,继续试获取1.1的服务,如果获取不到默认使用1.0服务。:Nmea数据回调`
2025-07-07 14:32:12
1315
原创 Android Binder简介
本文主在简单介绍框架层的结构及使用,从Kernel 源码看从V3.19之后已经支持binder驱动,默认不编译,如需使用需要配置编译选项:make menuconfig驱动源码:kernel/msm-4.9/drivers/android(高通源码目录)框架源码:frameworks/native/libs/binderKernel源码在线:https://elixir.bootlin.com。
2025-06-25 10:40:45
475
原创 Camera1 打开Camera流程
*小结:**从以上看FW与jni层主要都是一些接口与方法,打开camera后会先获取media.camera服务,获取到ICamera远程对象。后续的动作都由ICamera对象下发给CameraService(框架一般不会改动除非有定制接口,注意数据只要不阻塞不会出问题)Camera1 通过open静态方法获取Camera对象。
2025-06-13 15:30:43
394
原创 Android Binder 通讯内存调整
查上层请求binder内存,源码路径:frameworks/native/libs/binder。源码路径:kernel\msm-4.9\drivers\android\binder.c。
2025-05-30 17:41:06
325
原创 OTA升级erase、new、zero流程:
将命令对应的方法存入CommandMap,继续看PerformBlockImageUpdate方法实现。如:erase 6,134685,163328,164354,228864,229953,257475。调用discard_blocks丢掉对应的block。zero调用PerformCommandZero实现。new 调用PerformCommandNew方法。
2025-05-22 20:18:58
379
原创 Camera2 笔记之二:CameraDevice分析
ICameraDeviceUserWrapper持有打开openCamera时创建的ICameraDeviceUser主要功能:于CameraService 通讯(提交请求、取消请求等),检测服务是否挂掉。
2025-05-20 18:09:44
322
原创 Android emmc信息及坏道检测
badblocks源码路径:external/e2fsprogs/misc。使用badblocks工具,默认不会编译此工具,可手动编译。
2025-05-07 09:45:38
937
原创 Android系统时间无法设置到2038年后问题
文件:/packages/apps/Car/Settings/src/com/android/car/settings/datetime/DatePickerFragment.java。文件:frameworks/base/services/core/jni/com_android_server_AlarmManagerService.cpp。将RTC时间限制改成自己所需时间:4102415940LL = 2099-12-31 23:59:00。
2023-08-21 23:19:58
2474
3
原创 Android 线控处理逻辑-线控注册过程
【线控】:机电行业特定短语。指机电控制里边的一种物理控制方式,主要是指信号发生器与信号接收器之间的连接方式是通过线缆或其他动作传到物体进行连接的。 Android线控:我们经常使用耳机上面的上一曲、下一曲、播放、暂停等操作。大体逻辑是耳机上的物理按键按下后会作为系统系统键值处理。之前看过android4.4的源码最近看android6.0的源码发现两者处理的方式有明显不同,本篇主要...
2018-05-25 15:34:52
2474
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅