Lspatch使用

2023-01-27 06:00:17

前言

xp模組可以使使用者獲得應用原本所沒有的功能。
使用模組需要修改應用。對於Root使用者來說,使用Lsposed是個不錯的選擇,也方便。
但是大多數使用者沒有將手機Root。
所以Lsposed的開發者做了一款功能相對不夠全面,但仍能實現修改應用功能的工具:Lspatch。
Lspatch不需要Root許可權執行。而且,lspatch還具備一種模組注入的模式:便攜模式。
便攜模式可以直接把注入模組後的應用打包。這樣的應用執行不再需要依靠Lspatch,可以分享給其他人。

下面我以QQ做範例,為大家演示Lspatch的使用過程。

成品請見資源分享帖

提一嘴:安裝之前切記解除安裝原應用(記得備份),否則簽名不一致會安裝失敗。
操作過程中若出錯,試試重啟手機或將應用停止執行。


> 準備

在這裡,我選擇了開源的Qa模組注入到QQ中,以實現防撤回功能。

  1. Lspatch:https://github.com/LSPosed/LSPatch

  2. Qa模組(全面叫QAuxiliary):https://github.com/cinit/QAuxiliary

  3. QQ安裝包:https://im.qq.com/download

  4. 一部安卓手機,可以使用模擬器,但千萬不要使用安卓子系統,因為沒有檔案目錄體系。

把上面的資源全部放到安卓手機裡。注意要明確檔案的位置,以便使用。

> 便攜模式

便攜模式可以直接把注入模組後的應用打包。
這樣的應用執行不需要依靠Lspatch,可以分享給其他人。

  1. 安裝Lspatch。
    lspatch安裝完長這樣:

    shizuku我們不理,目前用不著。

  2. 安裝完成後,進入Lspatch,下方點選管理,點選加號:

    首次使用會提示選擇一個目錄來儲存已修復的apk,選擇自己方便呼叫的資料夾,並給予儲存許可權。

  3. 此時彈出框有兩個選項:

    如果已經安裝QQ,可以選擇下面的"選擇已安裝的應用程式";
    如果未安裝,選擇上面"從儲存目錄中選擇(多個)apk".
    然後在彈出的介面找到QQ(或安裝包).選擇完畢進入修補介面如下:

  4. 選擇便攜模式,點選"嵌入模組",選擇模組qa。

  5. 點選右下角「開始修補」,等待修補完成。

  6. 進入手機的檔案管理器,查詢apk

    這樣,我們便得到了嵌入了qa的qq.

> 本地模式

本地模式,顧名思義只能在本地執行。
它不再嵌入模組,而只是修改應用以模組得以使用。
缺點很明顯,即需要Lspatch在後臺執行,應用才可正常運作。
優點是可以靈活管理模組,模組更新不需要重新打包。

  1. 同便攜模式1-3步,進入修補介面,選擇本地模式。

  2. 直接開始修補。

  3. 修補完成後,手動找到安裝包安裝。(lspatch中的安裝鍵需shizuku賦權,如果你會用shizuku也可以。)

  4. 安裝後重啟手機(這是一個好習慣),開啟Lspatch。在管理-應用裡面會發現修補好的應用,點選後選擇作用域,選擇要使用的模組。


    此時的模組需安裝。

> 控制檯模式

Lspatch還提供了另一種打包方式:從電腦打包.
通過他提供的一個jar包,打包出來本地模式或便攜模式的包。

準備資源:

  1. JSE環境(版本不能太低) https://java.com/zh-cn
  2. lspatch.jar https://github.com/LSPosed/LSPatch/releases/latest
  3. 應用、模組的apk

lspatch.jar所在的目錄執行cmd.
控制檯輸入以下命令:

  • 本地模式:java -jar lspatch.jar xxx.apk -manager -l 2
  • 便攜模式:java -jar lspatch.jar xxx.apk [-m 模組1.apk [-m 模組2.apk ...]] -l 2
    xxx.apk為要修改的應用安裝包.

> FAQ

Q1: 本地模式修補後在管理-應用-【修補好的應用】-模組作用域裡找不到模組?
A1: 模組要先安裝在手機裡。

Q2: 電腦控制檯無法正常執行lspatch.jar,提示UnsupportedClassVersionError?
A2: 執行JSE版本過低。我使用的JDK:https://www.123pan.com/s/v0XlVv-vJw9d

Q3: 首次使用會提示選擇一個目錄來儲存已修復的apk,可是沒有目錄?
A3: Lspatch應用設定-許可權設定-讀寫檔案許可權-允許。
Q3.1: 還是不行?
A3.1: 不要在Windows Subsystem for Android™ 上測試。若非如此,請重啟手機。

Q4: 便攜模式找不到生成後的安裝包?
A4: 請檢查修補紀錄檔最後一行是否提示出錯。新版安卓隱私政策升級,檔案管理器可能無法及時讀取到檔案,請手動到第二步的目錄下查詢或重啟手機。

Q5: 應用修補後按"安裝"提示Shizuku服務未連線?
A5: 屬正常情況。Lspatch可搭配Shizuku使用,方便解除安裝、安裝應用等操作。沒有shizuku的使用者可以手動解除安裝原應用後手動安裝修補完的應用。



The End
Yuito 2023