summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMike Dodd <mdodd@google.com>2015-08-11 11:16:59 -0700
committerMike Dodd <mdodd@google.com>2015-08-12 08:58:28 -0700
commit461a34b466cb4b13dbbc2ec6330b31e217b2ac4e (patch)
treebc4b489af52d0e2521e21167d2ad76a47256f348 /tools
parent8b3e2b9c1b0a09423a7ba5d1091b9192106502f8 (diff)
downloadpackages_apps_Messaging-461a34b466cb4b13dbbc2ec6330b31e217b2ac4e.zip
packages_apps_Messaging-461a34b466cb4b13dbbc2ec6330b31e217b2ac4e.tar.gz
packages_apps_Messaging-461a34b466cb4b13dbbc2ec6330b31e217b2ac4e.tar.bz2
Initial checkin of AOSP Messaging app.
b/23110861 Change-Id: I9aa980d7569247d6b2ca78f5dcb4502e1eaadb8a
Diffstat (limited to 'tools')
-rwxr-xr-xtools/buglesql43
-rwxr-xr-xtools/dumpapkversion.sh20
-rwxr-xr-xtools/messagegen/fillsms287
-rwxr-xr-xtools/messagegen/listimages21
-rwxr-xr-xtools/mmssql43
5 files changed, 414 insertions, 0 deletions
diff --git a/tools/buglesql b/tools/buglesql
new file mode 100755
index 0000000..c9ac8ef
--- /dev/null
+++ b/tools/buglesql
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+usage='buglesql [-c] [-r] sql
+ -c display in columns with headers (default)
+ -r display as records'
+
+opts='-column -header'
+
+while test $# -gt 0
+do
+ case $1 in
+ -c)
+ opts='-column -header'
+ shift
+ ;;
+ -r)
+ opts='-line'
+ shift
+ ;;
+ *)
+ break;
+ esac
+done
+
+if [ $# -lt 1 ]; then
+ echo "$usage"
+ exit 1
+fi
+
+adb shell su -c sqlite3 $opts data/data/com.android.messaging/databases/bugle_db "$1"
diff --git a/tools/dumpapkversion.sh b/tools/dumpapkversion.sh
new file mode 100755
index 0000000..48ff590
--- /dev/null
+++ b/tools/dumpapkversion.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+for i in `find . -name \*.apk`
+do
+ echo -n $i
+ echo -n " "
+ aapt dump badging $i | grep versionCode | sed -E 's/^.*versionCode/versionCode/'
+done
diff --git a/tools/messagegen/fillsms b/tools/messagegen/fillsms
new file mode 100755
index 0000000..6903941
--- /dev/null
+++ b/tools/messagegen/fillsms
@@ -0,0 +1,287 @@
+#!/bin/bash
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###################################################################
+## Script that generates SMS and MMS messages and fills the Android
+## telephony provider mmssms.db. This is used for testing SMS/MMS.
+###################################################################
+
+AREA_CODE=605
+
+TABLE_CANONICAL_ADDRESSES_START_ID=100
+TABLE_THREADS_START_ID=100
+TABLE_SMS_START_ID=1000
+
+START_TIMESTAMP_IN_SECONDS=1357683093 # 1/8/2013 2:11:33 PM
+TIMESTAMP_INC_IN_SECONDS=120
+
+PART_DIR="/data/data/com.android.providers.telephony/app_parts"
+
+USAGE='fillsms [-f] [-x] <device_phone_number> <# of threads> <# of sms per thread> <# of mms per thread> <image list file> <sql file>
+ -f -- Only generates the SQL file, do not push to the device
+ -x -- Only execute a SQL file
+ -g -- For GB devices
+Examples:
+ # Generate 2 threads each with 10 SMSes and 10 MMSes on device with phone
+ # number +16508619525. MMS messages use images listed in ./images, which list
+ # *.jpg and *.gif files in local directory. The SQL commands are in sql.txt
+ fillsms +16508619525 2 10 10 images sql.txt
+
+ # Same as above but only creating the SQL command file without pushing to
+ # device
+ fillsms -f +16508619525 2 10 10 images sql.txt
+
+ # Just push the sql.txt to device without generating new SQLs
+ fillsms -x +16508619525 2 10 10 images sql.txt
+'
+
+SMIL='<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>'
+
+MAX_WORDS_PER_MESSAGE=15
+
+DICT=american-english
+
+# don't actually run the sql on device
+opt_sql_only=0
+opt_exec_only=0
+opt_for_gb=0
+
+while test $# -gt 0
+do
+ case $1 in
+ -f)
+ opt_sql_only=1
+ shift
+ ;;
+ -x)
+ opt_exec_only=1
+ shift
+ ;;
+ -g)
+ opt_for_gb=1
+ shift
+ ;;
+ *)
+ break;
+ esac
+done
+
+
+if [ $opt_sql_only -eq "1" -a $opt_exec_only -eq "1" ]; then
+ echo "-f and -x can not coexist"
+ echo "$USAGE"
+ exit 1
+fi
+
+if [ $# -lt 6 ]; then
+ echo "$USAGE"
+ exit 1
+fi
+device_phone=$1
+shift
+num_of_threads=$1
+shift
+sms_per_thread=$1
+shift
+mms_per_thread=$1
+shift
+image_list_file=$1
+shift
+sql_file=$1
+shift
+
+dict_lines=`wc -l < $DICT`
+image_files=`wc -l < $image_list_file`
+
+if [ $mms_per_thread -gt "0" ]; then
+ if [ ! -f $image_list_file ]; then
+ echo "No image files for creating MMS messages"
+ exit 1
+ fi
+fi
+
+echoerr ()
+{
+ echo "$@" 1>&2;
+}
+
+random_value ()
+{
+ echo $(( $RANDOM % $1 + 1 ))
+}
+
+dict_word ()
+{
+ local v=$(random_value 30000)
+ sed $v"q;d" $DICT
+}
+
+gen_message ()
+{
+ local words=$(random_value $MAX_WORDS_PER_MESSAGE)
+ local message=
+ for k in `seq 1 $words`;
+ do
+ local word=$(dict_word)
+ message="$message $word"
+ done
+ echo $message | sed -e "s/'//g"
+}
+
+random_image ()
+{
+ local v=$(random_value $image_files)
+ sed $v"q;d" $image_list_file
+}
+
+add_sql ()
+{
+ echo $1 >> $sql_file
+}
+
+adb_sql ()
+{
+ echo $1
+ adb shell sqlite3 data/data/com.android.providers.telephony/databases/mmssms.db "$1"
+}
+
+######################################################################################
+######################################################################################
+
+if [ $opt_exec_only -eq "0" ]; then
+ # clean up sql file
+ rm -f $sql_file
+
+ # add sql to clean up database
+ add_sql "delete from pdu where _id>=$TABLE_SMS_START_ID;"
+ add_sql "delete from part where _id>=$TABLE_SMS_START_ID;"
+ add_sql "delete from addr where _id>=$TABLE_SMS_START_ID;"
+ add_sql "delete from sms where _id>=$TABLE_SMS_START_ID;"
+ add_sql "delete from threads where _id>=$TABLE_THREADS_START_ID;"
+ add_sql "delete from canonical_addresses where _id>=$TABLE_CANONICAL_ADDRESSES_START_ID;"
+
+ for i in `seq 1 $num_of_threads`;
+ do
+ echo
+ echo "Creating thread $i ......"
+ echo
+
+ # Get random phone number
+ value=$(random_value 1000)
+ middle=$(printf '%03d' $value)
+ value=$(random_value 10000)
+ last=$(printf '%04d' $value)
+ phone="+1$AREA_CODE$middle$last"
+ echo $phone
+ echo
+
+ timestamp=$(( $START_TIMESTAMP_IN_SECONDS + 5 * $TIMESTAMP_INC_IN_SECONDS * $i ))
+
+ # Generate threads
+ addr_id=$(( $TABLE_CANONICAL_ADDRESSES_START_ID + $i ))
+ add_sql "insert into canonical_addresses (_id,address) values ($addr_id,'$phone');"
+
+ thread_id=$(( $TABLE_THREADS_START_ID + $i ))
+ 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);"
+
+ # Generate SMS
+ if [ $sms_per_thread -gt "0" ]; then
+ half_timestamp_inc=$(( 500 + ((($sms_per_thread + $mms_per_thread) * $TIMESTAMP_INC_IN_SECONDS) * 500 / $sms_per_thread) ))
+ for j in `seq 1 $sms_per_thread`;
+ do
+ message=$(gen_message)
+ date=$(( ( 1000 * $timestamp ) - $half_timestamp_inc * ( 2 * ($sms_per_thread - $j) + ( $i % 2 ) ) ))
+ message_id=$(( $TABLE_SMS_START_ID + $sms_per_thread * $i * 2 + (2 * $j) ))
+ message_type=$(( $j % 2 + 1 ))
+ 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);"
+ done
+ fi
+
+ # Generate MMS
+ if [ $mms_per_thread -gt "0" ]; then
+ half_timestamp_inc=$(( 1 + ((($sms_per_thread + $mms_per_thread) * $TIMESTAMP_INC_IN_SECONDS) / ( 2 * $mms_per_thread) ) ))
+ for j in `seq 1 $mms_per_thread`;
+ do
+ image_line=$(random_image)
+ image=`echo $image_line | awk '{ print $1 }'`
+ width=`echo $image_line | awk '{ print $2 }'`
+ height=`echo $image_line | awk '{ print $3 }'`
+ size=`echo $image_line | awk '{ print $4 }'`
+ date=$(( $timestamp - $half_timestamp_inc * ( 2 * ($mms_per_thread - $j) + ( ($i+1) % 2 ) ) ))
+ message_id=$(( $TABLE_SMS_START_ID + $sms_per_thread * $i * 2 + (2 * $j + 1) ))
+ message_type=$(( $j % 2 + 1 ))
+ if [ $message_type -eq '1' ]; then
+ m_type=132
+ else
+ m_type=128
+ fi
+ if [ $opt_for_gb -eq "0" ]; then
+ 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);"
+ else
+ 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);"
+ fi
+ id_1=$(( $message_id ))
+ id_2=$(( $message_id + 1 ))
+ smil=$(printf "$SMIL" $height $width $height $width $image)
+ add_sql "insert into part (_id,mid,seq,ct,cid,cl,text) values ($id_1, $message_id, -1, 'application/smil', '<smil>', 'smil.xml', '$smil');"
+ image_no_suffix=${image%.*}
+ 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');"
+ if [ $message_type -eq '1' ]; then
+ add_sql "insert into addr (_id,msg_id,address,type,charset) values ($id_1, $message_id, '$phone', 137, 106);"
+ add_sql "insert into addr (_id,msg_id,address,type,charset) values ($id_2, $message_id, '$device_phone', 151, 106);"
+ else
+ add_sql "insert into addr (_id,msg_id,address,type,charset) values ($id_1, $message_id, 'insert-address-token', 137, 106);"
+ add_sql "insert into addr (_id,msg_id,address,type,charset) values ($id_2, $message_id, '$phone', 151, 106);"
+ fi
+ done
+ fi
+ done
+fi
+
+# Push to device
+if [ $opt_sql_only -eq "0" ]; then
+ # make sure we have access
+ adb root
+
+ # Push all local jpgs or gifs to device, being lazy here.
+ if [ $mms_per_thread -gt "0" ]; then
+ for file in `ls *.jpg *.gif`;
+ do
+ echo "adb push $file $PART_DIR/$file"
+ adb push $file $PART_DIR/$file
+ done
+ fi
+
+ echo "adb push $sql_file /data/fillsms"
+ adb push $sql_file /data/fillsms
+ echo
+ adb_sql ".read /data/fillsms"
+ echo
+ adb_sql "select count(*) from canonical_addresses where _id>=$TABLE_CANONICAL_ADDRESSES_START_ID;"
+ echo
+ adb_sql "select count(*) from threads where _id>=$TABLE_THREADS_START_ID;"
+ echo
+ if [ $sms_per_thread -gt "0" ]; then
+ adb_sql "select count(*) from sms where _id>=$TABLE_SMS_START_ID;"
+ echo
+ fi
+ if [ $mms_per_thread -gt "0" ]; then
+ adb_sql "select count(*) from pdu where _id>=$TABLE_SMS_START_ID;"
+ echo
+ adb_sql "select count(*) from part where _id>=$TABLE_SMS_START_ID;"
+ echo
+ adb_sql "select count(*) from addr where _id>=$TABLE_SMS_START_ID;"
+ echo
+ fi
+fi
diff --git a/tools/messagegen/listimages b/tools/messagegen/listimages
new file mode 100755
index 0000000..9c50072
--- /dev/null
+++ b/tools/messagegen/listimages
@@ -0,0 +1,21 @@
+#!/bin/bash
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+for file in `ls *.jpg *.gif`;
+do
+ dimension=`identify -format "%w %h" $file`
+ size=`stat -c%s $file`
+ echo "$file $dimension $size"
+done
diff --git a/tools/mmssql b/tools/mmssql
new file mode 100755
index 0000000..1643dbb
--- /dev/null
+++ b/tools/mmssql
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+usage='mmssql [-c] [-r] sql
+ -c display in columns with headers (default)
+ -r display as records'
+
+opts='-column -header'
+
+while test $# -gt 0
+do
+ case $1 in
+ -c)
+ opts='-column -header'
+ shift
+ ;;
+ -r)
+ opts='-line'
+ shift
+ ;;
+ *)
+ break;
+ esac
+done
+
+if [ $# -lt 1 ]; then
+ echo "$usage"
+ exit 1
+fi
+
+adb shell su -c sqlite3 $opts data/data/com.android.providers.telephony/databases/mmssms.db "$1"