feat: Introduce RELEASE_NOTES.md detailing new VPN and device info features, bug fixes, Xposed removal, and update version to 3.1.1-beta.

This commit is contained in:
alex5402
2026-01-31 14:04:16 +05:30
parent 272e8cfe6e
commit 35778be72c
2 changed files with 107 additions and 1 deletions
+106
View File
@@ -0,0 +1,106 @@
# Release Notes - NewBlackbox
## Version: Latest Build (2026-01-31)
---
### New Features
#### VPN Network Mode Toggle
Added a new setting to choose between VPN and normal network mode for sandboxed apps.
- **Location:** Settings → Others → Use VPN Network
- **Default:** OFF (normal network mode)
- When enabled, traffic is routed through BlackBox's VPN service
- Requires app restart to take effect
**Files Changed:**
- `app/src/main/java/top/niunaijun/blackboxa/view/main/BlackBoxLoader.kt`
- `app/src/main/java/top/niunaijun/blackboxa/view/setting/SettingFragment.kt`
- `app/src/main/res/xml/setting.xml`
- `app/src/main/res/values/strings.xml`
- `Bcore/src/main/java/top/niunaijun/blackbox/app/configuration/ClientConfiguration.java`
- `Bcore/src/main/java/top/niunaijun/blackbox/BlackBoxCore.java`
#### Device Information Logging
Added comprehensive device info header in logcat for easier debugging:
- Android version, SDK level, security patch
- Device manufacturer, brand, model, hardware
- Supported CPU/ABIs (32-bit and 64-bit)
- Memory info (heap usage)
- App version and package info
- Build fingerprint and timestamps
---
### Bug Fixes
#### VPN Permission Fix
**Problem:** VPN service failed to establish interface (`builder.establish()` returned null).
**Root Cause:** Android requires `VpnService.prepare()` to be called from an Activity before VPN can be established.
**Solution:** Added VPN permission request to `MainActivity.kt` on app launch.
**Files Changed:**
- `app/src/main/java/top/niunaijun/blackboxa/view/main/MainActivity.kt`
---
#### Android 10 Black Screen Fix
**Problem:** Apps would show a black screen and timeout on Android 10 (API 29).
**Root Cause:**
- `BRAttributionSource.getRealClass()` returns `null` on Android < 31
- `SystemProviderStub.invoke()` crashed calling `.getName()` on null class
- `ClassInvocationStub.injectHook()` crashed when `getWho()` returned null
**Solution:**
- Added null checks in `SystemProviderStub.java` for API version checks
- Added null check in `ClassInvocationStub.java` to skip hooks when services don't exist
**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`
---
### Removed Features
#### Xposed Framework Support
- Removed `BXposedManagerService` and related AIDL interfaces
- Removed "Install Xposed Module" UI and Settings entries
- Cleaned up Xposed-related flags and package checks
---
### Stability Improvements
#### Anti-Detection Native Hook Stability
- Removed `LOGD` calls from critical native hooks to prevent infinite recursion
- Fixed syntax errors in hook implementations
- Hooks now silently return `ENOENT` for blocked paths
---
### Known Issues
#### Oppo/ColorOS Thermal Stats Error
On Oppo/ColorOS devices, you may see errors like:
```
OppoThermalStats: PackageManager$NameNotFoundException: top.niunaijun.blackboxa:p0
```
**This is harmless** - it's an Oppo system bug where their thermal management incorrectly uses process names (with `:p0` suffix) instead of package names. The app works normally.
---
### 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+ | ✅ Supported |
+1 -1
View File
@@ -11,7 +11,7 @@ ext {
// targetSdkVersion = 35
minSdk = 21
versionCode = 1
versionName = "3.1.0-beta"
versionName = "3.1.1-beta"
xVersion = '1.1.0'
hiddenApiBypass = '4.3'
}