rish 實戰指南:在 Android 上透過 Shizuku 開啟高權限 Shell 的完整教學
本篇技術指南以 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,你必須先完成以下準備:
- 在裝置上安裝並開啟 Shizuku;
- 確保 Shizuku 已成功啟動(例如透過 ADB 權限啟動);
- 開啟 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找到),如遇語法細節疑問,可前往查閱原始說明。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust4.24 K638- DDeepSeek-V4.1-FlashDeepSeek-V4.1-Flash 是一个多模态混合专家(MoE)模型,拥有 5520 亿骨干参数,并支持最多一百万 token 的上下文长度。该模型原生支持图像和文本输入,并以自回归方式生成文本Python670
SlideSCIPPT插件,支持素材库、AI助手、一键添加图片标题,复制粘贴位置、一键图片对齐、一键插入Markdown(加粗、超链接等行内样式、代码块、LaTeX等块级样式)、便捷导出图片!C#230
hello-agents📚 《从零开始构建智能体》——从零开始的智能体原理与实践教程Python52874
new-apiAI模型聚合管理中转分发系统,一个应用管理您的所有AI模型,支持将多种大模型转为统一格式调用,支持OpenAI、Claude、Gemini等格式,可供个人或者企业内部管理与分发渠道使用。🍥 A Unified AI Model Management & Distribution System. Aggregate all your LLMs into one app and access them via an OpenAI-compatible API, with native support for Claude (Messages) and Gemini formats.Go22545
JeecgBoot🔥企业级低代码平台集成了AI应用平台,帮助企业快速实现低代码开发和构建AI应用!前后端分离架构 SpringBoot,SpringCloud、Mybatis,Ant Design4、 Vue3.0、TS+vite!强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领AI低代码开发模式: AI生成->OnlineCoding-> 代码生成-> 手工MERGE,显著的提高效率,又不失灵活~Java36351