CN107529206A - Android设备Wi‑Fi密码的备份与恢复方法 - Google Patents
Android设备Wi‑Fi密码的备份与恢复方法 Download PDFInfo
- Publication number
- CN107529206A CN107529206A CN201710763015.7A CN201710763015A CN107529206A CN 107529206 A CN107529206 A CN 107529206A CN 201710763015 A CN201710763015 A CN 201710763015A CN 107529206 A CN107529206 A CN 107529206A
- Authority
- CN
- China
- Prior art keywords
- wpa
- files
- supplicant
- conf
- backup
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/16—Discovering, processing access restriction or access information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及Android系统的开发领域,公开了一种Android设备Wi‑Fi密码的备份与恢复方法,在Wi‑Fi的配置信息遭到破坏的时候自动恢复,提升Android系统的稳定性。本发明的方案是:在最后一次保存网络接入点配置信息之后,延迟一段时间,对wpa_supplicant.conf文件进行备份,生成wpa_supplicant.conf.bak文件;Wi‑Fi模块启动的时候,当读取到的网络接入点配置信息为空的时候,使用备份文件wpa_supplicant.conf.bak文件去替换掉原来的已经损坏的wpa_supplicant.conf文件,然后重新加载替换后的wpa_supplicant.conf文件。本发明适用于Android设备Wi‑Fi管理。
Description
技术领域
本发明涉及Android系统的开发领域,特别涉及Android设备Wi-Fi密码的备份与恢复方法。
背景技术
随着智能设备的发展,网络连接已经成为其必不可少的一个功能,Wi-Fi(无线网络)连接摆脱了连接线的束缚,连接方便,是网络连接很常用的一种方式。Android设备,是指使用 Android操作系统进行作业的智能设备。
目前,Android设备在正常开关机的情况下,Wi-Fi的配置信息可以保持正常状态;但在连接Wi-Fi的时候或者网络接入点切换的时候突然掉电的情况下,Wi-Fi的配置信息(保存在 wpa_supplicant.conf文件中)会遭到破坏并且不会自动恢复,需要用户再次配置,影响了用户的体验。具体表现为:Android设备在连接Wi-Fi的过程中,或者网络接入点切换的过程中,突然掉电,再次开机后,Wi-Fi已保存的配置信息被破坏,Wi-Fi无法自动连接到之前所有的已经记住密码的网络接入点。
发明内容
本发明要解决的技术问题是:提供一种Android设备Wi-Fi密码的备份与恢复方法,在 Wi-Fi的配置信息遭到破坏的时候自动恢复,提升Android系统的稳定性。
为解决上述问题,本发明采用的技术方案是:在最后一次保存网络接入点配置信息之后,延迟一段时间,对wpa_supplicant.conf文件进行备份,生成wpa_supplicant.conf.bak文件;Wi-Fi模块启动的时候,当读取到的网络接入点配置信息为空的时候,使用备份文件 wpa_supplicant.conf.bak文件去替换掉原来的已经损坏的wpa_supplicant.conf文件,然后重新加载替换后的wpa_supplicant.conf文件。
进一步的,延迟一段时间的实现方法为:在WifiStateMachine.java文件ConnectedState 类的enter()方法中,加入Thread.sleep()语句。
进一步的对wpa_supplicant.conf文件进行备份,生成wpa_supplicant.conf.bak文件的实现方法:在WifiStateMachine.java文件中,ConnectedState类的enter()方法中,加入WifiNative.saveConfigBak()语句。
进一步的,将wpa_supplicant.conf文件上的网络配置信息备份到 wpa_supplicant.conf.bak文件的实现方法为:在ctrl_iface.c文件中,加入 wpa_supplicant_ctrl_iface_save_config_bak()函数,函数中包括wpa_config_write()语句。
进一步的,使用备份文件wpa_supplicant.conf.bak文件替换已经损坏的 wpa_supplicant.conf文件的实现方法为:在WifiConfigStore.java文件loadConfiguredNetworks()方法中,加入outputChannel.transferFrom(inputChannel,0, inputChannel.size())语句。
本发明的有益效果是:由于本发明在最后一次保存网络接入点配置信息之后,对wpa_supplicant.conf文件进行了备份,在Wi-Fi模块启动遇到Wi-Fi的配置信息遭到破坏的时候,可以自动恢复,优化了用户体验,提升了Android系统的稳定性
附图说明
图1是实施例的备份流程图;
图2是实施例恢复流程图。
具体实施方式
在实施例之前,首先介绍Android系统Wi-Fi连接的过程。Android系统对于Wi-Fi的控制主要是由系统服务WifiService来完成的,WifiService的接口通过WifiManager对应用开放。在Android设备已启动,并且Wi-Fi已开启的情况下,用户点击某个网络接入点,Android系统的处理过程如下:
1)WifiManager.connect();
用户点击某个网络接入点,WifiManager开始发起连接流程;
2)WifiConfigStore.saveNetwork();
3)WifiConfigStore.addOrUpdateNetworkNative();
4)WifiNative.addNetwork();
添加网络接入点;
5)WifiNative.setNetworkVariable();
设置网络接入点配置信息;
6)WifiNative.enableNetwork();
使能网络接入点;
7)WifiNative.saveConfig();
保存网络接入点配置信息;
8)WifiConfigStore.enableNetworkWithoutBroadcast();
9)WifiNative.enableNetwork();
使能网络接入点;
10)WifiConfigStore.selectNetwork();
11)WifiNative.saveConfig();
保存网络接入点配置信息;
12)WifiNative.enableNetwork();
使能网络接入点;
13)WifiNative.reconnect();
开始连接网络接入点;
14)WifiStateMachine.sendNetworkStateChangeBroadcast();
15)WifiStateMachine.startDhcp();
开始运行DHCP,获取IP地址;
16)WifiConfigStore.enableAllNetworks();
17)WifiNative.saveConfig();
保存网络接入点配置信息;
18)WifiConfigStore.sendConfiguredNetworksChangedBroadcast();
从流程中可以看出,保存网络接入点配置信息的操作被执行了3次,也就是说wpa_supplicant.conf文件被写入了3次,在这个过程中设备掉电,wpa_supplicant.conf文件被损坏的概率很大。
为了在wpa_supplicant.conf文件遭到损坏的情况下,恢复此文件,实施例适时地备份和恢复wpa_supplicant.conf文件,方案如下:
1、备份方法
如图1所示,当最后一次连接wi-fi网络成功,在最后一次保存网络接入点配置信息之后,延迟一段时间(比如10s),对wpa_supplicant.conf文件进行备份,生成wpa_supplicant.conf.bak 文件。延迟一段时间是为了避免wpa_supplicant.conf文件与wpa_supplicant.conf.bak文件在同一时刻一起被损坏。
实施例可在WifiStateMachine.java文件中,在ConnectedState类的enter()方法中,加入 Thread.sleep()语句,用于延迟一段时间;加入WifiNative.saveConfigBak()语句,用于备份网络接入点配置信息。在WifiNative.java文件中,加入saveConfigBak()方法,用于备份网络接入点配置信息;加入reconfigure()方法,用于重新加载网络接入点配置信息。在ctrl_iface.c文件中,加入wpa_supplicant_ctrl_iface_save_config_bak()函数,函数中包括wpa_config_write()语句,用于将wpa_supplicant.conf文件上的网络配置信息备份到wpa_supplicant.conf.bak文件。
2、恢复方法
如图2所示,在开机时刻,Wi-Fi模块启动的时候,会自动去读取网络接入点配置信息,即wpa_supplicant.conf文件,当读取到的网络接入点配置信息为空的时候,就表明wpa_supplicant.conf文件已经损坏,这个时候,我们使用备份文件wpa_supplicant.conf.bak文件去替换掉原来的已经损坏的wpa_supplicant.conf文件,然后重新加载替换后的 wpa_supplicant.conf文件,使得网络接入点信息得以恢复。
实施例可在WifiConfigStore.java文件中,在loadConfiguredNetworks()方法中,加入 outputChannel.transferFrom(inputChannel,0,inputChannel.size())语句,用于将 wpa_supplicant.conf.bak文件替换wpa_supplicant.conf文件;加入WifiNative.reconfigure()语句,用于重新加载网络接入点配置信息;加入loadConfiguredNetworks()语句,用于重新加载网络接入点配置信息。
以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
Claims (5)
1.Android设备Wi-Fi密码的备份与恢复方法,其特征在于,在最后一次保存网络接入点配置信息之后,延迟一段时间,对wpa_supplicant.conf文件进行备份,生成wpa_supplicant.conf.bak文件;Wi-Fi模块启动的时候,当读取到的网络接入点配置信息为空的时候,使用备份文件wpa_supplicant.conf.bak文件去替换掉原来的已经损坏的wpa_supplicant.conf文件,然后重新加载替换后的wpa_supplicant.conf文件。
2.如权利要求1所示的Android设备Wi-Fi密码的备份与恢复方法,其特征在于,延迟一段时间的实现方法为:
在WifiStateMachine.java文件ConnectedState类的enter()方法中,加入Thread.sleep()语句。
3.如权利要求1所示的Android设备Wi-Fi密码的备份与恢复方法,其特征在于,对wpa_supplicant.conf文件进行备份,生成wpa_supplicant.conf.bak文件的实现方法:
在WifiStateMachine.java文件中,ConnectedState类的enter()方法中,加入WifiNative.saveConfigBak()语句。
4.如权利要求1所示的Android设备Wi-Fi密码的备份与恢复方法,其特征在于,将wpa_supplicant.conf文件上的网络配置信息备份到wpa_supplicant.conf.bak文件的实现方法为:
在ctrl_iface.c文件中,加入wpa_supplicant_ctrl_iface_save_config_bak()函数,函数中包括wpa_config_write()语句。
5.如权利要求1所示的Android设备Wi-Fi密码的备份与恢复方法,其特征在于,使用备份文件wpa_supplicant.conf.bak文件替换已经损坏的wpa_supplicant.conf文件的实现方法为:
在WifiConfigStore.java文件loadConfiguredNetworks()方法中,加入outputChannel.transferFrom(inputChannel,0,inputChannel.size())语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710763015.7A CN107529206A (zh) | 2017-08-30 | 2017-08-30 | Android设备Wi‑Fi密码的备份与恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710763015.7A CN107529206A (zh) | 2017-08-30 | 2017-08-30 | Android设备Wi‑Fi密码的备份与恢复方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107529206A true CN107529206A (zh) | 2017-12-29 |
Family
ID=60682822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710763015.7A Pending CN107529206A (zh) | 2017-08-30 | 2017-08-30 | Android设备Wi‑Fi密码的备份与恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107529206A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796967A (zh) * | 2015-05-05 | 2015-07-22 | 广东欧珀移动通信有限公司 | 无线网络数据还原方法及装置 |
CN105263177A (zh) * | 2015-09-06 | 2016-01-20 | 珠海全志科技股份有限公司 | 一种无物理输入Android设备WiFi联网方法和装置 |
US20160100325A1 (en) * | 2014-01-27 | 2016-04-07 | Google Inc. | Wireless network monitoring device |
-
2017
- 2017-08-30 CN CN201710763015.7A patent/CN107529206A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160100325A1 (en) * | 2014-01-27 | 2016-04-07 | Google Inc. | Wireless network monitoring device |
CN104796967A (zh) * | 2015-05-05 | 2015-07-22 | 广东欧珀移动通信有限公司 | 无线网络数据还原方法及装置 |
CN105263177A (zh) * | 2015-09-06 | 2016-01-20 | 珠海全志科技股份有限公司 | 一种无物理输入Android设备WiFi联网方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101882085B (zh) | 系统启动方法以及嵌入式设备 | |
CN101937376B (zh) | 一种数据管理方法及数据存储装置 | |
US20170206079A1 (en) | Method and Device for Upgrading Software | |
CN1976517B (zh) | 移动终端 | |
CN105117246A (zh) | 电子设备快速启动的方法 | |
CN105278998A (zh) | 一种单片机固件升级方法 | |
CN105607972B (zh) | 一种异常修复的方法及装置 | |
CN104407888B (zh) | 一种嵌入式设备启动方法及系统 | |
CN104156273A (zh) | 一种系统异常的修复方法、装置和移动终端 | |
WO2021103745A1 (zh) | 一种引导程序的保护设计方法 | |
US20210382789A1 (en) | Method for protecting system from being powered off during upgrade and terminal device | |
CN103942121A (zh) | 一种数据还原系统及移动终端 | |
CN115658113A (zh) | 服务器自启动方法、装置、可读存储介质及电子设备 | |
CN102355321A (zh) | 一种通信接口的多速率自适应方法及系统 | |
CN104077250B (zh) | 一种智能终端与存储设备的连接处理方法及装置 | |
CN113867807A (zh) | 一种缩短服务器上电时间的方法、装置、设备和存储介质 | |
CN107529206A (zh) | Android设备Wi‑Fi密码的备份与恢复方法 | |
CN103455392A (zh) | 一种虚拟器及跨os的数据处理系统和方法 | |
CN110286962B (zh) | 一种加密芯片故障恢复方法、系统及电子设备和存储介质 | |
CN105786545A (zh) | 基于异构混合内存的断点恢复方法和系统 | |
CN104166599A (zh) | 一种arm设备重启恢复出厂配置的方法 | |
CN108196617B (zh) | Bmc时间设置方法、装置、系统及可读存储介质 | |
CN111090537A (zh) | 集群启动方法、装置、电子设备及可读存储介质 | |
CN103189840A (zh) | 一种备份存储装置的启动信息的方法 | |
CN102752365B (zh) | 信息处理的方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171229 |
|
RJ01 | Rejection of invention patent application after publication |