デスクトップの Chrome ブックマークを Android 上のサードパーティ Chrome ブラウザと同期する方法

Chrome ブックマークを TugaBrowser などのサードパーティ Chrome ブラウザと同期する方法に関するチュートリアル。 root が必要で、一方向の同期方法です。

過去 1 年間で、Google の Chrome をベースにしたサードパーティのブラウザの人気が爆発的に高まりました。 この傾向は、Code Aurora Forum (CAF) が公開を開始した後に始まりました。 Snapdragon デバイス用に最適化された Chromium ビルド 2015 年 10 月に。 機能満載の究極のブラウザの作成に興味のある開発者はプロジェクトのフォークを開始し、夜間などの機能を追加しました。 Chrome Sync による Chrome ブックマークのサポートに加えて、モード、コンテンツ ブロッカー、省電力モード、ジェスチャー サポートなど API。

人気のプロジェクトなどのプロジェクトにユーザーが集まりました。 トゥガブラウザ これらのブラウザは、Google の既存の Chrome 同期機能に加えて、Chrome 以外のブラウザでは利用できない多くの機能強化を提供しているためです。 残念ながら、Google Chrome Sync API へのサードパーティのアクセスをシャットダウンする 1月に安全保障上の懸念を理由に。 Google は、この動きはサードパーティの Chrome ブラウザを妨害するために意図的に行われたものではないと述べました。 オープンソースのクロム として分類されていますが、このセキュリティ パッチにより、サードパーティの Chrome ブラウザのブックマーク同期が終了することになりました。

現時点では、TugaBrowser などのブラウザがブックマークの変更を Chrome Sync と同期する方法はまだありません。 しかし、そこに  root アクセス権がある場合に、デスクトップのブックマークをサードパーティの Chrome ブラウザと同期する方法。 その方法は、 以前にも投稿しました、基本的に次の手順に要約できます。

  1. サードパーティの Chrome ブラウザのブックマーク ファイルを開き、チェックサム値をコピーします。
  2. ブックマーク ファイルを Chrome のディレクトリからサードパーティの Chrome ブラウザのディレクトリにプッシュし、上書きします。
  3. 新しいブックマーク ファイルを開き、チェックサム値を最初にコピーした値で上書きします。
  4. サードパーティの Chrome ブラウザを強制的に閉じるか強制終了して、ブックマークを再読み込みします

ブックマークを編集するこの方法は、万一の場合にブックマークをデスクトップに復元する手段として長年存在していました。 何か問題が発生しましたが、これらの手順を使用して TugaBrowser などのブラウザでブックマークを取得することは、これをうまく応用したものです。 古いトリック。 この方法を使用すると、お気に入りのサードパーティ Chrome ブラウザで Chrome ブックマークを取得できますが、次のことが必要です。 Chrome に新しいブックマークを追加するたびに、これらの手順を実行してください。 それは決して便利ではありません。だから私は次のことを試みました。 このプロセスを自動化します。

上のビデオでは、ブックマークを表示するために TugaBrowser を開いたときに、3 つのブックマークが表示されていることに注目してください。 TugaBrowser を終了して再度開くと、 スナックバー 新しいブックマークが検出されたことを示すメッセージが表示され、TugaBrowser を再起動するボタンが表示されます。 ボタンを押してブラウザを再起動すると、ブックマーク ページが開き、新しい 4 番目のブックマークが追加されていることがわかります。 基本的に、上記の 4 つの手順を自動化し、バックグラウンドでサイレントに作業できるようにしました。また、これを行う方法を示すチュートリアルをここに投稿します。

このチュートリアルを始める前に、いくつか言及しておく必要があることがあります。

  • この方法 root アクセスが必要です. この要件を回避する方法はまったくありません。申し訳ありません。 root なしではアクセスできない /data/data 内のファイルをいじっています。
  • この方法は、 一方向の同期つまり、サードパーティの Chrome ブラウザに追加したブックマークは保存されません (実際には上書きされます)。 新しいブックマークは、Chrome Sync が有効になっている Chrome ブラウザ内から追加する必要があります。 Chrome 同期にブックマークの変更を強制的に受け入れる方法を調べましたが、残念ながらそうではないと思います Google のサーバーに保存されているブックマークのバージョンは、ユーザーが行った変更を常に上書きするため、可能です。 手動で作る。
  • この方法は 安全. Google のサーバーに保存されているブックマークのコピーを Google が操作することはありません(また、操作することはできません)ので、ブックマークが消去されても害はありません。

サードパーティの Chrome ブラウザで双方向の同期方法をお探しの場合は、申し訳ありませんが、 そのような方法は決して得られないでしょう. それはGoogleのせいだ。 「これって何の意味があるの?」と思ったら、 このチュートリアルはあなた向きではありません. Google が Chrome Sync を削除する苦痛を少しでも軽減したいと考えている場合は、このチュートリアルが役立つことを願っています。


サードパーティ製 Chrome ブラウザ用の一方向 Chrome ブックマーク同期

要件:

  • ルートアクセス
  • タスカー ($2.99)
  • シンカー
  • スナックバータスクカープラグイン
  • Google Chromeブラウザ

Tasker が必要だとは言いましたが、Play ストアの他の自動化アプリを使用することで回避できる可能性があります。 それを選択する場合は、私はそれらを使用した経験がないため、自分で行うことになります。そのため、私のスクリプトを自分で調整する必要があります。 Synker はブックマークを手動で強制的に更新するために使用されるため、必要です。 スナックバー Tasker プラグインは技術的には必要ありませんが、アプリを再起動するボタンが付いた新しいブックマークがあることを知らせる、すっきりとした見た目のスナックバーを提供します。 最後に、コピーするブックマーク ファイルを提供するため、デバイスに Google Chrome (どのチャネルでも問題ありません) がインストールされている (無効になっていない) 必要があります。

もう 1 つ言及しておきたいこと: 私のチュートリアルは次のように構築されていますが、 トゥガブラウザ 念頭に置いて、いくつかの手順を変更することで、これを他の Chrome ベースのブラウザでも簡単に動作させることができます。その概要については、以下の最後で説明します。

チュートリアル

私が使用しているスクリプトはかなり複雑で、合計 29 のアクションがあるため、それぞれのアクションについてはあまり詳しく説明しません。 このステップは機能しますが、このスクリプトは基本的に、最初に説明した 4 つの手動ステップを自動化するものであることに注意してください。 記事。

ここでは、Tasker の専門家であり、自分でそれを複製してみたいと考えている人向けのプロファイルの説明を示します。

CAFブックマーク同期

 Profile: CAF Bookmark Sync (28) 

アプリケーション: TugaBrowser

「Chrome ブックマークを確認する (27)」と入力します。

A1: シンカー - 強制同期 [設定: 強制同期 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 スプリッター:"チェックサム": ベースの削除: オフ]

A6: 変数検索置換 [ 変数:%json2 検索:(?<=")[^"]+(?=") 大文字と小文字を無視: オフ 複数行: オフ 1 つの一致のみ: オン 一致を保存:%checksum 一致を置換: オフ 次のものに置き換えます: ]

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 スプリッター:"チェックサム": ベースの削除: オフ]

A15: 変数検索置換 [ 変数:%tugajson2 検索:(?<=")[^"]+(?=") 大文字と小文字を無視: オフ 複数行: オフ 1 つの一致のみ: オン 一致を保存:%checksum 一致を置換: オフ 次のものに置き換えます: ]

A16: 変数検索置換 [ 変数:%json2 検索:(?<=")[^"]+(?=") 大文字小文字を無視: オフ 複数行: オフ 1 つの一致のみ: オン 一致を保存: 一致を置換: オン 次で置換:%チェックサム (1) ]

A17: ファイルの書き込み [ ファイル:/sdcard/Tasker/Bookmarks テキスト:%json1"checksum":%json2 追加: オフ 改行の追加: オフ ]

A18: シェルを実行 [コマンド: cp /sdcard/Tasker/Bookmarks] /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks タイムアウト (秒):0 ルートの使用: オン 出力の保存場所: エラーの保存場所: 結果の保存場所: ]

A19: スナックバー [ 構成: メッセージ: 新しいブックマークが検出されました。

ボタン: 再起動

コマンド: タイムアウト (秒):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: 終了の場合

A27: ファイルの削除 [ ファイル:/sdcard/Tasker/TugaBookmarks シュレッド レベル: 0 ルートの使用: オフ ]

A28: 終了の場合

A29: 終了の場合

A30: ファイルの削除 [ ファイル:/sdcard/Tasker/Bookmarks シュレッド レベル: 0 ルートの使用: オフ ]

続きを読む

このスクリプトは、ユーザーが選択したサードパーティの Chrome ブラウザ (私の場合は TugaBrowser) を入力したことを Tasker が検出するたびにアクティブになります。 Tasker が選択したブラウザを使用していることを検出できるように、Tasker のアクセシビリティ サービスを有効にする必要があります。 この部分は他の Chrome ベースのブラウザで動作するように簡単に変更できます。Tasker のアプリケーション コンテキストでこのスクリプトを実行するブラウザを選択するだけです。

次に、このタスクの各アクション セットが何を達成するかを簡単に説明します。

  • A1-A2: Google サーバーから Chrome ブックマークを手動で同期し、インストールされている Chrome アプリのブックマーク ファイルが更新されるようにします。 同期が完了するのに十分な時間を確保するために 5 秒待ちます。
  • A3~A6: Chrome のブックマーク ファイルを一時的な場所にコピーし、ファイルから JSON を抽出して変数に入れ、正規表現フィルターを使用してチェックサム値を別の変数に抽出します。
  • A7-A10: Tasker にグローバル変数 %ChromeChecksum が設定されていない場合 (つまり、 スクリプトを初めて実行する場合)、現在の値に設定します。 値が設定されている場合は、次に、Tasker 変数に格納されている値がブックマーク ファイル内の現在のチェックサムと一致するかどうかを確認します。 その場合は、A11 ~ A26 に進みます。
  • A11: Chrome チェックサムを保持する Tasker 変数を、ブックマーク ファイルから抽出された現在のチェックサムに設定します。
  • A12~A15: TugaBrowser のブックマーク ファイルを一時的な場所にコピーし、ファイルから JSON を抽出し、正規表現フィルターを使用してチェックサム値を抽出します。
  • A16: TugaBrowser から取得したチェックサム値を使用して、Chrome のブックマーク ファイルのチェックサム値を置き換えます。
  • A17-A18: Chrome から取得した、TugaBrowser のチェックサム値を含む更新されたブックマーク ファイルを TugaBrowser のデータ ディレクトリにプッシュします
  • A19~A26: 新しいブックマークが追加されたことを知らせるスナックバーを表示します。 スナックバーのボタンが押された場合は TugaBrowser を再起動し、そうでない場合は次に進みます。
  • A27~A30: 作業していた一時ブックマーク ファイルを削除し、タスクを終了します。

なぜこれほど多くの手順が必要なのでしょうか? 残念ながら、これは、(大規模になる可能性がある) JSON データ構造に直接アクセスする簡単な方法がないためです。 ファイルをコピーしてその内容をファイルに抽出することなく、Tasker またはそのプラグイン (AutoTools など) を介してファイルをブックマークできます。 変数。 できれば、この作品はもっと凝縮されたものになるでしょうが、今のところこれが私が思いついたものです。 この件について AutoTools の開発者と話をしましたが、彼は AutoTools を次のように更新することができました。 ファイルから JSON データを読み取ることはできますが、Tasker を介して JSON をファイルに直接書き込むことはできませんでした プラグイン。

いずれにせよ、いくつかの手順は不必要に見えますが、このスクリプト自体は非常に高速に実行されます。 不必要な追加のプラグインをインストールすることなく、これを世に送り出したかったのです。 タスカー。 このスクリプトの速度を低下させる唯一の要因、およびビデオに遅延が見られる理由は、スクリプトに必要な待機時間です。 Tasker は、残りの作業に進む前に、Chrome ブックマークが Google サーバーから同期されていることを確認します。 脚本。 必要に応じて、Tasker タスクの「wait」コマンドを試して遅延を減らすこともできますが、それは最終的にはあなた次第です。


ダウンロード、インポート、セットアップ

いつものように、Tasker プロファイル XML ファイルを提供します。このファイルを取得して、自分でこの設定をすぐに行うことができます。 AndroidFileHost から以下の .prf.xml ファイルをダウンロードし、内部ストレージに保存します。 Tasker を開き、環境設定で初心者モードを無効にします。 Taskerのメイン画面に戻り、上部のアクションバーにある「プロファイル」タブを「インポート」オプションがポップアップ表示されるまで長押しします。 それを押して、XML ファイルを保存した場所に移動し、それを選択してインポートします。

AndroidFileHost から「Chrome Bookmark Sync」プロファイルをダウンロードします。

このプロファイルが機能する前に実行する必要がある 3 つの非常に重要な手順 (および 1 つのオプションですが、TugaBrowser を実行していない場合に必要な手順) があります。

  1. 有効にする タスカーズアクセシビリティサービス. これを行うには、[設定] を開いて「アクセシビリティ」を検索します。 Tasker をタップして、そのアクセシビリティ サービスを有効にします。 これが必要なのは、そうしないと、Tasker が TugaBrowser (またはその他のブラウザ) を使用していることを検出できないためです。
  2. 選択してください Synker の Chrome 同期プロバイダー. これを行うには、「Chrome ブックマークの確認」タスクを開いて、「Synker - 強制同期」というラベルの付いたアクション #1 をタップします。 鉛筆アイコンを押すと、Synker の設定画面が表示されます。 下にスクロールして、Google アカウントの「Chrome Sync」を選択します。
  3. Taskerスーパーユーザーアクセスを許可する. これを行う最も簡単な方法は、Tasker に必要なアクションの実行を試行させることです。 . 再び「Chrome ブックマークの確認」タスク設定画面内で、今度は「実行」というラベルの付いたアクション #3 を長押しします。 シェル。左下隅にポップアップ表示される「再生」アイコンを押して、Tasker にこのアクションとこのアクションを実行させます。 のみ。 Tasker はスーパーユーザー アクセスを許可するように求めます。 MagiskSU を使用している方への注意: 現在、Tasker は独自に MagiskSU を検出しないため、デバイスがルート化されていないことを示すエラーがスローされる可能性があります。 これは次のようになります 次回のTaskerアップデートで修正されるただし、一時的な回避策をお探しの場合は、XDA シニア メンバー ランダムプーカ があります そのための短いガイド.

これら 3 つの作業を完了すると、このプロファイルが機能し始めるはずです。 これを設定した後、TugaBrowser/選択したブラウザを初めて起動すると、Tasker は Chrome のブックマーク ファイルのチェックサム値を保存します。 その後の TugaBrowser または選択したブラウザの起動でチェックサム値が変更されると、Tasker はブラウザのブックマーク ファイルを Chrome のブックマーク ファイルに置き換えます。

ブラウザを初めて起動する場合は、, 変更を検出するまでTaskerがChromeのブックマーク値をコピーするように意図的に設定しませんでした。 これは、Chrome のブックマークを変更するまで、TugaBrowser/選択したブラウザのブックマークは変更されないことを意味します。 これを行ったのは、TugaBrowser/選択したブラウザにアクセスして、非同期/オフラインのブックマークを保存できるようにするためです。 Google のサーバーに保存されるため、保存する機会がなくても私の Tasker プロファイルによって消去されることはありません 他の場所で。


TugaBrowser 以外のブラウザでブックマークを同期する方法

TugaBrowser を使用していない場合は、選択した Chrome ベースのブラウザでこれを動作させるために、いくつかの手順を変更する必要があります。 幸いなことに、これは非常に簡単に実行できます。 オープンソースの Chromium を例にしてその方法を説明します。 変更する必要があるもののリストは次のとおりです。

  1. アプリケーションコンテキストを変更する. 「TugaBrowser」をアプリケーション コンテキストとして設定するのではなく、選択したブラウザの使用時にトリガーするようにアプリケーション コンテキストを変更します。 コンテキストをタップして、リスト内でアプリを探すだけです。
  2. 修正する アクション #12 (シェル コマンドを実行) して、特定のブラウザのブックマーク ファイルを指定します。 ディレクトリは /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 (別のシェル実行コマンド) を使用して、更新されたブックマーク ファイルを特定のブラウザのデータ ディレクトリに保存します。 ここでも、ディレクトリは上記と同じになるはずです。 前に:
    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 にアクセスできないようにする制限を緩和するまで、常に root アクセスが必要になります。 同期。

ご質問、コメント、懸念事項がございましたら、以下のコメント欄でお知らせください。