6.1 KiB
Release Notes - NewBlackbox
Version: Latest Build (2026-01-30)
Major Fixes
1. Fixed Instagram and App Crashes on Android 14+
Problem: Apps like Instagram were crashing with SecurityException due to package/UID verification failures in SensitiveContentProtectionManagerService.
Solution:
- Created
ISensitiveContentProtectionManagerProxyto hook the Android 14+ sensitive content protection service - Intercepts
setSensitiveContentProtection()calls and replaces guest package names with host package name - Properly implements
getWho()using reflection to obtain the original service interface - Includes safety checks to only hook when service exists (Android 14+)
Files Modified:
Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ISensitiveContentProtectionManagerProxy.java(NEW)Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/HookManager.java
Impact: Instagram and other apps now work correctly on Android 14+ devices
2. Fixed ContentProvider Call Method Crashes
Problem: Apps were crashing when ContentProviders' call() method had AttributionSource objects nested deep within Bundle arguments.
Solution:
- Created
AttributionSourceUtilsutility class with recursive Bundle traversal - Handles deeply nested
AttributionSourceobjects in Bundles and Parcelables - Correctly fixes UID to use
getHostUid()instead ofgetBUid()
Files Modified:
Bcore/src/main/java/top/niunaijun/blackbox/utils/AttributionSourceUtils.java(NEW)Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/ContentProviderStub.javaBcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/SystemProviderStub.java
Impact: Apps using ContentProvider for deep links, inter-app communication, and settings no longer crash
3. Fixed SettingsProvider "Invalid Method" Errors
Problem: System SettingsProvider was receiving the package name instead of the actual method name (e.g., "GET_global"), causing "Invalid method" errors and crashes.
Solution:
- Updated
SystemProviderStubandContentProviderStubto NOT replace String arguments forcall()methods - String arguments in
call()are method names like "GET_global", "PUT_system", etc., not package names - Only replaces package names for query/insert/update/delete operations where appropriate
Files Modified:
Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/SystemProviderStub.javaBcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/ContentProviderStub.java
Impact: Settings-related operations and system preferences now work correctly
4. Improved ContentProvider Error Handling
Problem: ContentProvider call() methods were returning null on errors, causing NullPointerException crashes in apps expecting valid Bundle responses.
Solution:
- Updated
getSafeDefaultValue()inContentProviderStubto return emptyBundle()instead ofnullforcall()method - Prevents NPE crashes in apps that don't null-check ContentProvider responses
Files Modified:
Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/ContentProviderStub.java
Impact: Apps handle ContentProvider errors gracefully without crashes
Technical Improvements
AttributionSource Handling
- Implemented comprehensive recursive traversal of Bundle and Parcelable structures
- Handles nested AttributionSource objects at any depth
- Properly clones Bundles and Parcelables to avoid modifying shared state
- Includes safety checks for null values and class loading errors
Hook Architecture
- Improved
BinderInvocationStubusage patterns - Added proper
getWho()implementations using reflection - Enhanced
isBadEnv()checks to detect and recover from hook failures - Added service existence checks before attempting to hook Android version-specific services
Known Limitations
Browser Compatibility
GeckoView/Chromium-based browsers (e.g., Nira Browser):
- These browsers use native rendering engines (libxul.so for Gecko, Chromium for Chrome-based)
- Native crashes occur during engine initialization due to:
- Multi-process architecture conflicts
- Seccomp syscall filtering incompatibilities
- Low-level shared memory/IPC issues
Recommendation: Use WebView-based browsers instead:
- Via Browser
- Privacy Browser
- JQuarks Browser
- Simple Browser
These use Android's built-in WebView and work correctly in virtualized environments.
Testing
Tested Apps:
- Instagram - Now works on Android 14+
- Apps using SettingsProvider
- Apps using ContentProvider for IPC
- GeckoView/Chromium-based browsers (native engine limitation)
Test Environment:
- Android 14 (API 34)
- Device: Various devices with Android 12+
Future Improvements
- Native Engine Support: Investigate native layer modifications to support browser engines
- Additional Android 14 APIs: Monitor for new system services requiring hooks
- Performance: Optimize recursive Bundle traversal for large data structures
- Logging: Add debug mode to trace ContentProvider and service hook operations
Contributors
- Fixed by: AI Assistant (Antigravity)
- Tested by: alex5402
- Date: 2026-01-30
Upgrade Instructions
-
Clean build:
./gradlew clean assembleDebug -
Install the updated APK on your device
-
Test with previously crashing apps (e.g., Instagram on Android 14+)
Bug Reports
If you encounter issues:
- Capture full logcat:
adb logcat > crash.log - Note the Android version and device model
- Identify which app is crashing
- Check for
SecurityException,NullPointerException, or other errors
Summary
This release primarily focuses on Android 14 compatibility and ContentProvider crash fixes. Apps that previously crashed due to package/UID verification, AttributionSource handling, or SettingsProvider issues should now work correctly.
Breaking Changes: None
Minimum Android Version: Unchanged (Android 5.0+)
Recommended Android Version: Android 12+ for best compatibility