Google Tasks

Everyone have lots of tasks to complete in a day and we use different apps for organising our daily tasks/meet-ups etc. Google Tasks is one of the simple application to get go. It is a user friendly application and easy to use, organise etc.

Analysis

The Google Task data folder can be found at /data/data/com.google.android.apps.tasks/.

The main files of interest is data.db, which can be found in files/tasks-{ID}.

We get a good amount of tables to sift through for analysis as you can see below from the DB Browser screenshot:

data.db Tables

data.db Tables

Using the data collected from emulator, I found useful information populated in the following tables:

  • TaskLists
  • Tasks

Note: Data is stored as blob in these both tables.

TaskLists

This table contains some metadata about when the list Created, Modified, List name, List ID and few other details.

Task Lists

Interesting columns in this table are:

  • TaskListId - Contains the ID for the list. Default ID is ~default.
  • EffectiveTaskList/OrginalTaskList - A blob data, contains metadata information about the list like created, modified, List Name, List ID.

Decoding the blob data using CyberChef, we can see it pulls out List name, List ID, and timestamps and other information.

{
    "1": "~default",
    "2": {
        "1": "My Tasks",
        "3": "user"
    },
    "3": {
        "1": [
            {
                "1": "cm-giEvLNfv7qtpq",
                "2": [
                    {
                        "1": "elSNabzEnFtR9QsE"
                    },
                    {
                        "1": "dIXAjJLovsKNqXsr"
                    }
                ]
            },
            {
                "1": "Ry9dIkNjAdwTlaSn"
            }
        ]
    },
    "6": {
        "1": 1623872134,
        "2": 158266000
    },
    "7": {
        "2": 5
    },
    "8": {
        "1": 1628267601,
        "2": 852175000
    }
}

Some of the keys that I figured out are:

  • 1 -> Task List ID
  • 2 - 1 -> List Name
  • 2 - 3 -> Created User
  • 3 -> ID’s for the tasks & Sub tasks present in the List, Still needs to be verified
  • 6 -> List Created Timestamp
  • 7 -> Unknown
  • 8 -> List Last modified timestamp

Tasks

This table contains the most important data like task names, task details, due data & time, task created & last modification time stamps, task completion time, task completion status.

Tasks

Interesting columns in this table are:

  • TaskId - ID for the task
  • DueDate - Due date for the task.
  • Completed - Completion status of the task.
  • EffectiveTask/OriginalTask - Task creation, last modification & completion time, Task name, details, due date & time, Timezone
  • HasDirtyState - Gives details about whether a task is dirty or not.

From my testing, I got this as the structure of the blob data present in EffectiveTask:

{
    "1": "DQn3azgcN9huA4Tb",
    "2": {
        "1": 1,
        "2": "task1",
        "3": "details in task1, list 16:16",
        "4": {
            "1": 2021,
            "2": 8,
            "3": 31
        },
        "5": {
            "1": 1629458276,
            "2": 408000000
        },
        "10": "5IAve9dCmbU854lU"
    },
    "3": {
        "1": 1629458282,
        "2": 331087000
    },
    "4": "AwjRql9PeUnXpW5i",
    "8": {
        "2": 5
    },
    "9": {
        "1": {
            "2": {
                "1": 2021,
                "2": 8,
                "3": 31
            },
            "3": {
                "1": 18
            },
            "4": "Asia/Kolkata",
            "6": {
                "1": 1630413000
            }
        }
    },
    "11": {
        "1": 1629456419,
        "2": 138443000
    },
    "13": {
        "1": "117075487121734099140"
    }
}

Some of the keys I figured out are:

  • 1 -> Task ID
  • 2 - 1 -> Completion status
  • 2 - 2 -> Task Name
  • 2 - 3 -> Task Details
  • 2 - 4 -> Due Date
  • 2 - 5 -> Completion time
  • 2 - 10 -> Task Recurrence ID
  • 3 -> :ast Modified Time
  • 4 -> Task List ID
  • 8 -> Unknown
  • 9 -> Due Time, Timezone of user
  • 11 -> Creation Time
  • 13 -> Unknown

These are some the useful details from Google Tasks database.

ALEAPP Report

ALEAPP parsers have been added for retriving the Task, Task details, and timestamps etc. Other artifacts will be added soon while I continue my research.

Get ALEAPP here - https://github.com/abrignoni/ALEAPP