You may not know this, but I am an avid player of an Android game called Tales of Link which is a pretty good time killer Gacha style where you collect rare units and weapons to build parties and take on challenges.
Unfortunately, the game is closing down its servers soon and the app will stop working. This means that everyone who liked the characters, music, or plot will be locked out forever.
In an effort to avert this, I’ve decided to try my hand at extracting the data from the app to preserve it. Fortunately for me, the game has a very active subreddit and there’s already a thread on how to extract the files, so I would not be starting at square 1.
Step 1: Download Nox
I needed a good Android emulator and Nox has some pretty good reviews. You can download it here.
Step 2: Fire up Nox, Turn on Root, Download the App
The next step was pretty easy. Once I booted up Nox I was prompted to link it to a Google account which I chose to do. After that, I went to the playstore to download my app “Tales of Link”.
When it had finished downloading, I went into the setting and turned “Root” on for the Nox Emulator.
If you can’t find the settings gear right away, don’t worry. It’s in the top right of the screen above the wireless symbol. You will need to restart after changing this setting.
Step 3: Update the App
After Nox had restarted, I ran through the mandatory tutorial in Tales of Link. After the tutorial, once I clicked on the home-screen, the app began to update. All I had to do was wait. I decided to move onto the next step while I waited.
Step 4: Download an APK Extractor
Once we have the app updated and running on an emulator, we will need an APK extractor to view and extract the files. I decided to stick with guide that I was following and download Ravioli. It downloaded as a zip file, but one quick extraction and I was ready to go.
Step 5: Find the app data using the File Manager
The next step is to find our app data so that we can extract our files from it.
In case you have trouble finding the File Manager application, I’ve put a big gold star around it. After you’ve opened the file manager, you will need to find the data for your app. In my case the data was in /data/data/app folder. It was really easy to find because I am running a fresh install of the emulator and I don’t have a lot of data clutter to wade through.
After you’ve found your data, make sure to check the box next to it. We’re going to take the folder, in this case the com.bandainamcoent.xxxxx folder and share it so we can access it from outside our Android emulator.
Step 6: Find the mnt Folder
After you’ve checked the box next to your data, you’re going to navigate back to the root directory to find the mnt folder. You can do this by clicking on the “..” at the top bar until you’re in the “/” folder where you will find the mnt folder.
Go into /mnt/shared/app.
Step 7: Copy the App Data into /mnt/shared/app
You can click the series of dots in the upper right to copy the data into your /mnt/shared/app folder. I’ve placed a star around the dots to make them easier to find.
After you clikc the dots and a menu pops up, just click ‘Copy selection here’. This part may take a little bit of time depending on the speed of your PC and the size of your app data. This step is moving the data to a place on the computer where we can access it with our APK extraction tools.
After the copying is all finished you can close the emulator.
Step 8: Extract the Data
Find Ravioli, wherever you have extract it, and open up the Ravioli Extractor. Once you open it up you’ll see something like the following:
Create an output directory where you want Ravioli to put the extracted files. For the input directory, find the Nox_share/App directory on your computer. It’s probably under C:/users/username directory. You should see your data file in this directory.
Run Ravoli with the “Create subdirectory for each input file” and “Allow scanning of unkown files” boxes checked.
When Ravioli is finished running, just navigate to your output directory and you should have something like this:
Step 9: Extract the .pck files
I was hoping to be done and exploring my newfound data at this point, but upon finding where the data is i.e. /assets/Data/flash and its subfolders. Instead of images I was met with .pck files!
Step 10: Open and extract the files using the Ravioli Explorer
At first I was a little stumped. Then I went back to the Ravioli folder and opened up the Ravioli Explorer application. After I opened it up, I navigated down to some of the files I had extracted, in this case >assets\Data\flash\unit\player_0001 and selected the pck file there. It worked like a charm!
Now I could extract the files to my hearts content.
This was a very manual process, and I’m sure a lot of it can be automated, even on windows. If I ever attempt this project again, I may just bust out some Python to automate the APK -> pck -> finished file process.
Now that it’s done, I have all the sounds, images, and music of the Tales of Link game available forever. It gives a little bit of peace of mind knowing that I’ll always be able to look back on it, even when the servers are shutdown and the app is removed from the store.
To all the Tales of Link fans that find this post: I had a great time playing with you all and I hope our paths cross again. Till next time.
-Your friendly neighborhood lizardman