やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Chromiumデータ移行

 ラズパイ3B+から4Bへ。

目的

 Raspberry Pi 3B+からPi4BへChromiumのデータをコピーしたい。

MachineRaspbianChromium
FromPi3B+Stretch72.0.3626.121
ToPi4BBuster74.0.3729.157

方針

 Chromiumのデータ同期は絶対しない。ローカル内でのみデータ通信する。

自己漏洩

Chromiumの同期とは

 Chromiumのデータ同期は、パスワードやブックマークなどをGoogleサーバに預けることで別マシンと共有できる機能だと思う。使ったこと無いからよく知らない。

同期する必要性ゼロ

 自分が持つ別マシンにコピーしたいだけなのに、なぜ第三者のサーバにデータを預ける必要がある?

 第三者にデータを渡す必要など皆無。むしろ安全性を考えたら渡すべきではない。対象となる自分のマシン間・ローカルネットワーク内でのみ通信すべき。

自己漏洩

 同期してGoogleサーバに預けることは、自分からパスワードやブックマークなどを漏洩させる行為である。

 Googleはこれまで何度も個人情報の漏洩などを犯してニュースになっている。Googleに限らず個人情報が売買されていることも常識となった。なにより、GAFAと名高い悪代官、世界の覇者であらせられる天下のGoogle様である。

 こんな世の中で、そんな相手に、自分のパスワードなどが含まれたデータを預けるだって? 死ぬ気か。私は私の個人情報を勝手に売り買いされたくないので絶対に嫌だ。

Chromiumデータ移行

  1. プロファイル
  2. パスワード

1. プロファイル

  1. プロファイルの所在を調べる
  2. Pi3B+のプロファイルを調べる
  3. Pi4Bのプロファイルを作成しておく
  4. Pi3B+のデータをPi4Bへコピーする

1-1. プロファイルの所在を調べる

 デフォルトのプロファイルはDefaultという名前のはず。

~/.config/chromium/Default

 自作のプロファイルはProfile Nという名前のはず。N1から始まる整数値。

~/.config/chromium/Profile 1

1-2. Pi3B+のプロファイルを調べる

python3 -m json.tool "$HOME/.config/chromium/Local State" "/tmp/work/Local_State_format"
vi "/tmp/work/Local_State_format"

 /,Profile,Enterキーで文字列検索すると、以下のようにヒット。プロファイル情報がJSON形式で記録されている。

"Profile 1": {
    "active_time": 1575454455.482528,
    "avatar_icon": "chrome://theme/IDR_PROFILE_AVATAR_0",
    "background_apps": false,
    "gaia_id": "",
    "is_ephemeral": false,
    "is_omitted_from_profile_list": false,
    "is_using_default_avatar": true,
    "is_using_default_name": false,
    "local_auth_credentials": "",
    "managed_user_id": "",
    "name": "ユーザ作成時につけた名前",
    "user_name": ""
},
...

 これでProfile Nの番号とname(ユーザ作成時につけた名前)とが紐づく。

 私の場合、プロファイルをデフォルト以外に4つ作っていたので、以下のようになった。

プロファイルディレクトリ名 表示プロファイル名
Default Default
Profile 1 AAA
Profile 2 BBB
Profile 3 CCC
Profile 4 DDD

1-3. Pi4Bのプロファイルを作成しておく

 Defaultは既存なのでいいが、Profile Nは存在しない。

 これをPi3B+からそのままコピーしても認識されない。原因不明。

 仕方ないので、先にPi4BのChromiumでユーザを4つ作成してから、Profile Nディレクトリをコピーする。

  1. Pi4Bを起動する
  2. Chromiumを起動する
  3. Chromiumの右上にあるユーザアイコンをクリックする
  4. ユーザを管理をクリックする
  5. ユーザを追加をクリックする
  6. 以下のように調べたとおりのユーザ名を入力する
回目 ディレクトリ名 プロファイル名
1 Profile 1 AAA
2 Profile 2 BBB
3 Profile 3 CCC
4 Profile 4 DDD

 順番と名前を一致させて作る。別に一致させる必要はないかもしれないが、Pi3B+のときと同じにしたほうがわかりやすいはず。

 これでPi4Bの以下パスが作成されたはず。

~/.config/chromium/Default
~/.config/chromium/Profile 1
~/.config/chromium/Profile 2
~/.config/chromium/Profile 3
~/.config/chromium/Profile 4

 これをPi3B+のものに上書きするのだが、念の為Pi4Bで作ったものをバックアップしておく。

cd ~/.config/chromium
mv Default Default_backup
mv "Profile 1" "Profile 1_backup"
mv "Profile 2" "Profile 2_backup"
mv "Profile 3" "Profile 3_backup"
mv "Profile 4" "Profile 4_backup"

1-4. Pi3B+のデータをPi4Bへコピーする

 3B+にあるDefaultを含むプロファイルをPi4Bへコピーする。

rsync -auvzP -e ssh $HOME/.config/chromium/Default pi@192.168.11.10:$HOME/.config/chromium
rsync -auvzP -e ssh "$HOME/.config/chromium/Profile 1" pi@192.168.11.10:$HOME/.config/chromium
rsync -auvzP -e ssh "$HOME/.config/chromium/Profile 2" pi@192.168.11.10:$HOME/.config/chromium
rsync -auvzP -e ssh "$HOME/.config/chromium/Profile 3" pi@192.168.11.10:$HOME/.config/chromium
rsync -auvzP -e ssh "$HOME/.config/chromium/Profile 4" pi@192.168.11.10:$HOME/.config/chromium
  • 上記コマンドはPi3B+の端末で実行したものとする(Pi3B+がローカル。Pi4Bがリモート)
  • Pi3B+, Pi4Bともにホームは/home/piとする
  • Pi4Bのユーザ名はpiとする
  • Pi4BのIPは192.168.11.10とする

 Pi4B側のプロファイルを確認する。

cd ~/.config/chromium
ls

 以下のディレクトリが存在するはず。

Default
Default_backup
Profile 1
Profile 1_backup
Profile 2
Profile 2_backup
Profile 3
Profile 3_backup
Profile 4
Profile 4_backup

2. パスワード

  1. エクスポートする
  2. インポートする

2-1. エクスポートする

 以下を全プロファイル分だけやる。

  1. Pi3B+のChromiumを起動する
  2. プロファイルを選択する
  3. URL欄に以下を入力してEnterキー押下する
chrome://settings/passwords
  1. 保存したパスワードの右側にある:みたいなアイコンをクリックする
  2. エクスポートボタンを押す
  3. 出力パスを任意に指定する
  4. パスワードがCSV形式で出力される

 CSVファイルをPi4Bへコピーする。

rsync -auvzP -e ssh /tmp/default_pw.csv pi@192.168.11.10:/tmp
rsync -auvzP -e ssh /tmp/profile1_pw.csv pi@192.168.11.10:/tmp
rsync -auvzP -e ssh /tmp/profile2_pw.csv pi@192.168.11.10:/tmp
rsync -auvzP -e ssh /tmp/profile3_pw.csv pi@192.168.11.10:/tmp
rsync -auvzP -e ssh /tmp/profile4_pw.csv pi@192.168.11.10:/tmp

 プロファイル名と区別がつくようなファイル名にしておくこと。

2-2. インポートする

 以下を全プロファイル分だけやる。

  1. Pi34のChromiumを起動する
  2. プロファイルを選択する
  3. URL欄に以下を入力してEnterキー押下する
chrome://flags/#PasswordImport
Enabled
  1. URL欄に以下を入力してEnterキー押下する 
chrome://settings/passwords
  1. 保存したパスワードの右側にある:みたいなアイコンをクリックする
  2. インポートボタンを押す
  3. CSVファイルを選ぶ
  4. インポート完了

 完了したらインポート機能を無効化する。

  1. URL欄に以下を入力してEnterキー押下する
chrome://flags/#PasswordImport
Disabled

 もしくは以下で全フラグをデフォルトに戻す。

  1. URL欄に以下を入力してEnterキー押下する
chrome://flags

 画面右側にあるすべてデフォルトに戻す(Reset all to default)ボタンを押下する。

 上記を全プロファイル分だけやる。

所感 

 超面倒くさい。Googleが暗に同期させて個人情報を搾取しようと誘導しているのだろう。

 やらせはせんよ。暴君には絶対に屈しない。強者へ忖度し同調したら身ぐるみ剥がされてしまう。ワシは騙されんぞ!

 でも楽したいなぁ。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで

 ハード。

 ソフト。

 設定。

 企業。