想要解包某游戏但不想在实机中安装、折腾数据,正好尝试一下windows11的wsa(windows subsystem android)。简单记录一下配置过程。
这次配置的核心是代理问题。主要参考了:
该文章提供了三种解决思路。我最开始尝试了方法二但是没能成功,最后转头使用方法一:win11 安卓子系统(WSA)ROOT安装面具(Magisk)与谷歌框架(Google Apps)。
安装定制镜像
生成镜像
之前安装过WSL2,前置环境配置就省去了。定制的镜像来自于仓库MagiskOnWSALocal。
在WSL2中运行
1 | git clone git@github.com:LSPosed/MagiskOnWSALocal.git |
我在运行时出现了问题,如下
1 | Mount images |
参考Support v2306得到了解决:修改build.sh
中三行代码(具体参考该Pull Request的修改详情)。
我选择了compressed选项,运行后在项目目录 output
文件夹下可以看到对应的文件WSA_2306.40000.4.0_x64_Release-Nightly-with-magisk-26.1(26100)-stable-MindTheGapps-13.0-RemovedAmazon.7z
。将该文件移动到windows并解压到你喜欢的目录中。在Windows中打开解压后文件的Run.bat
文件,等待安装完成即可。
注意,这一步可能遇到WSL2的代理问题,这一步和windows中配置代理区别不大,但需要注意如果需要访问windows中的代理,需要代理软件允许局域网访问以及配置好windows的防火墙规则。
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
WSA 配置
WSA还需要进行一定的配置以便使用。
WSA 本体配置
安装好后在开始菜单中会出现“适用于Android的Windows子系统”应用,点开。
关闭“阻止安装恶意应用”,开启“开发人员模式”。
apk 安装支持
安装APK 安装程序。这个能方便我们安装APK。如果你电脑中已经有ADB了,可以直接使用已经安装的ADB。也可以让其自动安装。自动安装后,可以看到自动安装ADB的路径。
编辑系统变量,将该目录增加到path中,保存。在命令行运行
1 | adb connect 127.0.0.1:58526 && adb shell |
如果进入了安卓的shell则说明正常。
Magisk配置
在 WSA 中打开 Magisk
在设置中开启选项
系统会重启。
为了方便操作这里我们安装via浏览器(也许是兼容性原因chrome会崩溃),apk可以在apkpure找到。得到文件后直接打开应该就可以安装。
在这里 https://github.com/LSPosed/LSPosed/releases 可以找到LSPosed最新发行版,我们复制 LSPosed-v1.8.6-6712-zygisk-release.zip 这一版本的下载链接 https://github.com/LSPosed/LSPosed/releases/download/v1.8.6/LSPosed-v1.8.6-6712-zygisk-release.zip, 在安卓的via中下载。如果有网络连接问题可以使用ghproxy进行代理 https://ghproxy.com/https://github.com/LSPosed/LSPosed/releases/download/v1.8.6/LSPosed-v1.8.6-6712-zygisk-release.zip。
在Magisk中的模块tab中选择刚刚安装的LSPosed,安装模块。
在windows中,也下载一份刚刚的压缩包并解压,解压内容中有名为 manager.apk
的安装包,也安装到 WSA 中。
正菜
这时整个系统已经和正常的安卓系统一样,可以运行代理软件了。我们现在可以安装运行自己需要的软件了。
题外话之一
在ba的apk中可以看到是不包含x86的包的,因此 WSA 在实现上应该是对 ARM 的机器码做了转译。
题外话之二
通过 du -h
命令可以找到,ba国际版的主要数据在 /sdcard/Android/data/com.nexon.bluearchive/files/PUB
下。在windows powershell中,运行adb pull /sdcard/Android/data/com.nexon.bluearchive/files/PUB P:\ba-assets
即可拉下数据。