- 博客(550)
- 资源 (145)
- 问答 (2)
- 收藏
- 关注
原创 系统设置-Location Mode 默认开关-默认关闭
解决两个问题系统设置-位置信息 开关默认打开状态,这里需求默认关闭状态搞清楚系统设置-位置信息,开关 打开与关闭知识点,业务流程这里对于位置信息开关默认值设置需求进行了实现分析了系统设置Settings相关需求的实现思路,很多思路都是一样的:界面查找-布局分析-查看关联的Fragment界面和控制器controller涉及到属性相关的,务必掌握基本属性相关知识点,方便实际调试,快速验证。
2025-11-22 12:55:45
637
原创 RK-Android15-WIFI白名单功补充三-系统设置隐藏已连接WIFI
白名单功补充三-系统设置隐藏已连接WIFI,功能补全,解决白名单中的一个bug之前WIFI白名单功能bug 修复分析了 已连接WIFI 信息,显示、隐藏逻辑,在设置里面的基本架构和思想获取已连接的WIFI,在实际使用当中,可以直接借鉴,系统里面可以封装一层,对外释放,对自己其它客需定制需要获取已经连接WIFI,也是一种方法。
2025-11-21 17:44:54
1327
原创 MTK-Android12-SystemUI 快捷面板重叠问题修复
在实际的平板产品或者平板关联的工控产品中,为了更好的体验,让App能够随重力感应方向进行旋转,实现横竖屏切换。大量的App 软件只有竖屏,哪怕Pad 版本App软件 要么只有竖屏显示、要么只有横屏显示。对于大量的只能一个方向显示的App, 在实际产品中的使用体验就特别查了。解决方案就是让App 方向随重力感应方向进行切换。实际上切换的是屏幕,屏幕旋转,让人感觉上是App 方向旋转了。我们经常说这个专业词 叫强制横竖屏。
2025-11-21 11:52:33
42
原创 Android15 添加android.uid.system且系统签名后无法安装
是Android 15中一个重要的安全加固措施,它通过白名单机制严格控制了共享UID的使用范围。理解这个文件有助于我们更好地把握Android系统的安全模型和权限管理机制。
2025-11-19 19:29:54
86
原创 Linux驱动-GPIO-动态切换引脚复用
动态切换 引脚复用这里测试了 引脚复用功能具体实验这里了用了一千的知识点,给设备对象写一个属性,通过属性来判断。当然也可以通过其它方法与驱动通信即可,实现驱动传参来进行公引脚复用功能。
2025-11-18 20:15:04
870
原创 Linux驱动-GPIO子系统与pinctrl子系统相结合
如果对于一个初学者来说,GPIO 子系统已经了解了部分,这里目标就是GPIO子系统结合pinctrl 子系统的知识理解。gpio 子系统理解,包括基本GPIO的APIpinctrl 子系统的理解,包括pinctrl 子系统的基本API函数作用调用时机获取引脚控制句柄驱动探测时查找引脚状态获取句柄后应用引脚状态需要切换状态时释放引脚控制句柄驱动卸载或出错时这里只是对gpio-pinctrl 两个子系统结合起来用的一个总结、规整知识点而已,实际上我们一直都是这么用的。
2025-11-18 10:41:19
633
原创 Linux 驱动-GPIO 三级节点获取和控制相关API
在 Linux 内核中,操作 GPIO(通用输入输出)主要有两套 API:一套是基于描述符(descriptor-based) 的现代接口,另一套是基于整数(legacy) 的传统接口。核心内容,对于二级节点下的三级节点的gpio 属性相关获取的基本方法,讨论、验证 api.获取到了三级节点下的gpio 描述符,剩下的就是递归、基本gpio 调用方法了。
2025-11-17 10:52:05
828
原创 Linux驱动-GPIO基本函数api
位置:在根节点下定义gpio 节点-my_gpio在pin-ctrl 设备树节点中定义my_gpio在根节点定义:声明一个GPIO资源。意思是“系统中存在这么一组GPIO引脚,它的控制权在这里定义”。在pinctrl节点中定义:配置这些GPIO引脚的电气特性和复用状态。意思是“当我的设备要使用这些引脚时,请把它们设置为以下具体状态(如上下拉、驱动强度、复用为GPIO功能等)”。GPIO控制器节点:描述硬件资源本身。内核需要知道有哪些GPIO端口、它们的地址在哪里,才能进行底层的读写操作。
2025-11-14 17:02:00
881
原创 Android11-Launcher3 定制-去除副屏幕-可以滑动效果 - 篇二
在前面文章中,存在几处细节问题,这里补充说明。同时分享部分修改经验指导。这里对禁止上划,去抽屉功能篇章的一个补充篇章这里涉及到手势、触摸,涉及到各个相关的模块,如果需要了解各个模块是一个非常痛苦和工作量大的过程,如果有需要可以按照思路逐步分析。在调试验证过程中,会收获各个知识点。Launcher3 本身封装比较好,复杂, 熟悉了解 手势、拓展、滑动相关知识点,后续对其它功能定制有很大的思路上的帮助。
2025-11-12 14:16:17
40
原创 Android11-Launcher3 定制-去除副屏幕-可以滑动效果
Android 默认都是抽屉效果,在主界面上拉可以看到全部应用。现在要做成手机一样的,能够左右滑动效果,只有一页。这里实现了常见的工控机器-手机产品的需求这里面涉及到的知识点蛮多,都要掌握借助这个需求,我们大概了解了整个流程和部分类。遗憾:篇幅太长,尽管每个类我们了解了,实际作用和场景待后续分析,搞清楚搞明白才行。
2025-11-07 18:19:01
82
原创 拦截adb install/uninstall安装 - 安装流程分析
本人以MTK Android13 版本为例,其它芯片平台和Android版本修改内容基本差不多 对于adb 模块各大芯片厂商和不同Android版本区别其实不大,可以参考。定义两个系统属性,默认值是enable需求其实很简单,前提是搞清楚 adb 架构、PMS安装流程通过此需求,从adb install/uninstall 安装到PMS - 命令解析-session 操作 - 安装 完成了整个业务的闭环。方便理解安装流程。
2025-11-06 16:07:25
89
原创 系统端实现看门狗功能
直接用系统看门狗机制实现:但是看门狗太复杂了,监听ANR、crash ,定制监听逻辑比较麻烦,不推荐。在一个服务里面或者自己写一个服务:循环检测+判断当前进程是否存在,来处理某个app 的业务逻辑在一个服务里面或者自己写一个服务:循环检测,不断监听用户是否投喂,利用缓存时间来判断app 是否正常工作。如果在一个周期内发现监听的程序不投喂了,那么就启动业务逻辑对app 进行业务处理。这里用自己的方案实现了常规需求,看门狗功能。
2025-11-04 18:41:24
89
原创 Android 在屏幕的右下角添加客户Logo
很多定制客户,工控或者ToB 客户要求在Android系统的地步常显一个公司logo. 用于防盗、商显、彰显公司品牌的需求场景。常显不会影响对应区域的触摸、点击、UI控制。一个简单功能实现在服务中,这里选择用服务中添加窗体实现一个需求。也可以扩展 在窗体上面实现其它各种菜单UI需求的相关功能。初步看需求,很麻烦的,实际其实做下来、稍微分析下还是很简单的。
2025-11-03 15:19:41
65
原创 驱动GPIO-获取单个gpio描述符
通过获取gpio ,初步认识几个函数gpiod_get(基于 Linux 内核 5.x 版本,位置通常在include/linux/gpio/consumer.h 和 drivers/gpio/gpiolib.h// 指向所属的GPIO设备// 状态标志位/* 关键标志位包括: */#define FLAG_REQUESTED 0 // 引脚已被请求#define FLAG_IS_OUT 1 // 引脚配置为输出#define FLAG_EXPORT 2 // 引脚已导出到sysfs。
2025-11-02 22:59:50
924
原创 将原理图中的一个引脚复用为gpio功能
需求很简单, 就是验证gpio函数功能,但是gpio功能必须有gpio口呀,那么这里就举例把某一个引脚复用为gpio,并设置自己的节点。会看基本的原理图:从地板原理图和核心板原理图中 来找自己相关的pin脚。设备树配置:pin脚可能默认的其它功能,比如I2c 功能,知道如何屏蔽和如何配置设备树,让系统加载时候复用为gpio功能pinctrl 配置: 根据需要的功能,用pinctrl 来实现配置GPIO1_A0_u,那么配置就是一一对应罢了。1)&gpio1- 引用GPIO控制器节点。
2025-11-02 16:15:39
686
原创 Framework层实现HDMIN 自动检测弹框确认进入或取消
对于大屏方案,基本上都有HDMIN功能,接收信号输入,方便扩展外围设备的功能,做一个显示效果。比如 其它第三方设备通过HDMIN线接入到电视上,电视上就会显示第三方设备画面,实现屏幕扩展。第三方设备一般包括:电脑、电视盒子、家庭投影仪、家庭家居控制屏他、笔记本、Android 平板、车机车载系统 等。1.HDMI IN做插上自动打开2.HDMI IN自动打开前需加一个确认弹窗,确认打开或者取消3.HDMI IN桌面图标做隐藏。
2025-10-24 10:55:42
48
原创 RK 平台拦截adb命令
本文以RK3576 产品Android15 版本 为例,实现adb 命令拦截功能。其它产品平台、不同Android版本 带阿米会有区别,但是核心架构和思路不变,可供参考。/device/rockchip/rk3576/rk3576_u/rk3576_u.mk 如下:此需求能够让大家对 adbd 框架架构有一定的了解和掌握,了解之后才会针对性实现需求属性相关知识 在cpp 文件中 应用 了解。
2025-10-23 20:00:03
76
原创 mem 设备控制 GPIO - C程序通过sysfs文件系统使用GPIO中断
通过io 操作实现点亮LED灯操作。但是IO操作的都是寄存器地址,所以先搞清楚寄存器知识点。int fd;/* 文件描述符 *//* 等待的事件 *//* 实际发生的事件 */了解 mem 控制GPIO的 这种机制C程序如何监听GPIO中断。
2025-10-11 17:33:46
1087
原创 操作寄存器来控制GPIO-点亮LED灯
通过io 操作实现点亮LED灯操作。但是IO操作的都是寄存器地址,所以先搞清楚寄存器知识点。简单来说,GPIO_SWPORT_DDR_L管一个GPIO Bank里编号小的那一半引脚是输入还是输出,而GPIO_SWPORT_DDR_H则管编号大的那一半。在实际编程中,需要注意:务必根据目标引脚在Bank中的具体编号(0-15还是16-31)来选择合适的寄存器。在配置寄存器时,请务必参考你所使用的具体RK芯片型号的官方技术参考手册,因为不同型号的地址偏移量可能会有差异。
2025-10-11 12:46:25
1140
原创 使用C程序通过sysfs文件系统控制gpio
上面一篇章介绍了使用命令通过sysfs文件系统控制GPIO。这种方式在实际开发中很常见,特别是调试阶段。那么如果在实战商用阶段,那肯定是需要用程序来控制的。所以,用可执行程序来控制GPIO的实际场景就很有意义了,可执行程序又是用C代码编写的,那么就需要写一个C代码编译成可执行程序来进行GPIO控制了。用C程序代码进行实际的gpio 控制实验read / write 操作,注意api 使用方式、模式等。
2025-10-10 00:15:00
700
原创 GPIO 控制和操作-使用命令通过sysfs文件系统控制GPIO
了解 sysfs 如何通过命令控制GPIO通过控制GPIO来控制LED灯亮灭GPIO 基本知识了解,通过命令控制使用命令通过sysfs文件系统控制GPIO,间接控制了LED灯亮、灭。
2025-09-29 18:05:15
689
原创 AOSP编译打包脚本-项目源码管理经验
针对个人日常开发和自己学习过程中的一些经验分享针对项目编译技巧、打包技巧。日常开发中,项目很多很多时候,源码如何维护。这里总结的其实是实际发发过程中 编译、打包、源码管理的实际操作方案,最终就是为了提升开发效率无论你是方案商、ODM厂商、产品公司 甚至是个人,涉及到系统开发的一定设计到类似的开发场景,可以参考借鉴。都是为了提升开发效率和工作简单化。
2025-09-29 15:52:16
1242
原创 原理图-复位开关和三极管点亮Led灯分析
我本是一个Android应用开发工程师,在自学驱动过程中曾无数次为原理图抓狂,奈何自己确实没有任何模电、数电、硬件、大学物理相关基础。软件工程专业出生,所以总是挠头,看到原理图 自身原因很懵逼,及时硬件同事给我讲了一次,可能下一次还是懵逼。硬着头皮看看吧,然后根据自身情况总结知识点,一步一个脚印吧!特性NPN 三极管PNP 三极管全称 Negative-Positive-Negative结构顺序N - P - NP - N - P主要载流子电子空穴偏置电压 (B-E)
2025-09-28 18:25:36
690
原创 MTK-Android13-Dialer 通话界面定制修改
Android中打电话的应用是Dialer,部分商用的场景比如:电话亭、公司共用电话、校园共用电话场景是由一定的定制场景的。具体需求如下:把通话界面的所有功能按钮全部去掉这个需求其实很简单的,通过阅读源码并分析源码能够快速实现需求这里面比较坑的是,其实部分按钮咋一看和实际ID 很难对上,本身也不熟悉情况下导致修改错误,建议一个一个或者再无编译报错情况下一个一个验证。
2025-09-27 11:53:26
1147
原创 Rk3576-Android15-Apk 安装基本知识点和Apk安装拦截功能实现
本文基于RK3576 Android15 版本开发已验证首先搞清楚我们为什么分析这个类???然后我们才有去跟踪这个代码的意义!!!回到最后一步commit那么是什么?如下: 它其实就是一个aidl 接口文件那么我们就要找它的实现类,结果发现它的实现类就是这里实现了Android应用安装拦截的逻辑分析了Android15 中,通过分析应用安装的流程:分析了源码其实我们在参考资料中已经讲解了部分知识点,以前的知识点内容,也特别有参考意义。针对每次PMS相关的需求,建议好好琢磨。
2025-09-26 02:30:00
732
原创 RK3576-Android15_Usb白名单功能实现篇二
需求:USB 类型设备接入白名单1) 默认: USB类型设备都可以接入2) 全部拦截: USB类型设备全部不可用接入3)根据vid/pid 进行拦截,指定vid pid 类型设备才可以接入使用备注:USB类型很多的,目前主要分为:U盘、外接UVC 相机、Camera2相机打开外接的USBCameraStorageMnagerService 服务了解Volume 通信机制、热插拔机制了解。
2025-09-22 18:03:25
1170
原创 RK-Android15- Wifi 相关知识点总结-WIFI白名单功能实现篇二
在平台上面,实现WIFI白名单功能。添RKAndroid11-WIFI白名单功能实现RK-Android15-WIFI白名单功能实现WIFI架构总览通过此需求:务必了解三个知识点源码基本解读等涉及到的IPC知识点不同版本、不同平台的Android源码少许不同、类可能都不一样,思路一致,还需针对性查看源码,获取最新信息 来针对性解决需求网上大量的部分相关资料参考,但需要自己实践,太多知识点旧了、知识点描述错误,需要自己实际验证并整理。
2025-09-22 12:20:33
1084
原创 RK-Android15-WIFI白名单功能实现
实现:WIFI白名单功能,默认显示所有、可以禁用WIFI列表展示、编辑白名单WIFI可以显示出来可以参考RKAndroid11-WIFI白名单功能实现,版本区别部分代码路径和源码不一样,可参考。但是RKAndroid11上面只是给了一个思路,具体实现还得自己细化实现。这里结果属性+过滤逻辑来实现WIFI白名单功能源码分析暂未实现,WIFI源码逻辑特别重要,也挺有意思的。
2025-09-02 12:37:55
1184
原创 MTK-Android13-实现拷贝预置资源到vendor分区下
集成一个遥控器语音方案到系统,实现语音控制大屏设备的功能。其中设计到把.so和.xml分别内置拷贝到 机器的目录下。先看看需求和实际效果吧:借助一个需求来总结 拷贝资源到目录下的知识点。所以,系统要做的事情,就是内置资源到指定的目录下。MTK平台中的mediateksample目录是设备配置和项目特定文件的存储位置,主要用于定制和配置基于联发科(MTK)芯片组的特定设备项目。这个目录是Android开源项目(AOSP)中device目录下的一个重要组成部分。组成部分描述示例/备注项目特定目录。
2025-09-01 18:31:16
1200
1
原创 Linux驱动_热插拔_挂载U盘和TF卡
内核如何发送事件到用户空间uevent事件结构体netlink监听广播知识点机制 【暂未讲解,网上很多资料说明】那么实际热插拔在驱动上面怎么应用的呢?基本上这里要将的首先是知识点udev/mdev是具体的应用知识点,然后实际举例说明 如何配置驱动的。其实系统基于热插拔技术已经很完善了,写好了的。但是还是需要工程师配置规则,配置实现方式的。特性udevmdev全称mini-udev来源systemd 项目BusyBox 工具集体积/资源较大,功能完整极小,非常轻量应用场景。
2025-08-27 20:31:04
812
原创 Android 系统属性添加篇
实现添加属性的功能,了解属性添加机制,搞明白两种不同的添加方式和区别系统属性是Android系统的一个全局键值对数据库,主要用于原生层() 和 系统服务 之间的配置和通信。它通过libcutils库的和函数来访问。常见的例子如(只读产品型号)、(持久化时区)、(控制服务)。Android提供了一个名为的系统应用,它维护了三个SQLite数据库来为其他应用存储配置信息。这些配置通过ContentProvider暴露出来,供应用通过进行访问。: 所有用户共享的全局设置,通常需要系统权限()才能修改。
2025-08-26 12:44:40
1169
原创 驱动-热插拔-Netlink广播监听内核状态
前面了解过uevent事件,内核发送事件到用户空间。监听方式 使用udevadm命令 后台监听事件,查看打印内核信息。那么 我们看看其它方式来监听 内核信息开发者可以创建自己的 Netlink 协议号(或更高)来编写内核模块和对应的用户空间程序,实现自定义的、高性能的内核-用户通信。这在某些特殊需求的驱动或内核模块开发中非常有用。Netlink作用蛮多,这里举例用Netlink来实现 内核监听的一个实例,实际开发当中使用很多,能够快速获取内核相关信息,调试、开发等。
2025-08-25 18:30:00
1214
原创 驱动-热插拔-kset_uevent_ops知识点
前面了解了驱动-热插拔-内核发送事件到用户空间-uevent其实就是uevent 事件传递流程的过程,通过分析函数API,了解了整个流程。这里再次分析一下流程中uevent_ops结构体。这里其实进一步了解、熟悉了uevent事件中涉及到的结构体知识点,在实际应用中可以通过这个结构体进行过滤、定制uevent消息了。
2025-08-23 12:33:24
1397
原创 驱动-热插拔-内核发送事件到用户空间-uevent
通过uevent模拟内核发送事件来理解uevent机制通过uevent机制,进一步熟悉 数据模型框架。
2025-08-22 18:25:48
691
原创 驱动-在自定义总线上创建驱动-分析驱动注册流程
了解数据模型keyObjectkeyset;了解总线模型:设备、驱动、总线了解了 注册自己的总线并创建属性文件驱动总线bus注册流程分析platform平台总线注册流程分析在总线下注册设备及设备注册流程分析平台总线设备注册流程分析这里 就开始分析总线下驱动注册和总线下驱动注册流程分析。其实 就是以总线设备、总线驱动、总线为知识点展开理论知识,深化理解。之前了解过 自定义自己的总线、总线下注册设备、这里了解总线下注册自己的驱动。
2025-08-21 19:57:59
1038
原创 Linux驱动之platform 总线设备注册流程分析
了解数据模型keyObjectkeyset;了解总线模型:设备、驱动、总线了解了 注册自己的总线并创建属性文件驱动总线bus注册流程分析platform平台总线注册流程分析在总线下注册设备及设备注册流程分析这里 就开始分析platform平台总线设备注册流程分析。其实 就是以总线设备、总线驱动、总线为知识点展开理论知识,以platform平台总线为例展开进一步讨论研究知识点,深化理解。Linux驱动之platform总线设备注册流程分析流程,对比总线下设备注册,思路其实都是一样的。
2025-08-21 14:20:08
753
原创 RK-Android11-PackageInstaller安装器自动安装功能实现
通过具体需求,再次熟悉、理解 包安装器流程和业务,简单规整一些知识点,方便后续进一步深度定制。客户需求:实现下载流程和安装流程UI主题一致,安装过程去掉一些列确认弹框提示,直接进入安装流程、安装失败时候直接显示安装失败原因。 如下两图:PMS安装apk之界面跳转MTK-Android13-包安装器PackageInstaller 静默安装实现这是之前总结、规整的包安装器知识点,平台是MTK,我们这里是在RK平台上面定制需求的,源码流程少许不一样,但思想一样,具有极高的参考价值。特别是静默安装篇,对于安
2025-08-20 20:33:52
928
Rk Android12 Setting 源代码
2024-08-15
去除开机动画结束后显示正在启动;去掉开机后进入Launcher前黑屏;延时实现开机动画播放完全
2024-08-15
Rk3568 Android12 SystemUI 源码
2024-08-13
SystemUI 截屏快捷功能添加
2024-08-12
SystemUI QS 面板新增截屏功能按钮资源代码
2024-08-11
RK3568源码编译手册:Android11、12源码;Linux、Linux-5.10内核源码
2024-08-07
3568开发板驱动开发指南
2024-08-07
springbootstudy.zip
2020-01-31
springboot2_mybatis_durid_pager.zip
2020-02-02
cookie_session.zip
2019-11-07
编辑器 Notepad++.zip
2020-03-28
设备树:RK3568 Linux 版本-rk3568-evb1-ddr4-v10.dtsi
2025-11-14
USBCamera-Camera1 预览、拍照、录像
2025-03-07
MTK Android12/13 系统设置 适配遥控器
2025-01-13
日常使用属性配置文件文件-device.mk-gms.mk.zip
2024-12-12
开机向导源码: 2套开机向导源码+MTK 开机向导定制思路指导
2024-12-11
开机向导定制资源,自定义开机向导资源apk、开机向导apk
2024-12-10
Framework开机自启服务-应用-自动执行-循环检测功能
2024-12-04
定时开关机功能,实现定时开关机功能
2024-10-21
TurnOffReboot.zip Android 实现重启、关机 功能
2024-09-15
MTKCamera预览、成像、拉伸代码简要片段
2024-09-10
无障碍服务工具类,在源码基础上添加日志,方便check 流程
2024-08-16
手环数据采集(心率、血压、步数、健康参数)
2016-03-18
Android开发时获得开启的通知
2014-12-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅