1d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd#!/bin/bash 2d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# Copyright (C) 2015 The Android Open Source Project 3d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# 4d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# Licensed under the Apache License, Version 2.0 (the "License"); 5d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# you may not use this file except in compliance with the License. 6d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# You may obtain a copy of the License at 7d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# 8d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# http://www.apache.org/licenses/LICENSE-2.0 9d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# 10d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# Unless required by applicable law or agreed to in writing, software 11d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# distributed under the License is distributed on an "AS IS" BASIS, 12d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# See the License for the specific language governing permissions and 14d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# limitations under the License. 15d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd################################################################### 16d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd## Script that generates SMS and MMS messages and fills the Android 17d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd## telephony provider mmssms.db. This is used for testing SMS/MMS. 18d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd################################################################### 19d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 20d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddAREA_CODE=605 21d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 22d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddTABLE_CANONICAL_ADDRESSES_START_ID=100 23d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddTABLE_THREADS_START_ID=100 24d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddTABLE_SMS_START_ID=1000 25d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 26d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddSTART_TIMESTAMP_IN_SECONDS=1357683093 # 1/8/2013 2:11:33 PM 27d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddTIMESTAMP_INC_IN_SECONDS=120 28d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 29d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddPART_DIR="/data/data/com.android.providers.telephony/app_parts" 30d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 31d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddUSAGE='fillsms [-f] [-x] <device_phone_number> <# of threads> <# of sms per thread> <# of mms per thread> <image list file> <sql file> 32d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd -f -- Only generates the SQL file, do not push to the device 33d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd -x -- Only execute a SQL file 34d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd -g -- For GB devices 35d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddExamples: 36d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # Generate 2 threads each with 10 SMSes and 10 MMSes on device with phone 37d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # number +16508619525. MMS messages use images listed in ./images, which list 38d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # *.jpg and *.gif files in local directory. The SQL commands are in sql.txt 39d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fillsms +16508619525 2 10 10 images sql.txt 40d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 41d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # Same as above but only creating the SQL command file without pushing to 42d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # device 43d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fillsms -f +16508619525 2 10 10 images sql.txt 44d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 45d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # Just push the sql.txt to device without generating new SQLs 46d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fillsms -x +16508619525 2 10 10 images sql.txt 47d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd' 48d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 49d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddSMIL='<smil> <head> <layout> <root-layout height="%dpx" width="%dpx"> <region fit="meet" height="%dpx" id="Image" left="0" top="0" width="%dpx"/></root-layout> </layout> </head> <body> <par dur="5000ms"> <img region="Image" src="%s"/> </par> </body> </smil>' 50d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 51d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddMAX_WORDS_PER_MESSAGE=15 52d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 53d3b009ae55651f1e60950342468e3c37fdeb0796Mike DoddDICT=american-english 54d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 55d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# don't actually run the sql on device 56d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddopt_sql_only=0 57d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddopt_exec_only=0 58d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddopt_for_gb=0 59d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 60d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddwhile test $# -gt 0 61d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodddo 62d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd case $1 in 63d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd -f) 64d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd opt_sql_only=1 65d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd shift 66d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd ;; 67d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd -x) 68d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd opt_exec_only=1 69d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd shift 70d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd ;; 71d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd -g) 72d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd opt_for_gb=1 73d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd shift 74d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd ;; 75d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd *) 76d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd break; 77d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd esac 78d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodddone 79d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 80d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 81d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddif [ $opt_sql_only -eq "1" -a $opt_exec_only -eq "1" ]; then 82d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo "-f and -x can not coexist" 83d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo "$USAGE" 84d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd exit 1 85d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddfi 86d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 87d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddif [ $# -lt 6 ]; then 88d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo "$USAGE" 89d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd exit 1 90d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddfi 91d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodddevice_phone=$1 92d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddshift 93d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddnum_of_threads=$1 94d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddshift 95d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddsms_per_thread=$1 96d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddshift 97d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddmms_per_thread=$1 98d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddshift 99d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimage_list_file=$1 100d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddshift 101d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddsql_file=$1 102d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddshift 103d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 104d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodddict_lines=`wc -l < $DICT` 105d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimage_files=`wc -l < $image_list_file` 106d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 107d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddif [ $mms_per_thread -gt "0" ]; then 108d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if [ ! -f $image_list_file ]; then 109d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo "No image files for creating MMS messages" 110d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd exit 1 111d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fi 112d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddfi 113d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 114d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddechoerr () 115d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd{ 116d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo "$@" 1>&2; 117d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 118d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 119d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddrandom_value () 120d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd{ 121d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo $(( $RANDOM % $1 + 1 )) 122d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 123d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 124d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodddict_word () 125d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd{ 126d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd local v=$(random_value 30000) 127d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd sed $v"q;d" $DICT 128d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 129d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 130d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddgen_message () 131d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd{ 132d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd local words=$(random_value $MAX_WORDS_PER_MESSAGE) 133d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd local message= 134d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd for k in `seq 1 $words`; 135d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd do 136d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd local word=$(dict_word) 137d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd message="$message $word" 138d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd done 139d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo $message | sed -e "s/'//g" 140d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 141d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 142d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddrandom_image () 143d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd{ 144d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd local v=$(random_value $image_files) 145d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd sed $v"q;d" $image_list_file 146d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 147d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 148d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddadd_sql () 149d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd{ 150d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo $1 >> $sql_file 151d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 152d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 153d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddadb_sql () 154d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd{ 155d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo $1 156d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb shell sqlite3 data/data/com.android.providers.telephony/databases/mmssms.db "$1" 157d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 158d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 159d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd###################################################################################### 160d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd###################################################################################### 161d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 162d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddif [ $opt_exec_only -eq "0" ]; then 163d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # clean up sql file 164d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd rm -f $sql_file 165d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 166d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # add sql to clean up database 167d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "delete from pdu where _id>=$TABLE_SMS_START_ID;" 168d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "delete from part where _id>=$TABLE_SMS_START_ID;" 169d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "delete from addr where _id>=$TABLE_SMS_START_ID;" 170d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "delete from sms where _id>=$TABLE_SMS_START_ID;" 171d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "delete from threads where _id>=$TABLE_THREADS_START_ID;" 172d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "delete from canonical_addresses where _id>=$TABLE_CANONICAL_ADDRESSES_START_ID;" 173d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 174d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd for i in `seq 1 $num_of_threads`; 175d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd do 176d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 177d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo "Creating thread $i ......" 178d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 179d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 180d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # Get random phone number 181d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd value=$(random_value 1000) 182d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd middle=$(printf '%03d' $value) 183d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd value=$(random_value 10000) 184d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd last=$(printf '%04d' $value) 185d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd phone="+1$AREA_CODE$middle$last" 186d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo $phone 187d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 188d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 189d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd timestamp=$(( $START_TIMESTAMP_IN_SECONDS + 5 * $TIMESTAMP_INC_IN_SECONDS * $i )) 190d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 191d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # Generate threads 192d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd addr_id=$(( $TABLE_CANONICAL_ADDRESSES_START_ID + $i )) 193d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into canonical_addresses (_id,address) values ($addr_id,'$phone');" 194d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 195d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd thread_id=$(( $TABLE_THREADS_START_ID + $i )) 196d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into threads (_id,date,message_count,recipient_ids,snippet,snippet_cs,read,type,error,has_attachment) values ($thread_id, $timestamp, $sms_per_thread, $addr_id, 'snippet', 0, 1, 0, 0, 0);" 197d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 198d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # Generate SMS 199d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if [ $sms_per_thread -gt "0" ]; then 200d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd half_timestamp_inc=$(( 500 + ((($sms_per_thread + $mms_per_thread) * $TIMESTAMP_INC_IN_SECONDS) * 500 / $sms_per_thread) )) 201d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd for j in `seq 1 $sms_per_thread`; 202d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd do 203d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd message=$(gen_message) 204d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd date=$(( ( 1000 * $timestamp ) - $half_timestamp_inc * ( 2 * ($sms_per_thread - $j) + ( $i % 2 ) ) )) 205d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd message_id=$(( $TABLE_SMS_START_ID + $sms_per_thread * $i * 2 + (2 * $j) )) 206d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd message_type=$(( $j % 2 + 1 )) 207d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into sms (_id,thread_id,address,person,date,status,type,body,read,seen) values ($message_id, $thread_id, '$phone', '$phone', $date, -1, $message_type, '$message', 1, 1);" 208d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd done 209d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fi 210d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 211d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # Generate MMS 212d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if [ $mms_per_thread -gt "0" ]; then 213d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd half_timestamp_inc=$(( 1 + ((($sms_per_thread + $mms_per_thread) * $TIMESTAMP_INC_IN_SECONDS) / ( 2 * $mms_per_thread) ) )) 214d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd for j in `seq 1 $mms_per_thread`; 215d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd do 216d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd image_line=$(random_image) 217d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd image=`echo $image_line | awk '{ print $1 }'` 218d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd width=`echo $image_line | awk '{ print $2 }'` 219d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd height=`echo $image_line | awk '{ print $3 }'` 220d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd size=`echo $image_line | awk '{ print $4 }'` 221d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd date=$(( $timestamp - $half_timestamp_inc * ( 2 * ($mms_per_thread - $j) + ( ($i+1) % 2 ) ) )) 222d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd message_id=$(( $TABLE_SMS_START_ID + $sms_per_thread * $i * 2 + (2 * $j + 1) )) 223d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd message_type=$(( $j % 2 + 1 )) 224d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if [ $message_type -eq '1' ]; then 225d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd m_type=132 226d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd else 227d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd m_type=128 228d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fi 229d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if [ $opt_for_gb -eq "0" ]; then 230d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into pdu (_id,thread_id,date,date_sent,msg_box,read,m_id,sub,sub_cs,ct_t,m_cls,m_type,v,m_size,pri,rr,tr_id,d_rpt,locked,seen,text_only) values ($message_id, $thread_id, $date, 0, $message_type, 1, 'hmma3p5s1a3m526@w.tmomail.net', 'no subject', 106, 'application/vnd.wap.multipart.related', 'personal', $m_type, 18, $size, 129, 129 , '$message_id', 129, 0, 1, 0);" 231d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd else 232d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into pdu (_id,thread_id,date,msg_box,read,m_id,sub,sub_cs,ct_t,m_cls,m_type,v,m_size,pri,rr,tr_id,d_rpt,locked,seen) values ($message_id, $thread_id, $date, $message_type, 1, 'hmma3p5s1a3m526@w.tmomail.net', 'no subject', 106, 'application/vnd.wap.multipart.related', 'personal', $m_type, 18, $size, 129, 129 , '$message_id', 129, 0, 1);" 233d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fi 234d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd id_1=$(( $message_id )) 235d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd id_2=$(( $message_id + 1 )) 236d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd smil=$(printf "$SMIL" $height $width $height $width $image) 237d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into part (_id,mid,seq,ct,cid,cl,text) values ($id_1, $message_id, -1, 'application/smil', '<smil>', 'smil.xml', '$smil');" 238d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd image_no_suffix=${image%.*} 239d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into part (_id,mid,seq,ct,cid,cl,_data) values ($id_2, $message_id, 0, 'image/jpeg', '$image_no_suffix', '$image', '$PART_DIR/$image');" 240d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if [ $message_type -eq '1' ]; then 241d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into addr (_id,msg_id,address,type,charset) values ($id_1, $message_id, '$phone', 137, 106);" 242d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into addr (_id,msg_id,address,type,charset) values ($id_2, $message_id, '$device_phone', 151, 106);" 243d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd else 244d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into addr (_id,msg_id,address,type,charset) values ($id_1, $message_id, 'insert-address-token', 137, 106);" 245d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd add_sql "insert into addr (_id,msg_id,address,type,charset) values ($id_2, $message_id, '$phone', 151, 106);" 246d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fi 247d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd done 248d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fi 249d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd done 250d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddfi 251d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 252d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd# Push to device 253d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddif [ $opt_sql_only -eq "0" ]; then 254d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # make sure we have access 255d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb root 256d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 257d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd # Push all local jpgs or gifs to device, being lazy here. 258d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if [ $mms_per_thread -gt "0" ]; then 259d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd for file in `ls *.jpg *.gif`; 260d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd do 261d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo "adb push $file $PART_DIR/$file" 262d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb push $file $PART_DIR/$file 263d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd done 264d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fi 265d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 266d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo "adb push $sql_file /data/fillsms" 267d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb push $sql_file /data/fillsms 268d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 269d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb_sql ".read /data/fillsms" 270d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 271d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb_sql "select count(*) from canonical_addresses where _id>=$TABLE_CANONICAL_ADDRESSES_START_ID;" 272d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 273d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb_sql "select count(*) from threads where _id>=$TABLE_THREADS_START_ID;" 274d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 275d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if [ $sms_per_thread -gt "0" ]; then 276d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb_sql "select count(*) from sms where _id>=$TABLE_SMS_START_ID;" 277d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 278d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fi 279d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd if [ $mms_per_thread -gt "0" ]; then 280d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb_sql "select count(*) from pdu where _id>=$TABLE_SMS_START_ID;" 281d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 282d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb_sql "select count(*) from part where _id>=$TABLE_SMS_START_ID;" 283d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 284d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd adb_sql "select count(*) from addr where _id>=$TABLE_SMS_START_ID;" 285d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd echo 286d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd fi 287d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddfi 288