| # 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 | 
 | } |