小米手机WiFi不能用问题解决方法 – MIUI历史版本

如果刷了第三方 ROM、系统内核,或者误格式化手机分区,在刷回原厂 ROM 后可能因为 persist 分区损坏导致 WiFi、蓝牙、相机/指纹/陀螺仪等传感器不能正常工作,并且可能在系统启动后会收到“查找手机存储损坏,您的手机处于不安全的状态”提示。

关于 persist 分区

手机上的 persist 分区存储着 WiFi、蓝牙、相机等校准数据,并且包含了证书和其他安全相关文件。这些数据在手机出厂后不应该被更改,即便是在刷机时也不会刷写这个分区。

但如果刷入第三方 ROM,有可能会修改该分区。最常见的是,第三方 ROM 设置 WiFi 使用硬件 MAC 地址,而不是手机厂商分配的 MAC 地址,那么它会修改 /presist/wlan_mac.bin 文件更改 MAC 地址。结果是手机在第三方 ROM 里可以正常使用 WiFi,但刷回原厂 ROM 就会有问题,因为 MAC 地址被修改了。根据 persist 分区损坏程度,还可能影响其它组件工作,如蓝牙等。

排查 WiFi 不能用原因

要查询是否因为 persist 分区损坏导致 WiFi 不能使用,最简单方法是查询手机 WiFi MAC 地址是否是小米使用的。

首先查询手机现有 WiFi MAC 地址,操作路径:手机设置 -> Wi-Fi -> 高级设置 -> MAC 地址。

查看小米手机 WiFi MAC 地址
查询小米手机 WiFi MAC 地址

然后对比小米 MAC 地址前缀,只要 MAC 前八位在列表里有,那么基本可以排除手机和蓝牙 MAC 地址被修改(手机和蓝牙 MAC 地址仅最后一位字符不同)。那么本文解决方法也将不适用于您,需要从其他方面排查,譬如是否系统软件或硬件问题。

刷新 persist 损坏分区

风险提示:刷写 persist 分区虽然有机会解决上述问题(仅适用高通机型),但它不是无损操作,有可能不会完全恢复或者无效,也可能由此引发更大范围的故障。因此是否要尝试,请自行判断与承担其中风险。此外,有些情况可以通过线刷高版本系统来解决这个问题,因此这个方法只适合作为备用方法,即在刷入新版本系统仍不能解决问题的情况下使用。

对于只是 WiFi 不工作,曾经有软件能从现有 persist 分区恢复 MAC 地址,但现在这个软件已找不到下载。

另外,省心解决方法是送小米售后维修,通常会更换主板解决。如果手机尚处于保修期内,有可能不收费。

使用 MiFlash 刷新 persist 分区

这个方法相对简单,不用安装 TWRP,但需要先完成 BL 解锁注意备份数据,下面操作会抹掉数据全新刷机),以及下载好对应机型线刷包(优先最新版)。

1. 解压缩线刷包,用记事本或其它文本编辑器打开解压目录 images 下的 rawprogram0.xml 文件。

找到包含 label="persist" 内容的行,检查其中 filename 值是否留空。如果为空,在引号内填写 persist.img 值,类似下面这样。

<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="persist.img" label="persist" num_partition_sectors="65536" partofsingleimage="false" physical_partition_number="0" readbackverify="false" size_in_KB="32768.0" sparse="true" start_byte_hex="0x10000000" start_sector="524288"/>

保存文件修改。

2. 在线刷包解压根目录里找到 flash_all.bat 文件,用记事本或其它文本编辑器打开。

找到包含 system.img 内容的行,按其格式在上面添加一行,如下。

fastboot %* flash persist %~dp0images\persist.img || @echo "Flash persist error" && exit /B 1

保存文件修改。

3. 下载 Android SDK Platform 工具包并解压缩,打开解压后的 platform-tools 文件夹,按住 Shift 键,同时鼠标右键点击文件夹空白处,在右键菜单点击“在此处打开 Powershell 窗口”。

然后将手机关机,长按音量下键 + 开机键进入 Fastboot 模式,用数据线连接到电脑,在之前打开的 Powershell 窗口运行下面命令重启到 EDL 模式(在此模式下手机会保持息屏)。

.\fastboot oem edl

之后下载 MiFlash 线刷工具,解压缩运行 XiaoMiFlash.exe,在软件中选择线刷包解压文件夹,点击刷新设备,选择“全部删除”模式,开始刷机(具体可参考这篇文章),刷完后长按关机键 10 秒退出 EDL 模式启动手机。

如果在刷机过程遇到下面错误,请检查手机是否已进入 EDL 模式(MiFlash 设备名称以 COM 开头的则表示已经进入)。

error:FAILED (remote: 'flash' operation on partition persist is not allowed)

如果进入 EDL 模式后连接电脑不识别,请安装高通驱动程序后再试。

使用 TWRP 刷新 persist 分区

这个方法适合已刷入 TWRP 的手机使用,但注意有些 TWRP 版本识别不到 persist 分区,需要升级 TWRP 或尝试第三方版本

1. 从线刷包里提取 persist.img 文件发到手机上(在线刷包 images 文件夹下)。

2. 进入 TWRP 界面,点击“安装” -> 点击右下方“刷入 Image 镜像” -> 选择 persist.img 文件 -> 在选择要刷入镜像的分区里选择“Persist”,滑动按钮确认刷入。

3. 刷完后重启手机验证 WiFi 等故障组件是否恢复正常。