标签 AVD 下的文章

1. 安装和配置 Linux 环境

本指南使用 Ubuntu 24.10 作为开发环境。可从以下链接下载 ISO 文件:

Ubuntu 24.10 官方镜像

安装方式:使用 VMware 进行安装。

1.1 配置 APT 镜像源

打开 /etc/apt/sources.list.d/ubuntu.sources 文件,并将其中的默认镜像替换为推荐的源地址。

Image

1.2 配置网络代理(使用主机的 Clash 代理)

由于虚拟机默认无法访问 Google 网站,因此需同步主机的网络代理。

步骤如下:

  1. 在主机的 Clash 设置中,启用“允许局域网接入 Clash”。
  2. 记住 Clash 提供的代理端口号。
  3. 在虚拟机中:

    • 进入 设置 > 网络 > 代理,选择 手动 配置。
    • 将 HTTP、HTTPS、SOCKS 代理 修改为主机的 IP 地址(可使用 ip addr 命令获取,前三位相同,第四位设为 1)。Image
    • 端口号填入 Clash 代理端口。
    • 确保网络模式为 NAT。

Image

1.3 安装 VMware Tools

安装 VMware Tools 以增强虚拟机体验,可参考以下教程:

1.4 设置屏幕缩放比例(200%)

推荐调整屏幕缩放以提升可读性
  1. 点击屏幕右上角的状态菜单,选择 “设置”。
  2. 在 “显示” 选项中,找到 “缩放” 设置。
  3. 选择 200% 以优化可视体验。

Image

1.5 更新系统软件包

sudo apt-get update

2. 安装必需工具

所有命令均在用户目录(/home/username)下执行。

2.1 安装 Git

sudo apt-get install git

2.2 安装 Repo 工具

mkdir ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
source ~/.profile

2.3 安装 Bazel

curl -Lo ~/bin/bazel https://github.com/bazelbuild/bazelisk/releases/download/v1.11.0/bazelisk-linux-amd64 && chmod +x ~/bin/bazel

3. 获取 Android 内核版本

启动 AVD 模拟器后,输入以下命令获取内核版本:

adb shell uname -r

示例输出:

6.1.23-android14-4-00257-g7e35917775b8-ab9964412

记住 ab 后面的字符串(如 9964412),然后访问以下链接:

https://ci.android.com/builds/submitted/9964412/kernel_virt_x86_64/latest

在页面中找到类似于 aosp_kernel-common-android14-6.1@9964412 的标题。

4. 拉取并编译 Android 内核

在用户目录(/home/username)下执行以下步骤。

4.1 创建工作目录

mkdir androidkernel
cd androidkernel

4.2 初始化 Repo 并同步代码

repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1-2023-12
repo sync

Image

注意:

android14-6.1-2023-12

需根据实际内核版本调整。

4.3 编译内核

tools/bazel run --config=fast --config=stamp --lto=none //common-modules/virtual-device:virtual_device_x86_64_dist -- --dist_dir=virt

Image

编译完成后,生成的 bzImage 文件位于:

bazel-out/k8-fastbuild/bin/common/kernel_x86_64/bzImage

4.4 传输编译后的 bzImage 到主机

由于 VMware Tools 可能无法直接拖拽文件,可通过网盘或 SCP 传输。

5. 测试编译后的内核

5.1 获取虚拟机列表

emulator -list-avds

5.2 启动虚拟机并加载内核

emulator -avd 设备名 -kernel bzImage 路径

若虚拟机能成功启动,则说明内核编译成功。

6. 植入 KernelSU

当虚拟机成功启动后,回到 VMware 终端,在 androidkernel 目录下执行:

curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -

Image

然后重新执行 Bazel 构建(命令同上),生成带 KernelSU 的内核,并传输到主机。

7. 启动 KernelSU

使用以下命令加载 KernelSU 内核:

emulator -avd 设备名 -kernel 植入后的 bzImage 路径

启动后,下载并安装 KernelSU 管理器:KernelSU Releases

安装后,可继续安装 ZygiskNext、Shamiko、LSposed 等模块。

建议

:VMware 下的 Linux 虚拟机推荐使用

挂起

而非直接关机,以减少重启带来的配置问题。

Image

Image

参考文档