openCACAO / cocoa-issues

接触確認アプリ COCOA に関するIssues用レポジトリです
Creative Commons Zero v1.0 Universal
8 stars 0 forks source link

【Android】機種変更時のデータ移行 #18

Closed ghost closed 4 years ago

ghost commented 4 years ago

仕様上問題ないのか要調査とは思いますがメモ書きです

Android (Pixel3 -> Pixel4a) で機種変更した際にデータ移行したのですが、 現状、トップ画面には 「2020年6月21日から68日間使用中」表示になっています。

端末側の接触確認履歴もデータ移行されていれば問題ないのですが。。

実装上は、上記の表示は UserDataService (SecureStorage) の StartDateTime に使用開始日時が記録されていて その差分を表示しているので、接触確認履歴のデータがあるかどうかとは無関係に管理されてしまっています(問題点1)

SecureStorage の仕様をみると、バックアップ・リストアの対象にするかどうかが定義できるようになっていて https://docs.microsoft.com/ja-jp/xamarin/essentials/secure-storage?tabs=android

以下のコミットで対象外に設定しているようなのですが、 https://github.com/openCACAO/Covid19Radar/commit/ac0db735d5dcfe4f86f0d7dbf1f12a58037c4a1a

実機(機種変更済みの Pixel3 から取得) の apk を参照すると android:allowBackup="true" になっていて 結局反映できていないようです(問題点2)。

なお以下にドイツ版で検討された形跡があるのですが、そのときにはリストア・移行不可能という結論になっているようでした https://github.com/corona-warn-app/cwa-wishlist/issues/8

teriha8t8 commented 4 years ago

>トップ画面には 「2020年6月21日から68日間使用中」表示に これはGoogle開発サービスがデータを持っているのが反映されているだけだと思います。

ドイツは移行不可の結論です。データ移行不可のTweetが不定期に流れてます。 またCOCOAはver1.1.1の時に機種変をした方は「データ移行はできなかった」とTweetされてました。(URL不明)

これから秋には新機種がリリースされますしボーナスシーズンは機種変が相次ぐと思われるので、厚労省からなんらかの告知がほしいですよね。

ghost commented 4 years ago

問題点1 に書いた通り、GooglePlay開発者サービスとは別のデータを表示していると思うのですが。。

ViewModel: https://github.com/openCACAO/Covid19Radar/blob/master/Covid19Radar/Covid19Radar/ViewModels/HomePage/HomePageViewModel.cs#L30

xaml: https://github.com/openCACAO/Covid19Radar/blob/master/Covid19Radar/Covid19Radar/Views/HomePage/HomePage.xaml#L40

ghost commented 4 years ago

接触確認データの移行については GooglePlay開発者サービス側の実装をがんばったら移行できてもよさそうなのですが論理的に不可能なのかはちょっと気になっています(気にしてもしかたないのですが)

UserDataModel にはサーバ接続用の uuid / secret もあってこれがコピーされちゃって問題ないのかという懸念もありますね。。

teriha8t8 commented 4 years ago

>問題点1 に書いた通り、GooglePlay開発者サービスとは別のデータを表示していると思うのですが ごめんなさい。ご指摘の通りです。書いておきたかった(聞きたかった)のは別件で。

データ移行についてはuuidのこともあって無理っぽいとずっと思っているのですが、Androidはアプリをアンインストールしてもデータ(ランダムID記録)は失われる(維持されない、復活しない)ようになっているんでしょうか。 厚労省サイトにはアンインストールするとデータは失われると書いてますが、iPhoneのしぶとく維持してるように見えるので、厚労省の説明がずっと引っかかってます。 使用開始日を残すぐらいなら接触ログ記録も残してもよさそうなのに、と。

ghost commented 4 years ago

記録がアンインストールしたら失われるかは調べないとわからないですね。。 問題としては、アンインストールしたら失われるのかというのと、機種変更した場合に前の端末のデータが 移行できるかという2つを調べる必要があると思ってはいます。

ドイツの例を見た範囲では後者ができない可能性は高そうかなとは思いますが前者は確かに別の話です。

現状は使用開始日はアプリ内データなので残すかどうか決められますが、 接触ログ記録は GooglePlay 開発者サービスなり iOS が保持していてそちらの実装や改良次第なので 問い合わせするのが確実かと思っています。

仮にアプリ側で残すとしたらエクスポートしたデータをバックアップ対象のデータにいれて、リストア後に処理番号が発行されたらサーバに送るとかでしょうか。 データ形式を調べていませんが、そんなことできちゃうんですかね??できたらできたでプライバシー上よくない問題がありそうですが。。

ghost commented 4 years ago

理由もわかったのでcloseしておきます