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关键字抽象类接口继承和普通继承多态的原理虚函数表多态的原理 单继承和多继承关系的虚函数表单继承中的虚函数表多继承中的虚函数表 多态的概念 …...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...