WSA 进阶
Windows 安卓子系统的进阶指南。
前言
如果没有阅读 使用 Windows 安卓子系统,请先阅读此文章。
1. 安装 Google Play 版本的 WSA
如果你不想使用 Amazon Appstore,或者你需要自定义一些配置(如可 Root、安装面具等)可以安装 Google Play 版本的 WSA。
WSA 的社区维护版本下载:MustardChef/WSABuilds。
甚至可以安装一些极客软件:
- Termux
- Magisk
- SuperSU
- TaiChi
- Xposed
- LSposed
- KernelSU
- Kernel Flasher
- Mono
甚至能安装其他虚拟化软件(Android 容器和虚拟机),或者使用 Termux 安装其他 Linux 系统,使用自编译的 Linux 内核替换现有内核,运行更多自定义守护进程,甚至运行 Docker 容器。
2. 卸载和备份
2.1 卸载
如果需要安装其他发行版的 WSA(如官方版本),需要卸载现有版本的 WSA。
- 打开 适用于Android(TM) 的 Windows 子系统
- 关闭 WSA:系统 -> 关闭适用于Android(TM) 的 Windows 子系统 -> 关闭
- 右键卸载此应用
2.2 备份数据
如果是更新 Google Play 版本的 WSA,可以直接在安装新版本的 WSA 时选择保留数据。
用户数据在此文件中:
%LOCALAPPDATA%\Packages\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\LocalCache\userdata.vhdx
复制此文件夹名称,然后使用 Win + R
打开 运行,粘贴回车即可打开此文件夹。
2.3 备份 APK 文件
可以使用 Adb 批量备份 APK 文件。
列出包名:
adb shell pm list package
列出 APK 文件路径:
adb shell pm path ${package_name}
复制文件到电脑上:
adb pull ${device_path} ${host_path}
批量备份脚本
查看哪些包需要备份,通常是没有 android
和 windows
的包名:
adb shell pm list package | sed s/package://g | sed /android/d | sed /windows/d
Windows 下使用 Linux 工具可以参考 Git 提供的工具包。
使用 Git 提供的 bash
支持命令,将下列脚本保存为 wsa-copy-apk.sh
,然后在 bash
中运行即可。
packages=$(adb shell pm list packages | cut -d ":" -f 2 | sed 's/ //g' | grep -v "android" | grep -v "windows" | grep -v "google")
for package in $packages; do
echo "[INFO] Backup" $package "now ..."
apk_path=$(adb shell pm path $package | grep "/base.apk" | cut -d ":" -f 2 | sed 's/ //g')
if [ ! -z "$apk_path" ]; then
echo "[INFO] Saving" $apk_path "->" $package.apk
adb pull $apk_path $package.apk
else
echo "[WARN] Not normal package" $package
fi
done
WSL 2 的提供了一个 bash
命令和 Git 提供的是不兼容的,WSL 2 连接 WSA 较为繁琐。
3. 使用 ROOT 权限
可以通过安装 Root Checker Basic 来检查 ROOT 权限。如果你已经安装过 Magisk,会弹出授权界面,对此应用授权即可。
在 Termux 中可以通过安装 tsu
来模拟 su
命令:
pkg install tsu
然后使用 tsu
命令即可获取 ROOT 权限。
tsu