适用系统:Android 10 / 11 / 12 / 13 / 14 及以上(文中标注了各方法的系统要求)
本教程的方法均不需要 Root,也不需要刷机。
一、先搞明白:为什么平时看不到 WiFi 密码?
Android 系统把已保存的 WiFi 密码存放在系统级配置文件里(如WifiConfigStore.xml、wpa_supplicant.conf),位于/data/misc/wifi/目录下。这个目录只有系统进程(WiFi 服务)能读写,普通 App 即使申请了"位置权限 + WiFi 权限"也读不到密码——这是 Android 的安全设计,防止任何应用偷偷收集你家的 WiFi 密码。
所以,在不 Root 的前提下,想查看密码只有两条路:
| 路线 | 能看什么 | 需要什么 |
|---|---|---|
| 系统自带的"分享二维码" | 仅当前正在连接的那个 WiFi | 什么都不用装 |
| Shizuku 授权 + 专业 App | 所有已保存过的(曾连接且未删除的)WiFi | 安装两个 App,激活一次 Shizuku |
注意:所谓"曾经连接过的",指设备上已保存的 WiFi 网络列表(连接过一次且没有被"删除/忘记"操作)。已从系统里"忘记"的网络,密码已被清除,任何方法都找不回来。
二、方法一:零安装,用系统自带功能(仅限当前连接的 WiFi)
这是最简单的方法,不需要装任何 App、不需要电脑。Android 10 及以上的原生机型都自带"分享 WiFi"功能,它会把当前网络的信息生成一个二维码,扫码即可看到明文密码。
操作步骤
- 打开手机的设置 → WLAN(无线网络)。
- 点击当前正在连接的 WiFi 网络名称(或点网络右侧的"详情"图标)。
- 找到并点击“分享”按钮(部分机型叫"分享给朋友"“二维码”)。
- 系统会要求验证身份(锁屏密码 / 指纹 / 人脸),通过后显示一个二维码。
- 用另一台手机(任意系统)的相机扫码,即可看到类似这样的信息:
WIFI:T:WPA;S:你家WiFi名字;P:你的WiFi密码;H:false;;其中S:后面是 WiFi 名称(SSID),P:后面就是明文密码。
厂商差异提示
- 原生 Android / Pixel:设置 → 网络和互联网 → 点击已连接的网络 → 分享。
- 小米(MIUI/HyperOS)、OPPO、vivo、荣耀等国产机型:入口通常在 WLAN 列表里点击已连接网络 → “分享"或"二维码”,部分系统还直接在详情页提供"显示密码/查看密码"按钮。
- 鸿蒙(HarmonyOS):WLAN → 点击当前网络 → 分享二维码。
局限
- 只能看当前正在连接的那个网络,看不到其他已保存网络的密码,也看不到曾经连接过、现在没连的网络。
三、方法二:Shizuku + WiFi Password Manager(查看所有已保存 WiFi 的密码)
要查看全部已保存(曾经连接过)的 WiFi 密码,推荐本教程分析的这款开源 App:WiFi Password Manager(GitHub 仓库)。
- 开源、免费、无广告、不上传任何数据(应用本身无网络权限)。
- 通过Shizuku获取系统级接口调用能力,从而读到系统 WiFi 数据库里的密码。
- 系统要求:Android 11 (API 30) 及以上。
- 附加能力:复制密码、连接/断开/忘记网络、导入导出、给网络加备注、应用锁等(本教程只讲核心的"查看密码")。
第 1 步:安装 Shizuku
Shizuku 是一个免费开源的"权限桥"工具,它让普通 App 能以 shell/system 身份调用系统 API,而不需要 Root。官网:https://shizuku.rikka.app
https://github.com/RikkaApps/Shizuku/releases
方式 A:无线调试激活(Android 11+,不需要电脑,推荐)
- 打开手机设置 → 关于手机,连续点击"版本号"7 次,开启开发者模式。
- 回到设置 → 开发者选项,开启"无线调试"(首次开启会让你在 WiFi 和蓝牙设置里确认,选允许即可)。
- 从官网或 F-Droid 下载安装ShizukuApp。
- 打开 Shizuku,点击"无线调试"入口,按提示开启配对。此时手机会显示一个 6 位配对码。
- 下拉通知栏,点击"无线调试"通知,选择"使用配对码配对设备",输入刚才的配对码。
- 配对成功后回到 Shizuku 界面,点击"启动",看到"Shizuku 已启动"即完成。
方式 B:ADB 激活(Android 6+,需要电脑)
- 手机开启"USB 调试"(开发者选项里),用数据线连电脑,安装 adb 工具后执行
adb devices确认设备已连接。 - 下载 Shizuku 的
shizuku_starter.sh并推送:adb push shizuku_starter.sh /data/local/tmp/ - 执行:
adb shell sh /data/local/tmp/shizuku_starter.sh - 打开手机上的 Shizuku,点击"启动",看到"已启动"即完成。
说明:ADB 激活的 Shizuku 权限在重启手机后失效,需要重新执行一次激活;无线调试方式同理,重启后需重新点击"启动"。这是不 Root 方案无法避免的,好在整个过程约 1 分钟。
第 2 步:安装 WiFi Password Manager
- 从GitHub Releases下载最新 APK:releases 页面
- 或通过F-Droid / IzzyOnDroid / Obtainium安装(见项目 README 的安装链接)。
- 安装后在系统设置中授予它"位置信息"和"附近设备(WiFi)"相关权限(如果不给,Shizuku 模式下核心功能仍可用,只有"当前连接网络高亮"这类功能受影响)。
第 3 步:授权并查看密码
- 打开WiFi Password Manager,首次启动会弹出 Shizuku 授权请求,点击"允许"。
- 主界面即列出设备上所有已保存的 WiFi 网络,当前正在连接的会置顶高亮。
- 点开任意网络,点击密码旁的"眼睛"图标即可显示明文密码,点击复制图标可复制到剪贴板(项目对剪贴板操作做了敏感标记)。
- 顶部搜索框支持按名称实时搜索网络;右上角菜单可批量导出(JSON/加密)。
工作原理(为什么它能行?)
- 系统里有一个隐藏 API
IWifiManager#getPrivilegedConfiguredNetworks,它返回所有已保存网络的配置,其中preSharedKey字段就是 WPA 密码明文(带引号,App 去掉引号显示)。 - 这个 API 属于"系统级"接口,普通 App 没权限调用。Shizuku 的作用就是让本 App 以
shell/system身份去调用它。 - Android 12+ 开始对隐藏 API 加了反射限制,App 借助
HiddenApiBypass库绕过该限制完成调用。 - 项目源码关键位置(便于核对):
app/src/main/kotlin/.../datasource/wifi/ShizukuWifiDataSourceImpl.kt、utils/WifiManagerHelper.kt、hidden-api/.../IWifiManager.java。
四、其他备选方案(简要对比)
| 方案 | 能否看历史网络 | 是否需要 Root/电脑 | 评价 |
|---|---|---|---|
| 系统分享二维码(方法一) | 否,仅当前网络 | 不需要 | 最快,零安装 |
| Shizuku + WiFi Password Manager(方法二) | 是 | 首次需电脑或无线调试激活,之后无需电脑 | 首选,开源可信 |
| Shizuku + 其他同类开源 App(如 WiFi Key Recovery 的 Shizuku 版) | 是 | 同上 | 可选,原理相同 |
读/data/misc/wifi配置文件 | 是 | 需要 Root(或 adb root),不符合本教程前提 | 仅作原理说明 |
| Android 备份恢复提取 | 否(Android 12+ 备份已加密) | 需要电脑 | 已不可行,不推荐 |
五、注意事项与合规提醒
- 只能查看自己设备上保存过的网络:本教程所有方法都只能读取本机 WiFi 数据库中已保存的网络,无法查看别人手机上保存的密码,更不存在"破解周围 WiFi 密码"的能力。
- 隐私与安全:建议从官方渠道(F-Droid、GitHub Releases)安装;本教程提到的 App 无网络权限、数据全在本机,但请自行核对应用来源。
- 重启后重新授权:Shizuku 方式在手机重启后需要重新启动 Shizuku(无需再配对,点一下"启动"即可)。
- 合规:请仅用于找回自己忘记的 WiFi 密码、迁移设备等正当用途,不要用于获取未授权的网络访问。
- 兼容性:该 App 面向 AOSP 系系统设计,高度魔改的国产 ROM 可能个别功能异常(核心"查看密码"一般不受影响);如遇问题可查看项目 GitHub Issues。
附:参考资料
- 项目仓库:https://github.com/Khh-vu/wifi-password-manager
- Shizuku 官网:https://shizuku.rikka.app
- 下载地址:https://github.com/RikkaApps/Shizuku/releases
- F-Droid 上的 WiFi Password Manager:https://f-droid.org/packages/io.github.wifi_password_manager