CN107529206A - Android设备Wi‑Fi密码的备份与恢复方法 - Google Patents

Android设备Wi‑Fi密码的备份与恢复方法 Download PDF

Info

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
Application number
CN201710763015.7A
Other languages
English (en)
Inventor
李超凡
尤金刚
车云飞
蒲东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201710763015.7A priority Critical patent/CN107529206A/zh
Publication of CN107529206A publication Critical patent/CN107529206A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/16Discovering, 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设备Wi-Fi密码的备份与恢复方法
技术领域
本发明涉及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())语句。
CN201710763015.7A 2017-08-30 2017-08-30 Android设备Wi‑Fi密码的备份与恢复方法 Pending CN107529206A (zh)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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