本教程内提供的方法在原生安卓6和安卓7上测试均可使用,在安卓13(澎湃1.0.3.0)上测试无效,其余系统版本请自行测试。
准备
首先,请确保安卓设备已经打开了 USB 调试并能成功连接 ADB,使用adb devices来检查连接状态。
虽然没有明确测试过,但这里建议将安卓设备的 Wi-Fi 功能保持开启。
获取备份数据
使用adb backup备份系统的所有应用数据并存储到sys_backup文件中:
adb backup -all -f sys_backup
执行上述命令会在安卓端跳出一个页面,询问备份密码,可以将密码留空继续则为不加密备份文件。
备份完成后,安卓端会自动关闭备份页面,备份文件会存储在电脑上当前运行目录下或指定的路径。
我注意到在运行adb backup时提示该功能已被遗弃,有可能在将来的 adb
版本中被移除,贴一下我这里使用的版本以备不时之需:
Android Debug Bridge version 1.0.41
Version 35.0.1-11580240
解析备份文件
导出后的备份文件无法直接打开,需要通过 Android backup extractor
工具解析后才能正常读取。从release中下载abe.jar后使用方法如下:
java -jar abe.jar unpack <input> <output.tar> [password]
例如,解析名为sys_backup且无密码加密的备份文件,并输出到output.tar:
java -jar abe.jar unpack sys_backup output.tar
获取密码
解压解析出来的 tar
文件,在解压出来的apps文件夹下找到com.android.providers.settings/d_f/flattened-data文件,使用任意文本编辑器打开即可看到安卓设备上所有已存储的Wi-Fi信息,例如:
network={
ssid="test"
scan_ssid=1
psk="66666666"
key_mgmt=WPA-PSK
auth_alg=OPEN
frequency=2462
disabled=1
id_str="%7B%22creatorUid%22%3A%221000%22%2C%22configKey%22%3A%22%5C%22test%5C%22WPA_PSK%22%7D"
}
此处ssid即为网络名称,psk则为对应网络的密码,key_mgmt为该网络使用的认证方式,scan_ssid=1代表这是隐藏网络,非隐藏网络则没有这一条。