首页
/ rish 實戰指南:在 Android 上透過 Shizuku 開啟高權限 Shell 的完整教學

rish 實戰指南:在 Android 上透過 Shizuku 開啟高權限 Shell 的完整教學

2026-09-14 11:48:42作者:冯梦姬Eddie

本篇技術指南以 awesome-shizuku 倉庫中的 rish 文檔 為主體,系統講解 rish 這支 Android 可執行檔的定位、設定流程、四種呼叫語法與真實應用場景。讀完你將掌握:如何在 Termux 等終端模擬器中開啟互動式 ADB shell、如何讓 Tasker 等自動化 App 在背景觸發高權限命令、以及如何讓任何支援呼叫 shell 腳本的應用程式借力 Shizuku 執行特權操作。

rish 是什麼:一支可執行檔,而非應用程式

rish 是一支 Android 可執行檔(executable),不是應用程式(app),它的用途是與運行在高權限守護程序(daemon process)之上的 shell 進行互動。這裡的關鍵在於「高權限」三個字:

  • 若 Shizuku 是透過 ADB 權限啟動的,那麼 rish 也會提供一個維持 ADB 權限的 shell;
  • 換句話說,你在這個 shell 中執行的命令,會繼承 Shizuku 服務所持有的特權環境。

理解這一點對整個使用體驗至關重要:你輸入的每一條命令,其權限來源並非 App 本身,而是背後以 ADB 權限運行的 Shizuku 服務。這也正是 README.md 開頭所述「Shizuku 讓一般 App 能在非 root 裝置上以 ADB 賦予的提權方式直接使用系統 API」在命令列層面的具體體現。

前置條件與設定流程

要開始使用 rish,你必須先完成以下準備:

  1. 在裝置上安裝並開啟 Shizuku
  2. 確保 Shizuku 已成功啟動(例如透過 ADB 權限啟動);
  3. 開啟 Shizuku,導航到 「在終端應用程式中使用 Shizuku」(Use Shizuku in terminal apps),並按照其中的設定說明進行操作。

[!NOTE] 官方文檔明確提醒:你需要對 shell、終端和基本命令有基本的了解,才能有效地使用 rish。它並非圖形化工具,所有操作都依賴命令列語法。

設定完成後,rish 的價值才真正體現:你可以在任何支援呼叫 shell 指令碼或可執行檔案的應用程式中使用它——即使該應用程式本身不支援 Shizuku。這是它與一般 Shizuku 整合 App 的最大差異:它是「借力」而非「內建」,你不需要等待每個 App 針對 Shizuku 做適配。

啟動注意事項:rish 不在 $PATH

[!NOTE] 由於 rish 的位置不在 $PATH 中,因此可能需要指定可執行檔的完整路徑才能手動啟動它。如果它位於當前工作目錄中,則使用 ./rish 啟動它。

這是新手最容易卡住的細節:直接輸入 rish 會得到「command not found」。正確做法是:

# 假設 rish 檔案已放入當前工作目錄
./rish

# 或者使用完整路徑
/path/to/rish

在後續的所有語法示例中,也請視你的實際放置位置替換為對應路徑。

四種呼叫語法:從互動式 shell 到一次性命令

rish 支援四種呼叫模式,涵蓋「互動式會話」與「一次性執行」兩大需求。以下表格完整整理自官方文檔:

語法 功能說明
rish 啟動預設的互動式 shell(使用 /system/bin/sh
rish exec /path/to/custom/shell 啟動自訂/替代互動式 shell
rish -c 'whoami' 執行 shell 命令,完成後退出
echo 'whoami' | rish 從 stdin 讀取 shell 命令、執行它,完成後退出

模式一:預設互動式 shell

rish

不帶任何參數時,rish 會啟動一個使用 /system/bin/sh 的互動式 shell。這是「把 ADB shell 搬到手機本地」的最直接方式:你會進入一個類似終端會話的環境,可以連續輸入多條命令,權限維持在 ADB 等級。

模式二:自訂/替代互動式 shell

rish exec /path/to/custom/shell

如果你偏好其他 shell(例如 zsh、mksh 或自訂腳本),可以用 exec 子命令指定路徑,讓 rish 啟動該替代 shell 作為互動環境。

模式三:-c 執行一次性命令

rish -c 'whoami'

-c 參數讓 rish 執行單條命令、輸出結果後立即退出。這裡的 whoami 僅作為示例命令,它會回傳當前 shell 使用者的名稱——在維持 ADB 權限的環境下,其輸出會反映 Shizuku 所持有的使用者身分。

模式四:從 stdin 讀取命令

echo 'whoami' | rish

透過管道將命令送入 stdin,rish 會讀取它、執行、然後退出。這種模式非常適合在腳本或自動化流程中串接使用,例如把多條命令組合後一次餵給 rish

實際應用場景

場景一:在 Termux 中直接開啟互動式 ADB shell

官方文檔給出的第一個典型用法,就是直接在裝置上使用 Termux 等終端模擬器開啟互動式 ADB shell。這意味著:

  • 你不再需要電腦、USB 線纜或 adb shell 遠端連接;
  • 手機本身就是終端,輸入 ./rish 即可獲得一個維持 ADB 權限的本地 shell;
  • 這一用法與本倉庫 README.md 中 Terminals 分類下的註記完全呼應:「Using rish, you can create a local ADB shell with any terminal emulator, such as Termux.」(使用 rish,你可以配合任何終端模擬器(例如 Termux)建立本地 ADB shell)。倉庫同時收錄了 aShell、aShell You、ReTerminal 等終端類 App,可作為 rish 的搭配參考。

場景二:用 Tasker 在背景自動觸發高權限命令

第二個典型用法是使用 Tasker 等自動化應用程式,在背景自動觸發高權限 ADB shell 命令。例如:

rish -c 'reboot'

這條命令會透過 shell 借助 Shizuku 重新啟動裝置——一個普通 App 完全無法完成的特權操作,如今只要一行命令即可觸發。你可以將這類命令嵌入 Tasker 的設定檔(profile)、時間觸發或情境規則中,實現完全自動化的裝置管理。

場景三:任何支援呼叫 shell 腳本的 App 都可受益

正如文檔所述,設定好 rish 後,它可與任何支援呼叫 shell 指令碼或可執行檔案的應用程式搭配使用,即使該 App 本身不支援 Shizuku。這大幅擴展了 Shizuku 能力的觸及範圍:只要一個 App 能執行外部指令,它就能透過 rish 間接獲得高權限能力。

場景四:與 AI/Agent 工具鏈整合(倉庫生態)

本倉庫 README.md 還收錄了 rish-mcp 專案——它將 Android 裝置的 Shizuku shell 以 MCP(Model Context Protocol)run_shell 工具的形式暴露給 AI 用戶端,讓 Claude 等 MCP 用戶端無需 VPN、ADB 或 sshd 即可直接執行 shell 命令。這表明 rish 的價值已從單純的終端工具延伸至「AI 操作裝置」的新興應用場景,是閱讀官方文檔之外值得關注的延伸方向。

權限原理與安全注意事項

從文檔的表述可以推斷 rish 的核心機制:它本身只是一支「傳話筒」,真正的權限來源是背後以 ADB 權限運行的 Shizuku 守護程序;rish 與該守護程序上的 shell 建立互動通道,將你輸入的命令送入高權限環境執行。因此請務必留意:

  • 權限即責任:你在 rish 中執行的每一條命令都擁有 ADB 等級權限,誤用可能影響系統穩定性;
  • 謹慎對待自動化:將 rish 命令(如 reboot)接入 Tasker 等自動化流程時,應先充分測試,避免誤觸發造成資料遺失或裝置異常;
  • 保管好執行檔rish 是可執行檔,請從可信來源取得並放置在安全目錄。

進一步閱讀

  • 本倉庫維護了 rish 文檔的英文版簡體中文版 與本繁體中文版,可交叉比對理解;
  • README.md 的 Terminals 分類收錄了多款可與 rish 搭配的終端應用;
  • 官方 rish 文件存放於 Shizuku-API 專案中(可於該專案內的 rish/README.md 找到),如遇語法細節疑問,可前往查閱原始說明。
登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
34
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.21 K
2.81 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
945
1.86 K
docsdocs
暂无描述
Markdown
906
5.84 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
537
607
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
864
1.36 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
4.28 K
1.03 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.39 K
1.48 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
550
401
flutter_flutterflutter_flutter
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.19 K
347