I had more than 200 tabs open on opera and they would normally reopen again, even after reboots.  

My phone broke, but I have a backup of the external SD Card, internal SD Card, and a backup from TWRP which is of a size of 23.7 GB but does not have an obviously accessible structure.  

Following the advice from [another QA](https://android.stackexchange.com/a/184831/96334), it is possible to concatenate the `data.ext4.win000` to `data.ext4.win009` files and access them as a tar archive (It's a good idea to cd to where you want the backup to be extracted to first):

> ```bash cat data.ext4.win??? | tar xvfi - ```
> 
> What this does is concatenate each file matching the pattern
> data.ext4.win??? and then pipe the concatenated files to tar for
> extraction. the - as the filename tells tar to extract from stdin. The
> i option ignores zero blocks which will be in between each archive
> file concatenated.
> 
> In this example I used the ext4 formatted data partition. Change
> data.ext4 to match the partition you are extracting.

Although the tar command exits with
> ```
/data/magisk_backup_bd5d0aa87b96353c78a3bf3a455121d0c767089c/boot.img.gz
tar: Exiting with failure status due to previous errors
> ```

it extracts quite a few files before this hapens.

Now that I have my `/data` directory again, I have access to `/data/data/com.opera.browser` and `/data/app/com.opera.browser-2`. What do I do with them to extract a list of urls that were open?

### Directory Structures
data/data/com.opera.browser
```
├───app_opera
│   ├───Application Cache
│   │   └───Cache
│   │       └───index-dir
│   ├───blob_storage
│   │   └───9b46839e-470e-4a3a-aa32-e9bc919a25f0
│   ├───databases
│   ├───databases-incognito
│   ├───File System
│   │   ├───026
│   │   │   └───t
│   │   │       └───Paths
│   │   └───Origins
│   ├───GCM Store
│   │   └───Encryption
│   ├───GPUCache
│   │   └───index-dir
│   ├───IndexedDB
│   │   ├───https_hackernoon.com_0.indexeddb.leveldb
│   │   ├───https_mobile.twitter.com_0.indexeddb.leveldb
│   │   ├───https_www.epicgames.com_0.indexeddb.leveldb
│   │   └───https_www.independent.co.uk_0.indexeddb.leveldb
│   ├───Local Storage
│   │   └───leveldb
│   ├───paks
│   ├───Platform Notifications
│   ├───saved_pages
│   ├───Service Worker
│   │   ├───CacheStorage
│   │   │   ├───5a6f7e336992bc24678958dc2f1f9b9eec83593b
│   │   │   │   ├───281ffb34-a074-4397-a60c-e3dc55aee5e5
│   │   │   │   │   └───index-dir
│   │   │   │   └───8d34090e-e00a-4f69-9450-bbe1b4b0dc9d
│   │   │   │       └───index-dir
│   │   │   ├───96f3041722d8f6857b95786ee88fa6a107a86943
│   │   │   │   └───11ccf6ea-9e2a-4648-8c61-a635e1cca5c5
│   │   │   │       └───index-dir
│   │   │   └───e60030e2e5440743857a39cacd108634434c91f1
│   │   │       ├───0045349f-4331-4037-bf9d-e9711e515a08
│   │   │       │   └───index-dir
│   │   │       ├───4a447cca-f7ca-41f1-9464-e40337cd7ed1
│   │   │       │   └───index-dir
│   │   │       └───907b2396-da18-4880-a0df-e3608abac640
│   │   │           └───index-dir
│   │   ├───Database
│   │   └───ScriptCache
│   │       └───index-dir
│   ├───Session Storage
│   ├───shared_proto_db
│   │   └───metadata
│   ├───Sync Data
│   │   └───LevelDB
│   └───VideoDecodeStats
├───app_optimized
├───app_textures
├───app_webview
│   ├───blob_storage
│   │   └───3f7cc261-4c0e-41cc-947b-2dc712733f49
│   ├───GPUCache
│   │   └───index-dir
│   └───Local Storage
│       └───leveldb
├───cache
│   ├───cache
│   │   └───index-dir
│   ├───Crashpad
│   │   ├───attachments
│   │   ├───completed
│   │   ├───new
│   │   └───pending
│   ├───crash_dumps
│   ├───distiller
│   │   └───index-dir
│   └───okhttp
├───code_cache
├───databases
├───files
│   ├───AFRequestCache
│   ├───ds
│   │   ├───10
│   │   └───E
│   ├───images
│   │   └───share
│   ├───keychain
│   │   └───0
│   ├───reading
│   └───recently_closed_tabs
├───no_backup
└───shared_prefs
```

data/app/com.opera.browser-2
```
├───lib
│   ├───arm
│   └───arm64
└───oat
    ├───arm
    └───arm64
```

data/data/com.opera.browser/files/
```
# 332 files of the nameformat "thumbnail_-214748????"
# 3   files of the nameformat "searchengine_j_<UUID>"
AFRequestCache             
appstate.bin                    
audience_network.dex     
cards_settings.dat           
ds                                  
favorite_25                     
favorite_29                     
favorite_31                     
favorites.json                  
images                           
keychain                        
newsfeedback                 
permissions.bin               
reading                          
recently_closed_tabs       
reksio.ini   
```

### System Info
I think I was on Android 7.1.1  
Rooted with Magisk, but stock ROM

### Recently Closed Tabs
Not what I am looking for right now, but I stumbled upon the location of those, in case a future viewer is looking for them:  
```
data/data/com.opera.browser/files/recently_closed_tabs/state-2147481796
```

### Related Links
* [How can I export all my open Firefox Tabs to a text file?](https://android.stackexchange.com/a/205587/96334) is posed about doing so on a living phone, but also points out where the file is located. The relevant file is called `sessionstore.js`.  
That does not seem useful for opera. grepping `find` for "session" only finds `shared_prefs/sessionrestore.xml` which contains nothing useful for my purposes.

* [How can I export the list of open Chrome tabs?](https://android.stackexchange.com/questions/56635/how-can-i-export-the-list-of-open-chrome-tabs)

### Promising Files
* `data/data/com.opera.browser/files/appstate.bin` contains at least some urls and their titles, separated by a null-byte. `strings appstate.bin` outputs more than just the urls that were open though. And some of those doubly or not completely.