Commit Graph

24 Commits

Author SHA1 Message Date
NkBe e640da4f57
feat: 引入輕量級 MicroG 支援與 GMS 請求重導向機制
為 NPatch 引入了原生的 MicroG 整合支援,允許修補後的 Google 應用程式(例如 YouTube)在依賴 Google Play 服務的環境下,透過社群版 MicroG(如 ReVanced GmsCore)正常運作。

詳細改動範圍包含:

* ** UI Manager **
  - 於 `NewPatchScreen` 的修補選項清單中,新增「啟用 MicroG 支援」核取方塊與相容性說明。
  - 更新 `NewPatchViewModel`,透過 `Patcher.kt` 將使用者的 `useMicroG` 選擇狀態以 `--useMicroG` 指令列參數的形式,傳遞給底層修補引擎。

* ** Patcher **
  - 於 `NPatch.java` 中新增對 `--useMicroG` 參數的解析邏輯。
  - 擴充 `modifyManifestFile` 邏輯:當啟用 MicroG 支援時,自動讀取目標應用的原始簽名並轉碼為 Hex 格式。
  - 於 `AndroidManifest.xml` 中動態注入 `fake-signature` 的 `<meta-data>` 節點與 `android.permission.FAKE_PACKAGE_SIGNATURE` 權限,以滿足 MicroG 進行簽名欺騙(Signature Spoofing)時的驗證需求。

* ** Patch Loader **
  - 實作 `GmsRedirector.java` 類別,負責在應用程式執行期間動態攔截並重導向 IPC 通訊:
    1. 掛鉤 `Intent.setPackage`、`Intent.setComponent` 與建構子,將所有指向 `com.google.android.gms` 與 GSF 的意圖,強制導向至設備上已安裝的社群版 MicroG 套件(優先支援 `app.revanced.android.gms` 與 `org.microg.gms`)。
    2. 掛鉤 `ContentResolver`,替換帶有 GMS Authority 的 URI。針對真實 GMS 拋出的 `SecurityException`(憑證拒絕存取)實作了智慧攔截與重試機制。
    3. 掛鉤 `PackageManager.getPackageInfo` 實現動態簽名偽裝,使修補後的應用程式將 MicroG 視為官方正版 GMS。
  - 於 `LSPApplication.java` 的 `onLoad` 階段,依據 `PatchConfig` 設定檔動態喚醒並初始化 `GmsRedirector`。

* ** Share **
  - 更新 `PatchConfig.java` 以儲存與傳遞 `useMicroG` 布林值狀態。
  - 於 `Constants.java` 中定義 `REAL_GMS_PACKAGE_NAME` 常數,供各模組統一呼叫。

Co-Authored-By: MrZhongzq <108169409+MrZhongzq@users.noreply.github.com>
2026-03-08 21:53:41 +08:00
NkBe 74bbeb9bda
patch-loader: 優化配置和資源處理
Add a shared Gson instance and harden config/module/asset loading to avoid NPEs and crashes. Guard legacy module iteration, use apply() for SharedPreferences, throw when config asset is missing, reuse GSON for parsing, and null-check resource streams before copying. Also set provider dex file writable only if created and remove some unused imports. These changes improve resilience when manager/asset data is unavailable and clean up file handling.
2026-02-10 17:46:38 +08:00
NkBe f4eacbf2d3
Update core and dependencies
Update to LSPosed v1.11.0
解決了 Android 10 和 OnePlus 裝置上的特定問題,重構 Dex2Oat 以消除缺失符號錯誤並提升可靠性....
https://github.com/JingMatrix/LSPosed/releases/tag/v1.11.0
2026-02-10 14:32:24 +08:00
NkBe 271eb7bd82
feat(sigbypass): SVC Bypass (ARM64) and OpenAt I/O Redirection
導入 ARM64 專用的 SVC/Seccomp 內核級簽名繞過 (Level 3),並全面強化檔案 I/O 重定向機制。
移除非 ARM64 架構的支持
2025-12-22 21:57:33 +08:00
NkBe 611d77f263
rename provider2mtprovider 2025-12-03 22:32:53 +08:00
NkBe 5aa809dc5a
Refactor:Replace all instances of `lspatch` with `npatch`
嘗試规避關鍵詞檢測
2025-12-02 23:42:23 +08:00
NkBe a2b9e529ca
feat: support inject MT Manager DocumentsProvider
Co-Authored-By: Hicores <me@hicore.cc>
2025-10-29 21:38:57 +08:00
NkBe(HSSkyBoy) d644c22ade
feat: support patching with new package name
feat: log APK patch paths in submitPatch

fix: improve temp APK file handling

feat: add newPackageName option

refactor: optimize patch install dialogs

feat: support rename packagename
Co-Authored-By: javaeryang <27242250+javaeryang@users.noreply.github.com>
2025-10-08 15:47:16 +08:00
NkBe(HSSkyBoy) 07b100ea2f
refactor: rename lspatched to npatched 2025-10-08 15:47:15 +08:00
NkBe(HSSkyBoy) 7613e7de10
feat: add output log to media
底層實現了日誌檔案寫入。為管理器新增了 outputLog 選項,可以將日誌輸出到 Android/media 目錄。
2025-10-06 23:27:30 +08:00
NkBe 326afc95ab
feat: add FileProvider and refactor install logic
新增 FileProvider 到 AndroidManifest,使其能检测到修补后的 apk;简化 NewPatchScreen 的安装按钮逻辑;修正 AppManagePage 的闭包结构。
2025-09-07 14:38:14 +08:00
NkBe 515f527cb2
微调 2025-08-18 15:44:20 +08:00
NkBe 9563fcc4d9
feat: check manager 2025-08-17 22:59:34 +08:00
NkBe 493d367bfc
fix: 缺失的大括号 2025-08-17 22:40:26 +08:00
Nullptr 2ace2660b4
Fix modules missing after update loader for integrated mode 2022-11-13 22:43:39 +08:00
Nullptr 7391df7fd3
Update MIN_ROLLING_VERSION_CODE 2022-10-24 01:12:27 +08:00
Nullptr f8888b81e8
Support bootstrapping loader dynamically for local mode (#118) 2022-10-21 15:24:16 +08:00
Nullptr 2e2c818de6
Drop v1 signature & UI improvement 2022-09-06 21:20:06 +08:00
Nullptr 279e95b57b
Support upgrade loader version 2022-07-05 21:54:13 +08:00
Nullptr 0ef34fa633
Add .apk suffix 2022-07-05 19:10:29 +08:00
Nullptr a9b27b1427 Update core to 1.8.3 2022-05-11 01:00:00 +08:00
Nullptr 3bc39e1e94 Fix some patch problems 2022-05-11 00:13:54 +08:00
Nullptr 6924c6a3b5
CI (#57)
* CI

* Add patch info to metadata

* Allow select local apks to patch

* Fix wrong indent
2022-05-10 11:39:04 +08:00
Nullptr 7905b343dc ServiceClient 2022-03-23 22:36:19 +08:00