OShin | O神「自动构建 CI Build」
1.5K subscribers
2 photos
771 files
678 links
OPPO/OneOlus 系统辅助应用

Channel/频道
@OPatchA
Chat/聊天
@OPatchB
Download Telegram
🚀 **OShin New CI Build!**

Refactor(Settings): Localize toast messages and improve preference handling

This commit refactors the to improve code quality and internationalization.

All hardcoded toast message strings for settings import, export, and clear operations have been replaced with string resources from . This enables easier localization and maintenance.

Additionally, the preference-writing logic has been updated to use instead of . This performs the save operation asynchronously, preventing potential UI thread blockage during file I/O.

### Key Changes:

* **:**
* Replaced hardcoded toast messages for success and failure of export, import, and clear actions with new string resources (, , etc.).
* Changed to for to handle saving preferences off the main thread.
* Removed redundant comments.

* **:**
* Added new string resources for success and failure notifications related to settings management.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/7b6b934b3d8dff84d1d199becd325a3f2b94a48d)
🚀 **OShin New CI Build!**

Feat(Settings): Add dynamic Oplus feature controller

This commit introduces a new feature that dynamically scans the Oplus Settings application for hidden feature flags and allows users to control them.

It scans for boolean methods within and , presenting them in a new Features screen. Users can then choose to force-enable, force-disable, or leave each feature at its default state. This enables advanced customization by unlocking experimental or region-locked functionalities.

The feature list is discovered using DexKit and communicated to the app via . To improve performance, the list is cached in SharedPreferences and only rescanned on demand.

### Key Changes:

* ** (New Hook):**
* A new hook for .
* Uses DexKit to scan for methods in and .
* Listens for a request from the app via to start the scan and sends the discovered method names back.
* Hooks the discovered methods to override their return value based on user configuration (/).

* ** & (New UI):**
* Adds a new screen and ViewModel to display and manage the discovered features.
* The screen requests the feature list from the hook and displays it in a .
* The ViewModel manages state, caches the feature list, and saves user choices to SharedPreferences.

* **UI & Navigation:**
* A new Features entry is added to the Settings page.
* Refactored the SystemUI features by grouping all status bar customizations under a new Status Bar sub-page for better organization.
* Updated preference keys and navigation routes to reflect the new structure.

* **Refactor & Cleanup:**
* Moved and removed the now-redundant hook from the package into a more organized structure.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/02e7e737053a127a48bed569a2ba579ee164805b)
🚀 **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)
🚀 **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)
应用安装器-移除安装前安全检测已适配5.x,其他功能暂时移除
1
🚀 **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)
🚀 **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)
🚀 **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)
🚀 **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)
🚀 **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)
2
从此条消息开始,将仅支持安卓16系统
😭52👏11🤯5😁2