Covers most common questions people ask instead of reading:
- Network encryption/obfuscation status
- EA URL elimination details
- Server configuration system
- SSL certificate options
- APK building process
- Gameplay features status
- Troubleshooting guide
- Quick reference commands
Now we can just link the FAQ when people ask! 😊
Implements a setup dialog on first game launch that allows users to enter
their custom community server URL without rebuilding the APK.
Features:
- Server URL input dialog on first launch
- URL validation (format check)
- Connection test button
- SharedPreferences storage
- Priority: SharedPreferences > AndroidManifest.xml > EA defaults
- Activity restart flow for applying configuration
New files:
- CommunityServerManager.smali (URL management)
- ServerSetupActivity.smali + 4 inner classes (dialog UI)
- res/layout/activity_server_setup.xml (layout)
- SERVER-URL-INPUT-IMPLEMENTATION.md (docs)
Modified files:
- SynergyEnvironmentImpl.smali (SharedPreferences check priority)
- MainActivity.smali (first-launch check + onActivityResult)
- AndroidManifest.xml (declare ServerSetupActivity)
Benefits:
- One APK works with any server
- Easy server switching
- Lower barrier to entry for non-technical users
- Confirms NO certificate pinning in RR3
- SSL validation DISABLED by default (m_bSSLCheck = false)
- Custom servers work with any certificate
- Self-signed, Let's Encrypt, expired certs all work
- Addresses Discord developer's certificate concerns
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
MainActivity's onCreateJNI() was crashing with JNI null pointer error.
The native code expects proper initialization flow that starts with
UnpackAssetsActivity, which then launches MainActivity.
Restored original launcher flow:
- UnpackAssetsActivity: launcher (exported=true)
- MainActivity: internal activity (exported=false)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Restored MainActivity from commit f3960ee35 (before Phase 1 offline mode).
This version has no references to LocalSaveManager or offline mode classes.
Fixes NoClassDefFoundError crash on startup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Android 15+ requires 16KB-aligned PT_LOAD segments in ELF files for mmap.
The .so files in this APK were compiled with 4KB alignment.
Setting extractNativeLibs=true forces extraction to disk, bypassing the check.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The -p flag only does 4KB alignment, not 16KB.
Correct command: zipalign -P 16 (uppercase P with page size)
Result: All 28/28 native .so libraries properly 16KB-aligned
Verified: Alignment preserved through apksigner v2/v3 signing
Tested: Android 16 (API 36) compatible
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Set extractNativeLibs=true to bypass 16KB alignment requirement
- Lower targetSDK to 34 for compatibility mode
- Update RR3-Community-Mod.ps1 with 16KB zipalign command
- Tested on Android 16 (API 36)
Issue: apksigner 0.9 breaks 16KB alignment when signing
Solution: Extract libs to disk instead of mmap
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reverted MainActivity.smali to original v14 version to fix startup crash.
Settings menu integration will be added in future release after testing.
Status: Stable v15.0.0-community-alpha base
Working: Game launches successfully
TODO: Re-add settings menu integration carefully
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ServerSelectionActivity was causing crashes on startup. Reverted to
stable MainActivity as launcher. ServerSelectionActivity kept as
optional activity for future implementation.
Fixes: White screen crash on app launch
Status: Stable build ready for testing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Regenerated resource IDs for new layout files
- Fixed activity_server_selection and dialog_server_input layouts
- Updated build process to use apksigner with v2/v3 signatures
- Proper zipalign and native library handling
Version: 15.0.0-community-alpha
Build: Force-all rebuild to ensure resource consistency
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This major version bump reflects significant community modifications:
- In-game settings menu with web panel sync
- Custom server URL configuration
- Offline/Online play modes
- Device settings management API
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Features:
- SettingsActivity accessible via Menu button (keycode 82)
- Configure server URL and mode (online/offline) in-game
- Test connection before saving settings
- Switch to offline mode with one tap
- Sync settings from web admin panel
- Real-time status messages with emoji indicators
Implementation:
- Created 13 SettingsActivity Smali files (main + inner classes)
- Created activity_settings.xml UI layout
- Added SettingsActivity to AndroidManifest.xml (portrait mode)
- Modified MainActivity.smali to handle Menu button press
- Integrated with existing ServerManager for Nimble SDK overrides
- Settings stored in SharedPreferences (rr3_server_config.xml)
APK:
- Built and signed: RR3-v14-Settings-Menu.apk (103 MB)
- Keystore: rr3-release.keystore (alias: rr3key)
- Ready for distribution
Related server changes:
- ServerSettingsController.cs with 3 API endpoints
- DeviceSettings.cshtml admin page
- UserSettings database model and migration
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- NEW: ServerSelectionActivity as main launcher
- Beautiful startup menu (Offline/Online modes)
- URL input dialog with custom port support
- Quick select presets (Official/Local/Custom)
- 'Remember my choice' persistence
- Help dialog for first-time users
- NEW: ServerManager for Nimble SDK URL overrides
- Automatically configures all EA endpoints
- Supports custom ports (:8443, :3000, etc.)
- Comprehensive error handling and logging
- Modified MainActivity to read Intent extras
- Reads mode (online/offline) from ServerSelectionActivity
- Configures custom server before game init
- Maintains backward compatibility
- Modified AndroidManifest.xml
- ServerSelectionActivity is now LAUNCHER
- UnpackAssetsActivity no longer exports MAIN intent
- Intent extras preserved through activity chain
- Added XML layouts
- activity_server_selection.xml (main menu UI)
- dialog_server_input.xml (URL input dialog)
- Server URL format: https://domain.com:port
- SharedPreferences: rr3_server_config.xml
Ready for Phase 2: Community server backend implementation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Decompiled RealRacing3 v14.0.1 (versionCode 14001)
- Patched EnvironmentDataContainer.getLatestAppVersionCheckResult() to always return 0 (APP_VERSION_OK)
- Copied all offline managers from v13: LocalSaveManager, OfflineModeManager, OfflineCurrencyManager, OfflineEventsManager
- Applied delayed initialization fix to MainActivity (500ms Handler.postDelayed)
- Added MainActivity\ inner class with try-catch wrapper
- Server killswitch completely bypassed - game will work after March 2026 shutdown
- Compatible with v13 APKs (same signing key: rr3-release.keystore)
This is the ULTIMATE EDITION: Latest game version + no killswitch + offline mode + crash fixed
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Move init calls from onCreate() to Handler.postDelayed()
- Create OfflineInitRunnable inner class for delayed execution
- Add try-catch wrapper for safety
- Add detailed logging for debugging
This fixes the crash caused by offline managers trying to access
Context/SharedPreferences before Android system fully initializes.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Created OfflineEventsManager.smali (all event types supported)
- Time Trials / Limited Time Series (LTS) available offline
- Daily Battles available offline
- Seasonal Championships available offline
- Special Events available offline
- Event validation bypassed in offline mode
- Automatic rewards based on finishing position
- Modified OfflineResponseMock to handle event API calls
- Builds successfully - DISCORD PHASE 2 COMPLETE!
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Created OfflineCurrencyManager.smali (unlimited currency for offline)
- Sets 100M M\$ and 10M Gold on initialization
- Provides getCash/getGold methods for offline play
- Supports both unlimited and tracked currency modes
- Modified MainActivity to initialize currency manager
- Builds successfully
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide
This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)
Total: 44,417 files, 538.51 MB Smali source code
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
MAJOR UPDATE - In-game server management without rebuilding APK!
SERVER BROWSER UI:
- Beautiful WebView-based interface
- Add/edit/delete unlimited servers
- Real-time online/offline status
- One-click server switching
- Favorites system
- Connection testing before save
- Professional UX with racing theme
HTML ASSETS:
+ assets/community_servers_list.html
- Main server browser interface
- Server cards with status indicators
- Connect/Edit/Delete actions
- Empty state and loading states
+ assets/community_server_edit.html
- Add/edit server form
- URL validation and testing
- Favorite marking
- Professional form design
INSTALLATION TOOL:
+ RR3-Server-Browser-Installer.ps1
- Automated installation script
- Decompiles APK with apktool
- Injects HTML assets
- Updates AndroidManifest.xml
- Rebuilds and signs APK
- Pre-configure default servers
- Full error handling
DOCUMENTATION:
+ docs/SERVER_BROWSER_GUIDE.md
- Complete user guide
- Adding/editing/deleting servers
- Connection flow
- Troubleshooting
- Developer integration
+ docs/SMALI_REFERENCE.md
- Java bridge code reference
- CommunityServerManager class
- WebView activity hosts
- Smali conversion guide
- Testing & debugging tips
UPDATED README:
* Comprehensive overview
* Quick start examples
* Feature highlights
* Use cases (players/owners/devs)
* Architecture explanation
* Screenshots in ASCII art
ARCHITECTURE:
- HTML/CSS/JS UI layer (assets/)
- JavascriptInterface bridge (smali)
- SharedPreferences storage
- SynergyEnvironmentImpl patch
- WebView activities for hosting
USER FLOW:
1. Open Server Browser from game
2. Add server (name + URL)
3. Test connection
4. Save server
5. Tap Connect
6. Restart game -> Active!
BENEFITS:
✓ One APK for unlimited servers
✓ No rebuild needed to change servers
✓ Users can add servers themselves
✓ Server owners can share one APK
✓ Professional UI experience
✓ Local + LAN + public servers
✓ Favorites and status tracking
TECHNICAL DETAILS:
- Data stored in SharedPreferences
- JavaScript <-> Android bridge
- Async server pinging
- URL validation
- Toast notifications
- File:// asset loading
This enables true community server ecosystem!
Users can maintain their own server list
without technical knowledge or APK rebuilding.
Perfect companion to rr3-server project!
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>