Skip to content

服务端

rev1si0n edited this page Oct 1, 2023 · 1 revision

默认方式安装的 LAMDA 没有开启任何认证,其他人可以访问设备上的任意内容,监听你的设备甚至接入设备网络进行进一步控制。请特别留意启用接口认证的部分,请务必在可以信任的网络内使用。并且请注意,即使开启了接口认证,任何有权限登录远程桌面以及使用API的人仍然对你的设备以及 LAMDA 本身有着完全的访问权限。由于安全性原因,我们不建议将任何相关文件放在 /data/local/* 目录下。

安装前,请先选择合适的架构,可以通过 adb shell 命令 getprop ro.product.cpu.abi 来获取当前的系统架构。 正常情况下,对于现时代的手机,可以直接选择 arm64-v8a 版本,而对于模拟器如雷电,你会在新建模拟器时选择32或64位版本的安卓系统, 32位模拟器系统对应 x86,64位则对应 x86_64,正常情况下,雷电模拟器默认创建的为基于 x86 的安卓 7.0 系统。

配置自动更新

LAMDA 存在一个自动更新的逻辑,但是由于存在分钟级的服务中断,目前仅限于内部自用。除了存在紧急安全问题或者致命BUG等情况,LAMDA 不会进行任何自动更新,请自行定期在闲时从 github 下载并安装最新版本。

如果你确实不在意更新时分钟级的服务不可用,启动 LAMDA 之前写入以下配置文件可以确保 LAMDA 始终为最新版本。

# 进入 adb shell 执行(需要 root 身份)
echo "upgrade.channel=latest" >>/data/properties.local

properties.local 启动配置

在继续前,有必要介绍一下 properties.local 文件, properties.local 为 LAMDA 的启动配置文件,通常存储于设备之上,其中包含了 key=value 类型的字符串, 通过编写此文件,你可以实现在 LAMDA 启动时自动连接到 OpenVPN、代理、端口转发等。 LAMDA 在启动时,会从 /data, /data/usr 查找该文件并载入(usr 目录在 LAMDA 首次启动前并不存在,所以你可能需要手动创建)。 你可以在以上三个位置任意一个放置你的 properties.local 配置文件。

关于如何编写配置,在各个功能中会有介绍。

launch.sh 可能出现的错误及解决方法

# 显示 llllaamDaa started 则服务已经正常进入 daemon 模式,可以退出终端

already running     (已经在运行,请不要多次启动)
invalid TZ area     (系统时区未设置或不正确)
not run as root     (没有以 root 身份运行)
unsupported sdk     (在不支持的安卓系统上运行)
abi not match       (使用了错误的 tar.gz 包)
file broken         (文件损坏请重新安装)

通过 Magisk 安装

如果你的设备使用了 Magisk,那么你可以以最简单的方法完成安装,并且 LAMDA 可以开机自启动。需要确保 Magisk 版本 >= 20.4 且只支持在 Magisk App 中安装。同时,使用 Magisk 安装更便于统一化,你可以自定义配置,例如,你想要所有使用该 magisk 模块刷入后的 LAMDA 都启用接口认证(certificate), 或者希望这些设备都在启动时自动连接代理,你只需要编写 properties.local 或者生成PEM证书并重命名为 lamda.pem(请查看 tools/ 中的工具使用方法), 随后使用压缩软件打开 lamda-magisk-module.zip,并将其(lamda.pem 或者 properties.local)拖入 common 文件夹即可实现启动时自动配置!

现在,从 lamda/releases 页面下载 lamda-magisk-module.zip,并将其 push 到 /sdcard,打开 Magisk App,点击 模块->从本地安装,选择 lamda-magisk-module.zip 稍作等待即可。

刷入成功后,请重启设备。重启后,LAMDA 应该会在开机时自启动。但是为了避免可能的崩溃问题,lamda 会在 30 秒后启动而不是立即启动,你将有足够的时间去禁用 LAMDA 模块(请在开机后2分钟再连接使用 LAMDA)。安装完成后,你无需再看下段手动安装的内容,跳过即可。

手动安装

由于部分老旧设备可能无法通过系统的 tar 命令来解压 tar.gz 后缀的文件,所以提供了 busybox 用来作为补充,你可能需要同时下载提供的 busybox。现在已知 getprop 获得的设备架构为 arm64-v8a,现在将设备连接到当前电脑并确保已授权 ADB、可以正常切换 root。

release 页面 lamda/releases 下载 lamda-server-arm64-v8a.tar.gz 以及 busybox-arm64-v8a

# 将文件临时推送到 /data/local/tmp
adb push lamda-server-arm64-v8a.tar.gz /data/local/tmp
adb push busybox-arm64-v8a /data/local/tmp

完成后,进入 adb shell,解包文件:

# 你现在应该在 adb shell 内
# 使用此种方式,服务端程序将被安装到 /data
# 确保切换为 root 身份
su
# 确保上传的 busybox 可执行
chmod 755 /data/local/tmp/busybox-arm64-v8a

cd /data
# 解包服务端文件
/data/local/tmp/busybox-arm64-v8a tar -xzf /data/local/tmp/lamda-server-arm64-v8a.tar.gz
# 服务将被解压到 /data/server 目录下

# 删除安装包以及 busybox
rm /data/local/tmp/lamda-server-arm64-v8a.tar.gz
rm /data/local/tmp/busybox-arm64-v8a