Skip to content

Instantly share code, notes, and snippets.

@zb3
Created April 8, 2023 20:07

Revisions

  1. zb3 created this gist Apr 8, 2023.
    37 changes: 37 additions & 0 deletions get_my_fenix_tabs.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,37 @@
    # tested on fenix 107
    # obviously requires root

    import json
    import datetime
    import sys

    if len(sys.argv) > 1:
    tab_files = [sys.argv[1]]
    else:
    tab_files = [
    '/data/data/org.mozilla.firefox/files/mozilla_components_session_storage_gecko.json',
    '/data/data/org.mozilla.firefox_beta/files/mozilla_components_session_storage_gecko.json'
    ]

    for fname in tab_files:
    try:
    with open(fname, 'r') as f:
    data = json.load(f)
    break
    except FileNotFoundError:
    pass

    sessions = data['sessionStateTuples']
    sessions = sorted(sessions, key=lambda s: s['session']['createdAt'])

    for session in sessions:
    session_data = session['session']
    title = session_data['title']
    url = session_data['url']
    timestamp = session_data['createdAt'] / 1000 # convert milliseconds to seconds
    date_str = datetime.datetime.utcfromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
    print(title)
    print(url)
    print(date_str)
    print()