J'avais plus de 200 onglets ouverts sur Opera et ils se rouvraient normalement, même après un redémarrage.
Mon téléphone s'est cassé, mais j'ai une sauvegarde de la carte SD externe, de la carte SD interne, et une sauvegarde de TWRP qui a une taille de 23,7 Go mais n'a pas de structure manifestement accessible.
Suivant les conseils de un autre AQ il est possible de concaténer les éléments suivants data.ext4.win000
a data.ext4.win009
et d'y accéder sous la forme d'une archive tar (c'est une bonne idée de cd vers l'endroit où vous voulez que la sauvegarde soit extraite d'abord) :
bash cat data.ext4.win??? | tar xvfi -
Ce que cela fait, c'est concaténer chaque fichier correspondant au motif data.ext4.win ??? et ensuite de passer les fichiers concaténés à tar pour l'extraction. Le - dans le nom de fichier indique à tar d'extraire à partir de stdin. L'option i ignore les blocs zéro qui se trouveront entre chaque fichier d'archive concaténé. fichier d'archive concaténé.
Dans cet exemple, j'ai utilisé la partition de données formatée ext4. Changez data.ext4 pour correspondre à la partition que vous extrayez.
Bien que la commande tar se termine par
/data/magisk_backup_bd5d0aa87b96353c78a3bf3a455121d0c767089c/boot.img.gz
tar: Exiting with failure status due to previous errors
il extrait un certain nombre de fichiers avant que cela ne se produise.
Cependant, il est probablement préférable de simplement extraire chacun de ces fichiers séparément sans les concaténer, comme dans le commentaire de alecxs :
remarque : concaténer les fichiers win* est une erreur, ces fichiers sont des archives tarball autonomes.
Maintenant que j'ai mon /data
Encore une fois, j'ai accès à /data/data/com.opera.browser
y /data/app/com.opera.browser-2
. Que dois-je faire avec eux pour extraire une liste des urls qui ont été ouvertes ?
Structures des répertoires
données/données/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
données/app/com.opera.browser-2
lib
arm
arm64
oat
arm
arm64
données/données/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
Informations sur le système
Je pense que j'étais sur Android 7.1.1
Enraciné avec Magisk, mais ROM stock
Onglets récemment fermés
Ce n'est pas ce que je recherche en ce moment, mais je suis tombé sur l'endroit où ils se trouvent, au cas où un futur spectateur les chercherait :
data/data/com.opera.browser/files/recently_closed_tabs/state-2147481796
Liens connexes
-
Comment exporter tous mes onglets Firefox ouverts vers un fichier texte ? est posé sur le fait de le faire sur un téléphone vivant, mais indique également où se trouve le fichier. Le fichier en question s'appelle
sessionstore.js
.
Cela ne semble pas utile pour opera. greppingfind
pour "session" seulement trouveshared_prefs/sessionrestore.xml
qui ne contient rien d'utile pour mes objectifs.
Dossiers prometteurs appstate.bin
data/data/com.opera.browser/files/appstate.bin
contient au moins quelques urls et leurs titres, séparés par un octet nul. strings appstate.bin
produit plus que juste les urls qui étaient ouvertes. Et certaines d'entre elles en double ou pas complètement. Je vais documenter mon parcours avec ce fichier ci-dessous.
Regarder data/data/com.opera.browser/files/appstate.bin
montre que c'est un fichier de données binaires, mais il contient des chaînes de caractères lisibles. Ouvrez-le avec vim appstate.bin
ou regardez hexdump -C appstate.bin
.
strings appstate.bin | grep -A3 reader_mode_state
crache déjà pas mal d'urls. Mais il n'est pas encore évident pour moi de savoir comment la structure de ce fichier fonctionne réellement.
Certaines entrées préfixent l'url avec l
o O
o K
o ]
ou pas du tout.
Dans certaines entrées, la première ligne après "reader_mode_state" est l'url, dans d'autres c'est "operaui://startpage" et l'url suit plus bas.
Mais ce qui est remarquable, c'est que les urls semblent toutes commencer par http
o https
- à moins que vous n'ayez ouvert un ftp ou autre, ce qui n'est pas le cas.
strings appstate.bin | grep http
produit 1506 lignes cependant. certains liens sont des doublons, d'autres sont des liens dont je ne me soucie pas. par exemple, comme ceci :
Qhttps://www.linuxuprising.com/2018/06/fix-no-sound-dummy-output-issue-in.html?m=1
Qhttps://www.linuxuprising.com/2018/06/fix-no-sound-dummy-output-issue-in.html?m=1
https://www.linuxuprising.com
https://www.linuxuprising.com
https://www.linuxuprising.com
https://www.linuxuprising.com
https://www.linuxuprising.com
https://www.linuxuprising.com
https://www.linuxuprising.com
https://www.linuxuprising.com
https://www.linuxuprising.com
https://www.linuxuprising.com
https://www.linuxuprising.com
Puisque je ne me soucie pas des dulicates, nous pouvons appliquer uniq
pour réduire ce nombre à 967 urls. Avec sort -u
nous descendrions à 833 à la place. Mais les deux sont encore trop nombreux. Il me semble qu'Opera y stocke également l'historique de l'onglet.
En supprimant certaines lignes manifestement indésirables, on obtient 523 lignes, soit ~260 urls :
strings appstate.bin | grep -v -e 'operaui://startpage' -e 'Speed Dial' | grep -A2 reader_mode_state | uniq | grep -v 'reader_mode_state'
Comme chiffre cible à considérer :
strings appstate.bin | grep reader_mode_state | wc -l
231
Cela signifie - en supposant que ce nombre cible soit une bonne estimation du nombre d'onglets ouverts - que j'ai une trentaine d'url de trop. Je pense que je peux vivre avec ça.