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