基于t972 Android9 AP6256,如何在设置中添加5G热点选项,并使其正常打开

在这里插入图片描述
通过设置的的WiFi热点选项可以知道关键词“2.4GHz”,因此可以其全局搜索,在packages\apps\Settings\res\values\strings.xml文件下找到如下图所示,
在这里插入图片描述
从上面注释可以知道,选项按键选择2.4GHz触发的按键关键词是“wifi_ap_choose_2G”,因此继续搜索,在packages\apps\Settings\res\values\arrays.xml文件下找到如下下图所示,
在这里插入图片描述
那么可以知道,关键词就是“wifi_ap_band_config_full”,应用就是应该根据这个关键词获取数组内的选项标签,然而在packages目录下没有搜索到有用的调用,那么换个方向,继续搜索“wifi_ap_choose_2G”,搜索到在
packages\apps\Settings\src\com\android\settings\wifi\tether\WifiTetherApBandPreferenceController.java
文件下找到,如下图所示,
在这里插入图片描述
根据上图分析,可以知道,只需要调用is5GhzBandSupported方法返回true即可让设置WiFi热点选项增加上5GHz选项,那么分析一下is5GhzBandSupported方法,此方法如下图所示,
在这里插入图片描述
从上面方法可以看出,需要mWifiManager.isDualBandSupported()返回true和countryCode不为空才可以,先分析isDualBandSupported方法,其方法如下图所示,
在这里插入图片描述
从上图可以知道实质调用的是IWifiManager mService; => mService.isDualBandSupported();
在frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiServiceImpl.java文件搜索到isDualBandSupported方法,如下图所示,
在这里插入图片描述
从上图可以知道最终返回的是“config_wifi_dual_band_support”这个关键词的值,搜索改关键词,在frameworks\base\core\res\res\values\config.xml文件中可以配置该关键词的值,如下图所示,
在这里插入图片描述
这里我们设置为true,那么is5GhzBandSupported方法的第一个条件已经满足了,而第二个条件是countryCode国家代号不为空,这个网上随便找即可,我这里强制给它写为”CN”中国代号,如下图所示,
在这里插入图片描述
那么重新编译烧录后,在设置热点选项可以看到5GHz选项了,如下图所示,
在这里插入图片描述

这里又出现一个问题了,使用2.4GHz频段打开热点是没问题的,但是使用5.0GHz频段打开热点一会就自动关闭了,报错日志关键部分如下图所示,
在这里插入图片描述
通过日志可以看出,它是国家代号不允许5GHz频段,也就是说系统是通过国家代号来决定是否可以打开5GHz频段的WiFi热点的。通过“5GHz band is not allowed without country code”这个日志搜索到在
rameworks\opt\net\wifi\service\java\com\android\server\wifi\util\ApConfigUtil.java文件中出现,如下图所示,
在这里插入图片描述
看到以上程序之后,我们是否想到和之前判断是否支持5G的那段程序很像,那么最暴力的解决方法就是将红色框框那段程序给屏蔽掉。
在重新编译烧录固件后,可以发现5G频段WiFi热点可以正常打开了。

这里想一想,通过这两个地方改动,它都与“countryCode”这个国家代号有关,如果暴力改动,那么有很多变量等都没有动态改动的,那么看看“countryCode”这个是在哪来一开始给它初始化设置的,我们可以让它默认为“CN”就好了,搜索“updateApChannelConfig”方法,找到它在
frameworks\opt\net\wifi\service\java\com\android\server\wifi\SoftApManager.java文件下调用,如下图所示,
在这里插入图片描述
那么它里面传的“mCountryCode”参数又在哪里呢?通过搜索找到在本路径下,如下图所示,
在这里插入图片描述
从上图源码可知道,“mCountryCode”参数又是通过SoftApManager方法中的“countryCode”形参赋予的,那么搜索SoftApManager方法,找到在
frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiInjector.java文件中调用,如下图所示,
在这里插入图片描述
通过上图源码可知道,SoftApManager方法中的“countryCode”形参是通过mCountryCode.getCountryCode()这个方法调用获取的,而“mCountryCode”这个实例的类是在本文件,如下图所示,
在这里插入图片描述
那么“WifiCountryCode”这个类通过搜索,在
frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiCountryCode.java文件中,该类的“getCountryCode”方法如下图所示,
在这里插入图片描述
通过上图源码对该方法注释可知,从SIM卡或手机默认设置返回当前报告的国家/地区代码,因此可知道,为什么5GHz频段WiFi热点打不开了,因为没有插SIM卡,所以获取不到国家代号,使用的是默认设置的代号,那么查找“pickCountryCode”方法,在本文件可找到,如下图所示,
在这里插入图片描述
通过上图源码可知,红色框框的就是当上面搜索手机SIM卡没有获取到国家代号,那么就会设置默认的代号“mDefaultCountryCode”了,所以在本文件中,将“mDefaultCountryCode”变量强制修改成“CN”即可,如下图所示,
在这里插入图片描述
此时也就修改完成了,通过编译烧录,也是完美可以打开5GHzWiFi热点了。
第一种暴力修改方法的日志片段如下:
04-25 15:15:13.816 3778 4344 E ApConfigUtil: 5GHz band is not allowed without country code, config.apBand(1), WifiConfiguration.AP_BAND_5GHZ(1), countryCode(null), config.apChannel(0)
而第二种修改的日志显示的“config.apChannel”配置热点通道从第一种“0”变成系统分配的了,如下:
04-25 15:56:34.849 3759 3940 E ApConfigUtil: config.apChannel is 165

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/586567.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA读取从WPS在Excel中嵌入的图片资源

读取从WPS在Excel中嵌入的图片资源 引言 许多数据文件中可能包含嵌入式图片,这些图片对于数据分析和可视化非常重要。然而,从 WPS 在 Excel 中读取这些图片可能会有一些技术挑战。在本文中,我将展示如何从 WPS Excel 文件中读取嵌入的图片&am…

安居水站:心理咨询的一般伦理原则

正文字数: 1157 图片数: 24 阅读时间:大约4分钟 摘要:心理咨询是帮助个体解决心理问题的重要手段。为确保咨询的有效性和咨询对象的权益,心理咨询必须遵循一定的伦理原则。本文详细探讨了心理咨询…

PDF高效编辑器,支持修改PDF文档并转换格式从PDF文件转换成图片文件,轻松管理你的文档世界!

PDF文件已成为我们工作、学习和生活中不可或缺的一部分。然而,传统的PDF阅读器往往只能满足简单的查看需求,对于需要频繁编辑、修改或转换格式的用户来说,就显得力不从心。现在,我们为您带来一款全新的PDF高效编辑器,让…

对话访谈——五问RAG与搜索引擎:探索知识检索的未来

记一次关于RAG和搜索引擎在知识检索方面的对话访谈,针对 RAG 与传统搜索引擎的异同,以及它们在知识检索领域的优劣势进行了深入的探讨。 Q:传统搜索引擎吗,通过召回-排序的两阶段模式,实现搜索逻辑的实现,当前RAG技术也…

Spark Structured Streaming 分流或双写多表 / 多数据源(Multi Sinks / Writes)

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

使用 scikit-learn 进行机器学习的基本原理-2

介绍 scikit-learn 估计器对象 每个算法都通过“Estimator”对象在 scikit-learn 中公开。 例如,线性回归是:sklearn.linear_model.LinearRegression 估计器参数:估计器的所有参数都可以在实例化时设置: 拟合数据 让我们用 nump…

第7篇:创建Nios II工程之控制LED<二>

Q:上一期我们完成了Quartus硬件工程部分,本期我们创建Nios II软件工程这部分。 A:创建完BSP和Nios II Application之后,在source文件main.c中添加LED控制代码:system.h头文件包含了Platform Designer系统中IP的硬件信…

VUE3----Tabs swiper 滑动切换

Tabs swiper 滑动切换 <template><view class"cc-tab-container"><scroll-view class"tab-head" :class"tabClassName" scroll-x"true" scroll-with-animation :scroll-left"state.scrollLeft"><view…

变电站综合自动化系统:Modbus-PLC-645转IEC104网关方案

前言 电力行业作为关系国计民生的重要基础产业&#xff0c;是关系千家万户的公用事业。但是要做好电力行业安全保障工作的前提&#xff0c;是需要对应的技术人员详细了解电力工业使用的系统、设备以及各类协议的安全特性&#xff0c;本文将主要介绍IEC 104协议的定义和钡铼技术…

STL——stackqueue

stack stack即为栈&#xff0c;先进后出是其特点 栈只有栈顶元素能被外界使用&#xff0c;故不存在遍历行为 栈中常用接口 构造函数 stack<T> stk; //默认构造方式 stack(const stack &stk); //拷贝构造 赋值操作 stack& operator(const stack &stk); …

对汉诺塔递归算法的简单理解

一.历史背景:汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始…

网络安全是智能汽车下一个要卷的方向?

2024年一季度&#xff0c;中国汽车市场延续了2023年的风格&#xff0c;核心就是「卷」。 2023年&#xff0c;我国汽车市场爆发「最强价格战」&#xff0c;燃油车的市场空间不断被挤压&#xff0c;如今只剩下最后一口气。近日乘联会发布4月1-14日最新数据&#xff0c;新能源&am…

基于昇腾AI | 英码科技EA500I使用AscendCL实现垃圾分类和视频物体分类应用

现如今&#xff0c;人工智能迅猛发展&#xff0c;AI赋能产业发展的速度正在加快&#xff0c;“AI”的需求蜂拥而来&#xff0c;但AI应用快速落地的过程中仍存在很大的挑战&#xff1a;向下需要适配的硬件&#xff0c;向上需要完善的技术支持&#xff0c;两者缺一不可。 基于此&…

如何利用仪表构造InfiniBand流量在数据中心测试中的应用

一、什么是Infiniband&#xff1f; 在当今数据爆炸的时代&#xff0c;数据中心作为信息处理的中心枢纽&#xff0c;面临着前所未有的挑战。传统的通信方式已经难以满足日益增长的数据传输需求&#xff0c;而InfiniBand技术的出现&#xff0c;为数据中心带来了全新的通信解决方…

使用xshell工具连接ubuntu的root账户被拒绝的解决方法

问题描述&#xff1a; 我在使用xshell工具远程连接Ubuntu虚拟机的过程中&#xff0c;如果连接的是的普通用户则xshell工具可以正常连接&#xff0c;但是当我向连接ubuntu系统的root用户&#xff0c;即便是密码输入正确但还是不能连接成功。不能连接成功的截图如下&#xff1a; …

requests库进行接口请求

请求的常规写法 requests.post() 、requests.get() 从中可以看出&#xff1a; 必填参数&#xff1a; url可缺省参数&#xff1a; data&#xff0c;json等、关键字参数 **kwargs 如下进行了一个post请求的登录&#xff0c;且请求体在body中 知识点1 当为post请求时&#xff1…

建堆时间复杂度

片头 嗨&#xff01;小伙伴们&#xff0c;大家好&#xff01; 在上一篇中&#xff0c;我们学习了什么是堆&#xff0c;以及如何实现堆。这一篇中&#xff0c;我将继续带领大家来深入学习堆&#xff0c;准备好了吗&#xff1f;我要开始咯&#xff01; 首先&#xff0c;大家还记…

opencv_17_翻转与旋转

一、图像翻转 1&#xff09;void flip_test(Mat& image); 2&#xff09;void ColorInvert::flip_test(Mat& image) { Mat dst; //flip(image, dst, 0); //上下翻转 flip(image, dst, 1); //左右翻转 // flip(image, dst, -1); //180度翻转 imsho…

VScode 无法连接云服务器

试了很多方法&#xff0c;比如更换VScode版本&#xff0c;卸载重装&#xff0c;删除配置文件 重启电脑&#xff0c;都无法成功。最后重置电脑后才连接上&#xff0c;但是重启服务器后又出现该问题。 方法一&#xff1a;修改环境 方法二&#xff1a;把vscode卸载干净重下

【快速入门】数据库的增删改查与结构讲解

文章的操作都是基于小皮php study的MySQL5.7.26进行演示 what 数据库是能长期存储在计算机内&#xff0c;有组织的&#xff0c;可共享的大量数据的集合。数据库中的数据按照一定的数据模型存储&#xff0c;具有较小的冗余性&#xff0c;较高的独立性和易扩展性&#xff0c;并为…