jshook 新手零基礎入門——五分鐘上手手機自訂神器
jshook 是什麼
把它想成手機版的「App 改裝工具箱」就對了——jshook官網 上有更完整的底層技術解析。你手機上每個 App 都像一台出廠時鎖死了面板的電器——功能都在,但裡面的按鈕你碰不到。jshook 就是那把螺絲起子,讓你拆開面板、調裡面的旋鈕,把手機上的 App 改成你想要的樣子。
說白一點,jshook 能在不修改 App 安裝包本身的前提下,動態攔截 App 的內部函數呼叫,用你自己寫的腳本替換或補強原本的行為。比如某個社交 App 的推薦演算法太囂張,你可以寫個腳本把不喜歡的內容自動過濾掉;又或者某個遊戲的金幣獲取太慢,你可以調整計算邏輯——這些都不需要重新打包 APK,腳本寫好、點一下啟用就生效。
適合誰?對搞機有點興趣、想讓手機更聽話的朋友。不用你會寫程式(當然會一點更好),網路上大把現成腳本可以訂閱下載,新手也能直接用。
安裝
jshook 是 Android APK,安裝包只有 3.85M,從 jshook下載 拿到後點開就行。但有一個硬前提:你的手機必須已取得 root 權限——Magisk、KernelSU、APatch 三種框架都支援,用哪個都行。這點繞不開,因為 jshook 需要往 /data/adb/ 寫入運行時檔案、載入核心驅動模組,沒有 root 它連站都站不住。
安裝完打開 jshook,首頁會顯示「未激活」——別慌,這是正常狀態。點一下首頁的「激活」按鈕,root 管理器會彈窗請求授權,點「允許」就好。接下來 jshook 會自動部署運行時檔案、釋放對應手機核心版本的 .ko 驅動模組、啟動後台守護程序,整個過程大約 30 到 60 秒,全程不用你輸任何指令。激活成功後,首頁狀態會從「未激活」變成 Activated,應用列表也會列出手機上所有已安裝的 App。
跨大版本升級時要小心——從 1.0.x 跳到 1.1.x+ 曾出現過打不開的情況。保險做法是先備份腳本和訂閱列表,覆蓋安裝後如果崩了,清一下應用數據並手動刪 /data/system/jshook 和 /data/adb/jshook 兩個目錄,再重新激活就好。日常升級盡量小步走,別一下跳太遠。

它到底是干嘛的——生活化類比
想像你家裡的電視遙控器,面板上只有開關、音量、頻道切換這幾個按鈕。但如果我告訴你,打開遙控器外殼,裡面其實有幾十個你從沒見過的微調旋鈕——能調背光亮度、能加速切台響應、能給不同頻道設不同音量——你會不會想拆開試試?
jshook 就是那把遙控器的外殼螺絲起子。它不碰 App 的安裝包(不給你換一顆新遙控器),而是在 App 運行時從底層把它「掛鉤」(Hook)住,讓你能即時調整它的內部行為。這個「掛鉤」的動詞就是它名字的由來——Hook。
核心能力就兩個字:攔截。App 內部任何一個函數被呼叫時,jshook 都能攔下來,讓你在它執行前先跑一段自己寫的腳本。你可以改輸入參數、改輸出結果、甚至整個跳過原函數直接返回你想要的值。腳本用的是 JavaScript,對,就是網頁上常用的那種語言——入門門檻低,而且網路上現成的資源多到看不完。
五分鐘上手——安裝完第一次跑通
好,激活成功了對吧?打開 jshook,你會看到首頁下方有一個應用列表,列出了手機上所有 App。我們選一個目標來試試——就拿你最常用、最想改的那個 App 吧,比如說某個社交軟體。
- 在應用列表裡找到那個 App,點一下進入它的詳情頁。你會看到幾個分頁:腳本、訂閱、工具集。
- 先點「訂閱」——這是最簡單的路。訂閱就是別人寫好的腳本合集,你只要貼上訂閱連結,jshook 就會自動把腳本拉下來。去 Telegram 群或 GitHub 找一個你感興趣的訂閱源,複製連結、貼進來、點確定。
- 訂閱下來的腳本會出現在「腳本」分頁裡,每條右邊都有一個開關。打開你想用的那個腳本的開關。
- 回到手機桌面,強制停止目標 App(從最近任務列表上滑掉就行),然後重新打開它。
- 目標 App 啟動時,jshook 的守護程序會自動把啟用的腳本注入進去。等 App 完全載入,你應該能看到腳本生效了——比如界面多了個按鈕、或者某些內容被過濾掉了。
這就是第一次 Hook 的完整流程:訂閱腳本 → 啟用 → 重啟目標 App → 驗證效果。從打開 jshook 到看到腳本生效,五分鐘綽綽有餘。

上手後先玩這三個功能
第一次跑通之後,jshook 裡有三個功能是新手最值得先碰的——每個都能讓你「哇,原來還能這樣」。
進程管理
打開 jshook 的「工具集」分頁,第一個就是進程管理。它把手機上當前所有正在跑的後台進程列了出來,包括每個進程的包名、PID、CPU 佔用、記憶體佔用。你可以點進去看詳情,也可以直接點「強制停止」把它 Kill 掉——比 Android 系統設置裡的強制停止更直接,走的是底層 kill 命令。
為什麼新手需要它?因為你改完腳本之後,最常做的事就是重啟目標 App 讓 Hook 生效。用進程管理 Kill 掉比上滑最近任務更可靠——上滑有時候只是把 App 推到後台而不是真的殺掉,腳本注入不會重跑。另外它也能幫你確認 jshook 的守護程序是不是還在跑——搜尋 jshook 或 frida,如果守護程序掉了,Hook 就全部失效了。
腳本訂閱
自己寫腳本當然最自由,但新手不用急。訂閱機制是 jshook 最強大的生態入口——網路上有大量社群維護的訂閱源,從社交 App 的去廣告、到遊戲的輔助工具、到系統層的優化腳本,應有盡有。訂閱之後 jshook 會自動同步更新,作者改了腳本你這邊也會跟著刷新。
訂閱連結通常是一個 GitHub raw 網址或 Gist 連結。貼進去之後 jshook 會解析裡面的腳本清單,每個腳本都有名字、作者、描述——看哪個對你胃口就打開哪個的開關。一次啟用一個,跑通了再加下一個,避免多個腳本同時生效搞不清是誰起的作用。
手動編寫腳本
當你開始想「要是訂閱裡沒有我想要的那個功能怎麼辦」,就是時候自己寫腳本了。jshook 的腳本語言是 JavaScript,語法和網頁前端用的基本一樣,核心就是一個 Java.perform() 塊裡面寫 Hook 邏輯。
不用怕,最簡單的 Hook 腳本長這樣:
Java.perform(function() {
var TargetClass = Java.use("com.example.app.TargetClass");
TargetClass.targetMethod.implementation = function() {
console.log("Hook 生效了!");
return this.targetMethod();
};
});
四行程式碼:找到你要改的類別、找到你要攔的方法、定義一個替換實作、裡面先打個 log 再呼叫原本的方法。就這麼簡單。jshook 的浮動窗裡有腳本編輯器,直接在裡面寫、存檔、啟用就行,不用電腦。
小白的三個常見疑問
激活之後 App 列表是空的怎麼辦
激活完成但應用列表沒東西,八成是激活沒跑完整。回到首頁看狀態是不是真的顯示 Activated,如果不是,再點一次激活。如果狀態對了但列表還是空,去「設置」裡找找有沒有「刷新應用列表」之類的選項,手動觸發一次。
腳本啟用了但目標 App 裡沒效果
先確認守護程序是不是還在——進工具集 → 進程管理,搜尋 jshook。守護程序掉了就回到首頁重新激活。如果守護程序在,那就是腳本本身的問題:可能腳本目標的類別名或方法名不對、可能你的 App 版本和腳本作者測試的版本不一樣、也可能腳本需要先跑某個初始化步驟。把腳本的 log 打開看看報什麼錯,通常一眼就能定位。
重啟手機之後 Hook 還在嗎
在的。jshook 的守護程序會跟著系統啟動自動跑起來,腳本的啟用狀態也會持久化儲存。但少數情況下(比如 root 框架更新了、或者系統大版本升級之後),守護程序可能啟動失敗。如果發現 Hook 全部失效,第一個檢查的就是守護程序狀態——這時候再激活一次通常就解了。
好啦,從完全不懂到第一個 Hook 生效,這就是完整的新手路徑。記住:訂閱腳本是起點、進程管理是工具、自己寫腳本是終點——按這個順序走,一步步來,jshook 沒你想的那麼複雜。祝你改得開心!
本文為個人基於網路公開資料整理編寫,非官方內容,僅供學習交流參考;軟體版權歸原作者所有,請支持正版;使用過程中遇到問題請查閱官方管道,本文不承擔任何責任。