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
cf6993baa0
Fix ConfigProvider crash: Make ConfigManager database initialization
...
lazy to prevent UninitializedPropertyAccessException when ContentProvider
is queried before Application.onCreate() runs.
2026-03-06 21:31:19 +08:00
NkBe
59dc353e0e
修正本地模式模式並解決 x86_64 的 bypass_svc 構建問題
...
manager / patch-loader:
- 將 ConfigProvider 添加至管理器以調用已啟用模組列表,繞過安卓沙盒限制。
- 將 NeoLocalApplicationService 改寫為查詢 ConfigProvider,而非 SharedPreferences。
- 動態解析 APK 路徑透過 PackageManager 並改善錯誤記錄。
bypass_svc:
- 修復 x86_64 編譯錯誤。
- 為 x86_64 提供 stub 實現。
- 將 g_is_hook_active 移至全域範圍以避免未定義符號。
- 保護 ARM64 特定的 syscall/seccomp 邏輯。
2026-02-10 16:39:53 +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
01071283c6
Remove: Uncomment LogsScreen
2025-12-11 23:18:17 +08:00
NkBe
f14f65d078
refactor(ui): 統一介面風格並優化佈局
...
- Home:重新整理資訊卡,將 StringBuilder 替換為 Composables;修正填充和 HtmlText 參數錯誤。
- Manager:為 TabRow 添加動畫指示器並統一頁面間距。
- Settings:為 KeyStore 對話框添加垂直滾動功能,以防止在小螢幕上出現裁剪。
- Repo:改善「即將推出」的 UI,增添圖標。
2025-12-11 22:42:26 +08:00
NkBe
5c8509e4f5
feat: 支持手動重載列表
...
- 當卸載後重新整理程式清單
- 可手動下拉刷新應用列表與模組列表
2025-12-07 23:47:43 +08:00
NkBe
5a90ed436e
fix: 正確設定共享偏好設定鍵並提升加載穩定性
...
- 修正了 SharedPreferences 鍵配置錯誤,確保模組緩存能正確加載。
- 優化 檔案注入器: 減少 ZipFile 重複 I/O,提升啟動效率。
- 優化 profile 禁用: 採用冪等性檢查和 Truncate 替代 Delete/Create 流程,增強對系統監控的穩定性,避免用戶配置意外清除。
- 代碼精簡: 改進了變數命名和程式碼結構。
fix: 正確設定共享偏好設定鍵並提升加載穩定性
- 修正了 SharedPreferences 鍵配置錯誤,確保模組緩存能正確加載。
- 優化 檔案注入器: 減少 ZipFile 重複 I/O,提升啟動效率。
- 優化 profile 禁用: 採用冪等性檢查和 Truncate 替代 Delete/Create 流程,增強對系統監控的穩定性,避免用戶配置意外清除。
- 改進 manager 構建檔案確保所有庫檔案不被壓縮。
- 代碼精簡: 改進了變數命名和程式碼結構。
2025-12-07 22:52:51 +08:00
NkBe
799bc1d022
feat: manager新增签名校验防篡改
...
HSSkyBoy
2025-12-07 21:31:27 +08:00
NkBe
f4b2513182
feat: 更严格的权限检查
...
Android 11 及以上: 檢查 Environment.isExternalStorageManager(),如果沒有權限,則跳轉到「所有檔案存取權」設定頁面 。
Android 10 及以下: 檢查並請求 WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE 權限 。
2025-12-06 14:58:39 +08:00
NkBe
2d86d32ff2
manager: 优化构建配置
2025-12-05 22:28:44 +08:00
NkBe
544eccfeef
Move org.lsposed.npatch.util to nkbe.util
2025-12-04 23:06:27 +08:00
NkBe
af548bb25d
feat: 增加已修補列表自動刷新 & 優化安裝完成後的跳轉邏輯
...
1. AppManageViewModel:
- 實現已修補應用列表的自動刷新機制(每 90 秒輪詢一次)。
- 引入 `silent` 參數區分自動刷新與手動刷新,避免自動刷新時 UI 出現加載轉圈,提升體驗。
2. NewPatchPage:
- 重構安裝成功的判定邏輯:不再僅依賴 PackageInstaller 的回調。
- 新增 `BroadcastReceiver` 監聽系統 `PACKAGE_ADDED` 和 `PACKAGE_REPLACED` 廣播。
- 確保系統真正註冊完新包後再執行導航返回 (navigateUp),解決安裝後立即返回導致列表尚未更新或狀態不同步的問題。
2025-12-03 00:33:21 +08:00
NkBe
5aa809dc5a
Refactor:Replace all instances of `lspatch` with `npatch`
...
嘗試规避關鍵詞檢測
2025-12-02 23:42:23 +08:00
NkBe
c136335aaf
feat: support Shizuku API to fetch app list
...
ShizukuApi 增添 getInstalledApplications 方法,包名管理器增添 fetchAppList 方法,優先使用 Shizuku API 獲取應用列表,失敗則回退至標準 PackageManager。
2025-11-19 22:59:02 +08:00
NkBe
307660038e
refactor: rename lspatch meta key to npatch
2025-10-29 21:38:58 +08:00
NkBe
d843faa515
fix: Forgot to add the inject DP option and Remove redundant intent-filter
...
.
2025-10-29 21:38:58 +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)
ac95b91712
Modify part of lspatch to npatch
2025-10-06 23:27:30 +08:00
NkBe(HSSkyBoy)
7613e7de10
feat: add output log to media
...
底層實現了日誌檔案寫入。為管理器新增了 outputLog 選項,可以將日誌輸出到 Android/media 目錄。
2025-10-06 23:27:30 +08:00
NkBe
c2fdd4941d
refactor: improve hook and dex loading logic
...
重構了 patch_loader.cpp 並修改了bypass_sig.cpp,優化了 openat hook 的實現方式,簡化了 HookOpenat 和 enableOpenatHook 的流程。PatchLoader 的 LoadDex、InitArtHooker、InitHooks、SetupEntryClass、Load 方法也進行了結構優化,提升了代碼可讀性和健壯性,減少了重複代碼,並加強了錯誤處理。
參考自 802d3fbe28 爲什麽這樣改我也有點忘了,commit用Copilot寫的
2025-09-07 22:17:31 +08:00
NkBe
4e63d61cd3
fix: can't connect to manager
...
順便優化了一下排版
2025-09-07 22:16:41 +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
ed93e43f8c
feat: deleat old InstallActivity
2025-09-07 14:38:02 +08:00
NkBe
0d55e2e602
Enhance installation and cleanup processes
...
Co-Authored-By: xihan123 <srxqzxs@vip.qq.com>
2025-09-07 14:38:02 +08:00
NkBe
c0aecf9e33
change name and url
...
Co-Authored-By: Kaelyn Wisoky <206877283+lshwjgpt25@users.noreply.github.com>
2025-09-05 23:48:04 +08:00
NkBe
515f527cb2
微调
2025-08-18 15:44:20 +08:00
NkBe
155a76a43e
fix: lspatch metadata decode crash
...
Co-Authored-By: o0kam1 <duzhaokun2@outlook.com>
2025-08-18 13:36:07 +08:00
NkBe
b4d1726708
Fix: Enable install activit
2025-08-18 13:24:12 +08:00
NkBe
88561bd2bd
feat: add StorageDirectory Switch
...
076e0e4f3b
2025-08-18 00:20:43 +08:00
NkBe
6be5f6ed7c
feat: switch install package
...
Co-Authored-By: o0kam1 <duzhaokun2@outlook.com>
2025-08-18 00:10:30 +08:00
NkBe
147d93c5dc
Update built-in hyperlinks
2025-08-17 23:15:29 +08:00
NkBe
9563fcc4d9
feat: check manager
2025-08-17 22:59:34 +08:00
NkBe
10b291bd61
NPatch
2025-08-17 22:09:10 +08:00
JingMatrix
5180d7315d
Update dependencies
...
Update compose-destinations is non-trivial.
To use version 2.0+ in the future, we need to follow its migration guide:
https://composedestinations.rafaelcosta.xyz/migrating-to-v2/
2025-08-03 09:42:16 +02:00
JingMatrix
bab8bd2d4c
Update JingMatrix/LSPosed
2024-12-01 09:48:30 +01:00
xihan123
b83152323a
Allow uers to chose if inject loader dex ( #19 )
...
If we always inject loader dex, then modules with third party libraries might fail to find library classes since the default class loader is alway used before the the loader of the module package.
Therefore, it is better to treat packages with isolated services as special cases.
2024-11-20 19:38:48 +01:00
JingMatrix
90880f9bbe
Update repo info
2024-07-27 10:41:40 +02:00
Js0n
2243d010b8
fix: packageInstaller userId ( #280 )
...
Package installer now install patched app in current user instead of
main user
2023-12-12 00:35:20 +08:00
Js0n
4bf1371155
feat: launch and install from apk intent ( #279 )
...
close #90
2023-12-11 23:38:30 +08:00
Js0n
3674a967ef
Remove keep alive foreground service because bound service won't need it ( #262 )
...
Co-authored-by: LoveSy <shana@zju.edu.cn>
2023-11-23 20:32:24 +08:00
Js0n
eb2c458dc1
fix(manager): keep alive service crashing in A14 ( #259 )
2023-11-11 21:05:34 +08:00
Js0n
8b5d06f073
Revert "fix(manager): update loader failed due to outdated origin apk filename" ( #257 )
...
Reverts LSPosed/LSPatch#253
2023-11-11 19:12:27 +08:00
Js0n
768d335eea
fix(manager): update loader failed due to outdated origin apk filename ( #253 )
2023-11-02 22:07:10 +08:00
Js0n
8462043963
feat: select module(s) from storage ( #225 )
2023-10-12 14:10:53 +08:00
LoveSy
7d69dbcb66
Fix crash and sync
2023-06-29 10:08:50 +08:00
Howard Wu
941726d559
Core upgrade ( #213 )
...
Co-authored-by: LoveSy <shana@zju.edu.cn>
2023-06-29 02:17:00 +08:00
Nullptr
2ace2660b4
Fix modules missing after update loader for integrated mode
2022-11-13 22:43:39 +08:00
Nullptr
b2b542e7cc
Optimize build
2022-11-10 22:55:39 +08:00