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>
This commit is contained in:
131
decompiled-reference/README.md
Normal file
131
decompiled-reference/README.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# 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.*
|
||||
Reference in New Issue
Block a user