menu Thinking Null
WSA GApps和root从入门到入土
2021-12-04   网络空间安全 Linux   暂无评论   4799 次阅读

本教程使用开源项目 WSAGAScript 此教程亦由原英文教程(README)简化修改而来
本教程适用于包括正式版的 Windows11 能为WSA带来GAPPS和root
实际是根本不需自己操作只需一份改完的包就行 有携截图需要tg @GCNWM 或 gcnwm@plashspeed.tech
 title=

警告(原Readme)

This project is Work-In-Progress 此项目为开发中项目

This project is being updated without schedule (though frequently). This README might not be completely clear right now, it will be fixed ASAP.
此项目目前无计划更新(尽管经常)。此README可能现在不是完全准确,但会尽快修复

As for potential questions - please open Discussions instead of Issues.
至于潜在问题 - 请开启Discussions而不是Issues

Issues are needed in cases if you have an actual issue that prevents you from using this project.
如果你有阻止使用这个项目的实际问题Issues是有必要的

Legal Warnings 法律警告

By using the tools (scripts, but not limited to) provided by this project, you agree with the terms of Unlicense License, which states that "THE SOFTWARE IS PROVIDED "AS IS"".
使用由此项目提供的工具(脚本等),你需要同意 Unlicense 许可 其中声明 "软件按原样提供"。

To end user this serves as a warning, though we currently don't have any explicit confirmations - such way of installing Google Services and Google Play Store may potentially be in a legal gray area.
对于最终用户来说这只是一个警告,尽管我们目前没有任何明确的确认 - 以此方式安装 Google 服务和 Google Play 商店尚处法律灰色地带。

Copyright notices 版权声明

Any product or trademark referenced in this document (or project as whole) belongs to their respective owners. No copyright infringement is intended.
此文档(或整个项目中)中任何提及的商标均属于各自持有者。无意侵犯版权。

准备工作

安装适用于Windows的Linux子系统(版本2) (WSL2)

WSL2安装Q & A

如果你从未使用过 WSL ,请检查以下内容:

  • 你必须使用 Windows 10 version 2004 或更高版本 (Build 19041或更高) 或 Windows11

检查 Build 版本的最快方法:在 搜索 中或通过 运行(win + R / 右击开始按钮找到) winver

  • 为什么我需要那个WSL?

因为构建Android操作系统的方式 - 我们正在使用的修改工具只能在基于 Linux 的系统使用。而最便捷使用这些工具的方式就是WSL。

如何安装WSL

  • 使用管理员权限打开 Windows PowerShell (win + X + A)
    -运行 wsl --install :这将会在WSL2中安装 Ubuntu 20.04 LTS 以及所有让它默认运行所必要的组件 (此为推荐方法)

在下载和安装必要组件时你的电脑可能需要重启数次
完成后按安装向导说明继续。如有任何疑问来 Microsoft 的WSL官方文档能为你提供帮助。

  • 输入 wsl --list --verbose 确保安装了带WSL2的Linux发行版。如果由于某种原因收到了WSL1内核 (或运行此命令有问题) 请按照以下部分中的说明进行转换。

Microsoft Docs: Installing WSL

Microsoft Docs: Set up and best practices

WSL1转换为WSL2步骤略 如有需要可访问 原文档

确保输入 wsl --list --verbose 获得的版本为 2

安装 unzip, lzip

sudo apt update
sudo apt install unzip lzip -y

其他发行版请自行替换包管理器

准备文件结构

为了安全起见,我们需要新建一个目录 如 D:\WSA\ (无需相同)

注意用来放我们即将下载的文件的目录将成为安装目录。请不要删除那个目录 (此目录即WSA目录 所有WSA文件都在里面)
注意请确保你所创建的目录路径中不含空格

#### 下载
介于我们需要修改文件,我们不能直接从 Microsoft Store 获取WSA。我们需要使用此 服务

使用设定:

  • ProductID: 9P3395VX91NR (输入框前的选项 默认为URL(link))
  • Ring: SLOW (输入框后的选项 默认为RP)

找到大小约为 1.2GB 的 带 .msixbundle 拓展名的文件 (通常在最底部 文件应为MicrosoftCorporationII.WindowsSubsystemForAndroid_X.X.XXXXX ~ XXXX.msixbundle)
点击文件名开始下载(如未开始可右击复制链接地址 至URL输入)

将文件放在准备好的目录 D:\WSA\

解压

  • 下载 7zip 或类似的存档程序并使用它来提取下载的文件。请不要介意此文件不带有任何存档扩展名(如 .zip)。
  • 解压完成后打开 D:\WSA\MicrosoftCorporationII.WindowsSubsystemForAndroid_版本_neutral___标识符 此文件夹内含很多 .msix 找到最大的两个文件。
  • 解压那个符合你设备构架的(通常为 WsaPackage_XXXX_x64_Release-Nightly 即x64)
  • 打开解压的目录
  • 找到并删除 文件 AppxBlockMap.xml, AppxSignature.p7x\[Content_Types\].xml 和文件夹 AppxMetadata

不要关闭这个文件夹

从 OpenGApps 计划下载 "GApps"

我们需要从某处获得 Play Store
使用设置:

  • Platform: x86_64 if you are running Windows on a traditional laptop/PC, otherwise choose ARM64
    大多数用户均为 x86_64 如为arm设备请选择 arm64
  • Android: 11.0
    安卓:11.0
  • Variant: Pico
    变体Pico(再写教程时仅确认pico可用)

不要解压获得的zip文件
(下载自CourseForge 速度无法保证)

克隆库并填充目录

既然我们选择的是 D:\WSA\ 我们可以直接使用 Windows文件资源管理器 来移动文件

提示:提供的命令用于Ubuntu

注意WSL可访问 /mnt 来访问外部文件 如上文确定的文件夹 mnt/d/WSA

cd /mnt/d/WSA
git clone https://hub.fastgit.org/WSA-Community/WSAGAScript

( /mnt/ 后请替换为自己确定的文件夹路径 git地址为大陆优化如不放心可换回 github.com )
等待指令结束

解压 步我们已获得 4个 .img 文件,他们是 product.img , system.img , system_ext.imgvendor.img 。将这些文件复制到 D:\WSA\WSAGAScript\#IMAGES

再将下载的GApps的 .zip 文件移动至 D:\WSA\WSAGAScript\#GAPPS 重申不要解压

最终准备

修改构架(仅针对arm构架用户)

如在使用arm构架设备 (如Surface Pro X 、部分win平板) 请将 VARIABLES.sh 第七行中 Architecture="x64" 修改为 Architecture="arm64"

为脚本设置可执行权限

你应在刚刚的WSL终端相同目录(WSAGAScript)中执行。使用以下指令修改可执行权限:

sudo chmod +x *.sh

(可能需要输入root密码 此密码在WSL初始化时已设定)
通过 ls -l 指令确认所有的脚本可执行,确认列出的 VARIABLES.sh, apply.sh, extend_and_mount_images.sh, extract_gapps_pico.sh, unmount_images.sh 文件前为 -rwxrwxrwx

运行脚本

确保在相同目录中执行:

./extract_gapps_pico.sh
sudo ./extend_and_mount_images.sh
sudo ./apply.sh
sudo ./unmount_images.sh

可分布执行 如四个脚本执行完毕弹出依次为 !! GApps folder ready !! , !! Images mounted !! , !! Apply completed !! , !! Unmounting completed !! 则均成功
恭喜最重要的环节已经完成了

复制修改过的镜像

成功执行后我们需将 D:\WSA\WSAGAScript\#IMAGES 中的 product.img , system.img , system_ext.imgvendor.img 拷贝回 D:\WSA\MicrosoftCorporationII.WindowsSubsystemForAndroid_版本_neutral___标识符\WsaPackage_XXXX_x64_Release-Nightly 如冲突选择覆盖即可(即当初拷贝出四个 .img 文件的目录)

注册修改过的 Windows Subsystem for Android™️ 安装包

  • 使用 Windows搜索 来找到 "开发着设置" (设置-隐私和安全性-开发者选项) 在弹出的设置页面上启用 "开发人员模式"
  • 卸载安装过的其他版本WSA
  • 使用管理员权限打开Windows Powershell (win + X + A) 运行 Add-AppxPackage -Register [拷贝回镜像的目录]\AppxManifest.xml
    此目录为WSA实际位置 切勿移动或删除

卸载流程

  • 在开始菜单中定位到 Windows Subsystem for Android™️ 右击-卸载 。此操作将会卸载Android和所有Android app
  • 定位到放置文件的目录 (例中为D:\WSA) 并删除此目录
    完事

获得root权限

你可通过替换内核文件来获得root权限

(使用adb shell获得su)

D:\dev\WSAGAScript\misc 中复制内核(依据自己的构架选择 通常为x86_64 并将文件名改为 kernel ) 将其复制到 [WSA目录]\Tools (请确保在 适用于 Android™ 的 Windows 子系统设置 中 关闭适用于 Android™ 的 Windows 子系统)

此操作将允许你在 adb shell 中使用 su 指令
进入 adb shell 并运行以下指令

su

你已root了
**想要root管理器且习惯用magisk? 我劝你别 至少我是不会用 不过你不听劝去试了你会回来感谢我的

内核源码

已知问题

本篇文章采用 署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0) 许可协议进行许可。

转载或引用本文时请遵守许可协议,注明出处。

发表评论
暂无评论
textsms
account_circle
email
link