以下是从零开始构建一个的详细操作指南。此过程包括自建服务器、修改源代码、构建 APK 以及签名和分发。请确保您具备一定的编程基础,尤其是对 Rust 和 Flutter 的了解。
一、准备工作
1. 环境准备
确保您的开发环境中已安装以下工具:
- Rust(建议版本 ≥1.70)
- Flutter(建议版本 ≥3.0)
- Android SDK 和 NDK
- Java JDK(建议版本 ≥11)(RustDesk)
您可以通过以下命令验证安装:
rustc --version
cargo --version
flutter doctor
2. 克隆 RustDesk 仓库
在终端中执行以下命令以克隆 RustDesk 的源代码:
git clone --recurse-submodules https://github.com/rustdesk/rustdesk.git
cd rustdesk
二、自建服务器
为了实现完全控制和去除验证功能,您需要自建 RustDesk 服务器。以下是基本步骤:
1. 下载服务器端程序
访问 RustDesk 官方文档,下载适用于您服务器操作系统的 hbbs
(ID 注册服务器)和 hbbr
(中继服务器)可执行文件。
2. 配置并运行服务器
在服务器上运行以下命令启动服务:
./hbbs -r your.relay.server:21117
./hbbr
请将 your.relay.server
替换为您的中继服务器地址。确保服务器的防火墙已开放以下端口:
- TCP 21115(ID 注册)
- TCP 21116(中继)
- UDP 21116(中继)
有关详细的服务器部署指南,请参考 RustDesk 官方文档。
三、修改源代码以去除验证功能
为了实现无密码、无确认的自动连接,您需要修改 RustDesk 的源代码。
1. 修改配置文件
编辑 libs/hbb_common/src/config.rs
文件,将验证方式和审批模式设置为 none
:
pub const VERIFICATION_METHOD: &str = "none";
pub const APPROVE_MODE: &str = "none";
同时,设置您的自建服务器地址和公钥:
pub const RENDEZVOUS_SERVERS: &[&str] = &[
"your.id.server.com:21115",
];
pub const RS_PUB_KEY: &str = "YOUR_PUBLIC_KEY_HERE";
请将 your.id.server.com
替换为您的 ID 服务器地址,YOUR_PUBLIC_KEY_HERE
替换为您的公钥。
2. 绕过验证逻辑
编辑 libs/hbb_common/src/verify.rs
文件,将验证函数修改为始终返回成功:
pub fn verify_password(_pwd: &str) -> bool {
true
}
pub fn verify_click() -> bool {
true
}
3. 移除客户端验证界面
编辑 Flutter 客户端的验证页面 flutter/lib/src/pages/verify_page.dart
,将其内容替换为一个空的 SizedBox
:
@override
Widget build(BuildContext context) => SizedBox.shrink();
此外,移除网络设置页面中的密码输入框和审批模式选择器,编辑 flutter/lib/src/pages/settings/network_page.dart
文件,注释或删除相关的 Widget。
四、构建 Android APK
1. 配置签名信息
编辑 android/app/build.gradle
文件,在 signingConfigs
中添加您的签名信息:
signingConfigs {
release {
storeFile file("your_keystore.jks")
storePassword "your_store_pass"
keyAlias "your_alias"
keyPassword "your_key_pass"
}
}
请将上述字段替换为您实际的 keystore 文件路径和密码信息。
2. 构建 APK
在项目根目录下执行以下命令构建发布版本的 APK:
cd flutter
flutter build apk --release
构建完成后,您将在 flutter/build/app/outputs/flutter-apk/
目录下找到生成的 APK 文件。
五、安装和分发
将生成的 APK 文件安装到目标 Android 设备上,安装后即可使用,无需输入密码或进行连接确认。您可以通过以下方式分发 APK:
- 通过 USB 连接设备,使用
adb install
命令安装 - 上传到企业应用商店或内部服务器供员工下载
- 通过电子邮件或即时通讯工具发送给用户
六、维护和更新
由于您对 RustDesk 的源代码进行了定制修改,后续官方发布新版本时,您需要手动合并更新,并重新应用上述修改。建议使用 Git 进行版本控制,以便于管理和合并代码变更。