去除RustDesk Android 客户端远程控制验证

胜天半子 发布于 19 天前


以下是从零开始构建一个的详细操作指南。此过程包括自建服务器、修改源代码、构建 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 进行版本控制,以便于管理和合并代码变更。

遇挚友,如逢春,自此长明,天光大亮
最后更新于 2025-05-17