La función de sincronización de Chrome no recoge todas las pestañas abiertas en mi teléfono Android.
¿Las pestañas están almacenadas en un archivo en algún lugar al que pueda acceder?
Mi intención es exportar la lista de pestañas para poder ejecutar un restablecimiento de fábrica en el dispositivo.
Ejecutando Android 4.3
chrome-for-android
Majjo
fuente
fuente
Respuestas:
Puede usar la función Dispositivos remotos en el depurador de Chrome para conectarse a Chrome en el dispositivo y acceder a las pestañas. Simplemente expanda la lista de pestañas visibles para obtener la lista completa y luego resalte y copie todo lo que se muestra (incluidas las URL) en el portapapeles: https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
Acabo de exportar ~ 400 pestañas de esta manera.
fuente
Acabo de unirme a este StackExchange para mostrar algo de aprecio por la respuesta de Jeremy anterior, y también agregar las pocas líneas de JS que usé para exportar la lista de pestañas (¡ya que copiar con el cursor no es lo ideal!)
Como dijo Jeremy, seleccione
Remote devices
debajoMore tools
en el⋮
icono de Devtools de Chrome (arriba a la derecha del panel):Settings
⇒Developer options
, no se requiere root)Developer options
menú, está oculto de forma predeterminada para proteger a los usuariosSettings
⇒About Device
Ahora el dispositivo está conectado,
Remote devices
para poder recuperar la lista de pestañas usando JavaScriptCtrl
+Shift
+J
(VENTANAS) simplemente se cerrará El primer panel de devtools./deep/
es el selector CSS para ingresar#shadow-root
elementos DOMPara exportar una lista de todas las URL abiertas en Chrome para Android, elegí hacer la lista en una cadena de texto con formato de descuento y copiarla al portapapeles
Luego tendrá una lista en su portapapeles que se verá así:
Actualizar
Por alguna razón, recibo un error algunas veces , diciendo que no pudo obtener el
href
atributo de unnull
elemento (cuando lo inspecciono es un nodo invisible, quién sabe). Para evitar esto, use esta versión en su lugar:fuente
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}))
funcionará ahoratabs = 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')}))
(No pude acceder a la raíz de sombra final a través de un selector, pero tuve que usar la.shadowRoot
propiedad de su elemento host. No estoy seguro exactamente por qué, pero Hey, no compatible.Encontré esta solución cuando buscaba recuperar pestañas que se habían cerrado permanentemente después de que mi navegador se bloqueó un día. Para acceder a la información que necesita, su dispositivo debe estar rooteado para que pueda ejecutar una aplicación de exploración de archivos con acceso a los archivos raíz instalados en su dispositivo. ES File Explorer o Root Explorer son mis recomendaciones.
Navegue a la carpeta raíz de su dispositivo (la partición del sistema protegida) → seleccione
DATA
→ seleccionecom.android.chrome
.Hay varios lugares donde puede encontrar información sobre sus pestañas actuales.
app_tabs
, entonces0
. En esta carpeta debe haber un archivo llamadotab_state
que contiene una lista de todas sus pestañas actuales.tab3
,tab4
etc. que contienen información sobre las pestañas actuales.El siguiente lugar para buscar es
/data/com.android.chrome/app_chrome/Default/
. En esta carpeta encontrarás un archivo llamadoHistory
. Dependiendo de su situación, puede encontrar una buena lista de visitas recientes al sitio aquí.Finalmente, navega hasta el
Sync Data folder
. Aquí encontrará la información que se está sincronizando con Google (y esto debe incluir todas las pestañas que actualmente ha sincronizado en otros dispositivos).SyncData.sqlite3
, también encontrará un historial de todas sus búsquedas en Google (que a veces encuentro una lectura interesante)..CSV
o.XLS
archivo altamente utilizable que pueda abrir en MS Excel .Esto podría ser útil para alguien que supongo.
fuente
Si tiene instaladas las herramientas de línea de comandos de Android en una máquina de desarrollo y ha habilitado la depuración de USB en su dispositivo Android, puede hacer lo siguiente:
Ejecute
adb forward tcp:9222 localabstract:chrome_devtools_remote
en su máquina de desarrollo.Las instancias de Chrome exponen el acceso a un protocolo de depuración a través de un socket de dominio Unix con la dirección abstracta "
chrome_devtools_remote
" - el comando adb anterior reenvía las solicitudes al puerto 9222, a ese socket. (Puede obtener una lista de todos los sockets de dominio Unix en el dispositivo Android escribiendoadb shell cat /proc/net/unix
).El protocolo de depuración expone datos JSON sobre la instancia de Chrome a través de HTTP. Un archivo JSON que enumera las pestañas abiertas se puede obtener mediante la ejecución
wget -O tabs.json http://localhost:9222/json/list
.(Se pueden encontrar otros puntos finales de la API en https://github.com/buggerjs/bugger-daemon/blob/master/README.md#api ).
Consulte aquí para obtener más detalles sobre cómo habilitar la depuración de USB, y aquí para obtener una descripción general de cómo funciona.
fuente
Esta solución le proporcionará un archivo de texto con URL individuales para todas las pestañas que haya abierto en Chrome para Android.
Como se menciona en esta respuesta de Michael , debe tomar el archivo que contiene las pestañas actuales. Usando un explorador de raíz en el dispositivo, tome este archivo y muévalo a la carpeta que elija en Windows:
/data/data/com.android.chrome/app_tabs/0/tab_state
Instalar herramientas GNU para Windows
A veces hay un extraño carácter de flecha en el archivo que arruina el guión. Si ejecuta el script y trunca parte del archivo, mire el último carácter y probablemente será ese extraño personaje de flecha. Encuéntralo / reemplázalo en el archivo original. Una vez que se haya ido, el script se ejecutará bien. Se parece a esto:
-->
Vaya a la línea de comandos (vaya a "Ejecutar" o Win+ R, y escriba
cmd
) y navegue a la carpeta que contienesed.exe
(donde lo instaló en el paso 2.)Probablemente desee mover el archivo original (
tab_state
) a la misma carpeta que contienesed.exe
. Hará todo más fácil. Una vez que hayas hecho eso, ejecuta este script:Esto modificará el archivo con todas las URL formateadas correctamente. Abra el archivo como un archivo de texto y luego copie y pegue el contenido en un documento de Word u otra ubicación. Por alguna razón, si no copia y pega los datos, cuando guarda el archivo, borra todos los saltos de línea / retornos de carro. Si las cosas se arruinan, simplemente comienza de nuevo y vuelve a hacerlo. Cuando todo está dicho y hecho, debe tener un archivo que contenga una lista de enlaces a todas las pestañas que había abierto antes.
fuente
Instrucciones para Brave! Puede reemplazar el código en la consola de Louis Maddox con este, esto está funcionando a partir de hoy
Brave Version 1.0.0 Chromium: 78.0.3904.97 (Official Build) (64-bit)
. Observación: puede abrir una nueva ventana de consola de la ventana de dispositivos remotos si activa la ventana del dispositivo remoto y presionaCtrl+Shift+J
Luego puede pegar todas sus pestañas en un archivo de texto.
Si desea abrir todas las pestañas en su dispositivo real, reemplace la parte
tabs.forEach
conSin embargo, no intentes eso con demasiadas pestañas abiertas en tu dispositivo.
Agregué esto después de la
tabs
parte para sincronizar manualmente las pestañas abiertas (a los valientes aún les falta esta característica y tenía 650 pestañas abiertas en mi dispositivo móvil) con un costo de 50 pestañas:Esto abrirá un lote de 50 pestañas de su dispositivo en la ventana abierta del navegador. También muestra el recuento general de pestañas. Sin embargo, no cierre la pestaña 'vacía' restante para esas herramientas de desarrollador y el dispositivo remoto, si desea abrir otro lote. Con el
Ctrl + TAB
cambio a través de las pestañas,Ctrl +D
para marcarlas yCtrl+W
cerrar la pestaña activa. Así lo hice manualmente, siéntase libre de proponer cambios a este código para facilitarle la vida a todos.fuente
Michael identificó el archivo tab_state, queda por decodificarlo. El siguiente script funcionó para mí (en kitkat KSH_VERSION = '@ (#) MIRBSD KSH R43 2013/02/19' o xenial BASH_VERSION = '4.3.46 (1) -release' en un archivo tab_state de Chrome 49.0.2623.105), imprime la última URL primero, entre las URL, elimina cualquier byte no imprimible y todos los bytes siguientes, y más si es necesario para que se eliminen al menos 2 bytes. Después de cada URL, imprime un espacio, luego los bytes imprimibles contiguos eliminados, si los hay, luego una coma, luego el número de otros bytes eliminados (y dichos bytes entre paréntesis). Para imprimir las URL solo use el comando echo comentado en su lugar.
fuente
Debes ser root o Chrome para leer
/data/data/com.android.chrome/app_tabs/0/tab_state0
Puede utilizar este exploit dirtycow en dispositivos vulnerables para convertirse en Chrome y obtenerlo
tab_state0
desde un dispositivo conectado:Una vez que tenga acceso a
tab_state0
, extraiga las URL:fuente
En Windows, para extraer
tab_state0
de un archivo TitaniumBackup (que funciona en teléfonos rooteados)Para obtener la lista de pestañas de
tab_state0
En Windows instalaría https://scoop.sh/ y luego
scoop install busybox 7zip
fuente
La respuesta más reciente de simonsan no funciona en mi versión actual de Chrome
75.0.3770.100
. No tengo lavbox
clase que se usa en cada script publicado, así que logré escribir un código que funciona ahora:He encontrado que la publicación y las capturas de pantalla de Louis Maddox son muy útiles para descifrar su script, así que aquí está el mío con el árbol actualizado.
De todos modos, las soluciones propuestas para superar el límite de 100 caracteres no funcionaron para mí, por lo que decidí editarlo
inspect.js
desde la fuente siguiendo estos pasos:C:\Program Files (x86)\Google\Chrome\Application\75.0.3770.100
(donde75.0.3770.100
está el nombre de la compilación) haga una copia de laresources.pak
carpeta de Documentos, arrastre la copia y suéltelaunpack.bat
en la carpeta descomprimida.\document\resources_unpaked\
tomar el11208.js
y abrirlo.100
hay estas líneaspak_index.ini
y suéltelo enpak.bat
. ahora elresource.pak
en\documents\
ha sido actualizado con los cambios.resource.pak
porque nunca se sabe, cierre Chrome y reemplace el original con la versión actualizada.Ahora el script mostrará hasta 300 caracteres para las URL.
fuente