La fonction de synchronisation de Chrome ne détecte pas tous les onglets ouverts sur mon téléphone Android.
Les onglets sont-ils stockés dans un fichier quelque part auquel je peux accéder?
Mon intention est d'exporter la liste des onglets afin de pouvoir effectuer une réinitialisation d'usine sur le périphérique.
Exécution d'Android 4.3
chrome-for-android
Majjo
la source
la source
Réponses:
Vous pouvez utiliser la fonctionnalité Appareils distants du débogueur de Chrome pour vous connecter à Chrome sur l'appareil et accéder aux onglets. Développez simplement la liste des onglets visibles pour obtenir la liste complète, puis mettez en surbrillance et copiez tout ce qui est affiché (y compris les URL) dans le Presse-papiers: https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
J'ai juste réussi à exporter ~ 400 onglets de cette façon.
la source
Je viens juste de rejoindre ce StackExchange pour montrer notre appréciation de la réponse de Jeremy ci-dessus, et également pour ajouter les quelques lignes de JS que j’utilisais pour exporter la liste des onglets (car la copie avec le curseur n’est pas idéale!)
Comme Jeremy l'a dit, sélectionnez
Remote devices
sous l' icône deMore tools
Chrome devtools⋮
(en haut à droite du panneau):Settings
⇒Developer options
, racine non requise)Developer options
menu, il est masqué par défaut pour protéger les utilisateursSettings
⇒About Device
Maintenant, l'appareil est connecté,
Remote devices
la possibilité de récupérer la liste des onglets à l'aide de JavaScriptCtrl
+Shift
+J
(WINDOWS) se ferme le premier panneau devtools./deep/
est le sélecteur CSS pour entrer#shadow-root
des éléments DOMPour exporter une liste de toutes les URL ouvertes sur Chrome pour Android, j'ai choisi de simplement transformer la liste en chaîne de texte formatée par démarquage et de la copier dans le presse-papiers.
Vous aurez alors une liste sur votre presse-papiers ressemblant à ceci:
Mise à jour
Pour une raison quelconque, je reçois parfois une erreur , disant que l'
href
attribut d'unnull
élément n'était pas obtenu (lorsque je l'inspecte, il s'agit d'un nœud invisible qui sait). Pour contourner ce problème, utilisez plutôt cette version:la source
tabs = Array.from(document.querySelectorAll('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.devtools-link')._href}))
fonctionnera maintenanttabs = Array.from(document.querySelector('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div.vbox.flex-auto').shadowRoot.querySelectorAll('.devices-view .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.device-page-url .devtools-link').getAttribute('href')}))
(je ne pouvais pas accéder à la racine fantôme finale via un sélecteur, mais je devais utiliser à la place la.shadowRoot
propriété de son élément host. Je ne sais pas exactement pourquoi, mais hé, non pris en charge.Je suis tombé sur cette solution lorsque je cherchais à récupérer des onglets qui avaient été définitivement fermés après la panne de mon navigateur. Pour accéder aux informations dont vous avez besoin, votre appareil doit être rooté afin que vous puissiez exécuter une application d'exploration de fichiers avec accès aux fichiers racine installés sur votre appareil. ES File Explorer ou Root Explorer sont mes recommandations.
Naviguez jusqu'au dossier racine de votre appareil (la partition système protégée) → sélectionnez
DATA
→ sélectionnezcom.android.chrome
.Il existe plusieurs endroits où vous pouvez trouver des informations sur vos onglets actuels.
app_tabs
alors0
. Dans ce dossier, il devrait y avoir un fichier appelétab_state
contenant une liste de tous vos onglets actuels.tab3
,tab4
etc. qui contiennent les informations sur les onglets actuels.Le prochain endroit à regarder est
/data/com.android.chrome/app_chrome/Default/
. Dans ce dossier, vous trouverez un fichier appeléHistory
. Selon votre situation, vous trouverez peut-être ici une bonne liste de visites de sites récentes.Enfin, accédez au
Sync Data folder
. Ici, vous trouverez les informations synchronisées avec Google (et cela devrait inclure tous les onglets que vous avez synchronisés sur d'autres appareils).SyncData.sqlite3
, vous trouverez également un historique de toutes vos recherches sur Google (ce que je trouve parfois être une lecture intéressante)..CSV
ou.XLS
fichier que vous pouvez ouvrir dans MS Excel .Cela pourrait être utile à quelqu'un que je suppose.
la source
Si les outils de ligne de commande Android sont installés sur une machine de développement et avez activé le débogage USB sur votre périphérique Android, vous pouvez procéder comme suit:
Exécutez
adb forward tcp:9222 localabstract:chrome_devtools_remote
sur votre machine de développement.Les instances de Chrome permettent d'accéder à un protocole de débogage via une socket de domaine unix avec l' adresse abstraite "
chrome_devtools_remote
" - la commande adb ci-dessus transfère les demandes au port 9222, à cette socket. (Vous pouvez obtenir une liste de tous les sockets du domaine Unix sur le périphérique Android en tapantadb shell cat /proc/net/unix
.)Le protocole de débogage expose les données JSON relatives à l'instance de chrome sur HTTP. Un fichier JSON listant les onglets ouverts peut être obtenu en s’exécutant
wget -O tabs.json http://localhost:9222/json/list
.(Vous pouvez trouver d'autres points de terminaison de l'API à l' adresse https://github.com/buggerjs/bugger-daemon/blob/master/README.md#api .)
Voir ici pour plus de détails sur l' activation de débogage USB, et ici pour un aperçu de la façon dont cela fonctionne.
la source
Cette solution de contournement vous donnera un fichier texte avec des URL individuelles pour tous les onglets que vous avez ouverts dans Chrome pour Android.
Comme mentionné dans cette réponse de Michael , vous devez récupérer le fichier contenant les onglets actuels. À l'aide d'un explorateur racine sur le périphérique, récupérez ce fichier et déplacez-le dans le dossier de votre choix dans Windows:
/data/data/com.android.chrome/app_tabs/0/tab_state
Installer les outils GNU pour Windows
Parfois, il y a une étrange flèche dans le fichier qui bousille le script. Si vous exécutez le script et qu'il tronque une partie du fichier, examinez le dernier caractère et il s'agira probablement de ce caractère de flèche étrange. Recherchez / remplacez-le dans le fichier d'origine. Une fois qu'il est parti, le script fonctionnera correctement. Cela ressemble à ceci:
-->
Allez à la ligne de commande (allez à "Run" ou Win+ R, et tapez
cmd
) et naviguez jusqu'au dossier qui contientsed.exe
(où que vous ayez été installé à l'étape 2).Vous voudrez probablement déplacer le fichier d'origine (
tab_state
) dans le même dossier que celui-cised.exe
. Ça va tout rendre plus facile. Une fois que vous avez fait cela, lancez ce script:Cela modifiera le fichier avec toutes les URL formatées correctement. Ouvrez le fichier en tant que fichier texte, puis copiez et collez le contenu dans un document Word ou à un autre emplacement. Pour une raison quelconque, si vous ne copiez pas et ne collez pas les données, lorsque vous enregistrez le fichier, tous les sauts de ligne / retours à la ligne sont effacés. Si les choses tournent mal, recommencez et recommencez. Une fois que tout est dit et fait, vous devriez avoir un fichier qui contient une liste de liens vers tous les onglets que vous aviez ouverts auparavant.
la source
Instructions pour Brave! Vous pouvez remplacer le code dans la console de Louis Maddox par celui-ci, cela fonctionne à partir d’aujourd’hui
Brave Version 1.0.0 Chromium: 78.0.3904.97 (Official Build) (64-bit)
. Remarque: Vous pouvez ouvrir une nouvelle fenêtre de console de la fenêtre des périphériques distants si vous activez la fenêtre du périphérique distant et appuyez surCtrl+Shift+J
Ensuite, vous pouvez coller tous vos onglets dans un fichier texte.
Si vous voulez ouvrir tous les onglets de votre appareil actuel, remplacez la
tabs.forEach
partie parN'essayez pas cela avec trop d'onglets ouverts sur votre appareil, cependant.
J'ai ajouté ceci après la
tabs
partie pour synchroniser manuellement les onglets ouverts (il manque encore cette fonctionnalité et j'avais 650 onglets ouverts sur mon appareil mobile) en charge de 50 onglets:Cela ouvrira un lot de 50 onglets de votre appareil dans la fenêtre de navigateur ouverte. Il montre également le nombre total d'onglets. Ne fermez pas cependant l'onglet "vide" de ces outils de développement et du périphérique distant si vous souhaitez ouvrir un autre lot. Avec
Ctrl + TAB
vous passez d’un onglet à l’autre,Ctrl +D
marquez-le etCtrl+W
fermez l’onglet actif. C'est comme cela que je l'ai fait manuellement. N'hésitez pas à proposer des modifications à ce code pour rendre la vie de tous plus facile.la source
Michael a identifié le fichier tab_state, il reste à le décoder. Le script suivant a fonctionné pour moi (dans le kitkat KSH_VERSION = '@ (#) MIRBSD KSH R43 2013/02/19' ou xenial BASH_VERSION = 'version 4.3.46 (1)' sur un fichier tab_state à partir de Chrome 49.0.2623.105), il imprime d'abord la dernière URL, il supprime tout octet non imprimable et tous les octets suivants entre les URL, et davantage si nécessaire afin de supprimer au moins 2 octets. Après chaque URL, il affiche un espace, puis les octets imprimables contigus supprimés, le cas échéant, puis une virgule, puis le nombre d’octets supprimés (et les octets entre parenthèses). Pour imprimer les URL, utilisez uniquement la commande echo commentée.
la source
Vous devez être root ou Chrome pour lire
/data/data/com.android.chrome/app_tabs/0/tab_state0
Vous pouvez utiliser cet exploit dirtycow sur des périphériques vulnérables pour devenir Chrome et obtenir
tab_state0
un périphérique connecté:Une fois que vous avez accès à
tab_state0
, extrayez les URL:la source
Sous Windows, pour extraire
tab_state0
une archive TitaniumBackup (qui fonctionne sur les téléphones rootés)Pour obtenir la liste des onglets de
tab_state0
Sur Windows, je voudrais installer https://scoop.sh/ puis
scoop install busybox 7zip
la source
La réponse la plus récente de simonsan ne fonctionne pas sur ma version actuelle de Chrome
75.0.3770.100
. Je n'ai pas lavbox
classe utilisée dans chaque script posté, alors j'ai réussi à écrire un code qui fonctionne maintenant:J'ai trouvé le message de Louis Maddox et ses captures d'écran très utiles pour déchiffrer son script. Voici donc le mien avec l'arbre mis à jour.
Quoi qu'il en soit, les solutions proposées pour surmonter le cap des 100 caractères ne fonctionnaient pas pour moi. J'ai donc décidé de modifier
inspect.js
le code source à partir des sources en procédant comme suit:C:\Program Files (x86)\Google\Chrome\Application\75.0.3770.100
(où75.0.3770.100
est le nom de la construction), copiez leresources.pak
dans votre dossier Documents, faites-le glisser et déposez-leunpack.bat
dans le dossier décompressé.\document\resources_unpaked\
prendre le11208.js
et l'ouvrir.100
il y a ces lignespak_index.ini
et déposez - le sur lapak.bat
. maintenant, leresource.pak
dans\documents\
a été mis à jour avec les modifications.resource.pak
parce que vous ne savez jamais, fermez Chrome et remplacez l'originale par la version mise à jour.Maintenant, le script affichera jusqu'à 300 caractères pour les URL.
la source