2013/11/27

Googleサービスフレームワークのデータ削除に伴うリスクについて



Googleサービスフレームワークのデータ削除とは何をしているのか?のエントリで、NexusシリーズのOTA配信を強制的に行う”Googleサービスフレームワークのデータ削除”について類推してみました。

今回GoogleのエンジニアであるDan Morrill氏がOTAアップデート配信の仕組みとGoogleサービスフレームワークのデータ削除に伴うリスクについて解説がありましたので、拙訳とともに紹介したいと思います。

4.4 Kitkat has started rolling out on the N4! - reddit.comより
It is, mostly.
Rollouts are conducted in phases. Typically they start at 1% of devices for around 24 - 48 hours; we watch the return rates and resulting device checkins and error reports (if any), and make sure nothing looks wrong before sending it to more. Then typically it goes to 25%, 50%, 100% over the course of a week or two.
What the percentages mean is that when your device checks in, it has a 1% chance (for example) of being offered the OTA. If it doesn't (randomly) get an offer, it will never get an offer until the next batch.
IOW, once your device checks in and gets turned down, that's it until the next batch. Mashing on the "check for updates" button just causes your device to check in again, and get automatically turned down again. Think about how that makes your device feel! WON'T SOMEONE PLEASE THINK OF THE PHONES?!
That said, once the new batch does start, hitting that button does give you a new roll of the dice -- but once. Since devices usually only check in for system updates every 24 hours (I think? Certainly on a many-hours basis) this can get you your shot sooner than it would happen on its own.
So, mash away. :) Just be patient, and mashing on it more often than once or twice a day isn't going to gain you anything.
Edit: also, keep in mind that this isn't first-come/first-served. You're not racing other devices to get your slot in the current batch, or something.
OTAアップデートは、最初の24~48時間程度の間は約1%の限られた範囲を対象に配布される。状況を確認して支障が無さそうであれば対象範囲を25%,50%,100%と段階に分けてに1~2週間かけて拡大していく。
OTAアップデート配布開始後であっても、1度対象範囲から外れてしまえば次の段階に移行するまでアップデートが降ってくる事はない。”アップデートを確認”をタップしつづけても徒労に終わる。
OTAアップデート配布対象を拡大した後に”アップデートを確認”をタップすると、対象として選定されるか抽選が行われる。通常システムが自動的に24時間に1度確認を行っている。
先着順ではなく抽選なので、あせらずじっくり待ちましょう。


Do not clear data for Google Service Framework - reddit.comより
Doing this changes the primary ID by which Google knows your device. As far as the servers are concerned, the device was basically factory reset. There are many downstream effects of this, but a big one is that this invalidates the tokens used by any app that uses GCM (which is nearly all the Google apps, and a ton of third-party apps.)
How apps react to GCM IDs changing varies by app. With Play Store you have to log out and log back in, I think Gmail usually handles it transparently eventually but won't get new mail notifications for a while, etc. Some apps you may have to clear data on to recover. All apps will simply stop getting GCM push-messages, until they get a new GCM ID; some do this frequently, others rarely, and some apps use the GCM ID as an ID on their own servers (as it is opaque and basically random), so other things besides push messages may not work.
Nothing bursts into flames, but it makes a ton of nuisances on the device, including some that can look pretty mysterious. Your mileage will vary depending on what apps you use.
All of this can be avoided by just doing an 'adb sideload' if you are impatient.
Googleサービスフレームワークのデータを削除すると、Googleのサーバーが管理する端末ID(GCM ID)が変更される(サーバーから見るとファクトリーリセットした状態になる)。端末IDが変わることによる影響は数多くあるが、重大な問題としてGCM(Google Cloud Messenger)を利用する全てのアプリのトークンが無効化されることがあげられる。
GCM IDが変わると、例えばPlayストアでログインしなおす必要があったり、しばらくGmailの新着通知が受け取れなくなったりする。いくつかのアプリではデータ削除する必要があるかもしれない。新しいGCM IDが得られるまでGCMを利用する全てのアプリでプッシュ通知は行われない。GCM IDをアプリ内IDとして利用するアプリでは、(GCM IDが変わることで)プッシュ通知が無効になるかもしれない。
データが失われることはないけれど、多くの不可解な挙動を引き起こすことになりうる。
せっかちな方は、adb sideloadを利用すればいいですよ(=サーバー直リンクからOTAファイルをダウンロードしてください)


ということで、Googleサービスフレームワークのデータを削除することで、
  • Googleクラウドプリントに多数の同一端末が登録されたり
  • Google Playミュージックに多数の同一端末が登録されたり
する原因にもなるんだとおもいます。(GCM ID=Android ID?

上記不具合を回避する方法はありそうですが、Factory Imageをメインに利用している一般ユーザーはデータ削除による弊害の方が大きそうなので、最長2週間程度辛抱強く待つほうが良さそうです。

Google OTAを適用して最新OSをいち早く体験するためにあえて常用中のカスタムROMからFactory Imageに一時的に戻すだけの人であれば、上記不具合があることを承知した上で実行してもいいのかもしれません。


最後に私からのメッセージを。
  • Dan Morrill氏はOTAアップデート配布のプロセスとGCM IDの関係について言及していませんが、データ削除によるGCM ID変更がOTAアップデート配布対象決定プロセスに影響する可能性はあると個人的に思います
  • ただし、OTAファイルへの直リンクはOTAアップデート配布開始の数時間後くらいに判明する傾向にあるので、データ削除にこだわる理由はないかもしれません
  • よいこのみんなはまねしないでね
  • OTA配布開始直後のアップデート対象者は人柱ですので、バグがあっても泣かないこと


 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates
Related Posts Plugin for WordPress, Blogger...