当前位置:   article > 正文

Android11.0(R) 预置 wifi 信息自动连接_android 11 wifi直连开发

android 11 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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76

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

方式一、卒

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

PRODUCT_COPY_FILES += \
    vendor/mediatek/WifiConfigStore.xml:system/etc/WifiConfigStore.xml 

  • 1
  • 2
  • 3

system\core\rootdir\init.rc

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

  • 1
  • 2
  • 3

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

加在 provision

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

5XT5vQ.png

Android 8.0内置wifi
Android系统WIFI显示已保存但不会自动重连
RK3568 Android 11 ------已保存的WiFi,不自动连接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/505521
推荐阅读
相关标签
  

闽ICP备14008679号