Hi everyone! Following up on my previous post about preserving the mobile drag racing game 2XL Racing (v1.3.6). I have made major progress on the project, and the full codebase is now publicly open for collaboration on GitHub!
What’s New & Working:
- Patched Binary: Successfully redirected the server strings in
libndkwrapper.so via Ghidra to point natively to a local host loopback interface (http://127.0.0.1:8080).
- Active FastAPI Server: Built a clean Python server using FastAPI that successfully listens and responds to the client's network queries.
- Successful Hits: The game is actively hitting my local routes (
/api/Advertisements/0 and /api/token/initialize) returning structured JSON with clean 200 OK statuses.
The Current Block (Where we need help):
Even though the FastAPI server replies flawlessly with standard JSON token key/values, the game client instantly rejects the payload and throws an internal "Server Error (6)" screen.
The application is clearly expecting a very specific dictionary template (specific user IDs, strict casing like tokenString/authToken, hidden success booleans, or minor formatting requirements) that causes the client-side parser to fail. Windows native index searching inside Smali contents didn't yield the exact structure because the endpoint string is compiled dynamically.
Check the Repository & Contribute:
You can clone the code, check the endpoints, and send a Pull Request directly here:
https://github.com/JulaoDev/2XL-Racing-Server
If you are familiar with JNI runtime method structures, decompiling Smali, or analyzing layout data in Ghidra/IDA, I would love your help to check how the client parses the /api/token/initialize payload response. Let's save this piece of lost media together!
---
**UPDATE: Looking for a Legacy Save Data / Profile Backup!*\*
Since we discovered that the game client skips the identity server handshake if a valid legacy profile already exists in the device cache, we are looking for a community favor:
Does anyone happen to have an old **Titanium Backup, iCloud snapshot, Android root data directory copy (`/data/data/`), or a 100% completion save file** for **2XL Racing** (v1.3.6) from back when the official servers were online?
If you can share an old backup with an existing user profile structure, it will help us two-fold:
1. It will let us bypass the **Server Error (6)** instantly to explore the local garage and tracks in our emulators.
2. It will give us the exact JSON dictionary keys and layout schema that the client-side parser expects, allowing us to finish our custom **FastAPI** server implementation.
If you have any old game data folders sitting on an old hard drive, please let us know or submit a sample directly to our live GitHub repository!