Android에서 데스크톱 Chrome 북마크를 타사 Chrome 브라우저와 동기화하는 방법

TugaBrowser와 같은 타사 Chrome 브라우저와 Chrome 북마크를 동기화하는 방법에 대한 튜토리얼입니다. 루트가 필요하며 단방향 동기화 방법입니다.

지난 한 해 동안 Google Chrome을 기반으로 한 타사 브라우저의 인기가 폭발적으로 증가했습니다. 이러한 추세는 CAF(Code Aurora Forum)가 게시되기 시작한 이후부터 시작되었습니다. Snapdragon 기기에 최적화된 Chromium 빌드 2015년 10월. 기능이 가득한 궁극적인 브라우저를 만드는 데 관심이 있는 개발자들은 프로젝트를 포크하기 시작했고 밤과 같은 기능을 추가했습니다. Chrome 동기화를 통한 Chrome 북마크 지원 외에 모드, 콘텐츠 차단기, 절전 모드, 제스처 지원 등 API.

인기 있는 프로젝트와 같은 프로젝트에 사용자가 몰려들었습니다. 투가브라우저 Chrome이 아닌 브라우저에서는 사용할 수 없는 Google의 기존 Chrome 동기화 기능 외에 이러한 브라우저가 여러 가지 향상된 기능을 제공했기 때문에 포럼에 게시했습니다. 불행하게도 구글은 Chrome Sync API에 대한 타사 액세스를 차단합니다. 보안 문제를 이유로 1월에 돌아왔습니다. Google은 이러한 움직임이 타사 Chrome 브라우저를 방해하기 위해 의도적으로 이루어진 것이 아니라고 밝혔습니다. 오픈소스 크롬 로 분류되었지만 이 보안 패치는 실수로 타사 Chrome 브라우저에 대한 북마크 동기화가 종료되도록 철자했습니다.

현재로서는 TugaBrowser와 같은 브라우저에서 Chrome 동기화를 통해 북마크 변경 사항을 동기화할 수 있는 방법이 아직 없습니다. 하지만 거기에는 ~이다 루트 액세스 권한이 있는 경우 데스크톱 북마크를 타사 Chrome 브라우저와 동기화하는 방법입니다. 방법은 우리는 전에도 포스팅한 적이 있어요, 기본적으로 다음 단계로 요약할 수 있습니다.

  1. 타사 Chrome 브라우저의 북마크 파일을 열고 체크섬 값을 복사합니다.
  2. 북마크 파일을 Chrome 디렉터리에서 타사 Chrome 브라우저 디렉터리로 푸시하여 덮어씁니다.
  3. 새 북마크 파일을 열고 체크섬 값을 처음 복사한 값으로 덮어씁니다.
  4. 북마크를 다시 로드하도록 타사 Chrome 브라우저를 강제로 닫거나 종료합니다.

북마크를 편집하는 이 방법은 만약의 경우를 대비해 바탕화면에 북마크를 복원하는 수단으로 수년 동안 존재해 왔습니다. 뭔가 문제가 발생했지만 이 단계를 사용하여 TugaBrowser와 같은 브라우저에 북마크를 가져오는 것은 이 문제를 깔끔하게 적용한 것입니다. 오래된 트릭. 이 방법을 사용하면 즐겨 사용하는 타사 Chrome 브라우저에서 Chrome 북마크를 얻을 수 있지만 다음을 수행해야 합니다. Chrome에 새 북마크를 추가할 때마다 이 단계를 수행하세요. 그것은 확실히 전혀 편리하지 않습니다. 그래서 나는 계속해서 노력했습니다. 이 프로세스를 자동화합니다.

위 비디오에서 북마크를 표시하기 위해 TugaBrowser를 열면 북마크 3개가 표시되는 것을 확인하세요. 나가서 TugaBrowser를 다시 열면 스낵바 TugaBrowser를 다시 시작하는 버튼과 함께 새로운 북마크가 감지되었음을 알리는 메시지가 표시됩니다. 버튼을 눌러 브라우저를 다시 시작하면 북마크 페이지가 열리고 새로운 네 번째 북마크가 추가된 것을 볼 수 있습니다. 본질적으로 저는 백그라운드에서 자동으로 작업하기 위해 위의 4단계를 자동화했으며 이 작업을 수행하는 방법을 보여주는 튜토리얼을 여기에 게시합니다!

이 튜토리얼을 시작하기 전에 언급해야 할 몇 가지 사항이 있습니다.

  • 이 방법 루트 액세스가 필요합니다. 이 요구 사항을 해결할 수 있는 방법은 전혀 없습니다. 죄송합니다! 루트 없이는 접근할 수 없는 /data/data의 파일을 엉망으로 만들고 있습니다.
  • 이 방법은 단방향 동기화, 이는 타사 Chrome 브라우저에 추가한 모든 북마크가 저장되지 않고 실제로 덮어쓰여짐을 의미합니다. Chrome 동기화가 활성화된 Chrome 브라우저 내에서 새 북마크를 추가해야 합니다. Chrome 동기화에서 북마크 변경사항을 강제로 적용하는 방법을 찾아봤지만 안타깝게도 그렇지 않은 것 같습니다. 이는 Google 서버에 저장된 북마크 버전이 항상 변경사항보다 우선하기 때문에 가능합니다. 수동으로 만듭니다.
  • 이 방법은 안전한. Google은 서버에 저장된 Google의 북마크 사본을 함부로 조작하지 않으며 조작할 수도 없기 때문에 귀하의 북마크가 지워져도 아무런 해를 입지 않습니다.

타사 Chrome 브라우저에서 양방향 동기화 방법을 찾고 계시다면 죄송합니다. 넌 절대 그런 방법을 얻지 못할 거야. 이에 대해 구글을 비난하라. "이게 무슨 의미가 있지?"라고 스스로에게 묻는다면, 그렇다면 이 튜토리얼은 당신을 위한 것이 아닙니다. Google에서 Chrome 동기화를 제거하는 과정에서 발생하는 고통을 어느 정도 완화하고 싶다면 이 튜토리얼이 도움이 되기를 바랍니다.


타사 Chrome 브라우저를 위한 단방향 Chrome 북마크 동기화

요구사항:

  • 루트 액세스
  • 태스커 ($2.99)
  • 싱커
  • 스낵바 태스커 플러그인
  • 구글 크롬 브라우저

Tasker가 필요하다고 말했지만 Play 스토어의 다른 자동화 앱을 사용하여 벗어날 수도 있습니다. 그렇게 하기로 결정했다면, 나는 그것을 사용해 본 경험이 없기 때문에 스스로 스크립트를 조정해야 합니다. Synker는 북마크를 강제로 수동으로 새로 고치는 데 사용되기 때문에 필요합니다. 스낵바 Tasker 플러그인은 기술적으로 필요하지 않지만 앱을 다시 시작하는 버튼이 있는 새로운 북마크가 있음을 알려주는 깔끔한 스낵바를 제공합니다. 마지막으로, 복사할 북마크 파일을 제공하기 때문에 기기에 Google Chrome(모든 채널 가능)이 설치되어 있어야 합니다(비활성화하면 안 됩니다).

한 가지 더 언급할 점: 제 튜토리얼은 다음과 같이 제작되었지만 투가브라우저 명심하세요. 몇 가지 단계를 수정하면 다른 Chrome 기반 브라우저에서도 이 기능을 쉽게 사용할 수 있습니다. 이에 대한 내용은 아래 끝부분에서 설명하겠습니다.

지도 시간

내가 사용하고 있는 스크립트는 총 29개의 액션으로 구성된 상당히 복잡하므로 각 액션이 어떻게 작동하는지에 대해 지나치게 자세히 설명하지는 않겠습니다. 단계는 작동하지만 이 스크립트는 기본적으로 시작 부분에 설명된 4가지 수동 단계를 자동화한다는 점만 알아 두십시오. 기사.

이미 Tasker의 전문가이고 이를 직접 복제해 보고 싶은 분들을 위한 프로필 설명은 다음과 같습니다.

CAF 북마크 동기화

 Profile: CAF Bookmark Sync (28) 

응용 프로그램: 투가브라우저

Enter: Chrome 북마크 확인 (27)

A1: Synker - 강제 동기화 [ 구성: 강제 동기화 2 공급자(s) 시간 초과(초):0 ]

A2: 대기 [ MS: 0 초: 5 분: 0 시간: 0 일: 0 ]

A3: 쉘 실행 [ 명령: cp /data/data/com.android.chrome/app_chrome/Default/Bookmarks /sdcard/Tasker/Bookmarks 시간 초과(초):0 루트 사용: 저장 시 출력 위치: 오류 저장 위치: 결과 저장 안에: ]

A4: 파일 읽기 [ 파일:/sdcard/Tasker/Bookmarks To Var:%json ]

A5: 변수 분할 [ 이름:%json 분할자:"checksum": 기본 삭제: 끄기]

A6: 변수 검색 바꾸기 [ 변수:%json2 검색:(?<=")[^"]+(?=") 대소문자 무시: 꺼짐 여러 줄: 꺼짐 한 개 일치만: 저장 시 일치 항목:%checksum 일치 항목 바꾸기: 꺼짐 다음으로 대체: ]

A7: [ %ChromeChecksum !Set ]인 경우

A8: 변수 세트 [ 이름:%ChromeChecksum 대상:%checksum (1) 반복 변수: 꺼짐 수학 수행: 꺼짐 추가: 꺼짐 ]

A9: 그렇지 않으면

A10: 만약 [ %ChromeChecksum !~ %checksum (1) ]

A11: 변수 세트 [ 이름:%ChromeChecksum 대상:%checksum (1) 반복 변수: 꺼짐 수학 수행: 꺼짐 추가: 꺼짐 ]

A12: 셸 실행 [ 명령: cp /data/data/tugapower.codeaurora.browser/app_chrome/Default/Bookmarks /sdcard/Tasker/TugaBookmarks 시간 초과(초):0 루트 사용: 저장 시 출력 위치: 저장 오류 위치: 저장 의 결과: ]

A13: 파일 읽기 [파일:/sdcard/Tasker/TugaBookmarks를 Var:%tugajson으로]

A14: 변수 분할 [ 이름:%tugajson 분할자:"checksum": 기본 삭제: 끄기]

A15: 변수 검색 바꾸기 [ 변수:%tugajson2 검색:(?<=")[^"]+(?=") 대소문자 무시: 꺼짐 여러 줄: 꺼짐 한 개 일치만: 저장 시 일치 항목:%checksum 일치 항목 바꾸기: 꺼짐 다음으로 대체: ]

A16: 변수 검색 바꾸기 [ 변수:%json2 검색:(?<=")[^"]+(?=") 대소문자 무시: 꺼짐 여러 줄: 꺼짐 한 개만 일치: 켜짐 저장 일치 항목: 일치 항목 바꾸기: 켜짐 다음으로 바꾸기:%checksum (1) ]

A17: 파일 쓰기 [ File:/sdcard/Tasker/Bookmarks Text:%json1"checksum":%json2 Append: Off Newline Add: Off ]

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 루트 사용: 꺼짐 ]

더 읽어보세요

Tasker가 선택한 타사 Chrome 브라우저(제 경우에는 TugaBrowser)를 입력했음을 감지할 때마다 스크립트가 활성화됩니다. Tasker가 선택한 브라우저에 있을 때 이를 감지할 수 있도록 Tasker의 접근성 서비스를 활성화해야 합니다. 이 부분은 다른 Chrome 기반 브라우저와 작동하도록 쉽게 수정할 수 있습니다. Tasker의 애플리케이션 컨텍스트에서 이 스크립트를 실행할 브라우저를 선택하기만 하면 됩니다.

이제 이 작업의 각 작업 집합이 수행하는 작업에 대한 간략한 설명은 다음과 같습니다.

  • A1-A2: 설치된 Chrome 앱의 북마크 파일이 업데이트되도록 Google 서버에서 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: 새로운 북마크가 추가되었음을 알려주는 스낵바를 표시합니다. 스낵바의 버튼을 누르면 투가브라우저를 다시 시작하고, 그렇지 않으면 계속 진행하세요.
  • A27-A30: 작업 중이던 임시 북마크 파일을 삭제하고 작업을 종료합니다.

여기에는 왜 그렇게 많은 단계가 필요합니까? 불행하게도 이는 (잠재적으로 큰) JSON 데이터 구조에 직접 액세스할 수 있는 쉬운 방법이 없기 때문입니다. 파일을 복사하고 해당 내용을 변하기 쉬운. 가능하다면 이 작업은 훨씬 더 압축될 것이지만 지금은 이것이 제가 생각해낸 것입니다. 나는 이 문제에 대해 AutoTools 개발자와 이야기를 나눴으며 그는 AutoTools를 다음과 같이 업데이트할 수 있었습니다. 파일에서 JSON 데이터를 읽을 수 있지만 JSON을 파일에 직접 쓰는 것은 Tasker를 통해 수행할 수 없습니다. 플러그인.

어쨌든 이 스크립트 자체는 일부 단계가 불필요해 보이지만 매우 빠르게 실행됩니다. 불필요한 추가 플러그인을 설치할 필요 없이 이 기능을 사용하고 싶었습니다. 태스커. 이 스크립트 속도를 늦추는 유일한 이유와 비디오에서 약간의 지연이 나타나는 이유는 나머지 작업을 진행하기 전에 Chrome 북마크가 Google 서버에서 동기화되었는지 확인하세요. 스크립트. 원하는 경우 Tasker Task에서 'wait' 명령을 사용하여 지연 시간을 낮출 수 있지만 이는 궁극적으로 사용자에게 달려 있습니다.


다운로드, 가져오기 및 설정

언제나 그렇듯이, 우리는 귀하가 직접 이 설정을 빠르게 수행할 수 있도록 Tasker 프로필 XML 파일을 제공할 것입니다. AndroidFileHost에서 아래 .prf.xml 파일을 다운로드하여 내부 저장소에 저장하세요. Tasker를 열고 기본 설정에서 초보자 모드를 비활성화하세요. Tasker의 메인 화면으로 돌아가서 "가져오기" 옵션 팝업이 나타날 때까지 상단 작업 표시줄에 있는 "프로필" 탭을 길게 누르세요. 그것을 누른 다음 XML 파일을 저장한 위치로 이동하여 선택하여 가져옵니다.

AndroidFileHost에서 "Chrome 북마크 동기화" 프로필을 다운로드하세요.

이 프로필이 작동하려면 매우 중요한 3가지 단계(1개는 선택 사항이지만 TugaBrowser를 실행하지 않는 경우 필수 단계)를 수행해야 합니다.

  1. 할 수 있게 하다 태스커의접근성 서비스. 설정을 열고 '접근성'을 검색하면 됩니다. Tasker를 탭한 다음 접근성 서비스를 활성화하십시오. 그렇지 않으면 TugaBrowser(또는 다른 브라우저)를 사용할 때 Tasker가 이를 감지할 수 없기 때문에 이는 필요합니다.
  2. 당신을 선택하세요 Synker의 Chrome 동기화 제공업체. "Chrome 북마크 확인" 작업을 연 다음 "Synker - 강제 동기화"라고 표시된 작업 #1을 탭하면 됩니다. 연필 아이콘을 누르면 Synker의 구성 화면이 나타납니다. 아래로 스크롤하여 Google 계정에 대해 'Chrome 동기화'를 선택하세요.
  3. Tasker 슈퍼유저 액세스 권한 부여. 이를 수행하는 가장 빠른 방법은 Tasker가 필요한 작업을 수행하도록 시도하는 것입니다. . 다시 "Chrome 북마크 확인" 작업 구성 화면에서 이번에는 "실행"이라고 표시된 작업 #3을 길게 누릅니다. Shell." Tasker가 이 작업을 실행하도록 하려면 왼쪽 하단에 나타나는 "재생" 아이콘을 누르세요. 오직. Tasker는 슈퍼유저 액세스 권한을 부여하도록 요청합니다. MagiskSU를 사용하는 경우 참고 사항: Tasker는 현재 MagiskSU를 자체적으로 감지하지 않으므로 장치가 루팅되지 않았다는 오류가 발생할 수 있습니다. 이것은 ~이 될 것이다 다음 Tasker 업데이트에서 수정되었습니다., 그러나 임시 해결 방법을 찾고 있다면 XDA Senior Member 랜덤푸카 가지고있다 이에 대한 짧은 가이드.

이 3가지 작업을 완료하면 이제 이 프로필이 작동하기 시작합니다. 설정 후 TugaBrowser/선택한 브라우저를 처음 시작할 때 Tasker는 Chrome 북마크 파일의 체크섬 값을 저장합니다. 이후 TugaBrowser/선택한 브라우저를 실행할 때 해당 체크섬 값이 변경되면 Tasker는 브라우저의 북마크 파일을 Chrome의 북마크 파일로 대체합니다.

브라우저를 처음 실행하는 경우, Tasker가 변경 사항을 감지할 때까지 Chrome의 북마크 값을 복사하도록 의도적으로 설정하지 않았습니다. 즉, 선택한 TugaBrowser/브라우저의 북마크는 Chrome 북마크를 변경할 때까지 변경되지 않습니다. 동기화되지 않은/오프라인 북마크를 저장하기 위해 TugaBrowser/선택한 브라우저에 액세스할 수 있도록 이렇게 했습니다. Google 서버에 저장되므로 사용자가 저장할 기회 없이는 내 Tasker 프로필이 삭제되지 않습니다. 다른 곳.


TugaBrowser 이외의 브라우저에서 북마크를 동기화하는 방법

TugaBrowser를 사용하지 않는 경우 선택한 Chrome 기반 브라우저에서 이 기능이 작동하도록 하려면 몇 가지 단계를 수정해야 합니다. 다행히도 이것은 매우 쉽습니다. 오픈 소스 Chromium을 예로 들어 이를 수행하는 방법을 보여 드리겠습니다. 변경해야 할 항목 목록은 다음과 같습니다.

  1. 애플리케이션 컨텍스트 변경. "TugaBrowser"를 Application Context로 설정하는 대신, 선택한 브라우저를 사용할 때 트리거되도록 Application Context를 변경하세요. 컨텍스트를 탭하고 목록에서 앱을 찾으세요.
  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 (또 다른 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 동기화를 통해 북마크를 동기화하는 부담을 어느 정도 줄일 수 있습니다. 단방향 동기화이며 Google이 타사 Chrome 브라우저가 Chrome에 액세스하지 못하도록 제한을 완화할 때까지 항상 루트 액세스가 필요합니다. 동조.

질문, 의견 또는 우려 사항이 있는 경우 아래 의견을 통해 알려주세요!