Skip to content

安装‐前期准备

rev1si0n edited this page Oct 1, 2023 · 1 revision

分为客户端以及服务端,客户端主要是 Python 相关库及接口,服务端则是运行在设备/手机上的服务。

基础要求

LAMDA 最理想的运行环境是你刚刚 root (如:新建模拟器,自带权限的ROM,Magisk 刚 root),请确保有一台已经 root 且运行内存大于 2GB,可用存储空间大于 1GB 的安卓设备或者安卓模拟器,推荐使用最新版夜神、雷电模拟器,或者 AVD 模拟器,启动前务必确保

* 必须关闭 Magisk Hide
* 必须关闭 frida-server
* 确认完毕重启设备

并且不会在启动后启用任何上述任何标记为必须的条目。

系统设置

检查时区时间

打开系统设置,找到日期与时间,检查是否已自动设置中国标准时间或者你所在地的时区,检查时间是否正确或在可接受的误差范围内,如果没有请关闭使用网络提供的时区 以及网络时间,并手动设置时区及时间为你当前所在地的时区及时间。

关闭无障碍

打开系统设置,找到无障碍(系统或更多设置中),关闭或卸载所有使用无障碍的应用(例如 talkback,autojs 等)。

网络设置

对于真机,你只需要确保电脑与手机在同一网络下即可。 对于模拟器,默认创建的模拟器正常情况下与你的本机网络并不互通,如果你使用的是 android x86 (基于 VMWare 的安卓虚拟机), 请尝试在虚拟机设置中将网络模式设置为桥接模式。对于雷电,夜神等模拟器,需要在其设置中根据提示安装驱动并开启桥接模式随后重启模拟器。 对于 Android Studio 的 Virtual Device,则没有相关设置,如果需要连接 AVD,请先执行 adb forward tcp:65000 tcp:65000, 并使用 localhost (不要使用 127.0.0.1)进行连接。

其他设置

WSA (Windows Subsystem Android)

如果使用的是 WSA (Windows Subsystem Android),请确保 WSA 版本不低于 2210.40000 并且已 root。随后打开 WSA 设置 -> Subsystem Resources -> 选择 Continuous,关闭 Advanced Networking。选择 Developer,开启 Developer mode 并展开选项卡,打开 "Support single machine UI automation",随后重启 WSA 子系统即可。

AVD (Android Studio Virtual Device)

如果使用的是 AVD (Android Studio Virtual Device),请先使用如下方式扩展默认存储空间的大小。

# Pixel_5_API_29 为虚拟机ID,可以使用命令 emulator -list-avds 列出
# -partition-size 部分新建的 AVD 可用存储空间可能只有百兆,这里修改为 2G
emulator -avd Pixel_5_API_29 -partition-size 2048 -no-snapshot-load
# 随后每次启动虚拟机时都使用该命令
#
# 可能会遇到找不到 emulator 命令的情况,
# 请参阅此文档获知此命令的位置 https://developer.android.com/studio/run/emulator-commandline?hl=zh-cn 并将其加入 PATH 变量中
#
# 如果你无法完成上面的命令,请手动点击 Android Studio 中的 Virtual Device Manager,新建一个虚拟机,随后找到对应虚拟机并点击后方的编辑按钮(一个笔的符号),
# 点击 Show Advanced Settings,找到 Storage -> Internal Storage 并将其设置为至少 2GB。

Redroid (android in docker)

注意目前 LAMDA 3.05.0 仅支持基于 ARM (aarch64) 宿主机的 Redroid,7.0 才支持 x86 版本的 Redroid,你可以通过命令 uname -m 来检查。

如果使用的是 Redroid (android in docker),以官方建议的 Ubuntu 20.04 为例,首先安装 linux-modules-extra 相关模块,(注意下列方法可能不适合其他 Linux 发行版,如果你不熟悉 Linux,我们不太建议你继续下面的操作)。

apt install linux-modules-extra-`uname -r`

编辑文件 /etc/modules,将下列名称复制并插入文件底部,重启当前宿主机。

# redroid modules
mac80211_hwsim

binder_linux
ashmem_linux

或者每次宿主机重启后执行(注意如果不用上述的方法那么每次重启都要这么做)

modprobe mac80211_hwsim
modprobe binder_linux devices="binder,hwbinder,vndbinder"
modprobe ashmem_linux

最后使用以下命令启动,redroid_gpu_mode 请根据实际进行修改(注意这与官方写的命令有所不同)。

docker run -itd --rm --privileged --pull always -v /lib/modules:/lib/modules:ro -v ~/redroid:/data -p 127.0.0.1:5555:5555 -p 127.0.0.1:65001:65000 redroid/redroid:12.0.0-latest androidboot.redroid_gpu_mode=guest

这里将容器 65000 映射到本机 65001 是因为部分工具需要临时绑定到 65000 端口。

随后,需要在宿主机上通过 http://127.0.0.1:65001 访问 LAMDA。