我用紅米 Note 12 Pro 5G 接 GameSir G8+,手把能連上,但就是不會震動。後來和 AI 一起查,才發現手機原廠核心沒有開啟 Sony 手把的震動支援,而 G8+ 當時用的是 DS4 藍牙模式。 一開始以為得重編整個核心,偏偏小米公開的原始碼又和手機上的版本對不上。最後走通的方式,是另外編一個有震動功能的驅動,讓這支手把改用它,再包成 Magisk 模組,處理開機載入和斷線重連。 現在兩邊馬達都能震動了。我把程式、安裝包和整個排查過程放上 GitHub ,也寫了中英文的技術文章,包含中間走過的彎路。如果你也遇到「手把明明有震動,接到手機卻沒反應」,希望這份紀錄能幫上一點忙。
還沒適配 DS4 以外的手把, 但我認為這套做法應該能套用到不少內核開源做一半的老小米機子, 請各位先進多指點.
專案: https://github.com/29988122/xiaomi-controller-rumble 下載: https://github.com/29988122/xiaomi-controller-rumble/releases/tag/v0.2.0 繁體中文說明: https://github.com/29988122/xiaomi-controller-rumble/blob/main/README.zh-TW.md 技術文章: https://github.com/29988122/xiaomi-controller-rumble/blob/main/docs/writeup.zh-TW.md
先講清楚適用範圍:目前只有我這套組合驗證過。
- Redmi Note 12 Pro 5G ( ruby )
- HyperOS OS2.0.8.0.UMOTWXM
- 核心 4.19.191-gdecc267868f3
- GameSir G8+,DS4 藍牙模式 其他手機或韌體可以參考做法,但不能直接拿這個驅動來用。Nintendo 、Xbox 、Steam Controller 的其他連線協定也不支援(手邊沒有)。 目前確認過左右馬達、藍牙重連、螢幕休眠後喚醒,以及重開機自動載入等。停用模組後,也能回到原廠驅動。
想試的人請先看 README 。安裝時只連一支符合條件的手把,模組裝好後會先保持停用,確認復原方式再啟用。 有興趣研究或移植到其他手機,歡迎到 GitHub 開 PR 交流。
(Astra 暴力的試著還原 ABI 的方式還挺嚇人的..)