En handledning om hur du synkroniserar dina Chrome-bokmärken med Chrome-webbläsare från tredje part som TugaBrowser. Kräver root och är en enkelriktad synkroniseringsmetod.
Under det senaste året har tredjepartswebbläsare baserade på Googles Chrome exploderat i popularitet. Denna trend började efter att Code Aurora Forum (CAF) började publiceras Chromium-byggnader optimerade för Snapdragon-enheter i oktober 2015. Utvecklare som var intresserade av att göra den ultimata, funktionsfyllda webbläsaren började forkasta projektet och lade till funktioner som en natt läge, innehållsblockerare, energisparlägen, geststöd och mer utöver stöd för Chrome-bokmärken via Chrome Sync API.
Användare strömmade till projekt som det populära TugaBrowser på våra forum eftersom dessa webbläsare erbjöd många förbättringar utöver Googles befintliga Chrome-synkroniseringsfunktioner som inte är tillgängliga i andra webbläsare än Chrome. Tyvärr, Google stänga av tredje parts åtkomst till Chrome Sync API tillbaka i januari, med hänvisning till en säkerhetsoro. Google uppgav att flytten inte avsiktligt gjordes för att hindra tredjeparts Chrome-webbläsare, för vilka till och med
Chromium med öppen källkod klassificeras som, men den här säkerhetskorrigeringen stavade för övrigt slutet på bokmärkessynkronisering för tredje parts Chrome-webbläsare.För närvarande finns det fortfarande inget sätt för webbläsare som TugaBrowser att synkronisera bokmärkesändringar med Chrome Sync. Men där är ett sätt att synkronisera dina skrivbordsbokmärken med Chrome-webbläsare från tredje part, förutsatt att du har root-åtkomst. Metoden, som vi har skrivit om tidigare, kan i princip sammanfattas i dessa steg:
- Öppna bokmärkesfilen för din Chrome-webbläsare från tredje part och kopiera kontrollsumman
- Skjut bokmärkesfilen från Chromes katalog till din tredje parts Chrome-webbläsares katalog och skriv över den.
- Öppna den nya bokmärkesfilen och skriv över kontrollsummans värde med det du först kopierade
- Tvinga stäng/döda Chrome-webbläsaren från tredje part så att den laddar om sina bokmärken
Denna metod för att redigera dina bokmärken har funnits i flera år som ett sätt att återställa dina bokmärken på skrivbordet i fall något gick fel, men att använda dessa steg för att få dina bokmärken i webbläsare som TugaBrowser är en snygg tillämpning av detta gammalt knep. Även om den här metoden verkligen låter dig få dina Chrome-bokmärken i din favorit Chrome-webbläsare från tredje part, kräver den att du gör dessa steg varje gång du lägger till ett nytt bokmärke i Chrome. Det är verkligen inte bekvämt alls, det var därför jag gick runt och försökte automatisera denna process.
I videon ovan, lägg märke till hur när jag öppnar TugaBrowser för att visa upp mina bokmärken, det visas 3 bokmärken. När jag lämnar och öppnar TugaBrowser igen, en snackbar visas och berättar att ett nytt bokmärke har upptäckts tillsammans med en knapp för att starta om TugaBrowser. När jag trycker på knappen för att starta om webbläsaren öppnar jag bokmärkessidan och ser nu att ett nytt, fjärde bokmärke har lagts till. I huvudsak har jag automatiserat ovanstående fyra steg för att arbeta tyst i bakgrunden, och jag lägger upp en handledning här som visar dig hur du kan göra detta också!
Innan jag börjar med den här handledningen finns det några saker jag behöver nämna:
- Den här metoden kräver root-åtkomst. Det finns absolut ingen väg runt detta krav, förlåt! Vi bråkar med filer i /data/data som inte kan nås utan root.
- Denna metod är en enkelriktad synkronisering, vilket innebär att alla bokmärken du lägger till i din Chrome-webbläsare från tredje part inte sparas (och faktiskt skrivs över). Du måste lägga till nya bokmärken från en Chrome-webbläsare som har Chrome Sync aktiverat. Jag har undersökt metoder för att tvinga Chrome Sync att acceptera mina bokmärkesändringar, men tyvärr tror jag inte att det är möjligt eftersom versionen av dina bokmärken som lagras på Googles server alltid verkar åsidosätta alla ändringar du gör göra manuellt.
- Denna metod är säker. Dina bokmärken är inte i någon skada att raderas, eftersom vi inte (och kan inte) bråka med Googles kopia av dina bokmärken som lagras på deras server.
Om du letar efter en tvåvägssynkroniseringsmetod i din Chrome-webbläsare från tredje part, ledsen, du kommer aldrig att få en sådan metod. Skyll på Google för det. Om du frågar dig själv "vad är poängen med det här", då är den här handledningen inte för dig. Om du vill lindra smärtan av att Google tar bort Chrome Sync, kommer du förhoppningsvis att hitta den här handledningen användbar.
Enkelriktad Chrome-bokmärkessynkronisering för Chrome-webbläsare från tredje part
Krav:
- Root-åtkomst
- Tasker ($2.99)
- Synker
- Snackbar Tasker Plugin
- Webbläsaren Google Chrome
Även om jag säger att Tasker krävs, kanske du kan komma undan med att använda andra automatiseringsappar i Play Butik. Om du väljer att göra det är du ensam eftersom jag inte har någon erfarenhet av att använda dem så du måste anpassa mitt manus själv. Synker är nödvändigt eftersom vi använder det för att tvinga fram en manuell uppdatering av dina bokmärken. Snackbar Tasker-plugin är tekniskt sett inte nödvändig, men det är det som ger den snygga snackbaren som låter mig veta att det finns nya bokmärken med en knapp för att starta om appen. Slutligen måste du ha Google Chrome (vilken kanal som helst är okej) installerad (och inte inaktiverad) på din enhet eftersom den kommer att ge oss bokmärkesfilen som vi kommer att kopiera.
En sak till att nämna: även om min handledning är byggd med TugaBrowser i åtanke kan du enkelt få detta att fungera med alla andra Chrome-baserade webbläsare genom att ändra några steg, som jag kommer att beskriva i slutet nedan.
Handledning
Skriptet jag använder är ganska komplext, med totalt 29 åtgärder, så jag kommer inte att gå in på alltför detaljer om hur varje steg fungerar, men vet bara att det här skriptet i huvudsak automatiserar de 4 manuella stegen som beskrivs i början av artikel.
Här är profilbeskrivningen för dig som redan är expert på Tasker och vill prova att replikera det själv.
CAF Bookmark Sync
Profile: CAF Bookmark Sync (28)
Användning: TugaBrowser
Enter: Kontrollera Chrome-bokmärken (27)
A1: Synker - Tvinga synkronisering [ Konfiguration: Tvinga synkronisering 2 leverantör(er) Timeout (sekunder):0 ]
A2: Vänta [ MS: 0 sekunder: 5 minuter: 0 timmar: 0 dagar: 0 ]
A3: Kör Shell [ Kommando: cp /data/data/com.android.chrome/app_chrome/Default/Bookmarks /sdcard/Tasker/Bookmarks Timeout (sekunder):0 Använd rot: På Butik Utdata In: Lagra fel i: Butiksresultat I: ]
A4: Läs fil [ File:/sdcard/Tasker/Bookmarks To Var:%json ]
A5: Variabeldelning [ Namn:%json Splitter:"checksum": Ta bort bas: Av ]
A6: Variabelsökning Ersätt [ Variabel:%json2 Sök:(?<=")[^"]+(?=") Ignorera skiftläge: Av Flerrads: Av Endast en matchning: På Butiksmatchningar In:%checksum Ersätt matchningar: Av Ersätt med: ]
S7: Om [ %ChromeChecksum !Set ]
A8: Variable Set [ Namn:%ChromeChecksum Till:%checksum (1) Återkommande variabler: Av Gör matematik: Av Lägg till: Av ]
A9: Annars
S10: Om [ %ChromeChecksum !~ %checksum (1) ]
A11: Variable Set [ Namn:%ChromeChecksum Till:%checksum (1) Återkommande variabler: Av Gör matematik: Av Lägg till: Av ]
S12: Kör Shell [ Kommando: cp /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks /sdcard/Tasker/TugaBookmarks Timeout (sekunder):0 Använd rot: På Butik Utdata In: Lagra fel i: Butik Resultera i: ]
A13: Läs fil [ File:/sdcard/Tasker/TugaBookmarks To Var:%tugajson ]
A14: Variabeldelning [ Namn:%tugajson Splitter:"checksum": Ta bort bas: Av ]
S15: Variabelsökning Ersätt [ Variabel:%tugajson2 Sök:(?<=")[^"]+(?=") Ignorera skiftläge: Av Flerrads: Av Endast en matchning: På Butiksmatchningar In:%checksum Ersätt matchningar: Av Ersätt med: ]
S16: Variabelsökning Ersätt [ Variabel:%json2 Sök:(?<=")[^"]+(?=") Ignorera skiftläge: Av Flerrads: Av Endast en matchning: På Butiksmatchningar In: Ersätt matchningar: På Ersätt med:%checksum (1) ]
S17: Skriv fil [ File:/sdcard/Tasker/Bookmarks Text:%json1"checksum":%json2 Lägg till: Av Lägg till ny rad: Av ]
A18: Kör Shell [ Kommando: cp /sdcard/Tasker/Bookmarks /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks Timeout (sekunder):0 Använd root: På Lagra utdata i: Lagra fel i: Lagra resultat i: ]
S19: Snackbar [ Konfiguration: Meddelande: Nya bokmärken upptäcktes.
Knapp: STARTA OM
Kommando: Timeout (sekunder):15 ]
A20: Om [ %sb_button ~ knapp nedtryckt ]
A21: Gå hem [ Sida: 0 ]
A22: Vänta [ MS: 0 sekunder: 2 minuter: 0 timmar: 0 dagar: 0 ]
A23: Kill App [ App: TugaBrowser Use Root: Off ]
A24: Vänta [ MS: 0 sekunder: 2 minuter: 0 timmar: 0 dagar: 0 ]
A25: Starta app [ App: TugaBrowser Data: Exkludera från senaste appar: Av Starta alltid ny kopia: Av ]
A26: Avsluta If
S27: Ta bort fil [ Fil:/sdcard/Tasker/TugaBookmarks Shred Level: 0 Använd rot: Av ]
A28: Avsluta If
A29: Avsluta If
A30: Ta bort fil [ File:/sdcard/Tasker/Bookmarks Shred Level: 0 Use Root: Off ]
Läs mer
Skriptet aktiveras när Tasker upptäcker att du har angett din valda tredje parts Chrome-webbläsare, i mitt fall TugaBrowser. Du måste aktivera Tasker's Accessibility Service så att Tasker kan upptäcka när du är i din valfria webbläsare. Den här delen kan enkelt modifieras för att fungera med andra Chrome-baserade webbläsare, allt du behöver göra är att välja vilken webbläsare du vill att detta skript ska köras på i Application Context i Tasker.
Här kommer nu en kort beskrivning av vad varje uppsättning åtgärder i den här uppgiften åstadkommer.
- A1-A2: synkronisera Chrome-bokmärken manuellt från Googles server så att den installerade Chrome-appens bokmärkesfil uppdateras. Vänta 5 sekunder för att säkerställa att det finns tillräckligt med tid för synkroniseringen att slutföras
- A3-A6: kopiera Chromes bokmärkesfil till en tillfällig plats, extrahera JSON från filen till en variabel och använd sedan ett regex-filter för att extrahera kontrollsumman till en annan variabel
- A7-A10: om Tasker inte har en global variabel %ChromeChecksum set (dvs. första gången du kör skriptet), ställ in det på det aktuella värdet. Om den har ett värde inställt, kontrollera nästa om värdet lagrat i Tasker-variabeln matchar den aktuella kontrollsumman i bokmärkesfilen. Gå i så fall vidare till A11-A26
- A11: ställ in Tasker-variabeln som håller Chrome-kontrollsumman till den aktuella kontrollsumman som extraherats från bokmärkesfilen
- A12-A15: kopiera TugaBrowsers bokmärkesfil till en tillfällig plats, extrahera JSON från filen och använd sedan ett regex-filter för att extrahera kontrollsumman
- A16: använd kontrollsumman från TugaBrowser och använd den för att ersätta kontrollsumman från Chromes bokmärkesfil
- A17-A18: tryck in den uppdaterade bokmärkesfilen från Chrome men med TugaBrowsers kontrollsummavärde till TugaBrowsers datakatalog
- A19-A26: visa en snackbar som berättar att nya bokmärken har lagts till. Om knappen på snackbaren trycks ned, starta om TugaBrowser, annars går du vidare.
- A27-A30: radera de tillfälliga bokmärkesfilerna vi arbetade med och avsluta uppgiften
Varför innebär detta så många steg? Tyvärr beror det på att vi inte har ett enkelt sätt att direkt komma åt den (potentiellt stora) JSON-datastrukturen i bokmärk filer genom Tasker eller någon av dess plugin-program, t.ex. AutoTools utan att kopiera filen och extrahera dess innehåll till en variabel. Om vi kunde skulle det här arbetet vara mycket mer förtätat, men för tillfället är detta vad jag har kommit fram till. Jag har pratat med utvecklaren av AutoTools om denna fråga, och medan han kunde uppdatera AutoTools till kunna läsa JSON-data från en fil, att skriva JSON direkt till en fil gick inte att göra via Tasker plugin.
I vilket fall som helst, det här skriptet körs extremt snabbt trots att vissa steg verkar onödiga, eftersom jag ville få ut det här utan att du behöver installera några onödiga extra plugins ovanpå Tasker. Det enda som saktar ner det här skriptet, och varför du ser en viss fördröjning i videon, är den väntetid som krävs för Tasker för att säkerställa att dina Chrome-bokmärken har synkroniserats från Googles servrar innan du går vidare med resten av manus. Du kan säkert leka med "vänta"-kommandona i Tasker Task för att minska fördröjningen om du vill, men det är i slutändan upp till dig.
Ladda ner, importera och konfigurera
Som alltid kommer vi att tillhandahålla Tasker Profile XML-filen som du kan ta tag i för att snabbt få den här inställningen själv. Ladda ner .prf.xml-filen nedan från AndroidFileHost och spara den på ditt interna minne. Öppna Tasker och inaktivera nybörjarläge i Inställningar. Gå tillbaka till Taskers huvudskärm och tryck länge på fliken "Profil" i åtgärdsfältet upptill tills du ser ett "import"-alternativ dyka upp. Tryck på den och navigera sedan till där du sparade XML-filen och välj den för att importera den.
Ladda ner "Chrome Bookmark Sync"-profilen från AndroidFileHost
Det finns 3 mycket, mycket viktiga steg (och 1 valfritt, men nödvändigt steg om du inte kör TugaBrowser) du måste ta innan den här profilen kommer att fungera för dig.
- Gör det möjligt Tasker'sTillgänglighetstjänst. Du kan göra det genom att öppna Inställningar och söka efter "tillgänglighet". Tryck på Tasker och aktivera sedan dess tillgänglighetstjänst. Detta är nödvändigt eftersom Tasker annars inte kan upptäcka när du använder TugaBrowser (eller någon annan webbläsare).
- Välj din Chrome Sync-leverantörer i Synker. Du kan göra detta genom att öppna uppgiften "Kontrollera Chrome Bookmarks" och sedan trycka på åtgärd #1 märkt "Synker - Force sync." Tryck på pennikonen för att ta fram Synkers konfigurationsskärm. Rulla ned och välj "Chrome Sync" för ditt Google-konto.
- Ge Tasker superanvändaråtkomst. Det snabbaste sättet att göra detta är att få Tasker att försöka utföra en åtgärd som kräver su. Återigen i "Kontrollera Chrome Bookmarks" uppgiftskonfigurationsskärmen, denna gång trycker du länge på åtgärd #3 märkt "Kör Skal." Tryck på "spela"-ikonen som dyker upp i det nedre vänstra hörnet för att få Tasker att köra den här åtgärden och den här endast. Tasker kommer att be dig att ge den superanvändaråtkomst. Notera till er som använder MagiskSU: Tasker upptäcker för närvarande inte MagiskSU på egen hand, så det kan skicka ett felmeddelande som säger att din enhet inte är rootad. Detta kommer att vara fixat i nästa Tasker-uppdatering, men om du letar efter en tillfällig lösning, XDA Senior Member RandomPooka har en kort guide för det.
Efter att du har gjort dessa 3 saker bör den här profilen nu börja fungera. Vid din första lansering av TugaBrowser/din webbläsare efter att ha konfigurerat detta, kommer Tasker att spara kontrollsumman för Chromes bokmärkesfil. När kontrollsumman ändras vid en efterföljande lansering av TugaBrowser/din webbläsare, kommer Tasker att ersätta din webbläsares bokmärkesfil med den från Chrome.
Observera att för den första starten av din webbläsare, jag har inte konfigurerat det medvetet så Tasker kommer att kopiera Chromes bokmärkesvärde tills det upptäcker en ändring. Det betyder att din TugaBrowser/valfri webbläsares bokmärken inte ändras förrän du gör en ändring i Chromes bokmärken. Jag gjorde detta så att du kommer att kunna komma åt TugaBrowser/din webbläsare för att spara dina osynkroniserade/offlinebokmärken inte lagras på Googles servrar så att min Tasker-profil inte raderar dem utan att du har en chans att spara dem någon annanstans.
Hur man synkroniserar bokmärken på andra webbläsare än TugaBrowser
Om du inte använder TugaBrowser måste du ändra några steg för att få detta att fungera i din Chrome-baserade webbläsare. Lyckligtvis är detta väldigt, väldigt enkelt att göra. Jag kommer att visa dig hur du gör det med Chromium med öppen källkod som exempel. Här är listan över saker du behöver ändra:
- Ändra applikationskontexten. Istället för att "TugaBrowser" ställs in som applikationskontext, ändra applikationskontexten så att den utlöses när du använder den webbläsare du väljer. Klicka bara på kontexten och leta efter din app i listan.
- Ändra Åtgärd #12 (Kör Shell-kommandot) för att peka på din speciella webbläsares bokmärkesfil. Katalogen ska se ut som /data/data/PACKAGE.NAME/app_chrome/Default/Bookmarks. (Obs: variablerna och filnamnen som sparar den/refererar till den som "TugaBookmarks" kan säkert ignoreras, du behöver bara ändra var Tasker hämtar bokmärkesfilen ifrån) Före:
Efter:cp /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks /sdcard/Tasker/TugaBookmarks
cp /data/data/org.chromium.chrome/app_chrome/Default/Bookmarks /sdcard/Tasker/TugaBookmarks
- Ändra Åtgärd #18 (ett annat Kör Shell-kommando) för att spara den uppdaterade bokmärkesfilen i din specifika webbläsares datakatalog. Återigen bör katalogen se ut som ovan. Innan:
Efter:cp /sdcard/Tasker/Bookmarks /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks
cp /sdcard/Tasker/Bookmarks /data/data/org.chromium.chrome/app_chrome/Default/Bookmarks
- Ändra Åtgärd #23 för att döda din valda webbläsare. Detta är så när du trycker på omstartsknappen i snackbaren kommer Tasker att döda rätt applikation.
- Ändra Åtgärd #25 för att starta om samma webbläsare som du väljer. Detta kommer att starta om webbläsaren efter att den har dödats av användaren så att den kan ladda det nya bokmärket.
Allt annat kan säkert lämnas ifred, även om de skapade variabel-/filnamnen inte är vettiga med just din webbläsare. Du kan välja att ändra dem om de stör dig, men se till att du vet vad du gör innan du försöker göra det. Att ha lite Tasker-förtrogenhet kommer definitivt att hjälpa där.
Slutsats
Jag hoppas att du tycker att den här profilen är användbar. Jag vet att det finns mycket att ta in här, men det är verkligen viktigt för dig att läsa igenom det här inlägget noggrant så att du förstår vad det här gör, hur det fungerar och när det kommer att fungera. Detta tog mig mycket försök och misstag för att få det här rätt, men jag är ganska nöjd med resultatet, även om det verkar alltför komplicerat i slutändan.
Att automatisera den här processen hjälper till att lindra en del av bördan med att synkronisera dina bokmärken med Chrome Sync, men det kommer tyvärr bara att bli en enkelriktad synkronisering och kommer alltid att kräva root-åtkomst tills Google lättar på sina begränsningar som hindrar tredjeparts Chrome-webbläsare från att komma åt Chrome Synkronisera.
Om du har några frågor, kommentarer eller funderingar, låt oss veta i kommentarerna nedan!