JerryHo
V2EX  ›  Android

紅米舊機器手把沒震動,核心沒開支援,核心源碼又不全, 乾脆自己 magisk module 補上了

  •  
  •   JerryHo · 4h 47m ago · 671 views

    我用紅米 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 的方式還挺嚇人的..)

    5 replies    2026-09-16 11:37:14 +08:00
    woodfizky
        1
    woodfizky  
       2h 54m ago
    手机连手柄。。还真是小众的需求啊。。好奇,不觉得屏幕小吗?是玩什么游戏?
    sodesga
        2
    sodesga  
       2h 46m ago
    给福尔摩沙点个赞
    Chicagoake
        3
    Chicagoake  
       2h 34m ago
    @woodfizky 还行吧,主要是多数游戏对手柄适配并不好,只能走映射的路子。switch 的屏幕也就 6 寸多。
    EriczzZ
        4
    EriczzZ  
       2h 2m ago
    真牛逼
    freewarcraft
        5
    freewarcraft  
       18 mins ago
    @woodfizky 玩游戏不是重点,很多人是折腾半天把机器和游戏调试到完美运行状态然后就吃灰了😂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4935 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 03:55 · PVG 11:55 · LAX 20:55 · JFK 23:55
    ♥ Do have faith in what you're doing.