
After upgrading my phone and spending quite some time researching, I realized that Android has made it increasingly difficult to access and modify system files. Every file explorer I tested (including ZArchiver) failed to grant access to the Android/data/ folder due to new permission restrictions. I also couldn’t find a clear, text-based walkthrough; most tutorials available were lengthy videos.
My main goal was to transfer my retroarch.cfg file from the old phone to the new one without rooting the device. Since USB debugging didn’t help either, I eventually had to rely on a WiFi transfer method.
Requirements
- Computer with WiFi connection and Linux (can be Windows with Ubuntu Linux Subsystem);
- WiFi network;
- Android phone.
Setup ADB
Install ADB and start it. Do this on the Linux shell:
shell: sudo apt install android-tools-adb
shell: cd ../../bin
shell: adb kill-server
shell: adb start-server
Enable Debug
Android: disable Auto Blocker, if enabled: Go to Settings > Security and Privacy > Auto Blocker and disable
Android: enable Developer Options: Go to Settings > About Phone and tap “Build Number” 7 times.
Android: enable Wi-Fi Debugging: Go to Settings > Developer Options and enable “Wi-Fi debugging”
The next steps are just to be sure there’s no conflicting connections.
Android: put your smartphone on flight mode.
Computer: disconnect your laptop from the WiFi.
Android/Computer: Reconnect both on the same WiFi!
Connect device
Android: go to Developer Options: Go to Settings > Developer Options (now last).
Android: go under “Wireless debugging” > “Pair device with pairing code”.
shell: adb pair [ip]:[port1] [pairing code]
Android: close the pairing screen and look at the IP address and port (port is different from previous step).
shell: adb connect [ip]:[port2]
shell: run adb devices -l (it’s the lowercase L) in your terminal. You should see your device ID now.
Navigate on ADB
shell: adb shellbash: cd sdcard/android/data
shell: cd com.retroarch/files (adapt to the app folder you need).
shell: ls -a (verify if there is retroarch.cfg or the file you need).
shell: exit
To retrieve a file:
shell: adb pull "sdcard/android/data/com.retroarch/files/retroarch.cfg" "/home/victor/" (replace “victor” with your Linux username).
Repeat the whole process on the new phone. To send a file to it:
shell: adb push "/home/ (replace “victor” with your Linux username).victor/retroarch.cfg" "sdcard/android/data/com.retroarch/files/"
ADB quick reference list
adb devices: List connected devices.
adb shell: Enter a terminal session on the device.
adb push [source] [destination]: Copy files to the device.
adb pull [source] [destination]: Copy files from the device.
adb install [path_to_apk]: Install an app.
adb reboot: Reboot the phone.
adb shell pm list packages: List installed apps.