Files
rr3-apk/decompiled-reference/README.md
Daniel Elliott d144aec853 Add decompiled reference source files
- Key Java files showing custom server implementation
- Original AndroidManifest.xml for reference
- SynergyEnvironmentImpl.java - Custom server configuration
- HttpRequest.java - HTTP implementation details
- Documentation explaining each file's purpose

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-17 22:06:36 -08:00

132 lines
4.3 KiB
Markdown

# Decompiled Reference Files
This directory contains **reference files** decompiled from Real Racing 3 APK using JADX. These files are included for:
- 📚 **Educational purposes** - Understanding how the game communicates with servers
- 🔍 **Reference documentation** - See how custom server support is implemented
- 🛠️ **Modification guidance** - Know exactly what files to modify
## ⚠️ Important Legal Notice
These files are **decompiled from the original Real Racing 3 APK** and are:
- © Electronic Arts Inc. - All rights reserved
- Included for **educational and preservation purposes only**
- **NOT** to be used for commercial purposes
- **NOT** to be redistributed outside this private repository
## 📁 Directory Structure
```
decompiled-reference/
├── com/
│ ├── ea/
│ │ └── nimble/
│ │ ├── SynergyEnvironmentImpl.java - Custom server configuration
│ │ └── SynergyRequest.java - HTTP request handling
│ └── firemonkeys/
│ └── cloudcellapi/
│ └── HttpRequest.java - Low-level HTTP implementation
└── resources/
└── AndroidManifest.xml - App manifest (original)
```
## 🔑 Key Files Explained
### SynergyEnvironmentImpl.java
**Location**: Lines 166-183 contain the custom server implementation
This file contains the `NimbleConfiguration` enum and shows how RR3 reads the custom server URL:
```java
public String getSynergyDirectorServerUrl() {
switch (this.m_configuration) {
case CUSTOMIZED:
// 🎯 This is what we're using!
return ComponentManager.getComponent(ApplicationEnvironment.class)
.getApplicationInfo()
.metaData
.getString("NimbleCustomizedSynergyServerEndpointUrl");
case LIVE:
return "https://api.firemonkeys.ea.com/";
// ... other cases
}
}
```
### HttpRequest.java
Shows how the game makes HTTP requests, including:
- JNI callbacks for response streaming
- Custom SSL certificate validation
- Header management (EAM-SESSION, EAM-USER-ID, etc.)
### AndroidManifest.xml
Original manifest showing:
- Current configuration: `com.ea.nimble.configuration = "live"`
- Package name: `com.ea.game.realracing3_row`
- Permissions and activities
- **This is the file we modify** to point to community servers
## 🎓 How to Use These Files
### For Understanding
Read these files to understand:
1. How RR3 determines which server to connect to
2. What headers are required for API calls
3. How authentication and sessions work
4. SSL/certificate validation implementation
### For Modification Reference
When modifying APKs:
1. Check `SynergyEnvironmentImpl.java` to see expected metadata keys
2. Review `AndroidManifest.xml` to see original configuration
3. Reference `HttpRequest.java` to understand HTTP implementation
### For Server Development
Use these files to:
- Understand expected API behavior
- See what headers the client sends
- Know how SSL is validated
- Implement compatible server responses
## 🔍 Decompilation Details
**Tool Used**: JADX (Java Decompiler)
- Version: JADX 1.4.7+
- Command: `jadx realracing3.apk -d decompiled/`
- Source: Real Racing 3 v14.0.1
**Quality**: These files are decompiled from Dalvik bytecode:
- ✅ Structure is accurate
- ✅ Logic flow is correct
- ⚠️ Variable names may be obfuscated
- ⚠️ Some comments are from decompiler
## 📖 Related Documentation
For complete analysis of the protocol, see:
- [NETWORK_COMMUNICATION_ANALYSIS.md](../NETWORK_COMMUNICATION_ANALYSIS.md)
For modification instructions, see:
- [APK_MODIFICATION_GUIDE.md](../APK_MODIFICATION_GUIDE.md)
## 🚫 What's NOT Included
We do **NOT** include:
- ❌ Full game source code (too large, unnecessary)
- ❌ Game assets (textures, models, sounds)
- ❌ Native libraries (.so files)
- ❌ Compiled APK files
- ❌ Obfuscated/minified classes
Only the **essential files** needed to understand custom server support are included.
## 📝 Attribution
**Original Software**: Real Racing 3
**Developer**: Firemonkeys Studios / Electronic Arts
**Decompilation**: For educational research and game preservation
---
*These files are provided for educational purposes under fair use for interoperability and preservation research.*