- 博客(420)
- 资源 (2)
- 收藏
- 关注
原创 win11 修改右键 样式和 win10 一致
C:\Windows\System32> reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /veC:\Windows\System32> reg.exe delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f
2025-02-25 15:58:14
117
原创 Android_P_Audio_系统(2) — AudioTrack
AudioTrack 用于 Android 平台音频数据输出,属于 Audio 系统对外提供的 API 类,因此它在 Java 与Native层均有对应的源码实现。先从 Java 层的一个用例了解下 AudioTrack 工作流程。// 1 根据音频数据特征确定所要分配的缓存区的最小 sizeAudioTrack.getMinBufferSize(8000, // 采样率:每秒 8000 个采样点AudioFormat.CHANNEL_OUT_STEREO, // 声道数:双声道。
2025-02-06 09:46:01
1025
原创 Android_P_Audio_系统(1) — Auido 系统简介
声波的频率高,则音调也高。PCM 数据是最原始的音频数据完全无损,所以 PCM 数据虽然音质优秀但体积庞大,为了解决这个问题先后诞生了一系列的音频格式,这些音频格式运用不同的方法对音频数据进行压缩,通常分为无损压缩(ALAC、APE、FLAC)和有损压缩(MP3、AAC、OGG、WMA)两种。音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取 2.5ms~60ms 为单位的数据量为一帧音频。当我们用较大的力量敲鼓时,鼓膜振动的幅度大,发出的声音响;
2025-02-06 09:40:14
1072
原创 Android Audio音频系统
Audio硬件抽象层的实现在各个系统中可能是不同的,需要使用代码去继承相应的类并实现它们,作为Android系统本地框架层和驱动程序接口AudioFlinger继承了libmedia.so(Audio本地框架类)里面的接口,上层调用的只是libmedia.so部分的接口,但实际上调用的内容是libaudioflinger.so,使用JNI和Java对上层提供接口,JNI部分通过调用libmedia.so库提供的接口来实现。虽然有的类是在同一个库中实现的,但并不代表它们会在同一个进程中被调用。
2025-01-21 10:38:52
1065
2
原创 【Wi-Fi 802.11协议】管理帧 之 Auth帧详解
WPA2,WPA3加密方式,OpenSystem分为两步,第一步由STA发起认证,AP收到后会回复一个AUTH帧,根据StatusCode判断是否认证成功。:Auth帧的顺序编号,此处为4,代表该包为AP收到STA的WEP密钥后回复STA的包。:Auth帧的顺序编号,此处为2,代表该包为AP收到STA的认证请求后回复STA的包。:Auth帧的顺序编号,此处为1,代表该包为STA发起的第一包。:Auth帧的顺序编号,此处为2,代表该包为AP回复STA的包。
2025-01-20 16:13:20
861
原创 【Wi-Fi 802.11协议】管理帧 之 Probe帧详解
相当于BeaconTimestamp,用来同步AP和STA的TBTT(信标预定传送时间)窗口,AP的主计时器会定期发送目前已经工作的微秒数。这里有个HECap可以简单说一下,有这个字段说明该STA支持Wi-Fi6,如果AP同样支持Wi-Fi6,就可以和AP进行协商,使用802.11ax的速率进行数据包的交互。如果ProbeRequest帧所探测的802.11网络与之相同,该网络就会以ProbeResponse帧应答。
2025-01-20 16:12:32
200
原创 【Wi-Fi 802.11协议】管理帧 之 HT字段详解
STA支持STBC(时空分组编码)接收PPDU(表示协议数据单元),STBC在802.11n中是个可选的技术,用以在接收端提高信号强度,要使用STBC需要发射机和接收机同时支持STBC,STBC的出现是为不支持MIMO技术的接收机提供一种提高信号强度的方法。:相位共存,1为防止20MHz与40MHz转换发生碰撞,在40MHz,如果存在20MHz的STA,则需要给两个20MHz信道提供Beacon,以提供保护机制,0为不支持。
2025-01-20 16:11:37
678
原创 【Wi-Fi 802.11协议】管理帧 之 Beacon帧详解
信标帧,由AP以一定的时间间隔周期性发出,以此来告诉外界自己无线网络的存在。OUI:00-D0-D0为中兴的OUIvalue:每个厂商的不一样,具体含义目前未知。
2025-01-20 16:09:45
1045
原创 wireshark抓路由器上的包 抓包路由器数据
扫描路由器信息,确定抓包信道;设置连接路由器的SSID和密码,用来数据解密,路由器无密码时跳过;设置需要抓包的设备的MAC地址过滤;抓取设备的联网过程,获取报文加密的KEY,路由器无密码时跳过;开始抓包,Omnipeek会根据路由器的SSID、密码和KEY自动解密报文;明文数据包分析。
2025-01-16 09:56:44
1805
原创 sniffer 日志分析吞吐问题
命名filter,选择“Address 1 to 2”,确认"ok"选中某一条数据,单击鼠标右键,选择“make filter”flags:"#“表示ACK;”+"表示重传\No ACK。ap设置为不加密,sinffer可查看tcp状态。尽量先用不打印调试信息的版本,提高。选择新命名的"filter"过滤出。选择"Compass"查看分析结果。data rate:表示速率。Singal:表示信号强度。channel:表示。
2025-01-14 14:24:17
371
原创 Win11电脑解决 Windows无法验证此设备所需的驱动程序的数字签名
8、进入启动设置界面,有9个不同的选项,我们是进入安全模式,按一下键盘上的F7 1=F1 2=F2 以此类推。6、进入高级选项,里面有系统修复、启动修复、命令提示符、启动设置等,我们选择“启动设置”3、打开更新和安全,左侧的“修复”,点击高级启动中的“立即重启”按钮。2、疑难解答--》启动--》f7 禁用未签名强制验证。7、进入启动设置界面,点击“重启”按钮,重启计算机。2、打开进入设置界面,找到里面的“更新和安全”4、系统自动进入安全操作界面,选择“疑难解答”5、进入疑难解答,选择“高级选项”
2025-01-13 16:09:32
1462
原创 使用 Wireshark 分析 TCP 吞吐瓶颈
需要始终记住的是 Y 轴是 Sequence Number,红色的线表示 SACK 的线表示这一段 Sequence Number 我已经收到了,然后配合黄色线表示 ACK 过的 Sequence Number,那么发送端就会知道,在中间这段空挡,包丢了,红色线和黄色线纵向的空白,是没有被 ACK 的包。里面,然后由系统负责发送出去。对于第 1 点,本质上,发送端是用丢包来检测网络状况的,如果没有发生丢包,表示一切正常,如果发生丢包,说明网络处理不了这个发送速度,这时候发送端会直接将 cwnd 减半。
2025-01-13 09:54:00
1365
原创 wifi Beacon超时分析参考
信标帧,由AP以一定的时间间隔周期性发出,以此来告诉外界自己无线网络的存在。信标帧是相当重要的维护机制,主要来宣告某个网络的存在。定期发送的信标,可让移动工作站得知该网络的存在,从而调整加入该网络所必要的参数。在基础网络里,接入点必须负责发送Beacon帧,Beacon帧所及范围即为基本服务区域。在基础型网络里,所有沟通都必须通过接入点,因此工作站不能距离太远,否则法接收到信标。Beacon帧是802.11系列帧中间最为繁杂的一个帧。
2025-01-07 00:02:17
470
原创 omnipeek抓包
(开始这一步首先要有这个认知:AP模式和STA模式下设备的MAC地址不一定是一样的,adb查出来的是设备在STA模式下的地址,具体继续往下看)点击Start Capture,显示已经抓取到了,查看SSID可发现,就是自己的设备(SSID即为设备在AP模式下wifi列表可搜索到的名称)a.让设备处于配网模式,即AP模式(散发热点),再次Start Capture,找到了B2:59:47:BA:65:10。根据上图信息,选择信道8,可以看到设备在STA模式下的MAC地址为:B0:59:47:BA:65:10。
2025-01-06 23:57:09
654
原创 omnipeek分析beacon帧
找到设备的mac地址(本例AP模式MAC地址:02:e0:4c:01:21:0e )双击打开;可在具体信息页面查看SSID是否为你要找的设备,查看Beacon Interval即可。打开becon.pkt文件(用omnipeek工具提前抓取包);Beacon帧发送频率符合规范要求。两个beacon发送间隔不能超过100ms】
2025-01-06 23:55:04
303
原创 WPA: Group rekeying completed with
(Group Key):用于所有客户端和AP之间组播或者多播。组密钥通过两次握手完成;当工作站离开网络,不论是使用完毕或者被踢出网络,网络系统即可更新组密钥。当组密钥更新后,每个工作站都必须再进行一次组密钥交换。组密钥通常由AP主导更新,不过工作站也可以主动发送确认消息来要求更新组密钥。对应的就是"WPA: Group rekeying completed with 11:22:33:44:55:66 [GTK=CCMP]"这条信息。可以看出,当前网络每隔3600s更新一次组密钥。
2025-01-06 23:50:57
267
原创 蓝牙架构介绍
蓝牙设备功能比较强大,它需要一颗功能非常强大的MCU来做主应用,而蓝牙SoC只是整个系统的一部分,这种情况下,大部分蓝牙协议栈功能或者整个蓝牙协议栈功能都是跑在蓝牙SoC中,而蓝牙应用则跑在主MCU中,主MCU和蓝牙SoC之间的通信协议由厂商自己定义,因此称为自定义双芯片。,其中host跑在AP上,controller跑在蓝牙模块上,两者之间通过HCI协议进行通信,AP芯片厂商一般会直接采用开源的Bluez来实现Host功能,而Controller部分大部分由蓝牙厂商自己来实现。架构3:自定义双芯片架构。
2025-01-02 15:02:33
406
原创 wifi数据包解析_综合测试仪IQxel操作简介和WiFi测试详解
Wi-Fi全称是Wireless Fidelity(无线保真)是美国电气及电子工程师学会IEEE(Institute ofElectrical and Electronics Engineers )定义的一个无线网络通信的工业标准。实质上也是一种商业认证,具有Wi-Fi认证的产品符合IEEE802.11无线网络规范,它是当前应用最为广泛的WLAN标准,采用2.4G ISM和5G ISM两个频段。
2024-12-19 23:18:46
1077
原创 ubuntu上更改ext4格式的硬盘为 windows的 NTFS 格式参考
1. ubuntu上安装 sudo apt-get install gparted。2. 参考如下,下面是转换后的样例。
2024-12-15 15:46:18
693
原创 MTK关于 Camera Otp
1. Camera sensor OTP是一个实实在在的器件吗?OTP到底是什么?2.各个sensor厂商的sensor的OTP存储的参数类别有什么不同?比如 ov的sensor中包括module integrator id和awb 修正参数、lens shading修正参数。3.OTP数据的存储方式有什么不同?比如 ov的数据存储两部分4. 现在所有的Camera sensor 厂商都使用OTP?
2024-12-09 19:41:17
1078
原创 关于 Android LocalSocket、LocalServerSocket
如果在另外一个app中已经创建了这个 "hello_world" 的 LocalServerSocket, 这里再创建会抛异常:java.io.IOException: Address already in use。
2024-11-26 12:52:22
1112
原创 Android上的C底层库都有啥
调用 native_handle_create()函数,可以得到一个native_handle_t,其大小实际上是由参数传入的内容来决定的,得到 native_handle_t 结构体后,对其中的文件描述符和整数赋值。属性的名称和属性值都是使用字符串 (char*)来表示的。在建立 native_handle 时,传入xxx_handle_t 实际的文件描述符和整数的数目,此时返回的结构体指针指向的内存就是xxx_handle_t的大小,因此它实际上是可以作为 xxx_handle_t 使用的。
2024-11-26 10:34:02
1107
原创 MTK中 使用logwrapper进行守护进程log的重定向
在Android有一些应用程序的日志输出是通过printf之类的标准函数输出的,这类log是无法记录到的。主要是由于init进程会把0,1,2三个fd指向到/dev/null,而其他进程都是由init fork出来的,所以标准输出和标准错误输出都会继承自父进程,所以默认也都是不打印出来的。android中提供了logwrapper程序用来log的输出,重定向的log可以使用logcat查看,我们来看下他的实现机制又是怎样的呢?
2024-11-23 11:41:45
379
原创 repo 中 manifest文件介绍
manifest></project></project>remote元素: remote元素可以有多个,用于存在多个git远程服务器的情况。fetch:使用此remote的所有项目的Git URL前缀。每个项目的名称都附加到此前缀以形成用于克隆项目的实际 URL。如果使用此remote的所有项目的前缀和manifest仓库前置一致的话,可以使用..代替。name:此清单文件唯一的短名称。此处指定的名称用作每个项目的 .git/config 中的远程名称。
2024-11-20 00:37:42
704
原创 音频数据的处理
在研究android音频架,音频驱动等的时候,就有涉及到dump音频数据debug,重采样,downmixer,位深转换的处理,那这些的操作原理以及相关算法是如何实现的呢?带着这个问题,开始探讨音频数据的如下几个问题音频数据的特征,与存储等基本概念音频数据的dump方法重采样downmix存储位深转换参考文章列表。
2024-11-12 15:04:44
954
原创 Altium Designer 24导出Gerber文件
在弹出的【NC Drill设置】对话框中,【单位】选择【英寸】,【格式】选择【2:5】,勾选【摒弃前导零】复选框,勾选【生成EIA二进制钻孔文件(.DRL)】复选框,单击【确定】按钮。在弹出的【Gerber Setup】对话框中,【Units】选择【Inches】,【Outputs:FileName.Extension】选择【*.gbr】。在弹出的对话框中进行相应设置,【单位】勾选【英制】复选框,【格式】勾选【CSV】复选框,单击【确定】按钮即可输出坐标文件。无需保存,单击【Don’t Save】按钮。
2024-11-04 22:26:02
2447
原创 查看多个通道32bit音频pcm数据
本文分析一个32位多通道pcm数据,一方面简单解释一下pcm数据格式,另外一方面看清楚实际数据的精度是多少。。
2024-11-01 19:14:57
619
原创 【AD23】PCB板子开槽(Board Cutout)——3种常用方法
PCB耐压虽然不低,但长期使用后会沾上灰尘和潮气,因此其耐压会显着降低,这意味着爬电距离减少了。PCB开槽后,短距离采用直接空气隔离,电气间隙,在一定程度上保证其耐压。点击开槽图形任意一根线,点击“Tab键”即可选中开槽图形。点击工具,点击转换,点击以选中的元素创建板切割槽(B)。根据板卡实际需求绘制相应图框【实例:如下图所示】点击设计,点击板子形状,点击定义板切割。右键点击标识1处,点击焊盘,放置焊盘。3D查看:点击数字3切换3D模式。3D查看:点击数字3切换3D模式。3D查看:点击数字3切换3D模式。
2024-10-30 22:09:42
1868
原创 xxd命令详解
xxd 是一个 Unix/Linux 系统中的命令行工具,用于生成二进制文件的十六进制表示(hex dump)以及将十六进制表示转换回二进制文件。可以是正数(从文件开头开始偏移)或负数(从文件末尾开始偏移)。生成一个纯十六进制数字的连续输出,不显示行号和 ASCII 部分。如果不指定,xxd 将输出到标准输出。以小端格式显示输出(适用于 16 位和 32 位的单位)。生成一个包含十六进制数据的 C 语言源代码文件。生成 file.bin 文件的十六进制表示。以二进制格式(而非十六进制格式)显示输出。
2024-10-23 11:34:22
802
原创 Allegro在PCB上开槽的三种方法操作指导
当PCB有特殊设计要求的时候,需要在PCB上开槽,Allegro支持在PCB上开槽操作,具体操作如下。槽位做好之后,需要给它们周围做一个禁布,避免走线和器件在里面,因为是需要挖空的,操作如下。画在Board Geometry-outline层,type选择Unfilled。同样选择画在outline层,type选择Unfilled。同样选择画在outline层,type选择Unfilled。在需要开槽的地方画一个方形的槽位即可。在需要的位置画出一个圆形的槽位。在需要的位置画出一个异形的槽位。
2024-10-11 22:29:29
1464
原创 Allegro PCB中过孔的整体替换
3)回到PCB界面,框选需要更换过孔类型的过孔,点击鼠标右键,在下拉菜单中选择Replace padstack选项,如图2所示,Selected instance是替换选择的过孔,ALL instance是所有的过孔都进行替换;4)在弹出的界面中选择需要替换的过孔类型,点击OK按钮,则选中的过孔就会被新的类型替换掉了,如图3所示;2)选择好设计模式之后,在Find面板中只要勾选Vias这一个选项,其它都不要进行勾选;1)在PCB界面选择设计模式,选择General Edit模式,如图1所示;
2024-10-10 21:23:44
642
1
原创 关于Allegro导出Gerber时的槽孔问题
allegro导出的槽孔文件后缀是 .rou 圆型孔后缀 是 .drl ,出gerber时需要看下是否有该文件。如果设计的板子中有 槽孔和通孔(俗称圆孔),不仅要NC Drill, 还要 NC Route。关于这个 Enhanced Excellon format 选项,是 刀径参数。导出钻孔文件时,设置参数时注意下面的 tab。
2024-10-10 00:39:11
540
原创 关于 CAM350打开钻孔文件时提示出错处理
自动导入CAM350出错时,需要单独导入通孔文件或者槽孔文件查看。下图中的几处值要与出Allegro中导出文件时的设置一致。这样应该就能正常查看钻孔文件。
2024-10-10 00:22:48
479
原创 PCB在导出gerber文件时过孔盖油设置方法
二、Allegro设计的PCB在设置过孔盖油时,需要在导出gerber文件时设置,Manufacture——>Artwork打开后,Domain Selection中Mask类下不需要添加VIA/SOLDERMASK_TOP和VIA/SOLDERMASK_BOTTOM(即不添加过孔的阻焊层,过孔盖油)--------------4)VIA /SOLDERMASKT_TOP(作用:使过孔不盖绿油)设置好以后,导出gerber文件即可。
2024-10-10 00:08:31
1092
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人