13 KiB
BlackBox Virtual Environment - Complete User Guide
Table of Contents
- Overview
- Installation & Setup
- App Management
- WebView & Browser Support
- Google Services Integration
- Background Job Management
- Troubleshooting
- Advanced Features
- API Reference
- Frequently Asked Questions
Overview
BlackBox is a comprehensive Android virtualization solution that creates isolated environments for running apps. The latest version includes significant improvements for:
- App Installation & Management: Robust app installation with cloning prevention
- WebView Support: Complete WebView compatibility for browsers and web apps
- Google Services: Enhanced Google account and GMS integration
- Background Jobs: WorkManager and JobScheduler compatibility
- UID Management: Smart UID spoofing for system compatibility
- Crash Prevention: Comprehensive error handling and recovery
Installation & Setup
Prerequisites
- Android 8.0+ (API 26+)
- Root access (recommended for full functionality)
- At least 2GB free storage space
- Internet connection for initial setup
Basic Installation
- Download BlackBox APK from the official source
- Install the APK using your preferred method
- Grant Permissions when prompted:
- Storage access
- System overlay (for floating features)
- Location (for GPS spoofing)
- Notification access (Android 12+)
Initial Configuration
# First launch will create virtual environment
# Wait for initialization to complete
# Check logs for any setup issues
App Management
Installing Apps
Method 1: APK File Installation
// Using BlackBoxCore API
BlackBoxCore.get().installPackageAsUser(apkFile, userId);
// Example with error handling
try {
InstallResult result = BlackBoxCore.get().installPackageAsUser(apkFile, 0);
if (result.isSuccess()) {
Log.d("BlackBox", "App installed successfully: " + result.getPackageName());
} else {
Log.e("BlackBox", "Installation failed: " + result.getErrorMessage());
}
} catch (Exception e) {
Log.e("BlackBox", "Installation error", e);
}
Method 2: Package Name Installation
// Install from existing package
BlackBoxCore.get().installPackageAsUser("com.example.app", userId);
// Check if package exists first
if (BlackBoxCore.getPackageManager().getPackageInfo("com.example.app", 0) != null) {
BlackBoxCore.get().installPackageAsUser("com.example.app", userId);
}
Method 3: URI Installation
// Install from content URI
Uri apkUri = Uri.parse("content://com.example.provider/app.apk");
BlackBoxCore.get().installPackageAsUser(apkUri, userId);
App Removal
Uninstall Virtual App
// Remove app from virtual environment
BlackBoxCore.get().uninstallPackage(packageName, userId);
// Force uninstall if needed
BlackBoxCore.get().uninstallPackage(packageName, userId, true);
Clean App Data
// Clear app data without uninstalling
BlackBoxCore.get().clearAppData(packageName, userId);
// Clear specific data types
BlackBoxCore.get().clearAppData(packageName, userId, "cache");
BlackBoxCore.get().clearAppData(packageName, userId, "data");
App Management Utilities
List Installed Apps
// Get all virtual apps
List<AppInfo> virtualApps = BlackBoxCore.get().getInstalledApps(userId);
// Get specific app info
AppInfo appInfo = BlackBoxCore.get().getAppInfo(packageName, userId);
// Check if app is installed
boolean isInstalled = BlackBoxCore.get().isAppInstalled(packageName, userId);
App Configuration
// Enable/disable app
BlackBoxCore.get().setAppEnabled(packageName, userId, true);
// Set app permissions
BlackBoxCore.get().setAppPermission(packageName, permission, userId, true);
// Configure app settings
BlackBoxCore.get().setAppSetting(packageName, setting, value, userId);
WebView & Browser Support
WebView Configuration
Automatic WebView Setup
The new WebView system automatically handles:
- Unique Data Directories: Each virtual app gets isolated WebView storage
- Process Isolation: WebView conflicts between apps are prevented
- Data Persistence: WebView data is preserved per app
Manual WebView Configuration
// Set custom WebView data directory
WebView.setDataDirectorySuffix("custom_suffix");
// Configure WebView settings
WebView webView = new WebView(context);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
Browser App Support
Chrome/Firefox Compatibility
// Browser apps automatically get:
// - Isolated WebView instances
// - Separate cookie storage
// - Independent cache directories
// - Process isolation
Web App Support
// Progressive Web Apps (PWAs) work with:
// - Service worker isolation
// - Cache storage separation
// - Background sync support
Google Services Integration
Google Account Management
Automatic Account Handling
// Google accounts are automatically managed:
// - Mock Google accounts for virtual environment
// - Authentication token handling
// - Account synchronization
Custom Account Configuration
// Add custom Google accounts
AccountManager accountManager = AccountManager.get(context);
Account account = new Account("user@gmail.com", "com.google");
accountManager.addAccountExplicitly(account, "password", null);
// Configure account sync
ContentResolver.setSyncAutomatically(account, "com.google", true);
Google Play Services
GMS Compatibility
// Google Play Services automatically:
// - Returns mock package info
// - Handles authentication requests
// - Provides fallback implementations
Custom GMS Configuration
// Override GMS behavior if needed
GmsProxy.setCustomGmsInfo("com.example.gms", customInfo);
// Configure GMS permissions
GmsProxy.setGmsPermission("com.example.gms", permission, true);
Background Job Management
WorkManager Integration
Automatic WorkManager Handling
// WorkManager automatically:
// - Handles UID validation issues
// - Provides fallback implementations
// - Prevents crashes on job scheduling
Custom Work Configuration
// Configure custom work
WorkManager workManager = WorkManager.getInstance(context);
// Create work request
OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(MyWorker.class)
.setInputData(inputData)
.build();
// Enqueue work
workManager.enqueue(workRequest);
JobScheduler Compatibility
Job Scheduling
// Jobs are automatically handled with:
// - UID validation bypass
// - Fallback mechanisms
// - Error recovery
Custom Job Configuration
// Create custom job
JobInfo.Builder builder = new JobInfo.Builder(jobId, componentName);
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
builder.setRequiresCharging(true);
// Schedule job
JobScheduler scheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
scheduler.schedule(builder.build());
Advanced Features
UID Spoofing
Automatic UID Management
// UID spoofing automatically:
// - Detects UID validation issues
// - Selects appropriate UIDs for operations
// - Provides fallback UIDs when needed
Custom UID Configuration
// Configure custom UID for specific operations
UIDSpoofingHelper.setCustomUID("operation", "package", customUID);
// Override UID selection logic
UIDSpoofingHelper.setUIDStrategy("operation", customStrategy);
Process Management
Virtual Process Control
// Control virtual processes
BlackBoxCore.get().startVirtualProcess(packageName, userId);
BlackBoxCore.get().stopVirtualProcess(packageName, userId);
// Monitor process status
ProcessInfo processInfo = BlackBoxCore.get().getProcessInfo(packageName, userId);
Memory Management
// Optimize memory usage
BlackBoxCore.get().optimizeMemory(userId);
// Clear unused resources
BlackBoxCore.get().clearUnusedResources(userId);
Troubleshooting
Common Issues
App Installation Failures
# Check logs for installation errors
adb logcat | grep "BlackBox"
# Common solutions:
# 1. Ensure sufficient storage space
# 2. Check APK file integrity
# 3. Verify package compatibility
# 4. Clear BlackBox cache
WebView Issues
# WebView troubleshooting:
# 1. Check WebView data directories
# 2. Verify WebView provider status
# 3. Clear WebView cache
# 4. Restart virtual environment
Google Services Problems
# GMS troubleshooting:
# 1. Check GMS proxy status
# 2. Verify account configuration
# 3. Clear GMS cache
# 4. Reinstall GMS components
Debug Mode
Enable Debug Logging
// Enable comprehensive logging
BlackBoxCore.setDebugMode(true);
// Set log level
Slog.setLogLevel(Slog.LEVEL_DEBUG);
// Enable specific debug features
BlackBoxCore.enableDebugFeature("webview", true);
BlackBoxCore.enableDebugFeature("gms", true);
Log Analysis
# Filter BlackBox logs
adb logcat | grep "BlackBox\|WebView\|GmsProxy\|WorkManager"
# Save logs to file
adb logcat > blackbox_logs.txt
# Analyze specific components
adb logcat | grep "JobServiceStub\|WebViewProxy\|GoogleAccountManagerProxy"
API Reference
Core Classes
BlackBoxCore
// Main entry point
BlackBoxCore core = BlackBoxCore.get();
// Core methods
core.installPackageAsUser(apkFile, userId);
core.uninstallPackage(packageName, userId);
core.getInstalledApps(userId);
core.isAppInstalled(packageName, userId);
BActivityThread
// Activity thread management
int userId = BActivityThread.getUserId();
String packageName = BActivityThread.getAppPackageName();
String processName = BActivityThread.getAppProcessName();
UIDSpoofingHelper
// UID management utilities
int systemUID = UIDSpoofingHelper.getSystemUID();
int packageUID = UIDSpoofingHelper.getPackageUID(packageName);
boolean needsSpoofing = UIDSpoofingHelper.needsUIDSpoofing(operation, packageName);
Service Proxies
WebViewProxy
// WebView management
WebViewProxy.configureWebView(webView, context);
WebViewProxy.setDataDirectorySuffix(suffix);
String dataDir = WebViewProxy.getDataDirectory();
WorkManagerProxy
// WorkManager compatibility
WorkManagerProxy.enqueueWork(workRequest);
WorkManagerProxy.cancelWork(workId);
List<WorkInfo> workInfos = WorkManagerProxy.getWorkInfos();
GoogleAccountManagerProxy
// Google account management
Account[] accounts = GoogleAccountManagerProxy.getAccounts();
String token = GoogleAccountManagerProxy.getAuthToken(account, authTokenType);
boolean success = GoogleAccountManagerProxy.addAccount(account, password, extras);
Frequently Asked Questions
Q: Why do some apps show black screens?
A: This is usually caused by context or resource loading issues. The new BlackBox version includes comprehensive fixes for:
- Context management
- Resource loading
- Activity lifecycle
- Service initialization
Q: How do I fix WebView issues in browsers?
A: The new WebView system automatically handles:
- Data directory conflicts
- Process isolation
- Provider issues
- Cache management
Q: Why do background jobs fail?
A: Background job failures are now handled by:
- WorkManager compatibility layer
- JobScheduler UID validation bypass
- Smart UID spoofing
- Graceful fallback mechanisms
Q: How do I prevent app cloning issues?
A: BlackBox now includes:
- Automatic cloning prevention
- Package validation
- Security checks
- Error messages for blocked installations
Q: What if Google services don't work?
A: The new GMS system provides:
- Mock Google Play Services
- Account authentication fallbacks
- Token management
- Service compatibility layers
Support & Updates
Getting Help
- Documentation: Check this Docs.md file
- Logs: Enable debug mode and analyze logs
- Community: Join BlackBox user forums
- Issues: Report bugs with detailed logs
Version History
- v2.0: Complete rewrite with new architecture
- v2.1: WebView and browser compatibility
- v2.2: Google services integration
- v2.3: Background job management
- Current: UID spoofing and crash prevention
Future Features
- Enhanced Security: Additional anti-detection features
- Performance: Memory and CPU optimization
- Compatibility: Support for more Android versions
- Integration: Additional service proxies
Conclusion
The new BlackBox virtual environment provides a robust, feature-rich solution for Android app virtualization. With comprehensive WebView support, Google services integration, and background job management, it offers enterprise-grade functionality for both developers and end users.
For the best experience:
- Keep BlackBox updated to the latest version
- Enable debug logging when troubleshooting
- Monitor system resources for optimal performance
- Report issues with detailed logs for faster resolution
Happy virtualizing! 🚀✨