🚀 **OShin New CI Build!**
Chore: Add status_bar route for feature navigation
This commit adds a new entry for to the function route map in .
This change maps the key to its corresponding string resource, , preparing for the addition of a new Status Bar feature section in the app's navigation.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/39571c4a929bf7776b7a4a009558304d1dba1ddc)
Chore: Add status_bar route for feature navigation
This commit adds a new entry for to the function route map in .
This change maps the key to its corresponding string resource, , preparing for the addition of a new Status Bar feature section in the app's navigation.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/39571c4a929bf7776b7a4a009558304d1dba1ddc)
GitHub
Chore: Add "status_bar" route for feature navigation · suqi8/OShin@39571c4
This commit adds a new entry for `"status_bar"` to the function route map in `GetFuncRoute.kt`.
This change maps the key `"status_bar"` to its corresponding str...
This change maps the key `"status_bar"` to its corresponding str...
🚀 **OShin New CI Build!**
Chore: Update app version name to 15.8
This commit updates the application's version name format in the file.
The version name has been changed from to . This new version will be combined with the Git commit count and hash to form the final version name (e.g., ).
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c763686bedfb9dcae752fde08eefae0dca8aeb9d)
Chore: Update app version name to 15.8
This commit updates the application's version name format in the file.
The version name has been changed from to . This new version will be combined with the Git commit count and hash to form the final version name (e.g., ).
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c763686bedfb9dcae752fde08eefae0dca8aeb9d)
GitHub
Chore: Update app version name to 15.8 · suqi8/OShin@c763686
This commit updates the application's version name format in the `app/build.gradle.kts` file.
The version name has been changed from `15.7beta1` to `15.8`. This new version will be combine...
The version name has been changed from `15.7beta1` to `15.8`. This new version will be combine...
🚀 **OShin New CI Build!**
Fix(AppDetail): Refactor Remove Security Check hook
This commit refactors the hook for removing the security check during app installation in the application.
The previous implementation, which targeted multiple methods and view models, has been replaced with a more direct approach. The new hook targets a single static method, , and forces it to return . This effectively and cleanly disables the installation security check.
Additionally, the code for the Remove Recommendations feature has been commented out, indicating it is likely deprecated or non-functional.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/a8e990f600b8559ab5d5226e4017833f39851e0a)
Fix(AppDetail): Refactor Remove Security Check hook
This commit refactors the hook for removing the security check during app installation in the application.
The previous implementation, which targeted multiple methods and view models, has been replaced with a more direct approach. The new hook targets a single static method, , and forces it to return . This effectively and cleanly disables the installation security check.
Additionally, the code for the Remove Recommendations feature has been commented out, indicating it is likely deprecated or non-functional.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/a8e990f600b8559ab5d5226e4017833f39851e0a)
GitHub
Fix(AppDetail): Refactor "Remove Security Check" hook · suqi8/OShin@a8e990f
This commit refactors the hook for removing the security check during app installation in the `com.oplus.appdetail` application.
The previous implementation, which targeted multiple methods and vi...
The previous implementation, which targeted multiple methods and vi...
🚀 **OShin New CI Build!**
Feat(AppDetail): Add dynamic remove security check hook
This commit refactors the remove security check feature for the AppDetail (package installer) hook to be more resilient against code obfuscation.
Previously, the hook targeted a hardcoded class and method name (). This commit replaces the static reference with a dynamic search using DexKit. The new implementation scans the package for a specific public static method that returns a boolean, takes a Context parameter, and contains certain unique strings.
This dynamic approach ensures that the feature continues to work even if the class and method names change in future updates to the target application.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/489f51088b87dd316d65e219586b0455e402ae22)
Feat(AppDetail): Add dynamic remove security check hook
This commit refactors the remove security check feature for the AppDetail (package installer) hook to be more resilient against code obfuscation.
Previously, the hook targeted a hardcoded class and method name (). This commit replaces the static reference with a dynamic search using DexKit. The new implementation scans the package for a specific public static method that returns a boolean, takes a Context parameter, and contains certain unique strings.
This dynamic approach ensures that the feature continues to work even if the class and method names change in future updates to the target application.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/489f51088b87dd316d65e219586b0455e402ae22)
GitHub
Feat(AppDetail): Add dynamic "remove security check" hook · suqi8/OShin@489f510
This commit refactors the "remove security check" feature for the AppDetail (package installer) hook to be more resilient against code obfuscation.
Previously, the hook targeted ...
Previously, the hook targeted ...
🚀 **OShin New CI Build!**
Feat(OTA): Add option to bypass pre-install checks
This commit introduces a new feature to the OTA (Over-The-Air) update module that allows bypassing several pre-installation checks.
A new hook has been added to target the method . It modifies the boolean field within the method's instance to after execution. This effectively disables multiple validations performed before an OTA installation, including file path validity, file integrity, version information, and a vendor disallow update flag.
### Key Changes:
* ** (Hook):**
* Added a new hook for the package.
* The hook dynamically resolves and modifies the method to disable installation checks when the feature is enabled.
* ** (UI):**
* Added a new Bypass pre-install checks switch to the OTA feature screen, allowing users to enable or disable this functionality.
* **:**
* Added new string resources for the title and a detailed summary of the new bypass feature.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c99a7c8e4f7b441900d908534c6a583d807a6cf6)
Feat(OTA): Add option to bypass pre-install checks
This commit introduces a new feature to the OTA (Over-The-Air) update module that allows bypassing several pre-installation checks.
A new hook has been added to target the method . It modifies the boolean field within the method's instance to after execution. This effectively disables multiple validations performed before an OTA installation, including file path validity, file integrity, version information, and a vendor disallow update flag.
### Key Changes:
* ** (Hook):**
* Added a new hook for the package.
* The hook dynamically resolves and modifies the method to disable installation checks when the feature is enabled.
* ** (UI):**
* Added a new Bypass pre-install checks switch to the OTA feature screen, allowing users to enable or disable this functionality.
* **:**
* Added new string resources for the title and a detailed summary of the new bypass feature.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c99a7c8e4f7b441900d908534c6a583d807a6cf6)
GitHub
Feat(OTA): Add option to bypass pre-install checks · suqi8/OShin@c99a7c8
This commit introduces a new feature to the OTA (Over-The-Air) update module that allows bypassing several pre-installation checks.
A new hook has been added to target the method `s6.a.e`. It modi...
A new hook has been added to target the method `s6.a.e`. It modi...
🚀 **OShin New CI Build!**
Fix(Android): Correct data type for multi-window preferences
This commit fixes a data type mismatch in the hook for the Android framework.
The preferences for customizing small window features (, , , ) are stored as floats in SharedPreferences but were being read as integers.
This change corrects the preference lookups to use instead of . The retrieved float value is then cast to an integer before being applied to the corresponding methods, ensuring the hook functions as intended.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/a749d9cb1920d9d92838f650f2fc0d8cf0304866)
Fix(Android): Correct data type for multi-window preferences
This commit fixes a data type mismatch in the hook for the Android framework.
The preferences for customizing small window features (, , , ) are stored as floats in SharedPreferences but were being read as integers.
This change corrects the preference lookups to use instead of . The retrieved float value is then cast to an integer before being applied to the corresponding methods, ensuring the hook functions as intended.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/a749d9cb1920d9d92838f650f2fc0d8cf0304866)
GitHub
Fix(Android): Correct data type for multi-window preferences · suqi8/OShin@a749d9c
This commit fixes a data type mismatch in the `SplitScreenMultiWindow` hook for the Android framework.
The preferences for customizing small window features (`max_simultaneous_small_windows`, `sma...
The preferences for customizing small window features (`max_simultaneous_small_windows`, `sma...
🚀 **OShin New CI Build!**
Feat(OTA): Add Force Show Local Install option
This commit introduces a new feature to the OTA (Over-The-Air) update module that forces the Local Install option to be visible in the system update settings.
This is achieved by hooking the method. When the system checks for the key, the hook intercepts the call and returns , effectively tricking the system into believing developer options are enabled, which in turn reveals the Local Install button.
### Key Changes:
* ** (Hook):**
* Added a new hook for .
* It spoofs the return value for the setting to .
* Cleaned up preference access by creating a local variable.
* ** (UI):**
* Added a new Force show local install to the OTA features screen.
* **:**
* Added the corresponding string resource for the new feature's title.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/5f1122b5bed62de14058b7ec6dea135f5474dce1)
Feat(OTA): Add Force Show Local Install option
This commit introduces a new feature to the OTA (Over-The-Air) update module that forces the Local Install option to be visible in the system update settings.
This is achieved by hooking the method. When the system checks for the key, the hook intercepts the call and returns , effectively tricking the system into believing developer options are enabled, which in turn reveals the Local Install button.
### Key Changes:
* ** (Hook):**
* Added a new hook for .
* It spoofs the return value for the setting to .
* Cleaned up preference access by creating a local variable.
* ** (UI):**
* Added a new Force show local install to the OTA features screen.
* **:**
* Added the corresponding string resource for the new feature's title.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/5f1122b5bed62de14058b7ec6dea135f5474dce1)
❤2
🚀 **OShin New CI Build!**
Refactor(CorePatch): Migrate PackageManager hooks to YukiHookAPI
This commit refactors the entire CorePatch module, which modifies the Android . The previous implementation, based on legacy Xposed API and spread across multiple version-specific Java files (, , , , , ), has been completely removed.
It is replaced by a single, modern hooker written in Kotlin using the YukiHookAPI. This new implementation is cleaner, more maintainable, and uses the library for safer reflection.
The functionality remains largely the same, but has been reorganized and given clearer naming conventions for preferences and UI elements.
### Key Changes:
* **Migration to YukiHookAPI:**
* All hooks are now consolidated into .
* Legacy Xposed API calls (, ) are replaced with YukiHookAPI's fluent DSL.
* Removed multiple Java files (, , ) in favor of a single Kotlin file.
* **Feature Reorganization & Renaming:**
* The user-facing settings in the UI have been regrouped into General, Verification Bypass, and Advanced sections.
* Preference keys and string resources have been updated to be more descriptive (e.g., is now ).
* **Code Improvements:**
* Implemented hooks for common package management bypasses, such as allowing downgrades, signature mismatches, and disabling various integrity checks (, , ).
* Added a debug command to inspect package and shared user signing details.
* The hook is now loaded cleanly via the main entry point.
* **Build Configuration:**
* The has been updated from 35 to 36 in to align with the new target API.
* The legacy Xposed entry point in for has been removed.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/11b2c4ff358d735ae9cb5510c0c3b6340ab025f3)
Refactor(CorePatch): Migrate PackageManager hooks to YukiHookAPI
This commit refactors the entire CorePatch module, which modifies the Android . The previous implementation, based on legacy Xposed API and spread across multiple version-specific Java files (, , , , , ), has been completely removed.
It is replaced by a single, modern hooker written in Kotlin using the YukiHookAPI. This new implementation is cleaner, more maintainable, and uses the library for safer reflection.
The functionality remains largely the same, but has been reorganized and given clearer naming conventions for preferences and UI elements.
### Key Changes:
* **Migration to YukiHookAPI:**
* All hooks are now consolidated into .
* Legacy Xposed API calls (, ) are replaced with YukiHookAPI's fluent DSL.
* Removed multiple Java files (, , ) in favor of a single Kotlin file.
* **Feature Reorganization & Renaming:**
* The user-facing settings in the UI have been regrouped into General, Verification Bypass, and Advanced sections.
* Preference keys and string resources have been updated to be more descriptive (e.g., is now ).
* **Code Improvements:**
* Implemented hooks for common package management bypasses, such as allowing downgrades, signature mismatches, and disabling various integrity checks (, , ).
* Added a debug command to inspect package and shared user signing details.
* The hook is now loaded cleanly via the main entry point.
* **Build Configuration:**
* The has been updated from 35 to 36 in to align with the new target API.
* The legacy Xposed entry point in for has been removed.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/11b2c4ff358d735ae9cb5510c0c3b6340ab025f3)
GitHub
Refactor(CorePatch): Migrate PackageManager hooks to YukiHookAPI · suqi8/OShin@11b2c4f
This commit refactors the entire CorePatch module, which modifies the Android `PackageManagerService`. The previous implementation, based on legacy Xposed API and spread across multiple version-spe...
👏1
🚀 **OShin New CI Build!**
fix(StatusBar): 修复指标容器添加位置错误,兼容包裹层结构变化
- 新增 clockWrapper 层级解析,防止 clockTextView 直接父级不是最终容器导致布局错位
- 调整容器插入逻辑,优先在 clockWrapper 之后插入,找不到则使用备用添加方案
- 优化资源清理与容器重建流程,防止重复附加或视图泄漏
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/0bc5e23d9591529223f4c4133344854938f78b08)
fix(StatusBar): 修复指标容器添加位置错误,兼容包裹层结构变化
- 新增 clockWrapper 层级解析,防止 clockTextView 直接父级不是最终容器导致布局错位
- 调整容器插入逻辑,优先在 clockWrapper 之后插入,找不到则使用备用添加方案
- 优化资源清理与容器重建流程,防止重复附加或视图泄漏
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/0bc5e23d9591529223f4c4133344854938f78b08)
GitHub
fix(StatusBar): 修复指标容器添加位置错误,兼容包裹层结构变化 · suqi8/OShin@0bc5e23
- 新增 clockWrapper 层级解析,防止 clockTextView 直接父级不是最终容器导致布局错位
- 调整容器插入逻辑,优先在 clockWrapper 之后插入,找不到则使用备用添加方案
- 优化资源清理与容器重建流程,防止重复附加或视图泄漏
- 调整容器插入逻辑,优先在 clockWrapper 之后插入,找不到则使用备用添加方案
- 优化资源清理与容器重建流程,防止重复附加或视图泄漏
🚀 **OShin New CI Build!**
feat(weather): 新增天气应用去除二级页面广告功能
- 新增 hook.weather 包与 RemoveAds.kt 实现广告屏蔽逻辑
- 新增 features.weather 页面定义与对应开关项
- 在 HookEntry 中启用 weather hook
- 在 FeatureRegistry 注册 weather 模块
- 在 strings.xml 添加 “移除二级页面广告” 文本资源
- 在 array.xml 中添加 com.coloros.weather2 以启用天气模块
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/390390e110f3319ee30d4f74606d288af5b7fcb9)
feat(weather): 新增天气应用去除二级页面广告功能
- 新增 hook.weather 包与 RemoveAds.kt 实现广告屏蔽逻辑
- 新增 features.weather 页面定义与对应开关项
- 在 HookEntry 中启用 weather hook
- 在 FeatureRegistry 注册 weather 模块
- 在 strings.xml 添加 “移除二级页面广告” 文本资源
- 在 array.xml 中添加 com.coloros.weather2 以启用天气模块
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/390390e110f3319ee30d4f74606d288af5b7fcb9)
GitHub
feat(weather): 新增天气应用去除二级页面广告功能 · suqi8/OShin@390390e
- 新增 hook.weather 包与 RemoveAds.kt 实现广告屏蔽逻辑
- 新增 features.weather 页面定义与对应开关项
- 在 HookEntry 中启用 weather hook
- 在 FeatureRegistry 注册 weather 模块
- 在 strings.xml 添加 “移除二级页面广告” 文本资源
- 在 array.xml 中添加 com...
- 新增 features.weather 页面定义与对应开关项
- 在 HookEntry 中启用 weather hook
- 在 FeatureRegistry 注册 weather 模块
- 在 strings.xml 添加 “移除二级页面广告” 文本资源
- 在 array.xml 中添加 com...