Skip to content

Instantly share code, notes, and snippets.

@ericswpark
Last active November 18, 2023 03:41
Show Gist options
  • Save ericswpark/eb155ce1b2d24a16a809e786ab3cafe9 to your computer and use it in GitHub Desktop.
Save ericswpark/eb155ce1b2d24a16a809e786ab3cafe9 to your computer and use it in GitHub Desktop.
Back up Beat Saber on Quest
#!/usr/bin/env bash
# Script to back up Beat Saber files
# Why not use SideQuest? It doesn't handle permissions very well
# Better to always use vanilla adb
# This script assumes adb is available in your PATH
# What is backed up:
# - Custom songs
# - Custom playlists
# - Player data (core)
# What isn't backed up:
# Everything else
# Back up mod data (including custom songs)
mkdir -p ./ModData/com.beatgames.beatsaber
adb pull -a /sdcard/ModData/com.beatgames.beatsaber ./ModData/com.beatgames.beatsaber
# For core data, some files are inaccessible, so we need to fetch them manually
mkdir -p ./Android/data/com.beatgames.beatsaber/files
coreDataFiles=(
"Android/data/com.beatgames.beatsaber/files/LocalDailyLeaderboards.dat"
"Android/data/com.beatgames.beatsaber/files/LocalLeaderboards.dat"
"Android/data/com.beatgames.beatsaber/files/PlayerData.dat"
"Android/data/com.beatgames.beatsaber/files/PlayerData.dat.bak"
"Android/data/com.beatgames.beatsaber/files/Unity"
"Android/data/com.beatgames.beatsaber/files/il2cpp"
"Android/data/com.beatgames.beatsaber/files/libs"
"Android/data/com.beatgames.beatsaber/files/logs"
"Android/data/com.beatgames.beatsaber/files/mods"
"Android/data/com.beatgames.beatsaber/files/settings.cfg"
"Android/data/com.beatgames.beatsaber/files/settings.cfg.bak"
)
for coreDataFile in ${coreDataFiles[@]}; do
echo Pulling $coreDataFile
adb pull -a /sdcard/$coreDataFile ./$coreDataFile
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment