# sudo apt-get install rlwrap to have a more fully featured sqlite CLI set -x function sqlite3-pull () { adb root if [ -z "$1" ] then dir=$(pwd) else dir=$1 fi package=$(get-package) rm $dir/external.db rm $dir/external.db-wal adb pull /data/user/0/$package/databases/external.db $dir/external.db adb pull /data/user/0/$package/databases/external.db-wal "$dir/external.db-wal" sqlite3 $dir/external.db "drop trigger files_insert" sqlite3 $dir/external.db "drop trigger files_update" sqlite3 $dir/external.db "drop trigger files_delete" rlwrap sqlite3 $dir/external.db } function sqlite3-push () { adb root if [ -z "$1" ] then dir=$(pwd) else dir=$1 fi package=$(get-package) adb push $dir/external.db /data/user/0/$package/databases/external.db adb push $dir/external.db-wal /data/user/0/$package/databases/external.db-wal sqlite3-trigger-upgrade } function sqlite3-trigger-upgrade () { package=$(get-package) # Doesn't actually upgrade the db because db version is hardcoded in code # It however triggers upgrade path check_string="/data/user/0/$package/databases/external.db \"pragma user_version\"" version=$(adb shell sqlite3 $check_string) echo "Old version: $version" version=$((version+1)) upgrade_string="/data/user/0/$package/databases/external.db \"pragma user_version=$version\"" adb shell sqlite3 $upgrade_string version=$(adb shell sqlite3 $check_string) echo "New version: $version" adb shell am force-stop $package } function get-id-from-data () { adb root path="$1" package=$(get-package) dir="/data/user/0/$package/databases/external.db" clause="\"select _id from files where _data='$path';\"" echo $clause adb shell sqlite3 $dir $clause } function get-data-from-id () { adb root _id="$1" package=$(get-package) dir="/data/user/0/$package/databases/external.db" clause="\"select _data from files where _id='$_id';\"" echo $clause adb shell sqlite3 $dir $clause } function get-package() { if [ -z "$(adb shell pm list package com.android.providers.media.module)" ] then echo "com.google.android.providers.media.module" else echo "com.android.providers.media.module" fi }