The Problem
I had a copy of Dragon Quest 8 on my Android phone. I wasn’t really enjoying playing on the tiny phone, and wanted to delete it to free up the space is was taking up. Ideally I wanted to transfer my save file to another device. Normally this would be very easy – the newest version of the app has a cloud saving feature. However, I had the free version given away by Amazon from four years ago. Since it was on the Amazon store, it hasn’t been updated and probably won’t ever be updated.
The Solution
It seemed like the save files were kept somewhere secure on the phone. It wasn’t anywhere I could see from the file manager. However, I wasn’t excited to root my phone, since a lot of the guides seemed to have erasing the phone to be a first step.
I had some luck with the android debugger. With my phone plugged in, I was able to run
$ adb backup -f dragon_quest.ab com.square_enix.android_kindle.DQVIII_K
This took me several tries to actually get a complete backup. My first attempt resulting in an empty file, and subsequent attempts resulted in partial files. Since my phone was encrypted, I need to set a desktop backup password on the phone before it would allow the backup to happen. The partial files happened because I tried to backup the entire APK, and the phone was disconnected before I finished the lengthy process.
I was able to open the file with $java -jar abe-all.jar unpack dragon_quest.ab dragon_quest.tar 'password'
using Android Backup Extrator. This gave me an archive where I could see the save files.
Restoring the save files didn’t work with adb. I tried adb restore dragon_quest.ab
but got nowhere. I never figured out how to do it. Instead, I got lucky with the android shell. I was able to find a directory on my tablet called /sdcard/Android/data/com.square_enix.android_kindle.DQVIII_K/files
which contained the save files. I cannot see these files or even the folder from the file manager or when I connect the device to the computer. I don’t know if this is some type of merged file system of secure and insecure files, or if there are different permissions between the adb shell and the file manager apps. I believe I could have found the files in this way on my phone, but I have already deleted the app.
To actually transfer the files, I copied the saves in the Download folder since that was easy to use, and then used a cp command in the shell to move them where I wanted them to go.