win11这些系统真的很爽啊,WSL本地跑liunx,WSA本地跑安卓,虚拟的还挺完整的,美滋滋的有木有。
不过微软win11的这个安卓子系统(WSA)没有root,也没有谷歌框架,应用市场是那个奇葩的亚马逊市场,没有Google Play,用起来相当让人不爽。
直接给win11的安卓子系统(WSA)安装magisk,获取系统root权限非常麻烦。

经过一番查找发现LSPosed早就解决这个问题了。可以通过构建安卓子系统安装包,直接把magisk提前整合进WSA安装包就可以了。


win11安卓子系统系列文章之一:win11 安卓子系统(WSA)ROOT安装面具(Magisk)与谷歌框架(Google Apps)
win11安卓子系统系列文章之二:Windows Android 子系统 WSA 代理设置方法教程
win11安卓子系统系列文章之三:解决Win11安卓子系统烦人的提示“VirtWifi的连接受限”
win11安卓子系统系列文章之四:Windows 11 Android 子系统 WSA 安装APP软件APK文件方式教程
win11安卓子系统系列文章之五:为 win11 安卓子系统(WSA)内 APP 设置桌面快捷方式


前提

  1. 首先也是最主要的,你的电脑的配置要能安装安卓子系统(WSA),不然这文章对你完全没用
虚拟化:已启用
contrib源winetricks
  • 没有

请直接跳到【本地安装】开始看,直接提供了适用于最普遍情况的安装包。

且你希望进行更多自定义设置或者希望自己编译安装包,请继续往下看(否则推荐直接下载预构建安装包),你可以用WSL2在win11里跑一个Ubuntu系统,这个是完全没问题的。关于怎么在win10或者win11里安装基于WSL2的Ubuntu网上教程一搜一大把,就不再赘述了(运行Ubuntu的服务器/电脑需要有至少10G的空闲可用磁盘空间,以及目前/tmp在WSL上是会被直接写入内存,构建脚本利用了这个特性来加速构建,所以请确保你电脑内存也足够大,以及确保机器能自由访问网络)

构建WSA安装包

  1. 打开MagiskOnWSALocal项目地址
  2. 右上角有个星标【Star☆】点一下(非必须)

  3. 把项目的文件放到你的Ubuntu系统里,你是用git啊,还是SVN啊,还是下载项目ZIP到电脑里,再用FTP上传到Ubuntu系统都行,方法很多的。(以下假设你放在了/usr/MagiskOnWSALocal/目录下)
    比如
    登录你的你的Ubuntu系统 SSH里输入

cd /usr/
git clone https://github.com/LSPosed/MagiskOnWSALocal.git
  1. SSH里执行
cd /usr/MagiskOnWSALocal
  1. SSH里输入
scripts/run.sh

运行构建脚本,耐心等待脚本拉取构建环境,然后脚本会询问你构建选项
方向键移动选择项目,空格选择,回车确认。

构建选项

  1. 【Build arch】选择安卓子系统(WSA)的运行硬件架构
    咱们电脑一般都是X64的架构吧,你电脑要真是是ARM架构那就选arm64,不然就选默认的X64
  2. 【WSA release type】选择安卓子系统(WSA)的版本,
    这个一般选默认的retail,除非你需要预览版

  3. 【Magisk version】选择 面具(Magisk)的版本
    这个一般选默认的retail,除非你需要预览版的面具

  4. 【Install Gapps】选择 是否安装谷歌框架
    根据需求,需要就选Yes,不需要就选No

  5. 【Which GApps do you want to install】选择安装的谷歌框架类型
    目前基于MagiskOnWSA项目的安装有两个google框架体系,一个是OpenGApps(稳定性比较好,但是最近更新慢,完全没适配安卓13,导致wsa版本只能支持到2210.400000.7.0),一个是MindTheGapps(有适配安卓13的版本,但遇到兼容性问题几率提升)没如果强烈的使用安卓13或最新版wsa的需求,推荐使用OpenGApps

  6. 【Variants of gapps】选择你装多少谷歌APP
    (2022-08-27的更新:WSA内安卓更新至安卓12后,Gapps只有pico实际可用,而MindTheGapps公开编译只有一个包,所以目前这一个选项是会被跳过的)

一般默认的pico就行,如果你使用的某些APP,需要更加完整的谷歌环境,再尝试用nano

  • Super就是谷歌全家桶我全要了(1G多空间需求),
  • stock类似于 Google Pixel手机的状态
  • mini类似于谷歌比较常用APP都装进来,
  • micro是把常用谷歌APP装进来
  • nano是完整谷歌框架,
  • pico就是只有必须的谷歌框架
  • 具体各种选项的区别看:这里

  1. 【remove 亚马逊市场】选择是否安装没啥卵用的亚马逊应用市场
    选no就行,因为确实没啥用,里面应用少的可怜,咱上一步都装了GooglePlay了是不。

  2. 【Root Solution】选择是否root
    这里当然是选magisk获取root啊,你要是不需要root,只需要安装google框架的话可以选none

  3. 【Compress output】选择是否压缩output
    如果选NO,安装文件就是一个文件夹,你需要下载这个文件夹
    如果选Yes,安装文件打包成一个压缩包,方便下载(也不容易出错)。
    注意如果你的机器性能欠佳,有可能压缩所需要的时间,会长到让你怀疑人生。

  4. 【Compress format】选择压缩格式
    7z压缩率最高,但压缩时最吃CPU资源,zip压缩率稍低,相对不太吃资源,而且支持性好,tar.xz性能和压缩率都不错,但在win解压需要解压软件的支持。

  5. 等待构建完成

Everything is Ok
done
Cleanup Work Directory
done

等待SSH显示如上内容时说明安装包已经构建完毕了

本地安装

上述两种安装包因为使用了不同的google框架体系,所以不能直接切换安装,装了一种后,想装另一种就要彻底卸载原有的WSA
安装包1号是我自己正在使用的安装包,安装包2号只测试了可安装可启动,其余未经测试

  1. 构建结束后,你会在/usr/MagiskOnWSALocal/目录下看到一个新出现的output文件夹,把他里面的文件全部下载/复制到你的win11系统里(SFTP,FTP,webdav,WSL的直接复制,随便你发挥)
  • 请一定保留最后可用的压缩包以备出现奇怪问题时可以通过重新覆盖安装解决,WSA突然无法启动的情况还是比较常见的
  • 解压出的安装文件夹是不可被删除的,这会是WSA的工作目录。
run.bat适用于Android™ 的 windows子系统设置run.bat共享用户文件夹C:\Users\用户名

后续更新WSA

目前代码还在频繁迭代中,建议注意项目的commits,如果发现重大修改,请及时更新。

run.bat
  1. SSH里执行(切换到工作目录)
cd /usr/MagiskOnWSALocal
  1. SSH里输入(非必须 删除下载和打包缓存)
rm -r download output
  1. SSH里输入(拉取最新代码)
git pull
  1. SSH里输入(重新执行构建)
scripts/run.sh
  1. 下载output文件夹内的文件并解压(如果需要解压的话)
适用于Android™ 的 windows子系统设置关闭适用于Android™ 的 windows子系统run.bat

我也会不定期更新【本地安装】部分的预制安装包。不过更新时间就不太保证了。

卸载WSA

适用于Android™ 的 windows子系统设置关闭适用于Android™ 的 windows子系统重置为默认值适用于Android™ 的 windows子系统设置%LOCALAPPDATA%\Packages\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\LocalCache\userdata.vhdx

几种常见的问题

"[SocketCore.cc:507] errorCode=1 Failed to connect to the host 2402:6800:764:a000::1, cause: Network is unreachable"TLS handshake timeoutConnectionResetError: connection reset by peerdns lookup failedConnectionRefusedError: connection refusedClient.Timeout exceeded while awaiting headersConnectionError:Connection aborted