- 博客(102)
- 收藏
- 关注
原创 Android11三网共存
Android6.0之后系统中优先级设置都是根据Score分值来设置优先级,分值0-100,数值越高,越优先。SIM卡网络 50wifi网络 60有线网络 70手机网络设置都有自己的Factory设置类,都继承自NetworkFactory.javawifi网络设置类:WifiNetworkFactory.java packages/modules/Wifi/service/java/com/android/server/wifi/WifiNetworkFactory.java。
2025-06-11 11:36:06
441
原创 selinux报avc denied权限和编译报neverallow 解决方案
直接打开编译报错中那个domain.te,路径:system/sepolicy/public/app.te,找到和我们添加的部分,搜索“apk_data_file”,可以找到如下内容了,看一下就明白了,不允许我们这样修改了。报错原因是Google在Android Q上增强了对ioctl的审查,除保持对ioctl的审查/授权之外,对具体的ioctlcmd也需要进一步地审查/授权。1、先查看一下是哪些相关的代码申请的这个权限,主要是判断一下是申请的属性还是device节点访问权限等。
2025-06-06 15:33:23
721
原创 Android SeLinux权限问题和解决方法
avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类别 permissive=0。avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类别 permissive=0。
2025-06-06 15:25:13
475
原创 android 发送onkey广播,Android 添加键值并上报从驱动到上层
这里是我添加的,是针对某个特殊功能,让这个gpio在按下和抬起时,都发送onekydown指令所以改动的,如果有其它onkeydown onkeyup事件拦截 也应该在这里。从这里可以看到,当先收到某个scanCode的keyup,但是在表里没找到对应的keydown数据,就会直接return,不会再走下面的onkeyup方法,提示如下。这里KEY_FRONT为132,后面的onkeydown onkeyup中的返回事件中ScanCode,也是132。当成功返回键值即可测试成功。
2025-04-22 09:19:35
411
原创 修改默认usb连接模式为MTP模式
Android P Q:找到UsbDeviceManager,这里在finishBoot(也就是启动后) 设置usb模式为 MTP模式,同时在处理消息时如果为默认模式NONE则将其更改为MTP模式。//这里将默认值UsbManager.FUNCTION_NONE改为UsbManager.FUNCTION_MTP。原文链接:https://blog.csdn.net/vviccc/article/details/114531069。//2 finishboot部分。//1 消息处理部分。
2025-04-09 15:01:38
460
原创 清理编译缓存
make clean && rm -rf out/ # 清除Android编译缓存:ml-citation{ref="3,8" data="citationList"}cd kernel && make mrproper # 清理内核编译残留:ml-citation{ref="5" data="citationList"}
2025-03-27 09:00:06
431
原创 Android系统默认开启adb root模式
修改system/core/adb/daemon/main.cpp的should_drop_privileges()方法返回为false。修改build/core/main.mk,使ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0。添加属性device/qcom/msm8953_64/system.prop,该属性会编译到root/default.prop。将adb root模式默认开启。
2025-01-06 10:52:01
646
原创 Android各个平台下的serialno的设置流程,并用cpu串号固定serialno以确保serialno唯一
一、A33 Android4.4 设备序列号:A33 Android4.4平台的序列号,可以通过设置->关于平板电脑->状态信息→序列号 进行查看,也可以通过adb指令getprop ro.serialno 进行查看。
2024-12-27 13:49:39
1162
原创 Android11.0隐藏状态栏及导航栏
1.定义广播字串 修改路径 /frameworks/base/core/java/android/content/Intent.java//********省略代码******/*** @hide*//*** @hide*///********省略代码******
2024-12-27 13:40:56
1649
原创 su命令改写
su命令的源码在android中的\system\extras\su目录下面,研究代码我们发现,su命令最后其实调用的就是execvp函数,只不过他自己的权限要求是6755,有s位,所以在调用的时候会变成root,顺带着execvp函数执行的命令也变成root了,原理简单,那么接下来我们就要思考如何才能使客户的apk获得root权限,其他未经授权的不允许呢,答案也简单,那就是通过包名,每个apk的包名是不一样的。我们允许客户的apk能够执行su命令,而其他的则不行。
2024-12-27 13:33:05
431
原创 su命令改写
su命令的源码在android中的\system\extras\su目录下面,研究代码我们发现,su命令最后其实调用的就是execvp函数,只不过他自己的权限要求是6755,有s位,所以在调用的时候会变成root,顺带着execvp函数执行的命令也变成root了,原理简单,那么接下来我们就要思考如何才能使客户的apk获得root权限,其他未经授权的不允许呢,答案也简单,那就是通过包名,每个apk的包名是不一样的。我们允许客户的apk能够执行su命令,而其他的则不行。
2024-12-25 11:53:47
500
原创 Android系统 设置第三方应用为默认Launcher实现和原理分析
本文介绍了Android系统中launcher应用的启动和切换的原理,以及如何通过修改源码来实现设置第三方应用为默认launcher的功能。通过这个例子,我们可以了解Android系统中隐式Intent和显式Intent的区别,以及如何使用系统属性和包管理服务来控制应用的启动。
2024-12-12 09:19:00
973
1
原创 默认Launcher(全网最全、任意Android版本、任意应用)
修改默认launcher是系统定制中非常常见的需求,但是客户所要默认的应用可能是有源码、无源码更甚至是无源码且连android.intent.category.HOME这个Category都没有。在本文中,我将介绍所有在Android系统修改应用为默认launcher的方法。一、Launcher应用内置并设置为默认Launcher。
2024-12-12 09:16:43
1780
原创 Android8.1初始化RGB屏
延时请查看kernel/drivers/gpu/drm/panel/panel-simple.c中的panel_simple_prepare方法。关于第一层 是屏参 clock-frequenc就是#Pixel Clk=25Mhz。这边就是初始化前延时操作。最后就是时序 类似与这样。zz初始化文件类似如下。
2024-12-02 15:43:51
353
原创 Service nxpnfc_hal_svc
所以有时候提醒nxpnfc_hal_svc服务报错 说明可能是te文件权限不对,或者服务不存在。1.nxpnfc_hal_svc,这个一般是权限te。类似service启动 主要分为两部分。
2024-09-28 14:55:52
241
原创 RK_android8.1在设置中去掉Bluetooth功能
第5步:packages/apps/Settings/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java。第4步:packages/apps/Settings/src/com/android/settings/SettingsActivity.java。第1步:/frameworks/base/packages/SettingsProvider/res/values/defaults.xml。
2024-09-13 11:15:16
624
原创 otapackage 生成更新包
最后生成个更新包 一般在out\target\product\rk3288下,rk3288-ota-eng.root.zip,将压缩包改成update.zip。可以做u盘升级包,rk3288下,uboot kernel和android都单独编译下最后执行。通过网络下载到内置存储根目录下,重启根据提示更新。
2024-09-12 14:01:05
204
原创 android selinux报avc denied权限和编译报neverallow解决方案
直接打开编译报错中那个domain.te,路径:system/sepolicy/public/domain.te,找到和我们添加的部分,搜索“device:chr_file”,可以找到如下内容了,看一下就明白了,不允许我们这样修改了。RK平台te文件一般在device/rockchip/common/sepolicy/下 类似上面的修改即可。在device/rockchip/common/sepolicy/system_app.te下修改。带入内容:修改hal_health_default.te。
2024-08-27 09:11:47
978
原创 PX30 Android8.1适配AIC8800 wifi
3.只要wifi可以正常扫描 说明驱动已经正常 如果不能正常连接到wifi 需要注意是否找到对应wpa_config.txt内的参数 以及wpa_supplicant和p2p_supplicant的地址是否正确 以及是否正常加载。4.另外可以使用strace wpa_cli -i wlan0查看wlan0的情况,有可能是wlan0没有生成,那需要修改如下,正常情况下,指定位置下应该有个wlan0。类似下面这样找到对应ko文件 然后移动到vendor/lib/modules/wifi/
2024-08-16 10:30:39
674
原创 QT5.12环境搭建与源码编译
QT版本:QT5.12.10Qt网址:http://download.qt.io/archive/qt/编译平台 ubuntu18.04。
2024-07-04 09:52:13
1451
原创 Android NITZ NTP 时区 时间
NTP:Network Time Protocol(网络时间协议),用来同步网络中各个计算机的时间的协议。在手机中,NTP更新时间的方式是通过GPRS或wifi向特定服务器获取时间信息(不包含时区信息)NITZ:Network Identity and Time Zone(网络标识和时区),是一种用于自动配置本地的时间和日期的机制,需要运营商支持,可从运营商获取时间和时区具体信息。NITZ可同步时区、日期和时间,但必须插入SIM卡,NTP方式只能同步日期和时间,不能更新时区。
2024-05-06 15:50:33
405
原创 Ubuntu 16.04版本上安装make 3.8.1
下载的版本 make-3.81.tar.gz ,解压 tar zxvf make-3.81.tar.gz 获得文件夹make-3.81。找到解压的文件make-3.8.1/glob/glob.c,添加一行代码 #define __alloca alloc。使用which make 查看当前make安装的路径,ubuntu 16.04默认安装路径为/usr/bin/mak。从网址下载一个ftp://ftp.gnu.org/gnu/make。进入到make-3.81执行以下指令。
2024-04-08 13:15:41
770
原创 RK3288将某个文件移到系统下的某个位置
比如将PHY_REG_PG.txt移到system/etc/firmware/下。配置external/wlan_loader/wifi-firmware.mk。将文件放到external/wlan_loader/firmware下。
2024-02-01 14:03:11
478
原创 修改开发板的bootanimation(开机动画)
2.U盘会在板子上自动挂载到storage目录(如果不能,需要手动挂载),进到storage目录,找到自己U盘文件夹。3.进到你的U盘目录里面,复制bootanimation文件到板子上的/system/media/目录替换原始文件。1.将板子和串口连接,将制作好的bootanimation.zip放进U盘,然后将U盘插到板子上。6.重启板子即可,前提是你的bootanimaton.zip是对的!5.copy过去之后给你的bootanimation文件添加权限。
2023-12-22 09:38:45
696
1
原创 Android AIDL实现开放系统级API 提供三方app调用
当上层app需要调用一些系统底层的资源以及属性操作(比如Settings.system 属性的读写),甚至驱动节点的读写操作,上层app毫无疑问是没有权限的,所以就需要我们在framework 系统层做一个中转和代理,也就是做一个远程服务(AIDL实现,开放远程调用接口)。framework里实现一个系统级服务,开机自启,注册到系统服务的启动流程里,这种思路,针对像对写敏感,加了系统级进程用户组的检查的话,比如Settings.system的写操作,还是会被拦下,故不再赘述。action为自定义。
2023-12-05 10:06:53
1517
2
原创 RK3288升级WebView版本,替换webview app
升级高版本的WebView Apk;客户端播放网页,显示不正常;安装高版本的谷歌浏览器手动打开网页,显示正常;Android5.1开始,WebView具体实现从框架层剥离出来,通过一个包名来控制加载真正的WebView实现;开发应用打开网页端调用就是系统的webview,我们要做的将系统WebView Apk升级到高版本;Android5.0之后webview以apk的方式含在sdk中,这样可以独立于Android做update.可以查看当前使用的版本。
2023-12-05 09:54:51
1038
原创 rk3288 android以太网和wifi共存
使用以太网做内网访问,wifi做外网访问,也就是说wifi的优先级应该比以太网高,当wifi内网无法访问时,才发切换到以太网使用首先是准备1、以下四个变量代表着安卓平台不同网络的评分,这些评分用于网络选择仲裁,评分越高就会优先选择。NETWORK_SCORE,WIFI_BASE_SCORE,NETWORK_SCORE,TELEPHONY_NETWORK_SCORE2、这四个变量分别出自如下安卓SDK文件:NETWORK_SCORE 有两个网络都用这个定义,一个是以太网,另一个是蓝
2023-12-05 09:43:44
774
原创 c文件如何编译为ko的MAKEFILE文件编写
首先需要知道:上面两者的区别在于,前者才会生成ko文件,后者只是代码编译进内核,并不生成ko文件。生成KO文件,分两种情况:单个.c文件和多个.c文件kernel配置文件中定义注意上面的m,表示作为一个模块进行编译,最后在MAKEFILE中需要用到的编译开关。
2023-10-27 09:16:32
891
原创 PX30 android8.1添加RTL8723DU
添加对应的RTL8723DU_DRIVER_MODULE_NAME,RTL8723DU_DRIVER_MODULE_PATH。将8723du复制到kernel/drivers/net/wireless/rockchip_wlan/rtl8723du。并修改makefile。
2023-10-25 17:15:59
660
原创 Android AT命令
命令查询 SIM 是否已经注网成功,若返回以下信息则表明注网成功: [2020-03-10_15:48:52:852]AT+CGATT?命令查询网络是否接通,返回 0,5 代表网络处于已注网,漫游中状态,表示 APN 设置成功。命令查询 SIM 是否已经注网成功,若返回以下信息则表明注网成功: [2019-12-06_16:24:10:713]AT+CGATT?1)使用 AT+QICSGP=1,"orange.m2m.spec","","" 命令配置 APN 信息,返回 OK 代表配置成功。
2023-09-13 10:19:00
1176
原创 Android8.1 hal 加载wifi ko模块流程
Android启动的时候会去加载wifi模块,这时候这部分代码在frameworks\opt\net\wifi\libwifi_hal\,这部分的代码主要的功能为,大概内容为通过读取uevnt的获取到系统下的wifi模块的vip和pid,从而从代码的列表中查找到是那个一个wifi模块,然后又从列表中获取wifi模块的驱动代码在那里,从而调用insmod xxxx.ko加载wifi模块。wifi启动驱动加载fw流程现在的wifi模块启动的时候都要加载一个fw固件,这个固件是做什么用的呢?
2023-09-13 10:07:08
1647
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人