Commit Graph

165 Commits

Author SHA1 Message Date
WeiguangTWK 798d98c089 Shizuku: Dex2Oat usually needs root to run 2026-04-02 20:52:56 +08:00
WeiguangTWK fced5612fb Patcher: Fix fail when select installed app 2026-04-02 20:43:21 +08:00
WeiguangTWK 98cd89f9d0 treewide: Upgrade API level to 101 and change name to GKMSPatch 2026-04-02 20:14:53 +08:00
NkBe 41872d8261
Simplify primary assignment in NPackageManager 2026-03-08 22:49:56 +08:00
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 01d344ed01
Clarify sigbypass lv3 string to 64-bit only 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 3c8964bc83
Enable resource shrinking; bump CMake min version 2026-02-23 18:02:04 +08:00
NkBe c1480fa121
improve NPatch zip handling
將 android:largeHeap="true" 添加至管理員 manifest 中,防止系統限制 RAM。啟用 ZFileOptions.setNoTimestamps,並將來源 APK 嵌入為唯讀壓縮檔。
2026-02-10 19:26:23 +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 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 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 611d77f263
rename provider2mtprovider 2025-12-03 22:32:53 +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 5642d2e62f
Improve compatibility with boot.oat in recent A15
See JingMatrix/LSPosed#414 for details

Also update few dependencies.

Co-Authored-By: JingMatrix <jingmatrix@gmail.com>
2025-11-19 21:03:41 +08:00
NkBe 0fa8ef2b89
enjoy: 專門為MiUI桌面卸載添加了提示,提升使用者體驗 2025-10-29 23:54:55 +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 9804125d1f
feat: Streamline application mode descriptions 2025-09-30 23:24:03 +08:00
NkBe 5bfa072960
manager: Fix English icon colors 2025-09-30 23:24:03 +08:00
NkBe 4b8da5c255
chore: update core
然後將jar的默認簽名同步為manger的,並將構建出的文件名頭改爲NPatch
2025-09-11 22:49:55 +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 e05f175be1
Update string-zh-rHK
Co-Authored-By: Hoshino_17 <124479472+bf2967252373@users.noreply.github.com>
2025-08-18 15:07:38 +08:00
NkBe 25685bd4c6
Fix: Unresolved reference 'settings_storage_directory' 2025-08-18 13:47:31 +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 7881387bb2
Opti the translation, corrected typos in the README.
Added new permissions and activity-aliases to AndroidManifest.xml, updated provider permissions, and adjusted service export settings. Improved the Chinese translation for storage selection. Fixed typos in the README project name.
2025-08-17 23:37:31 +08:00
NkBe 147d93c5dc
Update built-in hyperlinks 2025-08-17 23:15:29 +08:00