自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 允许所有app默认获取权限

【代码】允许所有app默认获取权限。

2025-04-09 15:19:10 139

原创 修改默认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客制化------7.0设置壁纸存在的一些问题

【代码】Android客制化------7.0设置壁纸存在的一些问题。

2025-01-06 10:40:26 318

原创 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

原创 I2C设备

【代码】I2C设备。

2024-12-02 09:32:41 174

原创 5inch屏幕 lvds转rgb

注意rgb-mode = "p888";和panel_in_rgb。

2024-11-20 15:51:44 236

原创 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

原创 查看i2c设备

/sys/bus/i2c/

2024-09-10 14:47:53 172

原创 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

原创 Android获取U盘或SD卡路径

【代码】Android获取U盘或SD卡路径。

2023-12-22 10:31:47 1092

原创 修改开发板的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

原创 UART初始化

dts配置,下面是px30,打开对应uart。

2023-10-16 12:42:18 313

原创 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

原创 PX30 Android8.1 ROOT权限的获取

修改文件:目的:为了在应用层App中可以通过调用su来获取root权限,进而执行一些命令。

2023-09-13 10:10:58 709

原创 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

原创 Android webview 双指滑动

【代码】Android webview 双指滑动。

2023-08-16 15:28:15 232

空空如也

空空如也

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

TA关注的人

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