Android11.0(R) 预置 wifi 信息自动连接

简介: Android11.0(R) 预置 wifi 信息自动连接

在系统中预置一个 wifi 的 ssid 和 pwd,这样在系统烧写启动完成后开机打开 wifi 就能

自动连接指定 ssid。


1、获取 WifiConfigStore.xml


R 版本此文件路径位于

/data/misc/apexdata/com.android.wifi/WifiConfigStore.xml

userdebug 版本下先连接好指定 ssid,将 WifiConfigStore.xml copy 出来,大致长这样。


<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<WifiConfigStoreData>
<int name="Version" value="3" />
<NetworkList>
<Network>
<WifiConfiguration>
<string name="ConfigKey">&quot;kotlin555&quot;WPA_PSK</string>
<string name="SSID">&quot;kotlin555&quot;</string>
<string name="PreSharedKey">&quot;123456789&quot;</string>
<null name="WEPKeys" />
<int name="WEPTxKeyIndex" value="0" />
<boolean name="HiddenSSID" value="false" />
<boolean name="RequirePMF" value="false" />
<byte-array name="AllowedKeyMgmt" num="1">02</byte-array>
<byte-array name="AllowedProtocols" num="1">03</byte-array>
<byte-array name="AllowedAuthAlgos" num="0"></byte-array>
<byte-array name="AllowedGroupCiphers" num="1">2f</byte-array>
<byte-array name="AllowedPairwiseCiphers" num="1">0e</byte-array>
<byte-array name="AllowedGroupMgmtCiphers" num="1">04</byte-array>
<byte-array name="AllowedSuiteBCiphers" num="0"></byte-array>
<boolean name="Shared" value="true" />
<int name="WapiPskType" value="0" />
<null name="WapiPsk" />
<boolean name="AutoJoinEnabled" value="true" />
<boolean name="Trusted" value="true" />
<null name="BSSID" />
<int name="Status" value="2" />
<null name="FQDN" />
<null name="ProviderFriendlyName" />
<null name="LinkedNetworksList" />
<null name="DefaultGwMacAddress" />
<boolean name="ValidatedInternetAccess" value="true" />
<boolean name="NoInternetAccessExpected" value="false" />
<boolean name="MeteredHint" value="false" />
<int name="MeteredOverride" value="0" />
<boolean name="UseExternalScores" value="false" />
<int name="CreatorUid" value="1000" />
<string name="CreatorName">android.uid.system:1000</string>
<int name="LastUpdateUid" value="1000" />
<string name="LastUpdateName">android.uid.system:1000</string>
<int name="LastConnectUid" value="1000" />
<boolean name="IsLegacyPasspointConfig" value="false" />
<long-array name="RoamingConsortiumOIs" num="0" />
<string name="RandomizedMacAddress">52:b3:02:9e:ca:e4</string>
<int name="MacRandomizationSetting" value="0" />
<int name="CarrierId" value="-1" />
<boolean name="IsMostRecentlyConnected" value="true" />
</WifiConfiguration>
<NetworkStatus>
<string name="SelectionStatus">NETWORK_SELECTION_ENABLED</string>
<string name="DisableReason">NETWORK_SELECTION_ENABLE</string>
<null name="ConnectChoice" />
<boolean name="HasEverConnected" value="true" />
</NetworkStatus>
<IpConfiguration>
<string name="IpAssignment">DHCP</string>
<string name="ProxySettings">NONE</string>
</IpConfiguration>
</Network>
</NetworkList>
<MacAddressMap>
<map name="MacMapEntry" />
</MacAddressMap>
<Settings>
<map name="Values">
<boolean name="wifi_p2p_pending_factory_reset" value="false" />
<boolean name="wifi_scan_throttle_enabled" value="true" />
<null name="wifi_p2p_device_name" />
<boolean name="wifi_scan_always_enabled" value="false" />
<boolean name="wifi_verbose_logging_enabled" value="false" />
</map>
</Settings>
<PasspointConfigData>
<long name="ProviderIndex" value="0" />
</PasspointConfigData>
</WifiConfigStoreData>


2、将 WifiConfigStore 放置到指定路径下


方式一、卒

PRODUCT_COPY_FILES +=

PRODUCT_COPY_FILES +=

vendor/mediatek/WifiConfigStore.xml:data/misc/apexdata/com.android.wifi/WifiConfigStore.xml


烧写后开不了机了,data 分区下不允许放置其它东西


方式二、卒

先将 WifiConfigStore.xml 扔到 /system/etc/ 随便目录都行,

用 java 代码 read /system/etc/WifiConfigStore.xml 写入 /data/misc/apexdata/com.android.wifi/WifiConfigStore.xml


权限不够,加权限加到地老天荒


方式三、可


加在 init.rc 中去 copy 这个文件,init.rc 自带 root 权限


build\make\target\product\handheld_system.mk

on property:spc.provisioned=1
    copy /system/etc/WifiConfigStore.xml /data/misc/apexdata/com.android.wifi/WifiConfigStore.xml

找地方触发 spc.provisioned 只能执行一次,不能每次启动都去 copy, 这样会覆盖用户自己保存的其它 wifi 信息

加在 provision

还有大佬提供的另外一种思路,我没具体验证,这里也贴一下


5XT5vQ.png



Android 8.0内置wifi

Android系统WIFI显示已保存但不会自动重连

RK3568 Android 11 ------已保存的WiFi,不自动连接

目录
相关文章
|
9天前
|
安全 Android开发
Android 预置可卸载分区接收不到任何广播问题分析和解决
Android 预置可卸载分区接收不到任何广播问题分析和解决
25 0
|
9天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
52 0
|
3月前
|
Android开发
如何用Airtest脚本无线连接Android设备?
如何用Airtest脚本无线连接Android设备?
|
3月前
|
存储 网络安全 Python
WiFi连接树莓派【2月更文挑战第2天】
要通过WiFi连接树莓派并显示其摄像头视频信息,您需要按照以下步骤操作: 1. 确保您的电脑和树莓派已连接到同一个WiFi网络。 2. 安装Python和必要的库:在您的电脑上安装Python 3.6或更高版本,并安装pip(Python包管理器)。然后,通过pip安装以下库: 【2月更文挑战第2天】
24 1
|
4月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
61 0
|
29天前
|
编解码 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)1
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
47 1
|
8天前
|
Java Android开发
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
23 0
|
29天前
|
编解码 开发工具 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
27 2
|
8天前
|
运维 网络协议 Linux
Android 双网卡配置为连接到Android主机的PC提供外网访问(1)
Android 双网卡配置为连接到Android主机的PC提供外网访问(1)
23 0
|
9天前
|
测试技术 Android开发
Android App获取不到pkgInfo信息问题原因
Android App获取不到pkgInfo信息问题原因
17 0