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! 😊
12 KiB
RR3 Community Server - Frequently Asked Questions (FAQ)
Last Updated: February 23, 2026
Project: Real Racing 3 Community Server + APK Mod
🤔 "Just Read The Code" - Common Questions
Before asking, check here first! All code is public on Gitea - but here are the most common questions answered quickly.
🔐 Security & Encryption
Q: Is the network communication encrypted?
A: Yes AND No - it depends what you mean:
- Transport (HTTPS/TLS): ✅ YES - data is encrypted in transit
- Application-level encryption: ❌ NO - payloads are plaintext over HTTPS
- Certificate validation: ❌ DISABLED - accepts any SSL certificate
Details: The game uses HTTPS but disables certificate validation, making it vulnerable to MITM attacks but also allowing self-signed certificates for community servers.
Read More: NETWORK-SECURITY-ANALYSIS.md (16 KB full analysis)
Q: Are the APK network files/code encrypted or obfuscated?
A: ❌ NO - completely readable
- Code obfuscation: NONE (no ProGuard/R8)
- Class names: Readable (Http.java, HttpRequest.java, etc.)
- Method names: Readable (sendRequest, postData, etc.)
- Strings: Plaintext in smali files
What IS encrypted: Local save data on device (AES-256) - NOT network traffic
Why it matters: Made reverse engineering easy! If EA had obfuscated the code, this project would be 10x harder.
See for yourself:
smali_classes2/com/firemint/realracing/Http.smali- readable class namessmali_classes2/com/ea/nimble/SynergyEnvironmentImpl.smali- readable methods
Q: What encryption DOES the game use?
A: Only for local storage:
- Algorithm: AES/CBC/PKCS5Padding (256-bit keys)
- Key derivation: PBKDF2WithHmacSHA1 (997 rounds)
- Used for:
- Saved game data on device
- Cached authentication tokens
- SharedPreferences persistence
Code location: smali_classes2/com/ea/nimble/Encryptor.smali
Network payloads: NOT encrypted (plaintext over HTTPS)
🌐 Network & Server
Q: Will the game contact EA servers?
A: ❌ NO - EA URLs eliminated in v14 APK
What we changed:
- AndroidManifest.xml:
configuration="live"→"customized" - EA production URLs unreachable (only if both user config AND manifest fail)
- URL Priority: SharedPreferences > Manifest fallback > Never EA
Details: EA-URL-ELIMINATION.md (11 KB)
Test it yourself:
- Install APK
- Monitor with
adb logcat | grep eamobile - Should see ZERO EA domain connections
Q: How does the server URL configuration work?
A: 3-tier priority system:
Priority 1 (Highest): SharedPreferences
- File:
/data/data/com.ea.games.r3_row/shared_prefs/rr3_community_server.xml - Key:
"server_url" - Set by: User input in ServerSetupActivity (first launch)
Priority 2: AndroidManifest.xml
- Meta-data:
NimbleCustomizedSynergyServerEndpointUrl - Default:
http://localhost:5001 - Used if SharedPreferences empty
Priority 3: EA URLs (UNREACHABLE)
- Only accessible if both Priority 1 AND 2 fail
- With
configuration="customized", this never happens
Code: Lines 959-985 in SynergyEnvironmentImpl.smali
Q: What server endpoints are required?
A: 73 Synergy API endpoints total
Status:
- Implemented: 58/73 (79%)
- Missing: 15 endpoints
Critical missing:
- Events Service: 0/4 (blocks career mode)
- Time Trials: 0/5
- Leaderboards: 3/4
- Multiplayer: 0/10+
Full list: SERVER-ENDPOINTS-ANALYSIS.md (12.7 KB)
Q: Can I use self-signed SSL certificates?
A: ✅ YES - the APK accepts ANY certificate
Why: Certificate validation is disabled (ALLOW_ALL_HOSTNAME_VERIFIER)
Options:
- Let's Encrypt (recommended) - free, valid certificates
- Self-signed - works perfectly, free
- No SSL (HTTP) - works but not recommended for production
Generate self-signed:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
🛠️ APK Modifications
Q: What was changed in the v14 APK?
A: Minimal changes to eliminate EA servers:
File: AndroidManifest.xml
- Line 126:
android:value="live"→android:value="customized" - Lines 127-128: Added fallback URL
http://localhost:5001
Code added:
CommunityServerManager.smali- manages server URL preferencesServerSetupActivity.smali- first-launch server input dialogOfflineModeManager.smali- online/offline toggle
That's it! No other game code modified.
Q: How do I build the APK myself?
A: 3-step process:
# 1. Decompile
apktool d RealRacing3.apk -o rr3-apk
# 2. Make changes (edit AndroidManifest.xml, etc.)
# 3. Rebuild
apktool b rr3-apk -o RR3-modified-unsigned.apk
# 4. Sign
apksigner sign --ks your-keystore.jks \
--out RR3-modified-signed.apk \
RR3-modified-unsigned.apk
Full guide: APK-BUILD-AND-TESTING-GUIDE.md (10 KB)
Requirements:
- Java 11+ (OpenJDK recommended)
- apktool 2.10.0+
- Android SDK build-tools
Q: Why isn't ProGuard/obfuscation used?
A: EA/Firemonkeys chose not to obfuscate
Likely reasons:
- Easier debugging/crash reports
- Faster build times
- Game logic not "secret" (offline mobile game)
- Anti-cheat handled server-side (when servers existed)
Result: Made our community server project MUCH easier! 🎉
🎮 Gameplay & Features
Q: Can I play offline?
A: ✅ YES - offline mode implemented
How to enable:
- Settings menu → Toggle "Offline Mode"
- Saves to:
rr3_offline_settings.xml - Key:
offline_mode_enabled
Limitations:
- No leaderboards
- No multiplayer
- No cloud save sync
- Career mode works (if Events Service implemented)
Code: smali_classes2/com/firemint/realracing/OfflineModeManager.smali
Q: Does multiplayer work?
A: ❌ NOT YET
Status: 0/10+ multiplayer endpoints implemented
Blockers:
- Real-time matchmaking system needed
- Race synchronization logic required
- Anti-cheat server-side validation
- P2P or relay server architecture decision
Priority: LOW (Phase 3+) - single-player first
Q: Can I charge for in-app purchases?
A: ❌ NO - EA's legal restriction
EA's Terms:
- ✅ Community servers allowed
- ✅ Donations for server costs allowed
- ❌ Cannot charge for in-app purchases (real money)
- ❌ Cannot charge for the APK itself
Why: EA retains the game IP and rights
Alternative: Accept donations for server hosting (PayPal, Patreon, etc.)
🐛 Troubleshooting
Q: APK won't install - "App not installed"
A: Common fixes:
1. Uninstall existing RR3:
adb uninstall com.ea.games.r3_row
2. Check signature:
apksigner verify --verbose your-apk.apk
3. Enable "Unknown Sources":
- Settings → Security → Allow unknown sources
4. Check architecture:
- APK supports: armeabi-v7a, arm64-v8a
- Won't work on x86 devices without translation
Q: Game crashes on startup
A: Debug steps:
1. Check logcat:
adb logcat -s AndroidRuntime:E
2. Common causes:
- Missing native libraries (lib/ folder)
- Wrong Android version (need 5.0+)
- Corrupted APK (re-download/rebuild)
3. Clear app data:
adb shell pm clear com.ea.games.r3_row
Q: "Cannot connect to server" error
A: Checklist:
✅ Server is running: curl http://localhost:5001/health
✅ Server URL configured in app
✅ Network connectivity exists
✅ Firewall allows connection
✅ For emulator: Use http://10.0.2.2:5001 not localhost
Port forwarding (emulator):
adb reverse tcp:5001 tcp:5001
📚 Documentation
Q: Where is all the documentation?
A: APK Repository (GitHub) - rr3-apk branch v14:
Main Docs:
README.md- Project overviewFAQ.md- This document!NETWORK-SECURITY-ANALYSIS.md(16 KB) - Security deep diveEA-URL-ELIMINATION.md(11 KB) - How EA URLs were eliminatedRR3-NETWORK-ANALYSIS-AND-CONFIG-SYSTEM.md(16 KB) - Network architectureAPK-BUILD-AND-TESTING-GUIDE.md(10 KB) - Build instructionsSERVER-ENDPOINTS-ANALYSIS.md(12.7 KB) - All 73 endpoints mapped
Server Repository (GitHub) - RR3CommunityServer branch main:
- Controllers/*.cs - Server endpoint implementations
- PHASE-1-IMPLEMENTATION-COMPLETE.md - Phase 1 completion docs
Q: How do I contribute?
A: Multiple ways to help:
1. Code:
- Implement missing endpoints (Events, Time Trials, etc.)
- Fix bugs
- Add features
2. Documentation:
- Improve guides
- Write tutorials
- Translate to other languages
3. Testing:
- Test on different devices/Android versions
- Report bugs with detailed logs
- Verify endpoint functionality
4. Assets:
- Extract game assets (cars, tracks, textures)
- Document asset formats
- Create custom content tools
Process:
- Fork repository on GitHub/Gitea
- Create feature branch
- Make changes
- Submit pull request
- Describe what you changed and why
🔧 Development
Q: What tools do I need?
A: APK Development:
- apktool 2.10.0+ - APK decompilation/recompilation
- Java 11+ - Build environment
- Android SDK - Signing & verification
- Text editor - VS Code, Sublime, etc.
Server Development:
- .NET 8 SDK - ASP.NET Core
- PostgreSQL (or SQL Server, SQLite) - Database
- Visual Studio or VS Code - IDE
Q: How long did this project take?
A: ~25 checkpoints (sessions) so far
Breakdown:
- Checkpoint 1-5: Initial analysis, asset systems, modding
- Checkpoint 6-10: Server browser, daily rewards, progression
- Checkpoint 11-15: Killswitch removal, dual APK variants, settings
- Checkpoint 16-20: Server auth, asset management, APK fixes
- Checkpoint 21-24: Version system, URL configuration, network analysis
Current Status: 79% complete (58/73 endpoints)
💬 Contact & Community
Q: Where can I ask questions?
A: Check these resources first:
- This FAQ - Common questions answered
- Documentation - Deep technical details
- Code - All source code public on Gitea/GitHub
- Issues - GitHub Issues for bug reports
Still stuck? Open a GitHub Issue with:
- Detailed description
- Steps to reproduce
- Logcat output
- Device/Android version
🎯 Quick Reference
Essential File Locations
APK (E:\rr3\rr3-apk):
AndroidManifest.xml - App configuration
smali_classes2/
com/firemint/realracing/
Http.smali - Network client
CommunityServerManager.smali - Server URL storage
ServerSetupActivity.smali - First-launch dialog
com/ea/nimble/
SynergyEnvironmentImpl.smali - URL priority logic
Encryptor.smali - AES encryption
Server (E:\rr3\RR3CommunityServer):
Controllers/
ConfigController.cs - Config endpoints
ProgressionController.cs - Save/load, progression
UserController.cs - Authentication
appsettings.json - Server configuration
Quick Commands
Build APK:
apktool b rr3-apk -o RR3-unsigned.apk
Sign APK:
apksigner sign --ks keystore.jks --out RR3-signed.apk RR3-unsigned.apk
Install APK:
adb install -r RR3-signed.apk
Monitor Logs:
adb logcat | grep -i "rr3\|synergy\|community"
Check Server URL:
adb shell cat /data/data/com.ea.games.r3_row/shared_prefs/rr3_community_server.xml
Run Server:
cd RR3CommunityServer
dotnet run
🎉 Did This Help?
If this FAQ answered your question, consider:
- ⭐ Starring the repository
- 📖 Reading the detailed documentation
- 🤝 Contributing improvements
- 💬 Helping others in Issues
Remember: All code is public! When in doubt, read the source. 😊
FAQ Version: 1.0
Last Updated: February 23, 2026
Maintainer: Community Server Project Team
Repository Links:
- APK: https://github.com/supermegamestre/Project-Real-Resurrection-3 (v14 branch)
- Server: https://github.com/supermegamestre/RR3CommunityServer (main branch)