Android 打开热点2.4G系统重启解决
Android 打开热点2.4G系统重启解决
文章目录
- Android 打开热点2.4G系统重启解决
- 一、前言
- 二、过程分析
- 1、Android 设备开机后第一次打开热点2.4G系统重启
- 2、日志分析
- 3、设备重启原因
- 三、解决方法
- 四、其他
- 1、wifi/有线网 代理信息也可能导致系统重启
- 2、Android13 热点默认5G频道配置修改
- 3、Android 设置默认热点名称和热点密码、密码长度
一、前言
Android 设备开机后第一次打开热点2.4G系统重启?以5G形式打开热点没有问题!
这个问题咋回事呢?和底层驱动的人一起分析了一下,本文进行分享一下分析和解决过程。
这种问题一般应用开发不会遇到,只有一些系统开发,或者系统新方案调试可能会遇到。
查看了AndroidRuntime 和crash 日志,重启前没啥异常日志。这种情况一般是底层/驱动未完全适配导致。
二、过程分析
1、Android 设备开机后第一次打开热点2.4G系统重启
以5G形式打开热点没有问题!
并且第一次以5G形式打开热点,第二次再以2.4G形式可以正常打开热点。
这种情况没遇到过啊!只能看看日志了。
2、日志分析
查看了AndroidRuntime 和 crash 关键字的日志,重启前没啥异常日志。
设备重启的异常情况一般adb日志比较难看到相关日志。
从串口查看日志发现重启前logcat和内核日志,有如下日志:
12-2[ 407.566214][0 T6256 d.] Internal error: BRK handler: f2005512 [#1] PREEMPT SMP
...
[ 409.545917][0 T6256 d.] Kernel panic - not syncing: BRK handler: Fatal exception
从这个内核Kernel日志看,BPK异常后,就挂了。
百度查看了一下“Kernel panic - not syncing”这个异常是芯片启动异常。
对底层不熟悉,不做进一步分析。
后续的分析和解决都是底层开发的协助完成的。
3、设备重启原因
8852bs在打开2.4G热点的时候,wpa config文件中配置了80211ac就会重启!
80211ac 是一种路由设置,开启热点需要把自己的设备当成路由器,所以底层要配置一写路由参数。
80211ac 配置是5G热点才能设置的。所以系统热点开启不能默认配置80211ac,否则会异常。
三、解决方法
对wpa config配置文件修改了一下,80211ac 属性只有在5G热点才配置。
+++ b/release/XXX/common/wifi_bt/wifi/wpa_supplicant_8/hostapd/aidl/hostapd.cpp
@@ -699,7 +699,7 @@ std::string CreateHostapdConfig(iface_params.name.c_str(), ssid_as_string.c_str(),channel_config_as_string.c_str(),iface_params.hwModeParams.enable80211N ? 1 : 0,
- iface_params.hwModeParams.enable80211AC ? 1 : 0,
+ (iface_params.hwModeParams.enable80211AC && ((band & band5Ghz) != 0)) ? 1 : 0,he_params_as_string.c_str(),hw_mode_as_string.c_str(), ht_cap_vht_oper_he_oper_chwidth_as_string.c_str(),nw_params.isHidden ? 1 : 0,
从上面代码可以看到 最终修改就是把 enable80211AC 判断是5G网络时才配置。
上面的 wpa 目录是AML 供应商的目录,一般系统的目录可能是在 external/wpa_supplicant_8
四、其他
1、wifi/有线网 代理信息也可能导致系统重启
设置代理信息需要填写端口号,如果端口号超出范围也会导致系统重启。
网络端口号的范围是1-65535,65535 是2的16次方,是4个字节的存储空间。
具体报错是啥当的时没看!因为比较好解所以未进行分析。
这里只要在应用中判断端口号范围即可解决该问题。
今天顺便测了一下,发现这种情况只是sygoty重启了是有AndroidRuntime 的,部分日志如下:
01-05 18:23:41.261 1452 1452 D wpa_supplicant: nl80211: Deauthenticate event
01-05 18:23:41.261 1452 1452 D wpa_supplicant: nl80211: Ignore deauth event triggered due to own deauth request
01-05 18:23:41.261 1452 1452 D wpa_supplicant: nl80211: Event message available
01-05 18:23:41.262 1452 1452 D wpa_supplicant: nl80211: Drv Event 48 (NL80211_CMD_DISCONNECT) received for wlan0
01-05 18:23:41.262 1452 1452 D wpa_supplicant: nl80211: Ignore disconnect event when using userspace SME
01-05 18:23:41.265 1951 1951 D PinyinIME: onWindowHidden
01-05 18:23:41.272 1951 1951 D wdw : getScreenWidth 1260
01-05 18:23:41.272 1951 1951 D wdw : getHeightForCandidates mCandidatesAreaHeight50
01-05 18:23:41.273 889 1067 D WifiConfigurationUtil: Add upgradable SAE configuration.
--------- beginning of crash
01-05 18:23:41.276 889 1067 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: WifiHandlerThread
01-05 18:23:41.276 889 1067 E AndroidRuntime: java.lang.IllegalArgumentException: Invalid ProxyInfo: [t] 888888 xl=y
01-05 18:23:41.276 889 1067 E AndroidRuntime: at android.net.wifi.WifiConfiguration.setHttpProxy(WifiConfiguration.java:3807)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at com.android.server.wifi.WifiConfigManager.mergeWithInternalWifiConfiguration(WifiConfigManager.java:1164)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at com.android.server.wifi.WifiConfigManager.updateExistingInternalWifiConfigurationFromExternal(WifiConfigManager.java:1284)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at com.android.server.wifi.WifiConfigManager.addOrUpdateNetworkInternal(WifiConfigManager.java:1384)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at com.android.server.wifi.WifiConfigManager.addOrUpdateNetwork(WifiConfigManager.java:1578)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at com.android.server.wifi.WifiConfigManager.addOrUpdateNetwork(WifiConfigManager.java:1619)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at com.android.server.wifi.WifiServiceImpl.lambda$connect$112(WifiServiceImpl.java:5899)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at com.android.server.wifi.WifiServiceImpl.$r8$lambda$nNJamaVDTZuLL0j_quZy9fnDAw4(Unknown Source:0)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at com.android.server.wifi.WifiServiceImpl$$ExternalSyntheticLambda16.run(Unknown Source:12)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:942)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:201)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at android.os.Looper.loop(Looper.java:288)
01-05 18:23:41.276 889 1067 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:67)
01-05 18:23:41.282 889 1067 I DropBoxManagerService: add tag=system_server_crash isTagEnabled=true flags=0x2
01-05 18:23:41.287 889 1067 I Process : Sending signal. PID: 889 SIG: 9
看了下日志没看出啥,可能跟Hal层有点关系,具体还需要进一步分析。
2、Android13 热点默认5G频道配置修改
这个是之前写的framework 上层代码的修改:
https://blog.csdn.net/wenzhi20102321/article/details/135349837
3、Android 设置默认热点名称和热点密码、密码长度
https://blog.csdn.net/wenzhi20102321/article/details/127737534
相关文章:
Android 打开热点2.4G系统重启解决
Android 打开热点2.4G系统重启解决 文章目录 Android 打开热点2.4G系统重启解决一、前言二、过程分析1、Android 设备开机后第一次打开热点2.4G系统重启2、日志分析3、设备重启原因 三、解决方法四、其他1、wifi/有线网 代理信息也可能导致系统重启2、Android13 热点默认5G频道…...
全链路压力测试有哪些主要作用
全链路压力测试是在软件开发和维护过程中不可或缺的一环,尤其在复杂系统和高并发场景下显得尤为重要。下面将详细介绍全链路压力测试的主要作用。 一、全链路压力测试概述 全链路压力测试是指对软件系统的全部组件(包括前端、后端、数据库、网络、中间件等)在高负载…...
【python基础教程】print输出函数和range()函数的正确使用方式
嗨喽,大家好呀~这里是爱看美女的茜茜呐 print()有多个参数,参数个数不固定。 有四个关键字参数(sep end file flush),这四个关键字参数都有默认值。 print作用是将objects的内容输出到file中,objects中的…...
LeetCode255.用队列实现栈
题目传送门:Leetcode255.用队列实现栈 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压…...
PHPStudy快速搭建网站并结合内网穿透远程访问本地站点
文章目录 [toc]使用工具1. 本地搭建web网站1.1 下载phpstudy后解压并安装1.2 打开默认站点,测试1.3 下载静态演示站点1.4 打开站点根目录1.5 复制演示站点到站网根目录1.6 在浏览器中,查看演示效果。 2. 将本地web网站发布到公网2.1 安装cpolar内网穿透2…...
AI嵌入式K210项目(1)-芯片开发板介绍
系列文章目录 在人工智能大潮滚滚而来的时代,作为一个从事嵌入式行业多年的程序猿倍感焦虑,有被替代的焦虑,也有跟不上新技术步伐的无奈,本系列文章将介绍一个从硬件设计到ai训练、最后到模型部署的完整案例;第一阶段…...
Blazor中使用impress.js
impress.js是什么? 你想在浏览器中做PPT吗?比如在做某些类似于PPT自动翻页,局部放大之类,炫酷无比。 在Blazor中,几经尝试,用以下方法可以实现。写文不易,请点赞、收藏、关注,并在转…...
ros2 ubuntu 20.04 安装 foxy
设置区域设置 确保您有一个支持UTF-8. 如果您处于最小环境(例如 docker 容器)中,则区域设置可能是最小的,例如POSIX. 我们使用以下设置进行测试。但是,如果您使用不同的 UTF-8 支持的区域设置,应该没问题。…...
Blazor 错误笔记
1. 运行时问题 Microsoft.NETCore.App.Runtime.Mono.browser-wasm Microsoft.NETCore.App.Runtime.Mono.browser-wasm 是一个 .NET Core 运行时的包,用于在浏览器中运行 .NET Core 应用程序。它是针对 WebAssembly 架构的 .NET Core 运行时,可以在浏览…...
【深度学习1对1指导】
...
XUbuntu22.04之快速复制绝对路径(二百零五)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...
21、Kubernetes核心技术 - 高可用集群搭建(kubeadm+keepalived+haproxy)
目录 一、简介 二、高可用集群架构说明 三、部署环境说明 四、高可用集群搭建 (1)、初始化所有节点 (2)、修改host文件 (3)、调整内核参数 (4)、所有节点安装Docker (4-1)、配置 docker 的阿里 yum 源 (4-2)、yum 安装 docker (4-3)、配置 docker 的镜像源 (4-4)…...
使用SpringDataRedis操作Redis
Redis的java客户端 jedisLettuceSpring Data Redis Spring Data redis 是Spring的一部分,对 Redis 底层开发包进行了高度封装。在Spring项目中,可以使用Spring Data Redis来简化操作。 Spring Data Redis使用方式 操作步骤: 导入Spring …...
PyCharm社区版如何创建Django项目并运行
一、配置Django环境 1、使用PyCharm打开一个普通的Python项目 2、为该项目配置Django环境 (1)点击"File"-"Settings" (2)点击"Project:项目名"-"Python Interpreter"-"号" &…...
深度探讨鸿蒙工程师面试题
深度探讨鸿蒙工程师面试题 第一部分:引言 鸿蒙(HarmonyOS)作为华为推出的全场景分布式操作系统,引领着未来智能化时代的潮流。鸿蒙工程师在这一创新性领域中扮演着至关重要的角色。本文将深入研究一系列鸿蒙工程师面试题&#x…...
python数据结构堆栈
堆 堆是一种树形结构:满足两个主要性质 堆是一种完全二叉树:堆中所有层级除了最后一层都是完全填满的,且最后一层的节点都是向左排列堆中的任意节点都不大于(或不小于)其子节点的值,这也是堆的属性 impo…...
从网页连接socket服务器和I/O
1.i/o InputStream和InputStreamReader是Java I/O类库中的两个关键类,用于处理字节流。它们的主要区别在于它们处理数据的方式。 InputStream: InputStream是用于读取字节流的抽象类。它是所有字节输入流类的父类。InputStream的子类可以从不同的数据源读取字节&…...
鸿蒙HarmonyOS学习手册_入门篇
鸿蒙HarmonyOS学习手册_入门篇 文章目录 鸿蒙HarmonyOS学习手册_入门篇入门快速入门开发准备基本概念UI框架应用模型工具准备 构建第一个ArkTS应用(Stage模型)-快速入门-入门创建ArkTS工程ArkTS工程目录结构(Stage模型)构建第一个…...
人工智能复习
机器学习中线性回归和逻辑回归: 机器学习的分类: 监督学习和无监督学习,半监督学习 监督学习(Supervised Learning): 监督学习是一种利用带有标签(标记)的数据进行训练的机器学习…...
C++ 多态以及多态的原理
文章目录 多态的概念多态的构成条件虚函数的重写虚函数重写的两个例外 重载、重写(覆盖)、重定义(隐藏)对比C11 final 和 override关键字抽象类接口继承和普通继承多态的原理虚函数表多态的原理 单继承和多继承关系的虚函数表单继承中的虚函数表多继承中的虚函数表 多态的概念 …...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
Java设计模式:责任链模式
一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...
python可视化:俄乌战争时间线关键节点与深层原因
俄乌战争时间线可视化分析:关键节点与深层原因 俄乌战争是21世纪欧洲最具影响力的地缘政治冲突之一,自2022年2月爆发以来已持续超过3年。 本文将通过Python可视化工具,系统分析这场战争的时间线、关键节点及其背后的深层原因,全面…...
