diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index e71a85e..573d08c 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,31 +1,56 @@ # Release Notes - NewBlackbox -## Version: Latest Build (2026-01-30) +## Version: Latest Build (2026-01-31) -### Major Changes +### Bug Fixes -#### 1. Removal of Xposed Framework Support -**Summary:** The Xposed module loading and management features have been completely removed from BlackBox to streamline the core and remove legacy dependencies. -**Details:** -- Removed `BXposedManagerService` and related AIDL interfaces. -- Removed "Install Xposed Module" UI and Settings entries. -- Removed Xposed enablement flags in `BlackBoxCore` and `ClientConfiguration`. -- Cleaned up `AppSystemEnv` and repositories to remove Xposed package checks. -- Removed `FLAG_XPOSED` from `InstallOption` and `USER_XPOSED` from `BUserHandle`. +#### Android 10 Black Screen Fix +**Problem:** Apps would show a black screen and timeout on Android 10 (API 29) due to initialization failures. + +**Root Cause:** +- `BRAttributionSource.getRealClass()` returns `null` on Android < 31 (AttributionSource was added in Android S) +- `SystemProviderStub.invoke()` crashed calling `.getName()` on null class +- `ClassInvocationStub.injectHook()` crashed when `getWho()` returned null for non-existent services -#### 2. Anti-Detection Stability Fix -**Problem:** The native file system hooks in `AntiDetection.cpp` were causing application crashes due to infinite recursion (Hook calls logging -> Logging calls `open` -> `open` hook calls Logging). **Solution:** -- Removed all `LOGD` calls from critical native hooks (`my_fopen`, `my_open`, `my_stat`, etc.). -- Fixed syntax errors in hook implementations. -- Hooks now silently return `ENOENT` for blocked paths without triggering recursion. +- Added null checks in `SystemProviderStub.java` before accessing `BRAttributionSource.getRealClass()` +- Added null check in `ClassInvocationStub.java` to skip hooks when services don't exist -### Technical Details +**Files Changed:** +- `Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/SystemProviderStub.java` +- `Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ClassInvocationStub.java` -**Refactoring:** -- Deleted `Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BXposedManager.java` -- Deleted `app/src/main/java/top/niunaijun/blackboxa/view/xp` (Xposed UI) -- Fixed compilation errors in `BlackBoxCore.java` and `AppSystemEnv.java` resulting from the removal. +--- -**Known Limitations:** -- **Native Signature Spoofing:** While `AntiDetection` hooks are stable, fully spoofing the APK signature at the native level (for apps that read the APK file directly) is not fully implemented. The current hooks hide blocked files but do not redirect file access to the original APK. Implementing this requires **PLT Hooking** (e.g., via xHook) and knowledge of the original APK path. \ No newline at end of file +### Removed Features + +#### Xposed Framework Support Removed +- Removed `BXposedManagerService` and related AIDL interfaces +- Removed "Install Xposed Module" UI and Settings entries +- Removed Xposed enablement flags in `BlackBoxCore` and `ClientConfiguration` +- Cleaned up `AppSystemEnv` and repositories to remove Xposed package checks + +--- + +### 🔧 Stability Improvements + +#### Anti-Detection Native Hook Stability +**Problem:** Native file system hooks caused crashes due to infinite recursion. + +**Solution:** +- Removed `LOGD` calls from critical native hooks (`my_fopen`, `my_open`, `my_stat`, etc.) +- Fixed syntax errors in hook implementations +- Hooks now silently return `ENOENT` for blocked paths + +--- + +### Compatibility + +| Android Version | Status | +|-----------------|--------| +| Android 10 (Q) | ✅ Fixed | +| Android 11 (R) | ✅ Supported | +| Android 12 (S) | ✅ Supported | +| Android 13 (T) | ✅ Supported | +| Android 14 (U) | ✅ Supported | +| Android 15+ | ⚠️ Requires testing |