├── settings.gradle ├── app ├── src │ └── main │ │ ├── res │ │ ├── drawable │ │ │ ├── icon.png │ │ │ ├── icon_256x256.png │ │ │ ├── icon_512x512.png │ │ │ └── black_white_gradient.xml │ │ ├── xml │ │ │ └── provider_paths.xml │ │ ├── values │ │ │ ├── styles.xml │ │ │ └── strings.xml │ │ ├── menu │ │ │ └── app_menu.xml │ │ ├── color │ │ │ └── archives_list_item.xml │ │ └── layout │ │ │ ├── fatal_message.xml │ │ │ ├── progress_view.xml │ │ │ ├── archives_list_item.xml │ │ │ ├── result.xml │ │ │ ├── archives.xml │ │ │ └── main.xml │ │ ├── assets │ │ ├── index.head.snippet.html │ │ ├── EULA │ │ ├── acb_style.css │ │ ├── index.body.html │ │ ├── index.html │ │ └── acb_script.js │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── net │ │ └── ugorji │ │ └── android │ │ └── conversationbackup │ │ ├── BaseCBActivity.java │ │ ├── ArchivesActivity.java │ │ ├── HomeActivity.java │ │ ├── Helper.java │ │ └── ProcessingService.java └── build.gradle ├── README.md └── PRIVACY.md /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ugorji/android-conversation-backup/HEAD/app/src/main/res/drawable/icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ugorji/android-conversation-backup/HEAD/app/src/main/res/drawable/icon_256x256.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ugorji/android-conversation-backup/HEAD/app/src/main/res/drawable/icon_512x512.png -------------------------------------------------------------------------------- /app/src/main/res/xml/provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/black_white_gradient.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/assets/index.head.snippet.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/menu/app_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/assets/EULA: -------------------------------------------------------------------------------- 1 | Conversation Backup v1.4 (for Android 4.0+) 2 | 3 | Backup your SMS messages, MMS messages, and call logs, for specified or all numbers, into a zip file, which can be sent to you for archiving. Delete those backed-up messages and/or call logs from your device if requested. Delete and/or re-send old backup archives. 4 | 5 | For information and feedback: 6 | http://www.ugorji.net/project/android-conversation-backup 7 | Email: ugorji@gmail.com 8 | -------------------------------------------------------------------------------- /app/src/main/res/color/archives_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 26 5 | //buildToolsVersion '25.0.0' 6 | 7 | defaultConfig { 8 | applicationId "net.ugorji.android.conversationbackup" 9 | minSdkVersion 14 10 | targetSdkVersion 26 11 | versionCode 17 12 | versionName "1.4.1" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | sourceCompatibility JavaVersion.VERSION_1_8 22 | targetCompatibility JavaVersion.VERSION_1_8 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation fileTree(dir: 'libs', include: ['*.jar']) 28 | implementation 'com.android.support:appcompat-v7:26.+' 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fatal_message.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/progress_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 15 | 18 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # android-conversation-backup 2 | 3 | *Backup and archive text, pictures and other multimedia messages and call logs.* 4 | 5 | This tool can backup your SMS messages, MMS messages with included 6 | attachments, and call records, into a zip archive. You can specify a set 7 | of numbers to limit the conversations backed up. Optionally, you can 8 | request that those archived messages and/or call logs from your device 9 | are deleted. 10 | 11 | Once backup is done, you can `share` the zip archive, allowing 12 | you store it using any apps on your device which can share (e.g. email, gmail, 13 | Google Drive, DropBox, Box, etc). 14 | 15 | Finally, you can review the prior backups done, and delete them or `share` them 16 | again (re-send them somewhere). 17 | 18 | Primer / Documentation: http://ugorji.net/project/android-conversation-backup 19 | Blog Post: http://ugorji.net/blog/android-conversation-backup 20 | Download on Google Play: https://play.google.com/store/apps/details?id=net.ugorji.android.conversationbackup 21 | 22 | ## Development Notes 23 | 24 | Google doesn't provide public API's for accessing SMS and MMS. 25 | 26 | I had to reverse-engineer the actual android src to know what to do. 27 | However, this has been tested and works on Androind 2.3 up to Android 9.0. 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/assets/acb_style.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #ffffff; 3 | margin: 0px; 4 | padding: 0px; 5 | } 6 | 7 | th, pre, h1, h2, h3, h4, h5, h6 { 8 | background-color: #e5ecf9; 9 | } 10 | 11 | table, th, td { 12 | border: 1px solid #c0c0c0; 13 | } 14 | 15 | h1, h2 { 16 | border-bottom: 1px solid #3c78b5; 17 | } 18 | 19 | table { 20 | margin: 2px 0px 5px 0px; 21 | border-collapse: collapse; 22 | } 23 | 24 | th { 25 | padding: 2px 4px 2px 4px; 26 | text-align: center; 27 | vertical-align: top; 28 | } 29 | 30 | td { 31 | padding: 3px 4px 3px 4px; 32 | vertical-align: top; 33 | } 34 | 35 | .ugorji_call_missed, .ugorji_message_mms_sender { 36 | background: #ffcccc; 37 | } 38 | .ugorji_call_incoming, .ugorji_message_mms { 39 | background: #ccffcc; 40 | } 41 | .ugorji_call_outgoing, .ugorji_message_sender { 42 | background: #ccccff; 43 | } 44 | .ugorji_loaded { } 45 | .ugorji_space { 46 | padding: 3px 4px 3px 4px; 47 | float: left; 48 | } 49 | .ugorji_clear { 50 | clear:both; 51 | } 52 | .ugorji_note, blockquote { 53 | border-color: #3c78b5; 54 | background: #f0fff0; 55 | border: 1px solid #3cd8f5; 56 | padding: 5px 5px 5px 7px; 57 | margin: 0px 0px 0px 5px; 58 | } 59 | #ugorji_summary { 60 | float: left; 61 | } 62 | #ugorji_color_key { 63 | float:left; 64 | } 65 | -------------------------------------------------------------------------------- /app/src/main/res/layout/archives_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 17 | 36 | -------------------------------------------------------------------------------- /app/src/main/assets/index.body.html: -------------------------------------------------------------------------------- 1 | 2 |

Android Conversation Backup Report

3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | 17 |
18 | Call Logs
19 |
20 | Type snippet (separated by spaces) of name, number, call type, ... to filter
(e.g. ugorji 415 incoming 2011) 21 |
22 |
23 |
24 |
25 | MESSAGES
26 |
27 | Type snippet (separated by spaces) of name, number, message, ... to filter
(e.g. ugorji sms incoming 415 programming java today) 28 |
29 |
30 |
31 |
32 |
33 | Thank you for using Android Conversation Backup. If you like it, 34 | please let us know at 35 | Android Market / Google Play (click User Reviews). 36 | More information is available on 37 | our web site. 38 |

39 | -- Ugorji 40 |
41 | 42 | -------------------------------------------------------------------------------- /app/src/main/res/layout/result.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 13 | 17 | 22 | 26 | 31 | 35 |