自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android Qcom USB Driver学习(十三)

该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零)Android Qcom USB Driver学习(八)Android Qcom USB Driver学习(九)deals with the USB Power Delivery resources used by one or more ports on the basis of the local device policythe basis of the local device policy.opera

2023-06-21 16:31:19 1624

原创 Android Qcom USB Driver学习(十四)

该系列文章总目录链接与各部分简介:了解什么是dwc3 udc gadget hcd xhci, 差点被Chatgpt绕晕了,看的比较浅显就像知道这些都是什么作用的。

2023-06-13 22:28:57 1475 1

原创 Android Qcom USB Driver学习(十二)

该系列文章总目录链接与各部分简介:keypad 在suspend的过程中导致Android无法进入suspend的问题,导致整体功耗过高,其实是主机都没有进入睡眠,通过以下打log的方式最终定位到问题,pmic vbus输出的时候会有reverse boost所以pmic侧的功耗也会有增加,当pmic电量低的时候会触发uvlo导致vbus上的电断开,需要需要的话,我们可以降低这个uvlo的触发阈值,是得对应的固件能在低电量使用。

2023-05-30 09:19:31 1119 1

原创 Android input device/handler的处理

handler用于处理input_event,device是发送input_event事件的设备,首先我们看一下有哪些device及handler(部分)handler最终都会通过evdev来处理,通过__pass_event写入缓冲区,以供上层evdev_read读取事件。两个链表将dev与handler进行绑定,一个dev对应多个handler,一个handler对应多个dev。下面看一下handler中的这些函数都是在哪里被用到的,注册的时候调用handler的。向系统中注册了一下接口 (

2023-05-25 19:11:05 856

原创 Android Qcom Display学习(十五)

该系列文章总目录链接与各部分简介: Android Qcom Display学习(零)按键截图实现原理,通过PhoneWindowManager.java -> DisplayPolicy.java -> ScreenshotHelper.java,这个网上的叙述很多就不展开了/frameworks/base/cmds/screencap/screencap.cpp 这个其实我们之前Layers专题提到的,调用GPU来进行全部图像的合成具体实现frameworks/base/core/java/com

2023-05-25 19:09:59 1003

原创 Android Qcom Display学习(十六)

XBL中背光驱动很简单,仅仅时方便不同项目的移植,AW99703/LM36922 I2C型的都可。

2023-05-25 19:09:17 396

原创 Android Qcom Display学习(十四)

该系列文章总目录链接与各部分简介:本章主要就是学习一下开机logo和开机动画是怎么加载,客制化修改的。

2023-05-25 19:07:13 714

原创 Android Qcom USB Driver学习(十一)

该系列文章总目录链接与各部分简介:基于TI的Firmware Update固件升级的流程分析usb appliction layers的数据。

2023-05-24 11:17:10 685

原创 Android Framework基础之基于Messenger的进程通行

纯纯是自己学习,别看。

2023-05-11 21:51:28 86

原创 Android Input kl文件实现键值映射

根据以上流程图可以得知fingerprint 是没有vendorid 和prodcutid的,所以直接传的是name: uinput-fpc ,所有对应的文件为uinput-fpc.kl。最开始想的本办法是同时上报Linux Scancdoe音量下键和电源键 KEY_VOLUMEDOWN + KEY_POWER,后来才得知有键值隐射kl文件。本来想通过指纹双击实现截图功能,发现上报scancode 120不行,后来才得知Android与Linux的code是有差异的,

2023-05-11 21:51:12 644

原创 Android Framework基础之基于AIDL的Binder机制

纯纯是自己学习内容,别看。

2023-05-11 21:50:51 136

原创 Android Framwork基础之FileInputStream文件数据流处理

纯纯是记录一下学习java framewrok。

2023-05-11 21:49:41 339

原创 Android Framwork基础之广播Broadcast/Recevier

网上教程很多,不是负责framework开发的,但平时也会接触到,所以自己实现一遍。

2023-05-11 21:48:57 96

原创 Android Qcom Audio入门学习

在devictree中可以发现有其实在PIL驱动并没有发生image加载过程,真正的加载有对应的子模块处理中,adsp就是在adsp-loader.c中通过init.qcom.rc启动时 write /sys/kernel/boot_adsp/boot 1 ,之后就会subsystem_get(“adsp”)获取并加载;其他例如slpi, 要看高通不同的平台子模块的组成,有些PIL是没有load slpi模块,sensor也是adsp中,

2023-02-28 19:28:16 4559 2

原创 Android Qcom Display学习(十二)

结果结果发现图像是正常的,然后dump我们自己的GraphicBuffer数据,发现也正常了,右边是GPU合成的Layer(StaturBar和NavigationBar0等),左边是非GPU合成的Layer图(Launcher),最终得出跟ubwc有关,ubwc说是高通私有的一个格式,所以可能造成图像无法正常查看问题。中dump GPU合成Layers的GraphicBuffer,发现也是星点,当然这个也是预料之中,Layers的数据都不对合成后的肯定也有问题,

2023-02-28 19:27:35 2348 10

原创 Android Qcom Display学习(十三)

该系列文章总目录链接与各部分简介:在上一篇中dump GraphicBuffer中,知道了护眼模式中调用setColorTransform应用于每一层Layer,于是想往上了解一些。

2023-02-28 19:26:53 1719

原创 Android Qcom USB Driver学习(十)

该系列文章总目录链接与各部分简介:本章主要是基于之前的学习,实现一个hidraw的驱动,发现有两种用于识别usb设备的方式,放别是usb_device_id和hid_device_id。

2023-02-28 19:21:40 605

原创 Android Qcom USB Driver学习(九)

该系列文章总目录链接与各部分简介:高通的某些平台将电源管理移植到了ADSP Subsystem, 分析一下其中比较关心的部分。

2023-02-28 19:20:46 1621

原创 Android Qcom USB Driver学习(八)

该系列文章总目录链接与各部分简介:因为要看usb charging的问题,所以需要补充一下battery的相关知识,算是入门吧。

2022-12-24 20:40:23 2934

原创 Android Qcom Display学习(十一)

该系列文章总目录链接与各部分简介:本章主要是基于MIPI Payload传输接口的学习,包括Generic和DCS的接口不同。底层都是基于去封装的,下面第一部分调用原生接口,第二部分分析高通是如何进行读写操作的。

2022-11-28 10:44:37 2072

原创 Android Qcom Display学习(十)

该系列文章总目录链接与各部分简介:本章主要是基于高通平台不同的背光类型处理的学习,包含XBL和Kernel两大部分。LPG是Light PulseGenerator,对应PWM ,qcom-spmi-pmic.c pwm-qti-lpg.c WLED是White Light Emitting Diode(白光二极管) qcom-spmi-wled.c + leds-qpnp-wled.c

2022-11-28 10:44:17 1572

原创 Android Qcom Sensor架构学习

ADSP Framework初始化的时候首先通过load image并初始化的静态加载方式register_static_sensorsssc_static_lib_builder.py 会编译出静态加载的sensor列表 framework/build/sensor_img/…/sns_static_sensors.c。

2022-11-28 10:43:09 2301 2

原创 Android uevent 电池电量上报机制

power_supply通过调用kobject_uevent, envp_ext为NULL, 会回调class的dev_uevent并且使用的是默认的add_uevent_var。ACTION=action_string DEVPATH=devpath SUBSYSTEM=subsystem,电池上层接受的时候会通过SUBSYSTEM进行过滤。

2022-11-28 10:41:46 1069

原创 Android unique_ptr与unique_lock的回收机制

高通SSE架构HAL要与底层ADSP Sensor通信,必须获取对应的SUID, 通过构造suid_lookup以及request_suid来建立连接,request成功后会调用callback,callback与主线程是异步的,若主线程结束的早时,构造的资源被回收就会导致callback异常。下面的demo强行造了一个多线程问题,当智能指针unique_ptr会被系统回收,出现值不对,当然真实的比这个复杂的多。

2022-11-28 10:40:21 272

原创 Andoid Camera Service 获取previewbuffer

将dump出来的数据,从Chromtix工具打开,填写stride,可以看到解析出图像,但是为什么不是色彩的?看起来黑白的像是Raw图,msgType是CAMERA_MSG_PREVIEW_FRAME(0x0010),callback回来的看msgType也并非是CAMERA_MSG_RAW_IMAGE(0x0080)所对应的Raw图,看请求的是YCbCr_420_SP对应(NV21) format,于是使用YuvViewer使用NV21的格式进行解析后图片颜色正常,是个钥匙串小老鼠。

2022-10-24 15:32:47 248

原创 Android Qcom Camera V4L2 Device

video0 crm作为v4l2_device,管理所有的subdevice,同理所有subdevice指向crm(sd->v4l2_dev = g_dev->v4l2_dev),video1同样也是v4l2_device,但是它对应的没有subdevice,以上为什么会有相同类型的注册多次,原因还是device和driver匹配的时候probe了多次。解决睡眠给的问题后,发现问题点二:高通对g_dev.open_cnt 做了限制,所以要想打开dev/video0两次则需要修改。

2022-10-24 15:32:15 963

原创 Android Qcom Display学习(九)

该系列文章总目录链接与各部分简介:DRM驱动支持MODESET;DRM驱动支持dumb-buffer(即连续物理内存);DRM驱动至少支持1个CRTC,1个Encoder,1个Connector;DRM驱动的Connector至少包含1个有效的drm_display_mode先基于博主的最简单的DRM应用程序进行学习实现,最进阶,主要分为以下几个步骤。

2022-10-24 15:30:03 1550

原创 Android Qcom Display学习(八)

该系列文章总目录链接与各部分简介:基于Android12实现简单的Surface测试程序,部分类内的接口发生了变化,但大体上没啥问题。主要实现两类功能(1)实现显示RGB图的红绿切换,这个主要来源于上面链接中的显示系统[1],以此为基础在Android S上实现(2)实现Camera Preview的实时预览,基于Camera api1,源码从Camera的测试程序中剥离出的一些操作接口来实现(3)待补充:实现Camera Preview的方式采用api2和v4l2,后续再看单独拿出来研究

2022-10-24 15:29:12 719

原创 Android input touchpanel双击灭屏

双击亮屏这个很常见的功能:需要注意的关键的点。注意suspend的流程中是否有关电源的操作函数,通过示波器去量是否有reset,vdd输出供电正常,中断INT信号再摁下后反应。 check input.c的流程,打印log,去查哪里把这个过滤点,总结下来就是需要注意is_event_supported(type, dev->evbit, EV_MAX) is_event_supported(code, dev->keybit, KEY_MAX) keybi

2022-10-07 21:58:37 1191

原创 Android input gpio driver手动对焦

通过按键中断驱动输入来调整马达的远近距离,加深对Input子系统的印象。(1)具体的输入设备device(按键、鼠标等),通过input_event上报(input_event->input_handle_event->input_pass_values)(2)input-core evdev事件驱动从各client(上述device)取buffer,(input_to_handler-> handler->events->evdev_events)(3)framework中input主要的模块有Inp

2022-10-07 21:54:48 816

原创 Android Qcom Flashlight学习

pmic闪光灯电流控制的逻辑时从Hal下发电流,在kernel中做判断并工作。 从下面的一段逻辑可以很清晰的得出,当没有tunning参数时,使用的时默认default 300mA,当tunning参数不为0的时候,则从LED1Setting/LED2Setting中获取,preflash 120 mA + mainflash 900 mA

2022-10-07 21:54:28 1132 3

原创 Android input epoll/inotify机制

inotify能监听内核文件系统变化的机制,可以监听文件/目录的增删,INotify 有个问题就是需要主动调用 read 函数去读取事件,Input 系统需要的是 INotify 监听的目标路径发生变化之后来能通知自己,这就需要结合另一个机制 Epoll 来实现,Epoll 是一种 I/O 多路复用技术,主要作用就是去监听 Linux 下的 fd,当这些 fd 发生事件之后,会通过回调来通知 Epoll。

2022-10-07 21:52:14 1132 1

原创 Android Qcom USB Driver学习(六)

该系列文章总目录链接与各部分简介。HS output impedance from 45 Ω Nominal in FSLS mode Tx swing等于输出电流乘以并联QCM/QCS USB 2.0 PHY 输出阻抗和接收器终端电阻的电阻,在低速ls和全速模式fs下是电压驱动的,但在高速hs模式下是电流驱动的,所以仅能调整fsls的输出阻抗,一般DP DM上有45Ω接地,U......

2022-07-26 21:42:15 1193

原创 Android Qcom USB Driver学习(七)

通过上述我个人理解的connect_mask与hdev->claimed的区别,如果是调用类似hidraw.c中的接口的话则用connect_mask传入hid_connect函数,那如果是自己写的驱动已经实现过了hidraw_connect,如果还是传入connect_mask为HID_CONNECT_HIDRAW,那其实我们hidraw_connect这个函数就会调用两次,这时候就改用通过hdev->claimed去赋值,并传入hid_connect函数中。......

2022-07-26 21:41:07 1459

原创 Android Qcom USB Driver学习(五)

在前面的第二期中,我们知道一些非标的USB的充电类型Floatingcharger,其具有和普通DCP相似的大电流能力,但在最初检测的时候会限制Inputcurrentlimit到100mA,来进行检测是否是SDP类型,所以要支持大电流输入就需要进行vote操作,前面的几篇都有涉及,所以本文学习一下pmicusbcharger都相关的vote机制。...

2022-07-26 21:38:30 1696

原创 Android Qcom board-id加载镜像学习

很早就听说过board-id能用来区分项目,没负责过这个,也一直没有时间去了解。board-id的可以通过gpio或者eeprom来存放,board-id也就是CDT中的部分内容,如果时gpio的方式,可配置的项目有些而且在主板上的都是hardcode,这样不利于维护。

2022-07-11 22:09:10 1961

原创 Android Qcom Display学习(七)

分享一个最近项目中写的在hal驱动亮屏和灭屏状态,也算是回顾了了open read的操作了,除此之外,还可以使用brightness同目录下的bl_power节点,范围为0、1、2、3、4时一种亮度等级的调节,与线性调节的brightness相反,bl_power == 0是亮度最大,bl_power == 4时时灭屏的状态。当然除上述操作之外,别忘了sepolicy的权限问题。 后续:(1)hal看有没有其他方式;(2)framework里读取亮灭屏的方式..................

2022-07-11 22:08:00 1631 7

原创 Android Qcom Display学习(六)

该系列文章总目录链接与各部分简介: Android Qcom Display学习(零)Android Qcom TP代码流程分析 在项目中我们经常会遇到需要兼容lcd和tp的情况,如果是不同i2c地址的touch,没有probe成功也就根本不过去用,所以one lcd mutil touch的情况暂时还没有遇到过去做区分的,那项目中主要遇到的就是以下这种情况one touch mutil lcd 这种情况下,lcd本身通过dsi读取的id就能区分不同型号的panel,xbl会传入cmdline,lcd在

2022-07-11 22:06:08 1520

原创 Android 系统功耗分析工具

在测量功耗的时候,通常是使用Power Monitor去拆分,或者对单一模块进行测量。今天突然在网上发现一个神奇的工具BatteryHistorian,跟Systrace很像,能很好的展示记录的过程中系统中各模块的耗电状态。Android电池功耗BatteryHistorian数据分析bugreport.txtbugreport.txt中记录了从系统中拉出来zip文件名称接下来就是要使用BatteryHistorian,这个网上有很多教程如何搭建,这边找到了一个公开的网站能更省事一点,如下Uplo

2022-06-27 21:18:19 3310

原创 Android Qcom USB Driver学习(零)

Linus有一句名言广为人知:Read the fucking source code.一个模块是从点滴学习积累出来的,不看不学怎么能深入理解,但仅仅「看」也是远远不够的,更多的是思考。usb目前还在学习中,补充基础知识,建个目录方便自己查看,静下心来持续积累知识、充实自我。..................

2022-06-27 21:17:14 1935

sensorbox android sensor

sensorbox android sensor

2023-08-16

DevCheck App to check therma zone 、cpu frequency

https://play.google.com/store/apps/details?id=flar2.devcheck&hl=en_US&pli=1 Monitor your hardware in real time and get complete information about your device model, CPU, GPU, memory, battery, camera, storage, network, sensors and operating system. DevCheck shows all the information you need about your hardware and operating system in a clear, accurate and organized way. DevCheck provides the most detailed CPU and System-on-a-chip (SOC) info available. See specifications for Bluetooth, GPU, R

2023-08-10

Yuview 查看RGB YUV等图片格式工具

https://github.com/IENT/YUView/releases github不用翻墙也能下载,就是网速巨慢,VPN后下载很容易,如果无法下载的,可以download这个资源

2023-01-18

7YUV 查看RGB YUV图的工具

http://www.softsea.com/download/7yuv.html 能VPN的话,很容易就能下到,网速慢的话可以download这个资源 包含两个版本 7YuvSetup-2.2.ext 7YuvSetup-2.4.exe,亲测可用

2023-01-18

Android_JNI_HIDL

通过一个实例,学习如何通过app调用到hal, system和vendor的交互,java与native c的交互 压缩包里包含编译好的so,以及编译的源码

2022-06-27

FastStome Image Viewer

用于Camera效果调试 图片质量等分析

2022-03-01

OnlyStopWatch

OnlyStopWatch秒表查看工具

2022-03-01

sourceinsight

常用代码查看工具sourceinsight,希望能帮助大家

2022-03-01

systrace.zip

抓取教程https://blog.csdn.net/qq_40405527/article/details/117133727

2021-05-21

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

TA关注的人

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