- 博客(113)
- 收藏
- 关注
原创 Anroid 建设银行检测到设备已被Root的判断
先说结论没有办法完全检测出设备是否被root,因为root权限拥有系统的最高权限。已经root的设备可以通过修改系统文件,和Hook来躲避检查。我们只能增加他躲避检查的难度来检测root权限。
2024-12-06 16:30:56
922
原创 Android adb-wm命令详解
1.wm窗口管理命令可以获取屏幕的 分辨率、像素密度 等信息,甚至可以临时修改屏幕的 分辨率、像素密度 等参数,可以很方便地查看 APP 在不同像分辨率和素密度手机/平板上的显示效果。查看帮助wm# 或wm help查看 屏幕分辨率 和 像素密度wm size # 查看屏幕的 分辨率, 单位: pxwm density # 查看屏幕的 像素密度, 单位: dpi(dots per inch)
2024-06-17 11:59:52
2157
1
原创 Android HAL - hidl-gen
HIDL 软件包中自动生成的文件会关联到与该软件包同名的单个。hidl-gen 编译器会将。:完全限定名称的输入文件。,它可以包含在客户端和服务器中。服务端实现链接到的共享库,同。自动生成的文件用于编译客户端。对于单个文件来说,格。,要求在源码目录下必须有。指定包名和文件所在的目录到。系统源码根目录的路径。言类型产生不同的文件。产生的中间文件的路径。对应的文件来说,用来。
2023-09-08 17:54:33
1030
原创 Android 默认授予所有应用权限以及特殊权限处理
PackageManagerService作为android的主要系统服务之一,包含处理应用权限相关的职责。源码地址如下:在PMS成功启动时并收到回掉systemReady回进行应用权限授予。DefaultPermissionGrantPolicy为权限处理策略管理类。这里并没有赋予所有系统应用权限,所以当进行应用时还是会显示权限检查的弹框。可通过此方法进行所有应用权限赋予:如果不想所有应用都授予权限,可考虑在system/etc下的权限相关xml文件添加应用包名和所需权限。
2023-08-29 16:43:21
733
原创 Android WIFI-概率性不能自连
1.连上wifi时同步保存wifi密码,避免连上wifi后马上断电重启由于密码没保存导致不能自动重连wifi。2.解决已连接过的wifi重启后低概率不能自动重连。
2023-08-08 08:37:55
785
原创 Android WIFI-系统连接WIFI显示网络连接受限
使用Android设备打开设置,选择WIFI输入正确密码连接,会显示已连接,无网络,然后变成网络连接受限,实际可以使用此WIFI进行上网。
2023-08-07 17:22:10
1742
原创 Android AlarmManagerService-设置系统时间无效的问题
使用系统接口设置时间生效,查看rtc也设置成功。但是重启后时间为首次开机的时间.
2023-08-02 15:38:31
1049
1
原创 Android uart-修改串口节点名
应客户软件的需求,需要将Android系统里面的/dev/ttyS3节点名称修改为/dev/ttyS9;1、判断 driver->name是否为"ttyS",index是否为3,如果是的话替换为ttyS9;2、给ttyS9赋予0777权限。
2023-08-02 11:47:38
855
1
原创 Android 读取系统属性详解
关于Android"设置"里的一些属性可以直接通过settings命令直接查看或者设置。shell 下 settings指令可以分别查看系统、全局、安全设置属性。
2023-08-01 16:09:50
5121
原创 Android 语言列表简码
International Components for Unicode (ICU) DataULocale List
2023-07-04 16:03:30
4270
原创 Android BT - 抓BT log
4). android 新版本 ,8.0+: 直接设置 android 的属性, 来设置btsnoop的开关。为了⽅便查看异常log, 出问题后, 尽快导出log;1)、请提供复现问题时同步的 logcat -v time 和 btsnoop hci log。请提供复现问题时同步的 logcat -v time 和 btsnoop hci log。以下为其中的⼀个路径;1). 抓同步的logcat -v time 和 btsnoop-hci log。(logcat中的信息中,会有加载BT的相关log)
2023-07-03 14:10:07
577
原创 Android Audio - rk
这个部分作为Android的Audio系统的输入/输出层次,一般负责播放PCM声音输出和从外部获取PCM声音,以及管理声音设备和设置(注意:解码功能不在这里实现,在android系统里音频视频的解码是opencore或stagefright完成的,在解码之后才调用音频系统的接口,创建音频流并播放)。详情可参阅 audio.h。确定声卡注册成功后,开机加载 hal 层音频模块的时候,会根据声卡的名字找到声卡对应的codec 通道配置文件,我们可以通过抓取logcat log 确定声卡对应的通道配置文件。
2023-06-30 15:30:49
563
原创 RIL/QCRIL架构及基本流程
通过之前章节的讲述我们已经知道,libril属于Google原生的逻辑,MTK和高通公司都在使用这套原始逻辑,而libril的下层则是各个芯片厂商为了适配各自的芯片而自己开发的一套处理逻辑。QCRil则是高通公司为适配自己的modem芯片而开发的自己消息处理逻辑。里面主要是将请求消息、请求响应及主动上报消息封装成QMI消息进行传递。据高通的说法,使用qmi消息的机制可以传输效率更高,更稳定。
2023-06-15 15:50:58
2298
原创 Android Media - dumpsys
这里以HDMI OUT设备获取profile为例,HDMI OUT当前支持了compress offload,direct output,mmap_no_irq_out_dynamic 3种典型类别的profile。
2023-06-08 16:09:30
1062
原创 Android Bluetooth(蓝牙) - BLE开发
首先得说明什么是低功耗蓝牙BLE,BLE的全称为Bluetooth low energy(或称Blooth LE,BLE),从英文全称便可以知晓其是一种低功耗的蓝牙技术,是蓝牙技术联盟设计和销售的一种个人局域网技术,旨在用于医疗保健、运动健身、信标、安防、家庭娱乐等领域的新兴应用。让别人能发现自己,对于一个不广播的设备,周围设备感觉不到其存在的,因此,要让别的设备能发现,则必须向外广播,在广播中可以带上丰富的数据,比如设备的能力,设备名字以及其他自定义的数据,这也就有了第二种可能。
2023-06-07 11:16:59
1520
原创 Android RK3588-12 增加蓝牙助听器功能
增加蓝牙助听器功能</modules></volume></volume></volumes>
2023-06-06 15:47:03
663
原创 Android WIFI模组适配
4、WIFI开关打开一次后,以后无论WIFI开关处于什么状态,系统设置下关于设备界面的WIFI模组型号都会与板载WIFI模组型号保持一致。2、需要系统设置下的WIFI开关打开后/sys/module/bcmdhd/parameters/chipid节点才能生成。5、恢复出厂设置后,同样要打开一次wifi开关,系统设置下关于设备界面的WIFI模组型号显示才会刷新。3、需要打开一下WIFI开关,系统设置下关于设备界面的WIFI模组型号显示才会刷新。
2023-06-06 15:31:35
695
原创 Android Bluetooth(蓝牙) - 概念和框架
从流程图我们可以看出来 蓝牙应用通过binder和系统蓝牙Service进行通讯 ,然后通过JNI与蓝牙HAL层进行通讯。
2023-06-06 14:17:43
1430
原创 Android11 rk3568 修改设置和第三方应用读到的内存总容量大小
在内核 kernel/mm/page_alloc.c 文件中将 val->totalram(总内存) 与 val->freeram(可用内存) 修改为自己需要的的大小;单位是一页(page),大小 4 K=4096 byte,反向计算就可以得出val->totalram(总内存) 与 val->freeram(可用内存)的值。注:修改后由于硬件没有实际替换物料,所以实际的emmc内存大小还是修改之前的大小(8G)。(val->totalram值 x 4)/1024/1024=16GB。
2023-06-06 09:05:57
869
1
原创 Android Input子系统 - 触控事件处理机制
最后借用业界大牛做的一张图来描述Android系统触控事件处理机制的整体全貌作为总结。
2023-06-05 16:54:09
1464
1
原创 Android RK平台播放框架切换
---6.0以后的sdk返回这个,如果是5.1返回的是STAGEFRIGHT_PLAYER。----6.0以后的sdk返回这个,如果是5.1返回的是STAGEFRIGHT_PLAYER。if(strstr(filePath.string(),".ogg")){----表示ogg格式的文件调用sf框架的播放器。BUILD_FF_PALYER := true ---设置为true时表示是ffmpeg框架。BUILD_FF_PALYER := false ---设置为flase时表示是sf框架。
2023-06-05 13:42:51
836
原创 Input子系统 - 系统框架
Input子系统在整个Android 系统中主要管理一些输入设备:按键、触摸屏鼠标等,他是建立在Linux的input子系统上的一套应用层软件架构,主要是处理用户的一些输入行为,反馈给前台的应用或者系统窗口。Linux的input子系统的范围要更广,包含sensor等设备。
2023-06-02 17:30:52
559
原创 Android Input子系统 - PhoneWindowManager
很明显了,调用Java层InputManagerService的interceptKeyBeforeQueueing方法,后面就没有什么困难了,最后调用PhoneWindowManager的interceptKeyBeforeQueueing方法。看下InputMonitor的方法,有一些也是同样的方法调用,关键是C/C++层的代码什么时候调用,觉得InputMonitor的主要目的还是解耦,防止PhoneWindowManager和InputManagerService太紧,mPolicy变量是什么呢?
2023-06-02 17:07:34
991
原创 Android Input子系统 - InputManagerService
InputManagerService是Android framework中核心service之一,Android framework层涉及的代码也是非常多,
2023-06-02 11:53:09
502
原创 Android Input子系统 - EventHub
前面其实也有提到EventHub的构造函数,里面就是创建epoll实例,然后把一些事件触发的文件描述符加入到epoll里面统一管理。监控/dev/input/目录的iNotify文件mINotifyFd接收Kernel驱动事件(/dev/input/eventX)的文件描述符用来唤醒InputReader线程的管道读文件EventHub是服务于InputReader线程的,前面在InputRead的构造函数里面有创建EventHub的实例。InputReader线程。
2023-06-01 17:37:16
653
原创 Android Input子系统 - kernel
上一节有展示Android Input子系统的架构图,这里我们关心Linux kernel层输入子系统设备驱动:处理与硬件相关的信息,调用input API注册输入设备,并把数据往上报输入子系统核心层:为事件处理层和设备驱动层提供API接口调用输入子系统事件处理:通过核心层的API获取输入事件上报的数据,定义input API与应用层交互。
2023-06-01 17:06:56
770
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人