Come sincronizzare i segnalibri di Chrome sul desktop con browser Chrome di terze parti su Android

Un tutorial su come sincronizzare i tuoi segnalibri di Chrome con browser Chrome di terze parti come TugaBrowser. Richiede root ed è un metodo di sincronizzazione unidirezionale.

Nell'ultimo anno la popolarità dei browser di terze parti basati su Chrome di Google è esplosa. Questa tendenza è iniziata dopo che il Code Aurora Forum (CAF) ha iniziato a pubblicare Build di Chromium ottimizzate per i dispositivi Snapdragon nell'ottobre del 2015. Gli sviluppatori interessati a creare il browser definitivo e ricco di funzionalità hanno iniziato a biforcare il progetto e ad aggiungere funzionalità come la notte modalità, blocco dei contenuti, modalità di risparmio energetico, supporto dei gesti e altro oltre al supporto per i segnalibri di Chrome tramite Chrome Sync API.

Gli utenti si sono riversati su progetti come il popolare TugaBrowser sui nostri forum perché questi browser offrono molti miglioramenti oltre alle funzionalità di sincronizzazione Chrome esistenti di Google che non sono disponibili nei browser non Chrome. Sfortunatamente, Google

disattivare l'accesso di terze parti all'API di sincronizzazione di Chrome a gennaio, citando un problema di sicurezza. Google ha dichiarato che la mossa non è stata fatta intenzionalmente per ostacolare i browser Chrome di terze parti, per i quali anche il Chromium open source è classificato come, ma questa patch di sicurezza ha incidentalmente segnato la fine della sincronizzazione dei segnalibri per i browser Chrome di terze parti.

Al momento, browser come TugaBrowser non hanno ancora la possibilità di sincronizzare le modifiche ai segnalibri con Chrome Sync. Ma lì È un modo per sincronizzare i segnalibri del desktop con browser Chrome di terze parti, a condizione che tu abbia accesso root. Il metodo, che di cui abbiamo già parlato, possono sostanzialmente essere riassunti in questi passaggi:

  1. Apri il file dei segnalibri per il tuo browser Chrome di terze parti e copia il valore del checksum
  2. Invia il file dei segnalibri dalla directory di Chrome alla directory del browser Chrome di terze parti, sovrascrivendolo.
  3. Apri il nuovo file dei segnalibri e sovrascrivi il valore del checksum con quello che hai copiato per primo
  4. Forza la chiusura/uccisione del browser Chrome di terze parti in modo che ricarichi i suoi segnalibri

Questo metodo per modificare i tuoi segnalibri esiste da anni come mezzo per ripristinare i tuoi segnalibri sul desktop nel caso in cui qualcosa è andato storto, ma seguire questi passaggi per ottenere i tuoi segnalibri su browser come TugaBrowser è un'ottima applicazione di questo vecchio trucco. Sebbene questo metodo ti consenta effettivamente di ottenere i tuoi segnalibri di Chrome sul tuo browser Chrome di terze parti preferito, è necessario che tu lo faccia esegui questi passaggi ogni volta che aggiungi un nuovo segnalibro in Chrome. Questo certamente non è affatto conveniente, motivo per cui ho provato a farlo automatizzare questo processo.

Nel video qui sopra, nota come quando apro TugaBrowser per mostrare i miei segnalibri, vengono visualizzati 3 segnalibri. Quando esco e riapro TugaBrowser, a snack bar viene visualizzato per informarmi che è stato rilevato un nuovo segnalibro insieme a un pulsante per riavviare TugaBrowser. Quando premo il pulsante per riavviare il browser, apro la pagina dei segnalibri e ora vedo che è stato aggiunto un nuovo quarto segnalibro. In sostanza, ho automatizzato i 4 passaggi precedenti per lavorare silenziosamente in background e sto pubblicando qui un tutorial che ti mostra come puoi fare anche questo!

Prima di iniziare con questo tutorial, ci sono alcune cose che devo menzionare:

  • Questo metodo richiede l'accesso root. Non c'è assolutamente alcun modo per aggirare questo requisito, mi dispiace! Stiamo scherzando con i file in /data/data a cui non è possibile accedere senza root.
  • Questo metodo è a sincronizzazione unidirezionale, il che significa che tutti i segnalibri aggiunti al browser Chrome di terze parti non vengono salvati (e anzi vengono sovrascritti). Dovrai aggiungere eventuali nuovi segnalibri da un browser Chrome su cui è abilitata la sincronizzazione Chrome. Ho esaminato i metodi per forzare Chrome Sync ad accettare le modifiche ai miei segnalibri, ma sfortunatamente non penso che lo sia possibile perché la versione dei tuoi segnalibri archiviata sul server di Google sembra sovrascrivere sempre qualsiasi modifica apportata effettuare manualmente.
  • Questo metodo è sicuro. I tuoi segnalibri non corrono alcun rischio di essere cancellati, perché non possiamo (e non possiamo) interferire con la copia di Google dei tuoi segnalibri che sono archiviati sul loro server.

Se stai cercando un metodo di sincronizzazione bidirezionale sul tuo browser Chrome di terze parti, allora scusa, non otterrai mai un metodo del genere. Incolpa Google per questo. Se ti stai chiedendo "che senso ha tutto questo?" allora questo tutorial non fa per te. Se stai cercando di alleviare in qualche modo il problema della rimozione di Chrome Sync da parte di Google, spero che troverai utile questo tutorial.


Sincronizzazione unidirezionale dei segnalibri Chrome per browser Chrome di terze parti

Requisiti:

  • Accesso root
  • Tasker ($2.99)
  • Synker
  • Plug-in Tasker di Snackbar
  • Browser Google Chrome

Anche se dico che Tasker è necessario, potresti riuscire a farla franca utilizzando altre app di automazione sul Play Store. Se scegli di farlo, sei da solo perché non ho esperienza nell'usarli, quindi dovrai adattare tu stesso la mia sceneggiatura. Synker è necessario perché lo utilizziamo per forzare un aggiornamento manuale dei tuoi segnalibri. Il plugin Tasker dello snackbar non è tecnicamente necessario, ma è ciò che fornisce uno snackbar dall'aspetto ordinato che mi fa sapere che ci sono nuovi segnalibri con un pulsante per riavviare l'app. Infine, devi avere Google Chrome (qualsiasi canale va bene) installato (e non disabilitato) sul tuo dispositivo perché ci fornirà il file dei segnalibri che copieremo.

Un'altra cosa da menzionare: sebbene il mio tutorial sia costruito con TugaBrowser in mente, puoi facilmente farlo funzionare con qualsiasi altro browser basato su Chrome modificando alcuni passaggi, che illustrerò alla fine di seguito.

Esercitazione

Lo script che sto utilizzando è piuttosto complesso, con 29 azioni totali, quindi non entrerò nei dettagli eccessivi su come ciascuna funziona, ma sappi che questo script essenzialmente automatizza i 4 passaggi manuali delineati all'inizio del file articolo.

Ecco la descrizione del profilo per quelli di voi che sono già esperti di Tasker e vogliono provare a replicarlo da soli.

Sincronizzazione segnalibri CAF

 Profile: CAF Bookmark Sync (28) 

Applicazione: TugaBrowser

Inserisci: Controlla i segnalibri di Chrome (27)

A1: Synker - Forza sincronizzazione [Configurazione: Forza sincronizzazione 2 provider (s) Timeout (secondi):0]

A2: Attendi [ MS: 0 Secondi: 5 Minuti: 0 Ore: 0 Giorni: 0 ]

A3: Esegui Shell [Comando: cp /data/data/com.android.chrome/app_chrome/Default/Bookmarks /sdcard/Tasker/Bookmarks Timeout (secondi): 0 Usa root: On Memorizza output in: Memorizza errori in: Memorizza risultato In: ]

A4: Leggi il file [File:/sdcard/Tasker/Segnalibri su Var:%json]

A5: Divisione variabile [Nome:%json Splitter:"checksum": Elimina base: Disattivata]

A6: Ricerca variabile Sostituisci [ Variabile:%json2 Ricerca:(?<=")[^"]+(?=") Ignora maiuscole e minuscole: Disattivata su più righe: Disattivata Una sola corrispondenza: Attiva Memorizza corrispondenze in:%checksum Sostituisci corrispondenze: Spento Sostituisci con: ]

R7: Se [%ChromeChecksum !Set]

A8: Imposta variabile [Nome:%ChromeChecksum A:%checksum (1) Variabili ricorsive: Disattivata Esegui calcoli: Disattivata Aggiungi: Disattivata]

A9: Altro

R10: Se [ %ChromeChecksum !~ %checksum (1) ]

A11: Imposta variabile [Nome:%ChromeChecksum A:%checksum (1) Variabili ricorsive: Disattivata Esegui calcoli: Disattivata Aggiungi: Disattivata]

A12: Esegui Shell [Comando: cp /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks /sdcard/Tasker/TugaBookmarks Timeout (secondi):0 ​​Usa root: On Memorizza output in: Memorizza errori in: Memorizza Risultato in: ]

A13: Leggi il file [File:/sdcard/Tasker/TugaBookmarks in Var:%tugajson]

A14: Divisione variabile [Nome:%tugajson Splitter:"checksum": Elimina base: Disattivata]

A15: Ricerca variabile Sostituisci [ Variabile:%tugajson2 Ricerca:(?<=")[^"]+(?=") Ignora maiuscole e minuscole: Disattivata su più righe: Disattivata Una sola corrispondenza: Attiva Memorizza corrispondenze in:%checksum Sostituisci corrispondenze: Spento Sostituisci con: ]

A16: Ricerca variabile Sostituisci [ Variabile:%json2 Ricerca:(?<=")[^"]+(?=") Ignora maiuscole e minuscole: Disattivata Multilinea: Disattivata Una sola corrispondenza: Attivata Memorizza corrispondenze in: Sostituisci corrispondenze: Attivata Sostituisci con:%checksum (1)]

A17: Scrivi file [File:/sdcard/Tasker/Segnalibri Testo:%json1"checksum":%json2 Aggiungi: Disattivato Aggiungi nuova riga: Disattivato]

A18: Esegui Shell [Comando: cp /sdcard/Tasker/Bookmarks /data/data/tugapower.codeaurora.browser/app_chrome/Default/Timeout segnalibri (secondi):0 ​​Usa root: attivato Memorizza output in: Memorizza errori in: Memorizza risultato in: ]

A19: Snackbar [ Configurazione: Messaggio: Rilevati nuovi segnalibri.

Pulsante: RIAVVIA

Comando: Timeout (Secondi):15]

A20: Se [%sb_button ~ Pulsante premuto]

A21: Vai a casa [Pagina: 0]

A22: Attendi [ MS: 0 Secondi: 2 Minuti: 0 Ore: 0 Giorni: 0 ]

A23: Elimina app [App: TugaBrowser Usa root: disattivato]

A24: Attendi [ MS: 0 Secondi: 2 Minuti: 0 Ore: 0 Giorni: 0 ]

A25: Avvia app [App: Dati TugaBrowser: Escludi dalle app recenti: Disattiva Avvia sempre nuova copia: Disattiva]

A26: Fine se

A27: Elimina file [File:/sdcard/Tasker/TugaBookmarks Livello di distruzione: 0 Usa root: Disattivato]

A28: Fine se

A29: Fine se

A30: Elimina file [File:/sdcard/Tasker/Bookmarks Livello di distruzione: 0 Usa root: Off]

Per saperne di più

Lo script si attiva ogni volta che Tasker rileva che hai inserito il tuo browser Chrome di terze parti preferito, nel mio caso TugaBrowser. Dovrai abilitare il servizio di accessibilità di Tasker in modo che Tasker possa rilevare quando sei nel tuo browser preferito. Questa parte può essere facilmente modificata per funzionare con altri browser basati su Chrome, tutto ciò che devi fare è selezionare su quale browser desideri che questo script venga eseguito nel contesto dell'applicazione in Tasker.

Ora ecco una breve descrizione di ciò che ciascuna serie di azioni in questa attività sta realizzando.

  • A1-A2: sincronizza manualmente i segnalibri di Chrome dal server di Google in modo che il file dei segnalibri dell'app Chrome installata venga aggiornato. Attendi 5 secondi per assicurarti che ci sia tempo sufficiente per il completamento della sincronizzazione
  • A3-A6: copia il file dei segnalibri di Chrome in una posizione temporanea, estrai il JSON dal file in una variabile, quindi utilizza un filtro regex per estrarre il valore del checksum in un'altra variabile
  • A7-A10: se Tasker non ha una variabile globale %ChromeChecksum impostata (es. la prima volta che si esegue lo script), impostarlo sul valore corrente. Se ha un valore impostato, controlla quindi se il valore memorizzato nella variabile Tasker corrisponde al checksum corrente nel file dei segnalibri. Se è così, passa ad A11-A26
  • A11: imposta la variabile Tasker che contiene il checksum di Chrome sul checksum corrente estratto dal file dei segnalibri
  • A12-A15: copia il file dei segnalibri di TugaBrowser in una posizione temporanea, estrai il JSON dal file, quindi utilizza un filtro regex per estrarre il valore del checksum
  • A16: utilizza il valore del checksum preso da TugaBrowser e usalo per sostituire il valore del checksum dal file dei segnalibri di Chrome
  • A17-A18: inserisci il file dei segnalibri aggiornato preso da Chrome ma con il valore di checksum di TugaBrowser nella directory dei dati di TugaBrowser
  • A19-A26: mostra uno snack bar che ci informa che sono stati aggiunti nuovi segnalibri. Se viene premuto il pulsante sulla snackbar, riavvia TugaBrowser, altrimenti vai avanti.
  • A27-A30: elimina i file temporanei dei segnalibri con cui stavamo lavorando e termina l'attività

Perché questo comporta così tanti passaggi? Sfortunatamente è perché non abbiamo un modo semplice per accedere direttamente alla struttura dei dati JSON (potenzialmente grande) nel aggiungere segnalibri ai file tramite Tasker o uno dei suoi plug-in come AutoTools senza copiare il file ed estrarne il contenuto in un variabile. Se potessimo, questo lavoro sarebbe molto più condensato, ma per ora questo è quello che ho realizzato. Ho parlato con lo sviluppatore di AutoTools di questo argomento e mentre è riuscito ad aggiornare AutoTools a essere in grado di leggere i dati JSON da un file, la scrittura di JSON direttamente su un file non può essere eseguita tramite Tasker collegare.

In ogni caso, questo script stesso viene eseguito in modo estremamente veloce nonostante alcuni passaggi sembrino inutili, perché I volevo renderlo disponibile senza che tu dovessi installare plug-in aggiuntivi non necessari Tasker. L'unica cosa che rallenta questo script, e il motivo per cui vedi qualche ritardo nel video, è il tempo di attesa necessario Tasker per assicurarti che i tuoi segnalibri di Chrome siano stati sincronizzati dai server di Google prima di procedere con il resto sceneggiatura. Puoi sicuramente giocare con i comandi di "attesa" nell'attività Tasker per ridurre il ritardo, se lo desideri, ma alla fine dipende da te.


Scarica, importa e configura

Come sempre, forniremo il file XML del profilo Tasker che puoi prendere per configurare rapidamente te stesso. Scarica il file .prf.xml riportato di seguito da AndroidFileHost e salvalo nella memoria interna. Apri Tasker e disabilita la modalità Principiante nelle Preferenze. Torna alla schermata principale di Tasker e premi a lungo sulla scheda "Profilo" nella barra delle azioni in alto finché non viene visualizzata l'opzione "Importa". Premilo, quindi vai al punto in cui hai salvato il file XML e selezionalo per importarlo.

Scarica il profilo "Chrome Bookmark Sync" da AndroidFileHost

Ci sono 3 passaggi molto, molto importanti (e 1 passaggio facoltativo, ma necessario se non stai utilizzando TugaBrowser) che devi eseguire prima che questo profilo funzioni per te.

  1. Abilitare Quello di TaskerServizio di accessibilità. Puoi farlo aprendo Impostazioni e cercando "accessibilità". Tocca Tasker quindi abilita il suo servizio di accessibilità. Ciò è necessario perché altrimenti Tasker non sarà in grado di rilevare quando stai utilizzando TugaBrowser (o qualsiasi altro browser).
  2. Scegli il tuo Provider di sincronizzazione Chrome in Synker. Puoi farlo aprendo l'attività "Controlla i segnalibri di Chrome", quindi toccando l'Azione n. 1 etichettata "Synker - Forza la sincronizzazione". Premi l'icona della matita per visualizzare la schermata di configurazione di Synker. Scorri verso il basso e seleziona "Sincronizzazione Chrome" per il tuo account Google.
  3. Concedi l'accesso come superutente a Tasker. Il modo più rapido per farlo è fare in modo che Tasker tenti di eseguire un'azione che richiede su. Sempre all'interno della schermata di configurazione dell'attività "Controlla i segnalibri di Chrome", questa volta premi a lungo sull'Azione n. 3 denominata "Esegui Shell." Premi l'icona "riproduci" che appare nell'angolo in basso a sinistra per fare in modo che Tasker esegua questa azione e questa soltanto. Tasker ti chiederà di concedergli l'accesso come superutente. Nota per quelli di voi che utilizzano MagiskSU: Tasker attualmente non rileva MagiskSU da solo, quindi potrebbe generare un errore dicendo che il dispositivo non è rootato. Questo sarà risolto nel prossimo aggiornamento di Tasker, ma se stai cercando una soluzione temporanea, membro senior di XDA CasualePooka ha un breve guida per questo.

Dopo aver eseguito queste 3 cose, questo profilo dovrebbe ora iniziare a funzionare. Al primo avvio di TugaBrowser/del tuo browser preferito dopo averlo configurato, Tasker salverà il valore del checksum del file dei segnalibri di Chrome. Quando il valore del checksum cambia in un successivo avvio di TugaBrowser/del tuo browser preferito, Tasker sostituirà il file dei segnalibri del tuo browser con quello di Chrome.

Tienilo presente al primo avvio del browser, non l'ho configurato intenzionalmente in modo che Tasker copi il valore dei segnalibri di Chrome finché non rileva una modifica. Ciò significa che i segnalibri del tuo TugaBrowser/browser preferito non cambieranno finché non apporti una modifica ai segnalibri di Chrome. L'ho fatto in modo che tu possa accedere a TugaBrowser/il tuo browser preferito per salvare i tuoi segnalibri non sincronizzati/offline non archiviati sui server di Google in modo che il mio profilo Tasker non li cancelli senza che tu abbia la possibilità di salvarli altrove.


Come sincronizzare i segnalibri su browser diversi da TugaBrowser

Nel caso in cui non utilizzi TugaBrowser, dovrai modificare alcuni passaggi per farlo funzionare sul tuo browser preferito basato su Chrome. Fortunatamente, questo è molto, molto facile da fare. Ti mostrerò come farlo utilizzando Chromium open source come esempio. Ecco l'elenco delle cose che dovrai cambiare:

  1. Modificare il contesto dell'applicazione. Invece di impostare "TugaBrowser" come contesto dell'applicazione, modificare il contesto dell'applicazione in modo che si attivi quando si utilizza il browser preferito. Basta toccare il contesto e cercare la tua app nell'elenco.
  2. Modificare Azione n.12 (Esegui comando Shell) per puntare al file dei segnalibri del tuo browser specifico. La directory dovrebbe essere simile a /data/data/PACKAGE.NAME/app_chrome/Default/Bookmarks. (Nota: le variabili e i nomi dei file che lo salvano/si riferiscono ad esso come "TugaBookmarks" possono essere tranquillamente ignorati, devi solo cambiare da dove Tasker sta estraendo il file dei segnalibri) Prima:
    cp /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks /sdcard/Tasker/TugaBookmarks
    Dopo:
    cp /data/data/org.chromium.chrome/app_chrome/Default/Bookmarks /sdcard/Tasker/TugaBookmarks
  3. Modificare Azione n.18 (un altro comando Esegui Shell) per salvare il file dei segnalibri aggiornato nella directory dei dati del tuo browser specifico. Ancora una volta, la directory dovrebbe assomigliare a quella sopra. Prima:
    cp /sdcard/Tasker/Bookmarks /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks
    Dopo:
    cp /sdcard/Tasker/Bookmarks /data/data/org.chromium.chrome/app_chrome/Default/Bookmarks 
  4. Modificare Azione n.23 per uccidere il tuo browser preferito. In questo modo, quando premi il pulsante di riavvio nello snackbar, Tasker ucciderà l'applicazione giusta.
  5. Modificare Azione n.25 per riavviare lo stesso browser di tua scelta. Ciò riavvierà il browser dopo che è stato ucciso dall'utente in modo che possa caricare i nuovi segnalibri.

Tutto il resto può essere tranquillamente lasciato stare, anche se i nomi delle variabili/file creati non hanno senso con il tuo particolare browser. Puoi scegliere di cambiarli se ti danno fastidio, ma assicurati di sapere cosa stai facendo prima di tentare di farlo. Avere una certa familiarità con Tasker sarà sicuramente di aiuto in questo caso.


Conclusione

Spero che questo profilo ti sia utile. So che c'è molto da capire qui, ma è davvero importante che tu legga attentamente questo post in modo da capire cosa fa, come funziona e quando funzionerà. Mi ci sono voluti molti tentativi ed errori per ottenere il risultato giusto, ma sono abbastanza soddisfatto dei risultati, anche se alla fine sembra eccessivamente complicato.

L'automazione di questo processo aiuta ad alleviare parte del peso della sincronizzazione dei segnalibri con Chrome Sync, anche se sfortunatamente sarà sempre e solo un problema sincronizzazione unidirezionale e richiederà sempre l'accesso root finché Google non allenterà le restrizioni che impediscono ai browser Chrome di terze parti di accedere a Chrome Sincronizzazione.

Se hai domande, commenti o dubbi, faccelo sapere nei commenti qui sotto!