
DSH-Android là gì
DSH-Android là một dự án cộng đồng cho phép chạy trực tiếp DeepSeek Harness trên thiết bị Android. Sau khi cài APK, bạn có thể mô tả tác vụ bằng ngôn ngữ tự nhiên để agent sắp xếp tệp, thao tác với ứng dụng, thay đổi cài đặt hệ thống hoặc tạo các tác vụ tự động hóa được kích hoạt theo thời gian và sự kiện trên thiết bị.
Dự án không yêu cầu Root và không phụ thuộc vào Termux. Dự án tích hợp Node 24 cùng công cụ dsh nguyên bản, chưa fork, vào ứng dụng, đồng thời tương tác với hệ thống Android thông qua các tính năng thiết bị được triển khai bằng Kotlin. Phiên bản hiện tại yêu cầu Android 10 trở lên và thiết bị arm64-v8a.
DSH-Android là dự án cộng đồng, không liên kết và không được DeepSeek chính thức chứng nhận.

Tính năng chính
Xử lý tệp và tài liệu
Bạn có thể yêu cầu DSH-Android tìm, sắp xếp, di chuyển và đổi tên tệp, cũng như nén và giải nén. Ứng dụng còn có thể đọc văn bản trong các tệp PDF, Word, Excel và PPT.
- Tìm các tệp chiếm nhiều dung lượng.
- Sắp xếp thư mục tải xuống theo loại hoặc ngày.
- Di chuyển hoặc đổi tên nhiều tệp cùng lúc.
- Đọc văn bản trong các tài liệu văn phòng phổ biến.
Thao tác với màn hình và ứng dụng
Sau khi bật dịch vụ hỗ trợ tiếp cận, DSH-Android có thể đọc màn hình, nhấp, vuốt và nhập văn bản, đồng thời mở ứng dụng hoặc chuyển đến trang cụ thể. Tính năng này phù hợp với các tác vụ nhiều bước cần thao tác trên giao diện đồ họa.

Cài đặt hệ thống và thông báo
Dự án hỗ trợ điều khiển độ sáng, âm lượng, chế độ không làm phiền, báo thức, Wi-Fi, Bluetooth và vị trí; đồng thời có thể đọc và trả lời thông báo cũng như điều khiển phát phương tiện. Một số tính năng hệ thống có thể sử dụng trực tiếp, trong khi các tính năng khác cần cấp thêm quyền hoặc sử dụng Shizuku tùy chọn.
Kích hoạt tự động hóa
Ngoài việc thực thi lệnh ngay lập tức, bạn còn có thể tạo tác vụ theo lịch hoặc kích hoạt tác vụ khi kết nối Wi-Fi, kết nối Bluetooth, bắt đầu sạc, đến một địa điểm, nhận thông báo và nhiều điều kiện khác.
Đầy đủ khả năng của dsh
Ứng dụng chạy dsh nguyên bản thay vì một fork được duy trì riêng, vì vậy vẫn có thể sử dụng skill, MCP, sub-agent và tìm kiếm web. Lịch sử tác vụ hiển thị các thao tác agent đã thực hiện theo từng lượt, giúp bạn dễ dàng kiểm tra quá trình.

Chuẩn bị trước khi cài đặt
Trước khi bắt đầu, hãy xác nhận thiết bị đáp ứng các điều kiện sau:
- Android 10 trở lên.
- ABI của bộ xử lý là arm64-v8a.
- Gói cài đặt khoảng 110 MB; nên có ít nhất 500 MB dung lượng trống.
- Thiết bị có thể truy cập API mô hình đã cấu hình.
- Có tài khoản DeepSeek, DeepSeek API key hoặc thông tin xác thực của dịch vụ mô hình bên thứ ba được hỗ trợ.
Cài đặt và thiết lập ban đầu
Tải APK mới nhất từ trang Releases của dự án và cài đặt trên thiết bị Android.
Mở ứng dụng, đăng nhập tài khoản DeepSeek hoặc nhập API key lấy từ nền tảng DeepSeek.
Nếu muốn sử dụng mô hình khác, vào Cài đặt → Dịch vụ mô hình, thêm nhà cung cấp tương ứng, nhập API key rồi tải danh sách mô hình.
Quay lại trang chủ và nhập một tác vụ đơn giản. Khi lần đầu sử dụng một tính năng thiết bị, ứng dụng sẽ hướng dẫn bạn cấp quyền tương ứng.
Quyền được yêu cầu theo nhu cầu, bạn không cần cấp toàn bộ quyền ngay từ đầu. Có thể xem và quản lý tập trung tại Cài đặt → Quyền điện thoại.

Thực hiện tác vụ lần đầu
Ví dụ 1: Tìm tệp lớn
Nhập trên trang chủ:
Liệt kê 5 tệp lớn nhất trong thư mục tải xuốngAgent sẽ gọi tính năng xử lý tệp theo tác vụ và trả về kết quả. Nếu cần xử lý thêm, bạn có thể tiếp tục nhập trong cùng một phiên:
Chuyển các tệp lớn hơn 500 MB trong số đó vào một thư mục có tên “Tệp lớn”, nhưng không xóa bất kỳ tệp nàoKhi liên quan đến việc di chuyển, chỉnh sửa hoặc các thao tác nhạy cảm khác, hãy kiểm tra kỹ các bước tác vụ và yêu cầu phê duyệt hiển thị trong ứng dụng.
Ví dụ 2: Điều chỉnh trạng thái điện thoại
Bạn có thể mô tả trực tiếp mục tiêu, chẳng hạn:
Giảm âm lượng phương tiện và bật chế độ không làm phiềnKhả năng hoàn tất trực tiếp thao tác cụ thể phụ thuộc vào phiên bản Android, ROM thiết bị và các quyền đã cấp. Khi cần quyền, ứng dụng sẽ hướng dẫn bạn bật quyền.
Ví dụ 3: Thao tác với ứng dụng
Sau khi bật dịch vụ hỗ trợ tiếp cận, bạn có thể thử:
Mở Cài đặt hệ thống và vào trang BluetoothThao tác trên màn hình phụ thuộc vào trạng thái giao diện hiện tại. Sau khi hoàn tất tác vụ, bạn có thể mở trang lịch sử để xem lại hành động và kết quả của agent theo từng lượt.
Thiết lập cách gọi nhanh
DSH-Android hỗ trợ gọi nhanh thông qua bóng nổi, trợ lý hệ thống, ô cài đặt nhanh và mục chia sẻ của hệ thống. Sau khi bật các lối vào phù hợp với thói quen sử dụng, bạn không cần quay lại trang chủ ứng dụng mỗi lần muốn gửi tác vụ.

Trên một số ROM nội địa, bóng nổi và tính năng tự động hóa nền còn yêu cầu cho phép thủ công hiển thị cửa sổ trong nền và tự khởi động. Bạn có thể xem trang kiểm tra tình trạng của ứng dụng và điều chỉnh cài đặt hệ thống theo hướng dẫn.
Cấu hình Shizuku để mở khóa thêm khả năng hệ thống
Shizuku không bắt buộc để sử dụng cơ bản, nhưng có thể cung cấp quyền shell nhằm mở khóa thêm các công tắc hệ thống. Dự án tích hợp sẵn gói cài đặt chính thức; hãy làm theo các bước sau:
Vào Cài đặt → Quyền điện thoại.
Sử dụng tính năng cài đặt một chạm để cài Shizuku.
Làm theo hướng dẫn của Shizuku để hoàn tất khởi động và cấp quyền.
Nếu thiết bị chạy Android 11 trở lên và phiên bản Shizuku không thấp hơn 13.6, nên bật Khởi động cùng máy (gỡ lỗi không dây).
Sau khi khởi động lại thiết bị, Shizuku thường cần được khởi động lại. Bật khởi động cùng máy qua gỡ lỗi không dây có thể giảm thao tác lặp lại, nhưng hành vi thực tế vẫn phụ thuộc vào phiên bản hệ thống và giới hạn của nhà sản xuất.
Tạo tác vụ tự động hóa
Tác vụ tự động hóa có thể chạy theo thời gian cố định hoặc được kích hoạt bởi sự kiện trên thiết bị. Các sự kiện được hỗ trợ gồm kết nối Wi-Fi, kết nối Bluetooth, bắt đầu sạc, đến một địa điểm và nhận thông báo.
Khi tạo tác vụ, nên viết rõ điều kiện kích hoạt, hành động thực hiện và các điều kiện giới hạn cần thiết. Ví dụ:
Mỗi tối lúc 11 giờ, bật chế độ không làm phiền và giảm âm lượng phương tiệnThực hiện tác vụ được chỉ định sau khi kết nối Wi-Fi ở nhàVí dụ thứ hai vẫn cần được cấu hình điều kiện mạng thực tế và hành động cụ thể trong ứng dụng. Các quy tắc liên quan đến vị trí, thông báo hoặc chạy nền cần được cấp quyền tương ứng. Với tự động hóa có thể chỉnh sửa hoặc di chuyển dữ liệu, nên thử trước bằng các thao tác không gây thay đổi.
Sử dụng dịch vụ mô hình bên thứ ba
Ngoài DeepSeek, dự án còn cho phép thêm OpenAI, Claude, Gemini, Grok, OpenRouter, Kimi, Zhipu GLM, Tongyi Qianwen, Volcengine Ark, MiniMax, SiliconFlow, StepFun hoặc bất kỳ giao diện tương thích nào.
Mở Cài đặt → Dịch vụ mô hình.
Chọn nhà cung cấp hoặc cấu hình giao diện tương thích.
Nhập API key và tải danh sách mô hình.
Chuyển sang mô hình cần sử dụng trong bộ chọn mô hình.
Hiện tại, mô hình bên thứ ba chỉ hỗ trợ giao diện Chat Completions tương thích với OpenAI được truy cập qua HTTPS. Ngữ cảnh được tính thống nhất là 128K và không cung cấp lựa chọn cấp độ suy luận. Hiệu quả gọi công cụ phụ thuộc vào mô hình đã chọn. Nếu muốn sử dụng tính năng tìm kiếm trực tuyến do DeepSeek cung cấp, bạn vẫn cần cấu hình thêm DeepSeek API key ngay cả khi mô hình chính đến từ bên thứ ba.

Gợi ý sử dụng nâng cao
Kiểm tra tác vụ phức tạp bằng lịch sử
Đối với các thao tác nhiều bước, đừng chỉ xem câu trả lời cuối cùng. Sau khi hoàn tất tác vụ, hãy mở lịch sử để kiểm tra agent đã gọi những tính năng nào và thực hiện những hành động gì trong từng lượt. Cách này giúp phát hiện dễ hơn tình trạng thiếu quyền, thay đổi giao diện hoặc phán đoán sai của mô hình.
Viết tác vụ rõ ràng hơn
Chỉ dẫn bằng ngôn ngữ tự nhiên nên bao gồm mục tiêu, phạm vi và ranh giới an toàn. So với “sắp xếp thư mục tải xuống”, cách viết sau dễ kiểm soát hơn:
Di chuyển các tệp PDF trong thư mục tải xuống vào Documents/PDF, không ghi đè khi trùng tên, giữ nguyên các tệp khácNếu tác vụ liên quan đến xóa, ghi đè, gửi tin nhắn hoặc trả lời thông báo, nên yêu cầu rõ ràng rằng trước tiên phải liệt kê các mục cần xử lý hoặc chờ xác nhận.
Phân biệt thao tác giao diện và khả năng hệ thống
Sau khi khóa màn hình, các tác vụ dựa trên API hệ thống như tệp, cài đặt hệ thống và thông báo vẫn có thể thực hiện; tuy nhiên khi bật khóa màn hình bảo mật, Android không cho phép ứng dụng thao tác trên giao diện của ứng dụng khác. Các tác vụ này sẽ tạm dừng và yêu cầu bạn mở khóa để tiếp tục.
Dành thời gian cho lần khởi động lạnh
Hiện tại, công cụ cần khoảng 5 giây để khởi động lạnh. Khi mở ứng dụng lần đầu hoặc khi công cụ chưa chạy, phản hồi tác vụ có thể chậm hơn một chút.
Quản lý phiên và quyền
Đặt các tác vụ có mục đích khác nhau vào các phiên riêng giúp giữ ngữ cảnh rõ ràng. Hãy kiểm tra định kỳ quyền điện thoại, dịch vụ hỗ trợ tiếp cận, quyền truy cập thông báo và cài đặt chạy nền; có thể tắt những tính năng không còn sử dụng.
Xây dựng từ mã nguồn
Nếu muốn tham gia phát triển, bạn cần chuẩn bị JDK 21, Android SDK với compileSdk là 37.2 và NDK r29. Khi xây dựng trên máy chủ Linux arm64, bạn cũng cần truyền đường dẫn đến aapt2 bản arm64.
Trước tiên, tải xuống và kiểm tra các thư viện gốc dựng sẵn như libnode:
native/prebuilt.sh fetchCác tệp đầu ra sẽ được ghi vào:
toolchains/out/jniLibs/arm64-v8a/Sau đó xây dựng gói công cụ chứa dsh, plugin và bản vá:
OUT_DIR=<engineOut> js/build-engine.shCuối cùng, xây dựng APK Debug:
./gradlew :app:assembleDebug -Pdsh.engineOut=<engineOut>Nếu chạy Gradle trên máy chủ Linux arm64, cần bổ sung tùy theo môi trường:
-Pandroid.aapt2FromMavenOverride=<đường dẫn đến aapt2 bản arm64>Thông thường không cần tự biên dịch Node. Chỉ khi nâng cấp Node hoặc chỉnh sửa bản vá gốc, bạn mới cần chạy trước:
native/build.shSau đó phát hành các tệp dựng sẵn bằng lệnh:
native/prebuilt.sh publishChạy kiểm thử đầu cuối trên máy chủ
Dự án cung cấp bài kiểm thử đầu cuối trên máy chủ có thực sự gọi DeepSeek API:
node js/test/host-e2e.mjsLưu API key trong một tệp, sau đó dùng DSH_E2E_KEY_FILE để chỉ định đường dẫn. Đường dẫn mặc định là:
~/.config/dsh/deepseek_api_keyTổng quan kiến trúc
Tiến trình chính của ứng dụng sử dụng Kotlin và Compose, phụ trách hội thoại, theo dõi, phê duyệt, cài đặt, khả năng thiết bị và các trình kích hoạt tự động hóa. Node 24 chạy dưới dạng thư viện chia sẻ gốc Android trong một foreground service độc lập :engine, đồng thời khởi chạy dsh thông qua JNI.
Giao diện và dsh giao tiếp qua SDK JSON-RPC; khả năng thiết bị được triển khai bằng Kotlin và cung cấp cho dsh thông qua kênh socket riêng. Shizuku tùy chọn cung cấp quyền shell cho một số khả năng, còn các yêu cầu đến mô hình được gửi qua HTTPS đến API tương ứng.
Thiết kế này không sử dụng proot hoặc Termux, đồng thời tránh phụ thuộc vào một tiến trình Node độc lập bổ sung. Bản thân dsh không thực hiện fork; phần thích ứng với Android được tập trung trong các plugin và một số bản vá nhỏ.
Tóm tắt
DSH-Android đóng gói toàn bộ công cụ agent dsh vào một APK Android, cho phép các tác vụ bằng ngôn ngữ tự nhiên kết nối với tệp, giao diện ứng dụng, cài đặt hệ thống, thông báo và các trình kích hoạt tự động hóa. Khi mới sử dụng, nên bắt đầu bằng các tác vụ ít rủi ro như truy vấn tệp chỉ đọc, cấp quyền khi cần, sau đó từng bước cấu hình dịch vụ trợ năng, Shizuku, lối tắt và các quy tắc tự động hóa.
Dự án sử dụng Apache License 2.0, nhưng các thành phần bên thứ ba tích hợp như Node.js, dsh, Shizuku và ripgrep tuân theo giấy phép tương ứng của chúng.
