- 博客(40)
- 收藏
- 关注
原创 wifi 自适应failSOP
这些平台在不同频段的不同带宽均有单独的一行用于修改,哪一项fail了,就加哪一行到wifi.cfg文件里面去,里面的0xFFB2里面的B2就是触发阈值,同样如上往小了改即可。当遇到客户测试EDCCA时,出现fail情况,请客户加大干扰信号强度,看下DUT是否可以停掉TX,如果可以停掉TX,那需要按照下面的方式进行调整。注:不同的平台分成不同架构的,可以通过getprop ro.vendor.wlan.gen ,看下是gen4m/gen3/gen2。i,可以解决没有显示屏而无法操作WIFI的问题,
2025-10-14 10:28:48
1036
原创 如何确认 Android 设备是否自带 wpa_cli
8781平台wpa_cli在vendor/bin下。8781平台在system/bin/下。使用基本命令确认 iw 是否正常工作。确认 iwpriv 是否存在。就能直接使用wpa_cli。也可以临时加 PATH。
2025-09-26 10:30:15
209
原创 调PWM背光遇到过的问题?启动时屏幕闪烁怎么解决的?
如果前后设置不一致(如 Bootloader 配了固定占空比,Kernel 再重置),就会闪一次。背光点亮时不是直接跳到 100%,而是逐步调节(比如 0 → 20 → 50 → 100%)。开机过程中,PWM 没有初始化完成,默认输出不稳定 → 屏幕亮暗不均或闪一下。BL_EN(背光使能脚)提前拉高,但 PWM 还没输出稳定频率 → 出现闪烁。确保 PWM 输出稳定频率和占空比(比如 0% 或默认亮度),再打开背光电源。初始化时先写 0%,这样即使 BL_EN 打开,屏幕也是黑的,不会闪。
2025-09-26 10:25:40
848
原创 Android使用内存压力测试工具 StressAppTest
StressAppTest是一款开源系统压力测试工具,用于检测内存、CPU和显存的稳定性。通过GitHub获取源码后,可集成到系统开发环境中。测试时使用命令"stressapptest -s10 -M1000 -W -m8",即用8个线程占用1000MB内存进行10秒写入验证。测试结果显示:83970MB数据在10秒内完成传输,速率达8394.37MB/s,无硬件问题和错误,最终状态为"PASS"。该工具支持Android系统,可帮助开发者验证硬件稳定性。
2025-09-03 13:43:32
500
原创 Android编译移植memtester,内存压测试工具
本文介绍了在Android系统中使用memtester工具进行DDR内存压测的方法。首先下载memtester源码并添加Android.mk编译脚本,通过mm命令编译生成aarch64架构的可执行文件。编译完成后需将文件push到设备/system/bin目录,或在device.mk中加入PRODUCT_PACKAGES配置打包进系统。使用时通过命令行执行,如"memtester 100M 1"测试100MB内存循环1次。注意普通应用需修改SEPolicy权限才能运行。测试示例展示了1G
2025-09-03 13:38:54
538
原创 mt6897 scp a+g sh5201 porting记录
本文摘要介绍了在MTK平台(MT6897芯片)上添加SCP侧传感器的完整流程。主要包括:1)硬件连接确认(供电、I2C/SPI组号、中断GPIO);2)驱动代码添加位置(vendor/mediatek/tinysys/scp/middleware/sensorhub/drivers);3)DTS配置(传感器名称、总线ID、中断号等);4)编译配置修改(project.mk和sensorhub.mk);5)HAL层声明(SensorListV2.cpp中添加传感器参数);6)系统宏开关设置(ProjectCo
2025-08-08 11:01:24
1162
6
原创 stm32f103rct6+freertos+platformio LittleFS移植记录
本文介绍了将LittleFS文件系统适配到NOR Flash和NAND Flash的步骤。主要内容包括:1)从GitHub获取LittleFS源码并集成到工程中;2)修改内存管理函数为FreeRTOS接口;3)实现底层Flash读写接口函数;4)在STM32F103+FreeRTOS平台测试验证。通过重写read、prog、erase和sync函数,实现了LittleFS对W25Q系列Flash的支持,测试表明系统掉电后数据不会丢失。
2025-08-08 10:38:54
656
原创 Android默认背光亮度配置说明
本文介绍了两种修改Android系统默认亮度配置的方法。第一种是通过Overlay机制覆盖系统默认值,将默认亮度从0.5调整为0.85。第二种是直接修改AOSP源码中的config.xml文件,其中包含6个关键配置项,分别控制屏幕亮度的最小、最大和默认值,包括整型版本(10-255)和浮点版本(0.0-1.0)。目前浮点版本被设置为-2(无效),系统会回退使用整型值控制亮度。要启用浮点控制,需要设置合理的0.0-1.0之间的值。
2025-07-17 10:20:38
583
原创 Git Revert 使用指南(基础用法)
本文介绍了Git中撤销变更的两种方法:git revert和git reset。git revert通过创建反向提交安全撤销指定改动,支持-n参数延迟提交,适用于公共分支;处理冲突时可选择中止(--abort)、退出(--quit)或解决冲突后继续。相比之下,git reset直接回滚到指定提交,会删除后续记录,仅推荐用于个人分支。总结指出:公共分支推荐使用git revert保留历史,个人分支可使用git reset清理记录。两种方法各适用于不同场景,git revert更安全,git reset则更彻底
2025-07-17 09:58:22
575
原创 使用FreeRTOS时,需要将HAL时基从SysTick切换到定时器(如 TIM6、TIM7)
中断优先级问题引发HAL_Delay()死等,FreeRTOS 默认使用SysTick作为自己的心跳,并将设置为SysTick最低中断优先级,以保证高优先级中断正常执行。当FreeRTOS与HAL库共用SysTick作为系统时基时,如果在一个高于SysTick优先级的中断中(如串口、DMA等)调用 HAL_Delay(),SysTick 无法打断当前中断,也就无法递增 uwTick。将 HAL 的时基切换为其他定时器(如 TIM6、TIM7),尽量不要在中断中使用延时HAL_Delay()
2025-05-21 13:59:54
443
1
原创 MCU 上电不启动的常见原因分析与排查思路
在开发过程中,“MCU 上电不运行”是我们经常遇到的问题之一。但客户对此类问题的描述往往较为模糊,仅简单表示“产品不工作”或“怀疑 MCU 没有运行”,这给我们现场排查带来了较大的挑战。其它MCU,像STM32G0/G4,它并没有外接VCAP,它的内核电压都是在芯片内部的,也就是说我们无法探测和改善它,这样就更应该注重外部VDD的供电环境了。因此,本文总结了一些 MCU 上电后不运行的典型原因和系统性的排查方法,供大家参考和借鉴。,距离越远,信号衰减和受干扰的风险越大,从而影响起振效果。
2025-05-21 10:40:34
2710
原创 深入理解 SPI 通信中的时钟极性与相位(CPOL 与 CPHA)
在 SPI 通信协议中,时钟极性(CPOL)和时钟相位(CPHA)是两个关键配置参数,它们决定了数据传输的时序规则。理解这两个参数对于正确配置主从设备之间的数据交互至关重要。本文将通过简明的解释和直观的时序图,深入解析 CPOL 与 CPHA 的含义,以及它们组合形成的四种 SPI 模式,帮助读者快速掌握 SPI 总线的核心时序逻辑。
2025-05-19 14:42:30
1668
原创 TEE可信执行环境的安全业务保护方案
安全业务可在**TEE(可信执行环境)**中运行,以保障安全资产的完整性。可帮助企业便捷管理Android移动设备,提升安全性并优化运维流程。,通过摄像头采集人脸数据,并存储于。,防止盗版,特别适用于。
2025-03-03 19:26:35
1412
原创 [RPMB] CPU and EMMC/UFS RPMB Region 绑定说明
2 同一片主板上初始状态CPU_A+UFS_A,换其他板子上使用过的UFS,但是不换CPU:即换一个已经在其他主板被使用过,已经写入CPU_B ID派生出来key_B的UFS_B ,新的key_B跟当前UFS_A在此之前已经存储的由CPU_A派生出来的key_A不匹配,CPU_B无法访问当前板子上的UFS_A RPMB数据;新的UFS_B上没有存储当前板子CPU_A ID派生的key_A,CPU_A 也无法凭借Key_A访问更换过来的UFS_B RPMB保护的数据。
2025-03-03 10:03:18
925
1
原创 Android Logcat 高效调试指南
Logcat 是 Android SDK 提供的命令行日志工具,支持灵活过滤、格式定制和实时监控,官方文档详见。
2025-02-28 16:35:11
743
原创 eMMC安全简介
如果一段恶意软件执行重放攻击,拦截了初始消息(将账户余额设置为 $2,000),通过在 $1,600 购买后重新发送相同的消息,它可以将账户余额重置为 $2,000。在eMMC5.1之前,永久写保护机制是防护启动分区的唯一可靠方案,然而该机制在防黑客篡改的同时,也使得制造商无法在需要时更新该区域。在 RPMB 中,设备管理一个只读计数器,该计数器在每次写入消息后递增,并且其新值将包含在下次要发送的认证码计算中。然而,黑客可能试图利用相同机制,将用户设备软件降级至旧版本,以利用先前版本的漏洞。
2025-02-28 16:10:53
1550
原创 转载 What is eMMC?
nand falsh:NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。nor flash :NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。3、使用emmc的好处是,除了得到大容量的空间(这一点,只用NAND FLASH多堆叠也可以做到),还有就是emmc可以管理NAND (坏块处理,ECC)等。
2024-12-03 10:47:41
793
原创 RPMB 功能及key介绍
RPMB(Replay Protected Memory Block)是 eMMC 中的一个具有安全特性的分区。其主要功能是通过 HMAC SHA - 256 和 Write Counter 来保障数据的安全性,防止数据被非法篡改。在实际应用场景中,常用于存储如指纹数据、安全支付相关key、手机指纹支付公钥、序列号等对安全性和防篡改要求较高的数据。RPMB作为eMMC所包含的多个分区之一,在与eMMC进行交互时,存在着严格的数据校验和权限控制机制。
2024-12-03 10:17:23
2622
6
原创 数字内容保护DRM
设备的安全可信、合法的用户身份以及软件运行环境的安全可信,其价值归根结底要体现在数据和业务的安全可信上。本篇来探讨经典的数字内容保护机制,也就是 DRM(数字版权管理 Digital Rights Management)。数字版权管理 DRM 是伴随数字化图像、音频、视频内容在互联网上的广泛传播而兴起的一种技术。
2024-11-28 14:17:01
2280
原创 Linux Shell环境下如何使用tar命令
这将压缩mydocs.tar并创建一个名为“test.tar.gz”的压缩包。tar 可以结合不同的压缩程序来创建和解压压缩归档文件。这将解压缩test.tar.gz并提取其中的所有内容。这将newfile.txt添加到test.tar中。这将从test.tar中删除oldfile.txt。这将列出test.tar中包含的所有文件和目录。
2024-09-27 10:11:56
818
原创 ADB命令大全
adb uninstall -k <package> //比如:adb uninstall -k com.baidu.search。adb install -s <apkfile> // 比如:adb install -s baidu.apk。adb install -r <apkfile> //比如:adb install -r baidu.apk。adb install <apkfile> //比如:adb install baidu.apk。ADB很强大,记住一些ADB命令有助于提高工作效率。
2024-09-06 11:26:53
1601
原创 tracing mini-HOWTO
saved_cmdlines_size - echo command number > saved_cmdlines_size :存储 comm-pid 列表。写入此文件以定义/取消定义新的跟踪事件。trace_marker_raw -写入该文件将二进制数据写入内核缓冲区。kprobe_events -创建/追加/删除/显示内核动态事件。buffer_total_size_kb - 查看所有 CPU 缓冲区的总大小。阅读内容了解更多内容。
2024-08-23 11:50:35
558
原创 Camera 基础概念
一般来说,对于单片镜头就是镜头中心到焦点的距离,而相机镜头是由多片透镜组合,就要复杂许多。这里焦距就指的是从镜头的中心点到感光元器件(CCD)上所形成的清晰影像之间的距离。焦距和视角、成像的关系:简单来说,就是焦距越短,视角越宽广,取景范围就越大,单个物体成像越小。
2024-08-23 10:59:57
2031
原创 PC连接Android设备ADB调试方法
Android调试桥(Android Debug Bridge),简称adb。用于执行各种设备操作,如安装和调试应用。
2024-04-02 15:11:35
3025
1
原创 linux自动添加调试语句脚本
在平时的调试过程中遇到一些难以解决的问题,这是可能就需要进行排查。比如在源码的各个函数中加入一些调试语句,以此查看程序的运行顺序及情况。但是在linux源码中有些.c文件动辄就几千行代码,里面的函数更是数不胜数,如果一个个手动添加打印语句,就会很耗费时间。这明显不是一个很好的选择。于是本文提供了一个基于Perl的脚本,用于在.c文件中的各个函数的开头加入特定的调试语句,以节省调试时间。确保两个文件在同一文件夹下。
2024-01-03 14:39:11
571
1
原创 MT8788平台Android12Camera调试记录文档
配置路径:(cfg_setting_imgsensor.cpp 优先级:project>platform>common)Android版本:Android12。根据硬件实际layout来自定义设置。内核版本:kernel-4.19。1. MiPi 硬件引脚配置。配置mclk上电时序。
2024-01-03 11:22:56
1383
1
原创 git补丁制作与使用
git format-patch #生成某commit以来的修改patch(不包含该commit) git format-patch --root #生成从根到r1提交的所有patch。git format-patch .. #生成两个commit间的修改的patch(包含两个commit. 和都是具体的commit号)commit号可以使用git log等命令来获取。git应用patch。
2023-12-29 16:05:27
1950
1
原创 CRC8检验算法(C语言实现)
CRC校验算法,简而言之就是把需要校验的数据与多项式进行循环异或(XOR),XOR的方式与数据传输方式的高位先行(MSB)和低位先行(LSB)有关。那么什么情况算是对齐呢?除数poly的左边的高位的作用其实是给人看的(实际上参与运算的是0011),目的是干掉当前最高位的被除数,本质上是让poly和被除数对齐,然后开始XOR运算。上面的crc计算是纯采用逻辑运行的方式,可以看到,需要的运行量也是不少的,每一个字节。注:由于多项式的最高为都为1,并且在代码的crc8计算中,最高位也是不使用的,
2023-09-09 19:10:27
9104
7
原创 关于Android开机动画bootanimation.zip的制作详解
p 1 0 part01 解释:1是循环一次 0 间隔时间为0(单位为帧数)1280 800 15 解释:1280 800 是分辨率 15是帧数。p 0 0 part02 解释:0是无限循环 0 间隔时间为0。 例如:01.png,02.png,03.png。desc.txt:是一个文本文件,用于定义启动动画的相关规则和属性。part1:启动动画第一个部分。注:desc.txt 要以回车换行结束。desc.txt规则解释。
2023-08-22 10:52:38
3695
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅