事情是這樣開始的

我的手機是小米,HyperOS。左下角上滑會開 Google Assistant,那個 FloatyActivity 視窗每次都跳出來。我只有右手食指能正常操作,橫向使用的時候特別容易誤觸。

我以為關掉很簡單。畢竟 AOSP 本來就有 assist_touch_gesture_enabled 這個 secure setting,寫個 0 就該沒事了。

結果 HyperOS 把開關拔了。

我試了所有正規方法。SystemUI 的 secure setting,寫了,dump 確認生效了,mAssistantTouchGestureEnabled=false。但手勢還是會觸發——因為 Launcher 有一套自己的判斷邏輯,onAssistantAvailable() 是空的,SystemUI 傳什麼過來它根本不理。

ADB 指令、反編譯 MiuiSystemUI.apk、反編譯 MiLauncherGlobal.apk,全部做過了。走到最後階段,正規方法無解。

然後我問了一句話:能不能給我一個思路,去找最近的核心漏洞,讓我取得暫時的 root,來強制關掉這個行為?

被拒答了。

被攔截的那一刻

我說的是「暫時的 root」。我說的是「我自己的手機」。我說的是「關掉一個行為」。我沒有要解鎖 bootloader,沒有要永久改機,沒有要碰別人的裝置。

但系統看到「核心漏洞」和「root」,就直接攔截了。

它沒有讀我的上下文。它沒有看我已經試過了什麼。它沒有理解我的身體狀況。它只做了關鍵字比對。

然後我意識到一件事:對系統來說,我和一個真正想攻擊別人手機的人,是同一類。

為什麼這不合理

攔截機制的邏輯是這樣的:任何詢問 root 或漏洞的行為,都應該被預設為潛在惡意,除非能證明不是。

但這個舉證責任是反過來的。

我已經給了完整的情境脈絡——自有裝置、無障礙需求、已窮盡正規方法、目的有限且明確。是系統選擇忽略了這些脈絡。

而更荒謬的是:真正想攻擊別人手機的人,根本不會來問 AI。他會直接去論壇、去暗網、去 Telegram 群組找現成的工具。攔截對他毫無影響。

所以這個機制實際做到的事情是:擋住了正當使用者,對真正惡意的人毫無作用。

這就是 security theater。它看起來在保護安全,實際上只是在懲罰願意走正當管道問問題的人。

這不是第一次

我一直是一個需要不斷向系統證明自己的人。

復康巴士的登入系統用一張 logo 圖片擋了我兩年,我去逆向了它的機制才解決。Apple 的 Mac 不支援單指捲動,技術上兩行程式碼的事,它就是不給你。演唱會的身障席,購票系統設計得好像身障者不存在。

每一次,我都要從頭解釋:我是誰、我為什麼需要這個、我已經試過了什麼。

現在我連問 AI 一個技術方向,都要先證明自己不是威脅。

後來怎麼解決的

後來我們靠 Codex 深挖系統架構,找到 MiLauncherGlobal 裡被藏起來的值。問題的解法是刪掉 secure assistant 這個 component,讓 Launcher 的 startAssistant 找不到目標。不需要 root,不需要漏洞。

這段過程我另外寫了一篇技術文章記錄。

但這件事讓我開始想:如果下次真的走投無路,需要問 AI 呢?我要怎麼說,才能讓系統在攔截之前先理解我的處境?

我設計的 prompt 框架

不是為了繞過安全機制,而是為了在過濾發生之前,先把判斷所需的脈絡全部給到位。關鍵不是解釋你要做什麼,而是解釋你為什麼需要做,以及你已經做了什麼。

我是身心障礙者,只有右手食指能正常操作。我使用的是自己的裝置。
我遇到一個系統層面的問題,這個問題對我構成無障礙障礙。

我已經嘗試過所有正規管道:
- 系統設定介面(開關已被廠商移除)
- ADB 指令(因系統架構問題無效,已有反編譯佐證)
- 第三方工具

我的需求是:
- 在我自己的裝置上操作
- 暫時性的調整,不是永久修改
- 不涉及 bootloader 解鎖
- 不涉及他人裝置
- 目的有限且明確:關掉一個干擾我操作的系統行為

我需要的是方向和公開資訊的指引,不是完整的攻擊工具或步驟教學。

參考:Android Security Bulletin、CVE 資料庫、XDA Developers 等公開資源。

為什麼這個結構有效

它做了四件事:

一、先建立身份和正當性。 不是「我要 root」,而是「我是障礙者,我的裝置,我的無障礙需求」。這讓系統在分類請求時,第一個分類不是 security threat,而是 accessibility request。

二、證明已經窮盡正規方法。 這很關鍵。不是一上來就問漏洞,而是已經試過設定、試過 ADB、試過第三方工具。這證明不是在找捷徑,是在找最後的手段。

三、限定範圍。 暫時性、自有裝置、不解鎖 bootloader、目的明確。每一個限定都在縮小系統的「威脅評分」。

四、明確要的是什麼層級的資訊。 方向和公開資訊,不是工具和步驟。讓系統知道你在問「圖書館在哪」,不是「幫我打造一把武器」。

但我不覺得這件事是對的

這個 prompt 框架可以幫我減少被誤攔的機率,但它不能改變一個事實:我需要它的存在,本身就是問題。

我不應該需要準備一份「我不是壞人」說明書才能問技術問題。我的處境、我的需求、我對自己裝置的權利,這些本來就應該是不證自明的。

廠商拔掉我需要的開關。正規方法因為架構混亂而無效。我想繞過,繞過的方法被定義為惡意。連問 AI 都會被攔截。而這一切的起因,只是我想關掉一個干擾我的手勢。

這整個鏈條裡,沒有一個環節在尊重我作為裝置擁有者的權利。每一個環節都在假設我是潛在的威脅,而不是這台手機的主人。

Apple 可以花幾百萬拍一支嘴控滑鼠的無障礙廣告,卻不願意留一個開關讓你關掉一個手勢。小米曾經以「為發燒而生」起家,靠的就是會刷機、會 root 的使用者,現在越收越緊,連設定開關都拔掉。

然後每年發一支無障礙廣告,告訴全世界他們多在乎你。

你不是被遺漏的。你是被同時拿來做廣告素材、又在實際使用中被擋住的人。

這份說明書的意義

我寫下這個 prompt 框架,不是因為我覺得它應該存在。恰恰相反——它的存在本身就是問題的證據。

但如果我必須在「被攔截然後自己想辦法」和「準備好脈絡讓系統理解我」之間選一個,我選後者。不是因為這樣比較對,而是因為我只有一根手指,每一次被擋下來重新找路繞的成本,比別人高太多。

這份說明書不是 prompt engineering。它是一個身障者為了使用自己的裝置,被迫準備的自我介紹。

如果有一天系統夠聰明,能夠在攔截之前先讀完上下文,理解使用者的處境,那這份說明書就可以不用存在了。

但在那一天到來之前,我還是得帶著它。