自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(372)
  • 资源 (2)
  • 收藏
  • 关注

原创 MAC地址格式详解

在数据链路层,数据帧通常依赖于MAC地址来进行数据交换,它如同公网IP地址一样要求具有全球唯一性,这样才可以识别每一台主机。那么MAC地址如何做到这点?它的格式又是什么?MAC地址,英文全称,直译为,它通常被固化在每个以太网网卡(NIC,Network Interface Card)。MAC(硬件)地址长48位(6字节),采用十六进制格式,下图说明了48位的MAC地址及其组成部分。示例: 00-01-6C-06-A6-29 或 00:01:6C:06:A6:29。

2024-08-28 10:13:44 1671

原创 linux文件组 avc: denied { dac_read_search } for capability=2

1、当报这种dac的 avc selinux权限是一般是因为不在同一个用户组导致的无法访问。当前运行的进程的UID很多样,root,system,radio,u0_a*等等,通过”ps -e” 可以看到,Android系统中存在很多User。输入 上面的命令查看 android.xxxtest 进程的信息。将我们的service 在group中添加需要的组即可。其中前缀为u0_a代表的是APP进程的UID。可以看到9997 是everybody 组。首先查找进程的id号,这里是7867。

2024-08-24 11:37:04 237

原创 【MTK FlashTool】ERROR : STATUS_ERR (-1073676287) , MSP ERROE CODE : 0x00.

KERNEL=="ttyACM*", MODE="0666"是给flash_tool运行过程中生成的设备文件增加权限,这样不需要管理员权限即可运行。注意:idVendor idProduct 通过命令lsusb可以获得。备注:idVendor 与 idProduct的通过lsusb命令查看。在使用时刚开始使用便直接报错。第三步:重新加载驱动。

2024-08-19 09:18:40 385

原创 android 11添加property遇到的selinux问题

dac_override 是一种典型的neverallow权限,要添加dac_override权限必须是coredomain才能添加,如果不是coredomain是没有办法添加这种neverallow权限的,也就是说在device/qcom/sepolicy/目录下添加的文件是不可能有dac_override权限的,如何添加coredomain修改如问题1所示。/system/sepolicy/private/目录下添加addnew.te 文件。:xxx.ignore.cil使用。

2024-08-18 23:46:40 330

原创 MIPI Data Rate

每线 pll_clk = Data rate/2;2)、DSI cmd mode下的数据速率data_rate的大致计算公式为:(只有当数据更新时,才会刷数据)1)、DSI vdo mode下的数据速率data_rate的大致计算公式为:(实时刷新数据)比如params->dsi.PLL_CLOCK = 234,表示234MHZ。

2024-08-13 16:56:05 217

原创 mtk thermal加解密thermal.conf文件

2、对于已经修改好的*.txt文件,进入mtk-thermal-config-tool-windows-master\encrypt目录下,用cmd命令执行:encrypt.exe *.txt thermal.conf即可。如果没有encrypt目录,则直接在mtk-thermal-config-tool-windows-master里执行即可。为thermal.conf.mtc,执行decrypt_all_config.bat脚本后,会生成thermal.conf.txt文件,打开修改即可。

2024-07-31 08:08:50 308

原创 Android BLE蓝牙广播发送数据

参考 android蓝牙BLE(四) —— 实战。

2024-07-27 01:23:45 270

原创 Android Init进程日志打印不全

Android 调试 Init进程时,会出现日志打印不全的情况,添加日志后达不到预期的效果。所以解决 init 进程相关问题,首先要解决 日志问题。下面是用到的几种方法。方法一:内核代码中找到这个文件在下面这个函数中。

2024-07-27 01:09:57 397

原创 Buildroot添加自定义文件

 在日常开发中,我们经常会向buildroot文件系统里添加自定义文件。本文介绍几种添加的方法  skeleton能够在目标文件系统编译完成后将指定文件覆盖到某个目录。通过这种方式,我们可以方便地添加或修改一些文件到根文件系统。此目录有着有则覆盖,无则新建的特性。  比如说,在开发板的/根目录下创建app目录,具体步骤如下所示:  若buildroot/system/skeleton目录下无app目录,新建即可,之后放进app目录的文件会覆盖开发板上的app目录,保持有则覆盖,无则新建的特性。  重新编译

2024-07-21 19:02:40 906

原创 ubuntu20.04支持win10远程桌面连接

比较安全的办法就是创建一个配置文件。3.(若为Ubuntu 20)添加xrdp至ssl-cert。登录后,如果经常有如下提示。

2024-07-21 13:04:31 665 1

原创 移植wireless_tools工具(iwconfig/iwevent/iwgetid/iwlist/iwpriv/iwspy)

在WiFi调试过程中会用到iwpriv相关的工具。Android系统本身是不支持wireless_tools工具的。所以要移植wireless_tools。以下重点讲解移植过程:1、 下载wireless_tools下载地址: https://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html这里下载:wireless_tools.29.tar.gz。

2024-07-17 09:23:17 426

原创 Android P-rootfs下新增tmp与var目录

mount的使用方式可查看system/core/init/builtins.cpp的do_mount函数,mount_all见同文件的do_mount_all函数。1.system/core目录下添加要新增的目录及挂载动作。3.init添加挂载新增目录权限。2.添加相关selinux权限。

2024-07-15 09:34:59 140

原创 repo sync同步出错解决

再次repo sync -j43 即可正常。之后执行 git pull。同步最新 repo 之后。

2024-07-15 01:49:31 796

原创 adb shell service命令与SurfaceFlinger调试

CODE就是就是binder机制中,onTransact函数中的第一个参数;我们用一个例子来说明,如何通过service命令和系统服务互动。SERVICE 就是list查询到的系统服务的名字;后面是要传递的参数,参数类型+参数值。可以看下源码(下面我截取的是。

2024-07-14 17:06:24 327

原创 adb常用命令总结

抓取到 winscope 和视频文件后,将它们拖拽到 winscope.html 网页,可以查看每一帧的截图、窗口层级结构、窗口属性等信息。在【开发者选项-系统跟踪】中打开【长期跟踪】、【录制跟踪记录1】,将开启跟踪,接着开始操作手机复现 Bug,Bug 复现后点击【录制跟踪记录1】结束跟踪,trace 文件保存在 /data/local/traces/ 下面,以 .perfetto 为扩展名。注意:以上代码需放在 bat 脚本文件中,若在命令行中输入以上命令,则将 %%s 改为 %s。

2024-07-14 16:54:49 2549

原创 分析函数关系调用

这个是专题。

2024-07-13 20:47:44 196

原创 Docker基础-namespace

Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前namespace 里的进程,对其他 namespace 中的进程没有影响。出错是因为如果不建新进程,新的 namespace 会用执行 unshare 命令的进程 的 PID 作为新的空间的父进程,而这个 unshare 进程并不在新的 namespace 中,所以会报个错 Cannot allocate memory。

2024-07-13 14:43:39 712

原创 Docker基础知识-cgroup

cgroups(Control Groups) 是linux内核提供的一种机制,这种机制可以根据需求把一 系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。简单说, cgroups 可以限制、记录任务组所使用的物理资源。本质上来说, cgroups 是内核附加在程序上的一系列钩子(hook),通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。

2024-07-13 14:42:09 964

原创 android 传感器的使用

安卓传感器使用传感器的分类动作传感器位置传感器环境传感器传感器的使用获取安卓手机中所有传感器传感器事件概念如何将传感器注册到应用程序上?传感器的采样率传感器的属性加速度传感器的使用光线传感器的使用方向传感器的使用距离传感器的使用传感器的分类动作传感器加速度传感器重力传感器陀螺仪位置传感器方向传感器磁力传感器环境传感器温度传感器压力传感器亮度传感器传感器的使用1.获取SensorManager对象。

2024-05-25 10:46:38 969

原创 LCM屏显示黑条

修改vendor\mediatek\proprietary\bootable\bootloader\lk\lib\libshowlogo和vendor\mediatek\proprietary\external\libshowlogo 两个目录下的show_logo_common.c文件。MTK平台旋转90度,开机logo下部分显示不全。

2024-05-24 17:35:41 371

原创 MCU 串口接收环形缓冲区的实现

环形缓冲区。

2024-03-03 18:13:20 672

原创 C语言-qsort的使用

比较函数为自定义函数:其两个参数为void*类型指针的elem1和elem2 ,返回参数为整形int参数类型为void*原因:不清楚需比较元素的类型是什么,所以通过void*类型指针的特点(可以接收任意类型的地址)来接收。const修饰其两个比较参数不可被更改。返回值有三种情况:< 0 : elem1 小于 elem2= 0 : elem1 等于 elem2> 0 : elem1 大于 elem2。

2024-01-26 10:55:48 11020

原创 Android P 背光机制流程分析

在android 9.0中,相比android 8.1而言,背光部分逻辑有较大的调整,这里就对android P背光机制进行完整的分析。

2024-01-26 10:14:33 11646

原创 Android P 屏保和休眠相关知识

Android P添加屏保功能,如果休眠时间设定大于屏保时间,则先进入屏保,达到休眠时间后再进入休眠需求:修改后的屏保: 分析与实现:由于Android原生系统默认进入屏保的条件是充电或插入基座时,但到达休眠时才进入屏保。所以需要把进入屏保的条件修改为任何时候都能进入。2.在设置–>显示–>屏保中添加“屏幕互保”选项开关2.1添加系统自定义全局变量,用来保存“屏幕互保”选项开关的状态值2.2 vendor/mediatek/proprietary/packages/apps/MtkSett

2024-01-26 08:59:07 11437

原创 C语言中计算结构体的大小

因此我们似乎很容易就能计算出这个结果:4+20+4+4=32字节但事实上结构体的大小并不是通过这样简单累加计算的。

2024-01-25 16:37:30 11198

原创 比较好用的代码搜索网站

比较好用的代码搜索网站。

2024-01-22 22:25:23 10291

原创 Android系统禁止进入深休眠的方法

在PowerManagerService中mWakeLockSuspendBlocker是控制CPU休眠的锁。mDisplaySuspendBlocker是控制显示开关的锁。通过查看文件,亮屏时看到的也是这两个锁:当按下电源键,会调用goToSleep—>goToSleepInternal —>goToSleepNoUpdateLocked—>updatePowerStateLocked;

2024-01-08 15:25:31 10649

原创 Android蓝牙音乐SRC侧的实现

对音频数据进行编码的具体操作则在各编码方式对应的处理函数中完成,源码路径参考:system\bt\stack\a2dp\a2dp_xxx_encoder.cc\a2dp_xxx_encode_frames(),xxx对应A2DP连接使用的编码方式(SBC、AAC、aptX、LDAC等)。Bluedroid 通过数据 socket 接收到 audio 发送过来的音频数据后,根据A2DP连接时双方协商确定的编码方式对数据进行编码操作,最终将编码后的数据通过l2cap链路发送到SNK端。

2024-01-07 13:29:12 10937

原创 A2DP Source如何从android系统拿到音频数据

5、启动数据通道后,会通过回调btif_a2dp_data_cb通知,进行一些必要的操作后(具体参考原生代码btif_a2dp_data_cb的实现),就可以使用UIPC_Read(UIPC_CH_ID_AV_AUDIO, &event, p_buf, len);A2DP_CTRL_PATH是控制通道,A2DP_DATA_PATH是数据通道。

2024-01-06 18:24:05 11081 1

原创 嵌入式中的数据初始化

整型、浮点型的变量可以在定义的同时进行初始化,一般初始化为 0.

2024-01-05 23:01:38 10874

原创 Android wifi基础知识点

有线网络通过有线线缆把终端和交换机连接起来,组成网络。而无线网络的基础设施模式中,是通过一种叫做 AP 的设备,把多台终端连接到有线网络中。AP也叫做接入点,接入点通常有 RJ-45 网络接口,用来连接到交换机或路由器上,从而让无线网络的终端能够访问有线网络或互联网。WiFi是基于 IEEE 802.11 标准的、不同厂家为产品的品牌认证。既然有 IEEE 802.11 标准了,为什么还要有 WiFi 认证?

2023-12-23 14:16:09 43272

原创 高通wifi配置文件解析

WCNSS_qcom_cfg.ini WIFI配置文件解析下面配置项仅供调试参考,还需要结合代码和日志具体问题具体调试。

2023-12-22 09:16:13 42575

原创 Android驱动并发与竞争

下面介绍Android Linux是一个多任务操作系统,肯定会存在多个任务共同操作同一段内存或者设备的情况,多个任务甚至中断都能访问的资源叫做共享资源,就和共享单车一样。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。多个任务同时访问同一片内存区域,这些任务可能会相互覆盖这段内存中的数据,造成内存数据混乱。

2023-12-19 09:29:51 47183

原创 Android audio pop 音产生和解决方法

pop noise其实是隔直电容被充电产生。

2023-12-14 18:57:23 47005 1

原创 Android audio设置投屏和喇叭双输出

在 Android13 平台上,使用 USB 投屏工具scrcpy,投屏到电脑端时,声音被截到 电脑端播放,Android设备 端静音,在Android11及之前都是 在Android设备端正常播放。

2023-12-12 23:45:58 47788

原创 MTK Android P Sensor架构(二)

kernel层框架的要点大概就这么多,不同的sensor,基本的驱动流程都类似,读完我这系列文章后应该就能一通百通了。

2023-12-12 22:48:04 47394

原创 MTK Android P Sensor架构(一)

本来如果只是给传感器写个驱动并提供能读取温湿度数据的节点,是一件比较轻松的事情,但是最近上层应用的同事要求我们按照安卓标准的流程来,这样他们就能通过注册一个服务直接读取传感器事件数据了。这样做的好处就是第三方的应用也能正常读取温湿度的数据并展示。

2023-12-12 22:26:58 47819 1

原创 Android音量调节参考一

基于android 9平台分析。在Android系统中,默认的设备(phone等)音量都是分开控制的,这些包括媒体、铃声、闹铃、蓝牙、通话通过音频流来区别不同的音量类型。

2023-12-07 17:01:04 49300

原创 Android P 9.0 增加以太网静态IP功能

在 mobile_network_settings 和 tether_settings 之间增加如上代码,对应的 icon 资源文件是我从 SystemUI 中拷贝过来的,稍微调整了下大小,也贴给你们吧到这一步 Settings 的修改就完成了,就能实现上图的效果了,你可以mm push看效果了如果你编译报错,大概是 Settings 中没有添加对应的变量,我的本来就有的,没有的可参考下面的加一下加完后你需要先 make update-api成功后,在重新 mm 编译应该就好了。

2023-12-07 15:45:09 48135

原创 Android HCI日志分析案例3

客户反馈Android设备机上电后,自动连接蓝牙音箱后,等一段时间后,播放音乐,此时,蓝牙音箱声音很小,然后按设备上的音量按键调整音量,会出现,蓝牙音箱音量不同步的现象。看日志13分43秒左右确实有断开,之后再次连接后,没有注册绝对音量控制服务,只是注册了音量改变的通知。异常时 NewAvrcpTargetService 有断开,之后没有再次连接。我们看看正常时的,可以看到正常时是可以成功设置绝对音量的。这款蓝牙音箱是支持设置绝对音量的音箱。直接去掉判读条件即可。

2023-12-07 14:27:27 47029

程序对比工具 winmerge下载

程序对比工具 winmerge下载

2017-03-24

空空如也

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

TA关注的人

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