Як синхронізувати закладки Chrome на робочому столі зі сторонніми браузерами Chrome на Android

Посібник із синхронізації закладок Chrome зі сторонніми веб-переглядачами Chrome, такими як TugaBrowser. Потрібен root і є одностороннім методом синхронізації.

За останній рік сторонні веб-переглядачі на основі Chrome від Google вибухнули в популярності. Ця тенденція почалася після виходу Code Aurora Forum (CAF). Збірки Chromium, оптимізовані для пристроїв Snapdragon у жовтні 2015 року. Розробники, зацікавлені у створенні найкращого, багатофункціонального браузера, почали розгалужувати проект і додавали такі функції, як нічний режим, блокувальники вмісту, режими енергозбереження, підтримка жестів тощо на додаток до підтримки закладок Chrome через Chrome Sync API.

Користувачі кинулися до таких проектів, як популярний TugaBrowser на наших форумах, оскільки ці веб-переглядачі запропонували багато вдосконалень на додаток до існуючих функцій синхронізації Google Chrome, які недоступні у веб-переглядачах, які не є Chrome. На жаль, Google закрити сторонній доступ до Chrome Sync API ще в січні, посилаючись на проблеми безпеки. Google заявив, що цей крок не було зроблено навмисно, щоб перешкоджати стороннім браузерам Chrome, для яких навіть

Chromium з відкритим кодом класифікується як, але цей патч безпеки випадково означав кінець синхронізації закладок для сторонніх веб-переглядачів Chrome.

Наразі такі браузери, як TugaBrowser, не можуть синхронізувати зміни закладок із Chrome Sync. Але там є спосіб синхронізації закладок робочого столу зі сторонніми браузерами Chrome, якщо у вас є root-доступ. Спосіб, який ми писали про це раніше, в основному можна підсумувати такими кроками:

  1. Відкрийте файл закладок для стороннього браузера Chrome і скопіюйте значення контрольної суми
  2. Перемістіть файл закладок із каталогу Chrome у каталог стороннього веб-переглядача Chrome, перезаписавши його.
  3. Відкрийте новий файл закладок і замініть значення контрольної суми тим, яке ви скопіювали вперше
  4. Примусово закрийте/закрийте сторонній веб-переглядач Chrome, щоб він перезавантажив свої закладки

Цей метод редагування ваших закладок існував роками як засіб відновлення ваших закладок на робочому столі у випадку щось пішло не так, але використання цих кроків для отримання ваших закладок у браузерах, таких як TugaBrowser, є чудовим застосуванням цього старий трюк. Хоча цей метод дійсно дозволяє отримати закладки Chrome у вашому улюбленому сторонньому веб-переглядачі Chrome, він вимагає від вас виконуйте ці дії кожного разу, коли додаєте нову закладку в Chrome. Це, звичайно, зовсім не зручно, тому я спробував автоматизувати цей процес.

Зверніть увагу на відео вище, коли я відкриваю TugaBrowser, щоб показати свої закладки, показуються 3 закладки. Коли я виходжу й знову відкриваю TugaBrowser, a буфет відображається повідомлення про те, що було виявлено нову закладку разом із кнопкою перезапуску TugaBrowser. Коли я натискаю кнопку перезапуску браузера, я відкриваю сторінку закладок і бачу, що додано нову, четверту закладку. По суті, я автоматизував наведені вище 4 кроки для тихої роботи у фоновому режимі, і я публікую тут підручник, який показує вам, як ви можете це зробити!

Перш ніж я почну з цього підручника, я хочу згадати кілька речей:

  • Цей метод вимагає кореневого доступу. Немає жодного способу обійти цю вимогу, вибачте! Ми возимося з файлами в /data/data, до яких неможливо отримати доступ без root.
  • Цей метод є a одностороння синхронізація, тобто будь-які закладки, які ви додаєте до стороннього веб-переглядача Chrome, не зберігаються (і фактично перезаписуються). Вам доведеться додавати будь-які нові закладки у веб-переглядачі Chrome, у якому ввімкнено синхронізацію Chrome. Я розглянув методи, щоб змусити Chrome Sync приймати зміни моїх закладок, але, на жаль, я не думаю, що це можливо, оскільки версія ваших закладок, збережена на сервері Google, здається, завжди перекриває будь-які зміни, які ви внесли зробити вручну.
  • Цей метод є безпечний. Ваші закладки не зашкодять видаленню, тому що ми не (і не можемо) зіткнутися з копією ваших закладок Google, яка зберігається на їхньому сервері.

Якщо вам потрібен метод двосторонньої синхронізації у сторонньому веб-переглядачі Chrome, вибачте, ви ніколи не отримаєте такий метод. Звинувачуйте в цьому Google. Якщо ви запитуєте себе "який у цьому сенс", тоді цей підручник не для вас. Якщо ви хочете дещо полегшити біль, пов’язаний із видаленням Google Chrome Sync, то, сподіваємося, цей підручник буде для вас корисним.


Одностороння синхронізація закладок Chrome для сторонніх веб-переглядачів Chrome

Вимоги:

  • Кореневий доступ
  • Tasker ($2.99)
  • Синкер
  • Плагін Snackbar Tasker
  • Браузер Google Chrome

Хоча я кажу, що Tasker потрібен, ви можете уникнути використання інших програм автоматизації в Play Store. Якщо ви все-таки вирішите зробити це, ви самі, тому що я не маю досвіду їх використання, тому вам доведеться адаптувати мій сценарій самостійно. Synker необхідний, оскільки ми використовуємо його для примусового ручного оновлення ваших закладок. Плагін Tasker панелі закусочних технічно не потрібний, але саме він забезпечує гарну панель закусочних, яка повідомляє мені про наявність нових закладок із кнопкою перезапуску програми. Нарешті, на вашому пристрої має бути встановлено (і не вимкнено) Google Chrome (дозволено будь-який канал), оскільки він надасть нам файл закладок, який ми скопіюємо.

Ще одна річ, про яку слід згадати: хоча мій підручник створено за допомогою TugaBrowser пам’ятайте, що ви можете легко змусити це працювати з будь-яким іншим браузером на основі Chrome, змінивши кілька кроків, які я опишу в кінці нижче.

Підручник

Сценарій, який я використовую, досить складний із 29 діями, тому я не буду вдаватися в подробиці того, як кожна крок працює, але знайте, що цей сценарій по суті автоматизує 4 ручні кроки, описані на початку стаття.

Ось опис профілю для тих із вас, хто вже є експертом у Tasker і хоче спробувати відтворити його самостійно.

Синхронізація закладок CAF

 Profile: CAF Bookmark Sync (28) 

Програма: TugaBrowser

Введіть: перевірити закладки Chrome (27)

A1: Synker - Примусова синхронізація [ Конфігурація: Примусова синхронізація 2 постачальників (ів) Час очікування (секунди): 0 ]

A2: Зачекайте [ MS: 0 секунд: 5 хвилин: 0 годин: 0 днів: 0 ]

A3: Запустіть оболонку [ Команда: cp /data/data/com.android.chrome/app_chrome/Default/Bookmarks /sdcard/Tasker/Bookmarks Тайм-аут (секунди):0 Використовувати кореневу папку: Увімкнено Зберігати вихідні дані в: Зберігати помилки в: Зберігати результат В: ]

A4: Читання файлу [ File:/sdcard/Tasker/Bookmarks To Var:%json]

A5: Розділення змінної [Назва:%json Splitter:"контрольна сума": Видалити базу: Вимк.]

A6: Пошук змінної Замінити [ Змінна:%json2 Пошук:(?<=")[^"]+(?=") Ігнорувати регістр: Вимк. Багаторядковий: Вимк. Лише один збіг: Увімк. Зберігати збіги В:%контрольна сума Замінити збіги: Вимк. Замінити на: ]

A7: Якщо [ %ChromeChecksum !Set ]

A8: Набір змінних [ Ім’я:%ChromeChecksum To:%checksum (1) Рекурсивні змінні: Вимк. Виконання математики: Вимк. Додавання: Вимк.

A9: Інше

A10: якщо [ %ChromeChecksum !~ %checksum (1) ]

A11: Набір змінних [Назва:%ChromeChecksum To:%checksum (1) Змінні рекурсії: Вимк. Виконання математики: Вимк. Додавання: Вимк.]

A12: Запустіть оболонку [ Команда: cp /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks /sdcard/Tasker/TugaBookmarks Тайм-аут (секунди): 0 Використовувати корінь: Увімкнути Зберігати вихідні дані в: Зберігати помилки в: Зберігати В результаті: ]

A13: Прочитати файл [ File:/sdcard/Tasker/TugaBookmarks To Var:%tugajson ]

A14: Розділення змінної [Назва:%tugajson Splitter:"контрольна сума": Видалити базу: Вимк.]

A15: Пошук змінної Замінити [ Змінна:%tugajson2 Пошук:(?<=")[^"]+(?=") Ігнорувати регістр: Вимк. Багаторядковий: Вимк. Лише один збіг: Увімк. Зберігати збіги в:%контрольна сума Замінити збіги: Вимк. Замінити на: ]

A16: Пошук змінної Замінити [ Змінна:%json2 Пошук:(?<=")[^"]+(?=") Ігнорувати регістр: Вимк. Багаторядковий: Вимк. Лише один збіг: Увімк. Зберігати збіги: Замінити збіги: Увімк. Замінити на:%контрольна сума (1) ]

A17: Записати файл [ File:/sdcard/Tasker/Bookmarks Text:%json1"checksum":%json2 Append: Off Add Newline: Off ]

A18: Запустіть оболонку [ Команда: cp /sdcard/Tasker/Bookmarks /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks Час очікування (секунди): 0 Використовувати root: Увімк. Зберегти вихідні дані в: Зберегти помилки в: Зберегти результат у: ]

A19: Snackbar [ Конфігурація: Повідомлення: Виявлено нові закладки.

Кнопка: RESTART

Команда: Час очікування (секунди): 15 ]

A20: Якщо [ %sb_button ~ кнопка натиснута ]

A21: Перейти додому [ Сторінка: 0 ]

A22: Зачекайте [ MS: 0 секунд: 2 хвилини: 0 годин: 0 днів: 0 ]

A23: Вимкніть додаток [Додаток: TugaBrowser Використовуйте корінь: Вимк.]

A24: Зачекайте [ MS: 0 секунд: 2 хвилини: 0 годин: 0 днів: 0 ]

A25: Запуск програми [Програма: Дані TugaBrowser: Виключити з останніх програм: Вимк. Завжди починати нову копію: Вимк.]

A26: End If

A27: Видалити файл [ File:/sdcard/Tasker/TugaBookmarks Shred Level: 0 Use Root: Off ]

A28: End If

A29: End If

A30: Видалити файл [ File:/sdcard/Tasker/Bookmarks Shred Level: 0 Use Root: Off ]

читати далі

Сценарій активується щоразу, коли Tasker виявляє, що ви ввели обраний сторонній браузер Chrome, у моєму випадку TugaBrowser. Вам потрібно буде ввімкнути службу доступності Tasker, щоб Tasker міг визначити, коли ви перебуваєте у своєму браузері. Цю частину можна легко змінити для роботи з іншими веб-переглядачами на базі Chrome, все, що вам потрібно зробити, це вибрати, у якому браузері ви хочете запускати цей сценарій, у контексті програми в Tasker.

Тепер ось короткий опис того, що виконує кожен набір дій у цьому Завданні.

  • А1-А2: вручну синхронізувати закладки Chrome із сервером Google, щоб файл закладок встановленої програми Chrome оновлювався. Зачекайте 5 секунд, щоб переконатися, що у вас достатньо часу для завершення синхронізації
  • А3-А6: скопіюйте файл закладок Chrome у тимчасове розташування, витягніть JSON із файлу в змінну, а потім за допомогою фільтра регулярних виразів витягніть значення контрольної суми в іншу змінну
  • A7-A10: якщо Tasker не має встановленої глобальної змінної %ChromeChecksum (тобто. під час першого запуску сценарію), установіть для нього поточне значення. Якщо він має встановлене значення, перевірте, чи значення, збережене у змінній Tasker, відповідає поточній контрольній сумі у файлі закладок. Якщо так, перейдіть до A11-A26
  • A11: установіть змінну Tasker, що містить контрольну суму Chrome, на поточну контрольну суму, отриману з файлу закладок
  • A12-A15: скопіюйте файл закладок TugaBrowser у тимчасове розташування, витягніть JSON із файлу, а потім скористайтеся фільтром регулярних виразів, щоб отримати значення контрольної суми
  • A16: використовуйте значення контрольної суми, взяте з TugaBrowser, і використовуйте його для заміни значення контрольної суми з файлу закладок Chrome
  • A17-A18: надішліть оновлений файл закладок, взятий із Chrome, але зі значенням контрольної суми TugaBrowser, у каталог даних TugaBrowser
  • A19-A26: показати снек-бар, який повідомляє, що додано нові закладки. Якщо кнопку на панелі швидкого доступу натиснуто, перезапустіть TugaBrowser, інакше рухайтеся далі.
  • A27-A30: видалити тимчасові файли закладок, з якими ми працювали, і завершити Завдання

Чому це включає стільки кроків? На жаль, це тому, що ми не маємо простого способу прямого доступу до (потенційно великої) структури даних JSON у створювати закладки для файлів за допомогою Tasker або одного з його плагінів, наприклад AutoTools, без копіювання файлу та вилучення його вмісту в змінна. Якби ми могли, ця робота була б набагато стислішою, але наразі це те, що я придумав. Я спілкувався з розробником AutoTools щодо цього питання, і хоча він зміг оновити AutoTools до мати можливість читати дані JSON з файлу, запис JSON безпосередньо у файл не можна було зробити через Tasker підключати.

У будь-якому випадку, сам цей сценарій працює надзвичайно швидко, незважаючи на те, що деякі кроки здаються непотрібними, тому що я хотів отримати це без необхідності встановлювати непотрібні додаткові плагіни Tasker. Єдине, що уповільнює цей сценарій і чому ви бачите деяку затримку у відео, це час очікування, необхідний для Tasker, щоб переконатися, що ваші закладки Chrome синхронізовано із серверами Google, перш ніж перейти до решти сценарій. Звичайно, ви можете пограти з командами «чекати» у завданні Tasker, щоб зменшити затримку, якщо хочете, але це, зрештою, залежить від вас.


Завантажте, імпортуйте та налаштуйте

Як завжди, ми надамо XML-файл профілю Tasker, який ви можете отримати, щоб швидко налаштувати це для себе. Завантажте файл .prf.xml нижче з AndroidFileHost і збережіть його у внутрішній пам’яті. Відкрийте Tasker і вимкніть режим для початківців у налаштуваннях. Поверніться на головний екран Tasker і довго натисніть вкладку «Профіль» на панелі дій угорі, доки не з’явиться спливаюча опція «імпортувати». Натисніть її, а потім перейдіть до місця збереження XML-файлу та виберіть його, щоб імпортувати.

Завантажте профіль «Синхронізація закладок Chrome» з AndroidFileHost

Є 3 дуже, дуже важливі кроки (і 1 необов’язковий, але необхідний крок, якщо ви не використовуєте TugaBrowser), які вам потрібно виконати, перш ніж цей профіль працюватиме для вас.

  1. Увімкнути ТаскераСлужба доступності. Ви можете зробити це, відкривши «Налаштування» та ввівши пошуковий запит «спеціальні можливості». Торкніться Tasker, а потім увімкніть його службу доступності. Це необхідно, оскільки інакше Tasker не зможе визначити, коли ви використовуєте TugaBrowser (або будь-який інший браузер).
  2. Виберіть свій Постачальники синхронізації Chrome у Synker. Ви можете зробити це, відкривши завдання «Перевірити закладки Chrome», а потім торкнувшись дії №1 із позначкою «Синкер — примусова синхронізація». Натисніть піктограму олівця, щоб відкрити екран конфігурації Synker. Прокрутіть униз і виберіть «Chrome Sync» для свого облікового запису Google.
  3. Надайте Tasker доступ суперкористувача. Найшвидший спосіб зробити це — змусити Tasker спробувати виконати дію, яка вимагає су. Знову на екрані конфігурації завдання «Перевірити закладки Chrome», цього разу натисніть і утримуйте дію №3 із позначкою «Виконати» Shell." Натисніть піктограму "play", яка з'явиться в нижньому лівому куті, щоб Tasker запустив цю дію, а цю тільки. Tasker попросить вас надати йому доступ суперкористувача. Примітка для тих із вас, хто користується MagiskSU: Tasker наразі не виявляє MagiskSU самостійно, тому може видавати помилку, повідомляючи, що ваш пристрій не рутиноване. Це буде виправлено в наступному оновленні Tasker, але якщо ви шукаєте тимчасовий обхідний шлях, XDA Senior Member RandomPooka має короткий посібник для цього.

Після того, як ви зробите ці 3 речі, цей профіль має почати працювати. Під час першого запуску TugaBrowser/вибраного браузера після налаштування Tasker збереже значення контрольної суми файлу закладок Chrome. Коли значення контрольної суми змінюється під час наступного запуску TugaBrowser/вибраного вами браузера, Tasker замінить файл закладок вашого браузера файлом закладок із Chrome.

Зверніть увагу, що для першого запуску вашого браузера, я навмисно не налаштував його, тому Tasker копіюватиме значення закладки Chrome, доки не виявить зміни. Це означає, що закладки вашого TugaBrowser/вибраного браузера не зміняться, доки ви не внесете зміни в закладки Chrome. Я зробив це, щоб ви могли отримати доступ до TugaBrowser/вибраного вами браузера, щоб зберегти ваші несинхронізовані/офлайн-закладки. зберігаються на серверах Google, щоб мій профіль Tasker не знищив їх, не маючи можливості зберегти їх в іншому місці.


Як синхронізувати закладки в інших браузерах, крім TugaBrowser

Якщо ви не використовуєте TugaBrowser, вам потрібно буде змінити кілька кроків, щоб це запрацювало у вашому браузері на основі Chrome. На щастя, це дуже і дуже легко зробити. Я покажу вам, як це зробити на прикладі Chromium з відкритим кодом. Ось список речей, які вам потрібно буде змінити:

  1. Змініть контекст програми. Замість того, щоб «TugaBrowser» встановлювати як контекст програми, змініть контекст програми, щоб він запускався під час використання вибраного браузера. Просто торкніться контексту та знайдіть свою програму в списку.
  2. Змінити Дія №12 (Виконати команду Shell), щоб вказати на файл закладок вашого браузера. Каталог має виглядати так: /data/data/PACKAGE.NAME/app_chrome/Default/Bookmarks. (Примітка: змінні та імена файлів, які зберігають його/посилаються на нього як "TugaBookmarks", можна безпечно ігнорувати, вам просто потрібно змінити місце, звідки Tasker витягує файл закладок) Перед:
    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
  3. Змінити Дія №18 (інша команда Run Shell), щоб зберегти оновлений файл закладок у каталозі даних вашого браузера. Знову ж таки, каталог має виглядати так само, як вище. Раніше:
    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 
  4. Змінити Дія №23 щоб вбити обраний браузер. Тому коли ви натискаєте кнопку перезапуску на панелі завантажень, Tasker закриває потрібну програму.
  5. Змінити Дія №25 щоб повторно запустити той самий браузер за вашим вибором. Це призведе до повторного запуску браузера після того, як він був закритий користувачем, щоб він міг завантажити нові закладки.

Усе інше можна безпечно залишити, навіть якщо створені назви змінних/файлів не мають сенсу у вашому конкретному браузері. Ви можете змінити їх, якщо вони вас турбують, але переконайтеся, що ви знаєте, що ви робите, перш ніж намагатися це зробити. Знайомство з Tasker точно допоможе.


Висновок

Сподіваюся, цей профіль буде для вас корисним. Я знаю, що тут можна багато чого зрозуміти, але дуже важливо, щоб ви уважно прочитали цю публікацію, щоб зрозуміти, що це робить, як це працює та коли це запрацює. Мені знадобилося багато спроб і помилок, щоб отримати правильний результат, але я дуже задоволений результатами, навіть якщо зрештою це здається надто складним.

Автоматизація цього процесу допомагає полегшити певний тягар синхронізації ваших закладок за допомогою Chrome Sync, хоча, на жаль, це буде лише одностороння синхронізація та завжди потребуватиме кореневого доступу, доки Google не пом’якшить свої обмеження, які перешкоджають стороннім веб-переглядачам Chrome отримати доступ до Chrome Синхронізувати.

Якщо у вас є запитання, коментарі чи сумніви, повідомте нам про це в коментарях нижче!