- 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>
132 lines
4.3 KiB
Markdown
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.*
|