- 博客(35)
- 收藏
- 关注
原创 TF 卡检测&初始化通讯命令
CMD0:功能:TF卡初始化命令参数:0x00000000回复:0x00000000CMD8:功能:查询电压是否支持参数:0x000001aa[14~31]:0回复:R7CMD2:功能:读取卡的唯一标识信息(CID寄存器),获取卡的制造商、产品信息、序列号等,用于后续为卡分配相对地址(RCA)参数:必须为 0x00000000,广播命令,不需要指定特定卡,所有处于Idle状态的卡都会响应回复:R2CMD3:功能:主机分配地址给卡参数:通常为0(卡生成RCA)回复:R6。
2025-12-15 19:30:44
552
原创 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
401
原创 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
319
原创 Android Ntp系统校时流程
NTP请求通过NtpTrustedTime实现,NtpTrustedTime处理请求逻辑与数据存储,SntpClient负责网络请求。
2025-07-25 18:12:43
1220
原创 Android 进程 线程分析
子线程创建时由内核动态分配,无固定规则,但通常按创建顺序递增,线程终止后,其。通过对进程的线程分析能直观看到相关信息,帮助优化APP或者服务提供参考。 Android线程号规则:主线程与进程号一致(首个线程(主线程)的。可能被回收并重新分配给新线程,线程的。系统调用分配,是真正的硬件线程标识。
2025-07-23 11:03:32
209
原创 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
839
原创 高通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
383
原创 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
1138
原创 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
418
原创 Camera1 打开Camera流程
*小结:**从以上看FW与jni层主要都是一些接口与方法,打开camera后会先获取media.camera服务,获取到ICamera远程对象。后续的动作都由ICamera对象下发给CameraService(框架一般不会改动除非有定制接口,注意数据只要不阻塞不会出问题)Camera1 通过open静态方法获取Camera对象。
2025-06-13 15:30:43
350
原创 Android Binder 通讯内存调整
查上层请求binder内存,源码路径:frameworks/native/libs/binder。源码路径:kernel\msm-4.9\drivers\android\binder.c。
2025-05-30 17:41:06
264
原创 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
314
原创 Camera2 笔记之二:CameraDevice分析
ICameraDeviceUserWrapper持有打开openCamera时创建的ICameraDeviceUser主要功能:于CameraService 通讯(提交请求、取消请求等),检测服务是否挂掉。
2025-05-20 18:09:44
271
原创 Android emmc信息及坏道检测
badblocks源码路径:external/e2fsprogs/misc。使用badblocks工具,默认不会编译此工具,可手动编译。
2025-05-07 09:45:38
590
原创 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
2138
3
原创 Android 线控处理逻辑-线控注册过程
【线控】:机电行业特定短语。指机电控制里边的一种物理控制方式,主要是指信号发生器与信号接收器之间的连接方式是通过线缆或其他动作传到物体进行连接的。 Android线控:我们经常使用耳机上面的上一曲、下一曲、播放、暂停等操作。大体逻辑是耳机上的物理按键按下后会作为系统系统键值处理。之前看过android4.4的源码最近看android6.0的源码发现两者处理的方式有明显不同,本篇主要...
2018-05-25 15:34:52
2391
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅