Die Synchronisierungsfunktion von Chrome erfasst nicht alle auf meinem Android-Handy geöffneten Tabs.
Sind die Registerkarten in einer Datei gespeichert, auf die ich zugreifen kann?
Ich beabsichtige, die Liste der Registerkarten zu exportieren, damit ich das Gerät auf die Werkseinstellungen zurücksetzen kann.
Android 4.3 ausführen
chrome-for-android
Majjo
quelle
quelle
Antworten:
Sie können die Funktion "Remote-Geräte" im Chrome-Debugger verwenden, um auf dem Gerät eine Verbindung zu Chrome herzustellen und auf die Registerkarten zuzugreifen. Erweitern Sie einfach die Liste der sichtbaren Registerkarten, um die vollständige Liste zu erhalten, und markieren und kopieren Sie alles, was angezeigt wird (einschließlich der URLs), in die Zwischenablage: https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
Ich habe es gerade geschafft, ~ 400 Tabs auf diese Weise zu exportieren.
quelle
Treten Sie einfach diesem StackExchange bei, um die oben stehende Antwort von Jeremy zu würdigen , und fügen Sie die wenigen Zeilen von JS hinzu, die ich zum Exportieren der Registerkartenliste verwendet habe (da das Kopieren mit dem Cursor nicht ideal ist!).
Wie Jeremy sagte, wählen Sie
Remote devices
unterMore tools
auf Chrome devtools⋮
Symbol (oben rechts im Panel):Settings
⇒Developer options
, root nicht erforderlich)Developer options
Menü aktivieren müssen . Es ist standardmäßig ausgeblendet, um Benutzer zu schützenSettings
⇒ tippenAbout Device
Jetzt ist das Gerät verbunden,
Remote devices
, um die Liste der Registerkarten mit JavaScript abzurufenCtrl
+Shift
+J
(WINDOWS) einfach geschlossen das erste devtools panel./deep/
ist der CSS-Selektor zur Eingabe von#shadow-root
DOM-ElementenUm eine Liste aller in Chrome für Android geöffneten URLs zu exportieren, habe ich mich dafür entschieden, die Liste in eine abschriftenformatierte Textzeichenfolge umzuwandeln und in die Zwischenablage zu kopieren
Sie haben dann eine Liste in Ihrer Zwischenablage, die so aussieht:
Aktualisieren
Aus irgendeinem Grund erhalte ich einen Fehler einen Teil der Zeit , sagen sie das bekommen fehlgeschlagen
href
Attribut einernull
Position (wenn ich inspizieren es es ist ein unsichtbares Knoten, wer weiß). Verwenden Sie stattdessen diese Version, um dies zu umgehen:quelle
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}))
wird jetzt funktionierentabs = 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')}))
(Ich konnte nicht über einen Selektor auf die endgültige Shadow-Root zugreifen, sondern musste.shadowRoot
stattdessen die Eigenschaft des Host-Elements verwenden. Ich weiß nicht genau warum, aber Hey, nicht unterstütztIch bin auf diese Lösung gestoßen, als ich nach Tabs gesucht habe, die nach einem Absturz meines Browsers dauerhaft geschlossen wurden. Um auf die von Ihnen benötigten Informationen zugreifen zu können, muss Ihr Gerät gerootet sein, damit Sie eine Datei-Explorer-App mit Zugriff auf die auf Ihrem Gerät installierten Stammdateien ausführen können. ES File Explorer oder Root Explorer sind meine Empfehlungen.
Navigieren Sie zum Stammordner Ihres Geräts (der geschützten Systempartition) → Auswählen
DATA
→ Auswählencom.android.chrome
.Es gibt verschiedene Stellen, an denen Sie Informationen zu Ihren aktuellen Registerkarten finden können.
app_tabs
dann0
. In diesem Ordner sollte sich eine Datei mit dem Namentab_state
befinden, die eine Liste aller Ihrer aktuellen Registerkarten enthält.tab3
,tab4
usw. , die Informationen über die aktuell Tabs enthalten.Der nächste Ort ist
/data/com.android.chrome/app_chrome/Default/
. In diesem Ordner finden Sie eine Datei namensHistory
. Abhängig von Ihrer Situation finden Sie hier möglicherweise eine gute Liste der letzten Besuche vor Ort.Zum Schluss navigieren Sie zu
Sync Data folder
. Hier finden Sie die Informationen, die mit Google synchronisiert werden (einschließlich aller Registerkarten, die Sie derzeit auf anderen Geräten synchronisiert haben).SyncData.sqlite3
finden Sie auch einen Verlauf aller Ihrer Google-Suchanfragen (die ich manchmal als interessant empfinde)..CSV
oder.XLS
Datei , die Sie in öffnen können MS Excel .Dies könnte für jemanden hilfreich sein, von dem ich annehme.
quelle
Wenn Sie die Android-Befehlszeilentools auf einem Entwicklungscomputer installiert und das USB-Debugging auf Ihrem Android-Gerät aktiviert haben, können Sie Folgendes tun:
Führen Sie es
adb forward tcp:9222 localabstract:chrome_devtools_remote
auf Ihrem Entwicklungscomputer aus.Chrome-Instanzen ermöglichen den Zugriff auf ein Debugging-Protokoll über einen Unix-Domain-Socket mit der abstrakten Adresse "
chrome_devtools_remote
" - der obige Befehl adb leitet Anforderungen an Port 9222 an diesen Socket weiter. (Sie können eine Liste aller Unix-Domain-Sockets auf dem Android-Gerät abrufen, indem Sie Folgendes eingebenadb shell cat /proc/net/unix
.)Das Debugging-Protokoll macht JSON-Daten zur Chrome-Instanz über HTTP verfügbar. Eine JSON-Datei mit den geöffneten Registerkarten kann durch Ausführen von abgerufen werden
wget -O tabs.json http://localhost:9222/json/list
.(Weitere Endpunkte der API finden Sie unter https://github.com/buggerjs/bugger-daemon/blob/master/README.md#api .)
Sehen Sie hier , um weitere Informationen über das Aktivieren USB - Debugging, und hier für einen Überblick darüber , wie es funktioniert.
quelle
Bei dieser Problemumgehung erhalten Sie eine Textdatei mit individuellen URLs für alle Registerkarten, die Sie in Chrome für Android geöffnet haben.
Wie in dieser Antwort von Michael erwähnt , müssen Sie die Datei mit den aktuellen Registerkarten abrufen. Greifen Sie mit einem Root-Explorer auf dem Gerät auf diese Datei und verschieben Sie sie in einen Ordner Ihrer Wahl in Windows:
/data/data/com.android.chrome/app_tabs/0/tab_state
Installieren Sie GNU Tools für Windows
Manchmal gibt es ein seltsames Pfeilzeichen in der Datei, das das Skript durcheinander bringt. Wenn Sie das Skript ausführen und einen Teil der Datei abschneiden, sehen Sie sich das letzte Zeichen an und es wird wahrscheinlich das seltsame Pfeilzeichen sein. Suchen / Ersetzen Sie es in der Originaldatei. Sobald es weg ist, läuft das Skript einwandfrei. Es sieht aus wie das:
-->
Gehen Sie zur Eingabeaufforderung (gehen Sie zu "Ausführen" oder Win+ Rund geben Sie ein
cmd
) und navigieren Sie zu dem Ordner, der enthältsed.exe
(wo immer Sie ihn in Schritt 2 installiert haben).Vermutlich möchten Sie die Originaldatei (
tab_state
) in denselben Ordner verschieben, der enthältsed.exe
. Es wird alles einfacher machen. Führen Sie anschließend das folgende Skript aus:Dadurch wird die Datei mit allen korrekt formatierten URLs geändert. Öffnen Sie die Datei als Textdatei, kopieren Sie den Inhalt und fügen Sie ihn in ein Word-Dokument oder einen anderen Speicherort ein. Aus irgendeinem Grund werden beim Speichern der Datei alle Zeilenumbrüche / Zeilenumbrüche gelöscht, wenn Sie die Daten nicht kopieren und einfügen. Wenn es schief geht, fangen Sie einfach von vorne an und wiederholen Sie den Vorgang. Wenn alles gesagt und getan ist, sollten Sie eine Datei haben, die eine Liste von Links zu allen Registerkarten enthält, die Sie zuvor geöffnet hatten.
quelle
Sie können den Code in der Konsole von Louis Maddox durch diesen ersetzen, der ab heute funktioniert
Version 0.66.99 Chromium: 75.0.3770.100
. Anmerkung: Sie können ein neues Konsolenfenster des Remote-Gerätefensters öffnen, indem Sie das Remote-Gerätefenster aktivieren und auf drückenCtrl+Shift+J
Dann können Sie alle Ihre Tabs in eine Textdatei einfügen.
Wenn Sie alle Registerkarten auf Ihrem tatsächlichen Gerät öffnen möchten, ersetzen Sie das
tabs.forEach
-Teil durchVersuchen Sie dies jedoch nicht mit zu vielen offenen Tabs auf Ihrem Gerät.
Ich habe dies nach dem
tabs
Teil hinzugefügt , um geöffnete Tabs manuell zu synchronisieren (mutig fehlt diese Funktion immer noch, und ich hatte 650 geöffnete Tabs auf meinem mobilen Gerät). Die Kosten betragen 50 Tabs:Dies öffnet einen Stapel von 50 Registerkarten von Ihrem Gerät in das geöffnete Browserfenster. Außerdem wird die Gesamtzahl der Registerkarten angezeigt. Schließen Sie jedoch nicht die verbleibende Registerkarte "leer" für diese Entwicklertools und das Remote-Gerät, wenn Sie einen weiteren Stapel öffnen möchten. Mit
Ctrl + TAB
wechseln Sie durch die Registerkarten,Ctrl +D
um sie mit einem Lesezeichen zu versehen undCtrl+W
die aktive Registerkarte zu schließen. So habe ich es manuell gemacht. Sie können jederzeit Änderungen an diesem Code vorschlagen, um das Leben aller einfacher zu machen.quelle
Michael hat die tab_state-Datei identifiziert, sie muss noch dekodiert werden. Das folgende Skript hat für mich funktioniert (in kitkat KSH_VERSION = '@ (#) MIRBSD KSH R43 2013/02/19' oder xenial BASH_VERSION = '4.3.46 (1) -release' in einer tab_state-Datei aus Chrome 49.0.2623.105). Es druckt die letzte URL zuerst aus. Zwischen den URLs werden alle nicht druckbaren Bytes und alle folgenden Bytes entfernt. Falls erforderlich, werden mindestens 2 Bytes entfernt. Nach jeder URL wird ein Leerzeichen ausgegeben, dann die entfernten zusammenhängenden druckbaren Bytes, falls vorhanden, dann ein Komma, dann die Anzahl der anderen entfernten Bytes (& besagte Bytes in Klammern). Verwenden Sie zum Drucken der URLs stattdessen den Befehl "Kommentiertes Echo".
quelle
Sie müssen root oder Chrome sein, um lesen zu können
/data/data/com.android.chrome/app_tabs/0/tab_state0
Sie können diesen DirtyCow-Exploit auf anfälligen Geräten verwenden, um Chrome zu werden und
tab_state0
von einem angeschlossenen Gerät zu erhalten:Sobald Sie Zugriff auf haben
tab_state0
, extrahieren Sie die URLs:quelle
Die neueste Antwort von simonsan funktioniert in meinem aktuellen Chrome-Build nicht
75.0.3770.100
. Ich habe nicht dievbox
Klasse, die in jedem Skript verwendet wird, veröffentlicht, also habe ich es geschafft, einen Code zu schreiben, der jetzt funktioniert:Ich habe Louis Maddox 'Post und Screenshots als sehr nützlich empfunden , um sein Skript zu entschlüsseln. Hier ist also meins mit dem aktualisierten Baum.
Wie auch immer, die vorgeschlagenen Lösungen zur Überwindung der Obergrenze von 100 Zeichen haben bei mir nicht funktioniert. Daher habe ich beschlossen, die
inspect.js
aus der Quelle stammenden Informationen folgendermaßen zu bearbeiten :C:\Program Files (x86)\Google\Chrome\Application\75.0.3770.100
(wo75.0.3770.100
ist der Name des Builds ) eine Kopie desresources.pak
Ordners in Ihrem Dokument, ziehen Sie die Kopie und legen Sie sieunpack.bat
im entpackten Ordner ab.\document\resources_unpaked\
nehmen die11208.js
und öffnen.100
gibt es diese Zeilenpak_index.ini
auf diepak.bat
. jetzt wurde dasresource.pak
in\documents\
mit den änderungen aktualisiert.resource.pak
da Sie es nie erfahren haben. Schließen Sie Chrome und ersetzen Sie das Original durch die aktualisierte Version.Jetzt zeigt das Skript bis zu 300 Zeichen für die URLs an.
quelle
In Windows zum Extrahieren
tab_state0
aus einem TitaniumBackup-Archiv (funktioniert über gerootete Telefone)Hiermit rufen Sie die Liste der Registerkarten ab
tab_state0
Unter Windows würde ich installieren https://scoop.sh/ dann
scoop install busybox 7zip
quelle
Dies ist nicht die Antwort, die Sie suchen, aber:
Erstellen Sie ein Dummy-Konto bei Google
Melden Sie sich auf dem Android-Gerät an und aktivieren Sie die Synchronisierung
Melden Sie sich auf dem Desktop an und aktivieren Sie die Synchronisierung
Installieren Sie die Session Buddy-Erweiterung auf dem Desktop
Registerkarten exportieren
quelle