備忘録

気になったことを残しておきます。

android14とPixel6シリーズ(複数ユーザープロファイル使用)の組み合わせで致命的不具合

2023-10-26 08:22:01 | 日記

Google Pixelは複数のユーザープロファイル(任意の3アカウントまで)を使用できる。
これは非常に便利なもので、まるでWindowsのユーザー切り替えのような感覚で使える。
例えば、違う設定(環境)を楽しみたい場合など、アカウントAに設定A'を行い、アカウントBには設定B'を設定しておいて、アカウントを切り替えたら設定も一度に全部切り替わるという使い方も出来る。その切り替えもすぐに出来る。

先日、android14がリリースされ、その当日にアップグレードを行ったが、その1週間後くらいに問題が発生しスマホのデータがパーになった。

その状況は以下の通り。
・Pixel6aで複数アカウント(アカウントA, B, C)がある環境。
・android13からandroid14にアップデートして、1週間ほど経った際にメインアカウントAからアカウントBに切り替え、5分ほどゲームをした後、アカウントAに切り替えたら、「内部ストレージが使用できません」という旨のメッセージが出て通常のオペレーションは不可となった。
 アカウントBには切り替えられたので、アカウントBに切り替えたらそちらは正常に作動。
 再びアカウントAに戻しても、相変わらず内部ストレージにアクセス出来ない状況。
・結局のところ、工場出荷時の設定にリセットして復旧。
 
業務用のサーバーでこのような問題が出たら大ニュースになるところだが、スマホのせいか比較的大騒ぎにはなってないようだ。
android14にアップグレードしなければ良いが、すでにアップグレード済みの場合、断頭台の上にいるようなものだ。ちなみに、問題は Android のサポートフォーラムや RedditGoogle Pixel サポートフォーラムなどでも報告されているようだ。

ダメ元でgoogleのサポートに連絡したら、保証期間中なので、代替機を用意してくれるとのこと。(※googleサポートチームによる端末情報やアカウント情報へのアクセスの同意を求められたので、虚偽の問題報告はそこでフィルタリングされると思う)
android13を搭載した代替機を用意することは約束出来ないとのことだったが、サポート窓口のご担当者の方もここまで対応してくれたので、これ以上の無理は言うまい。

==========

※補足

2023年11月の月例アップデートでこの問題は修正されているとのことで、実際、android14に再アップデートを行ってしばらく経つが、問題は再発してないので、補足しておく。


android13以降に搭載された「キャッシュに保存されたアプリの実行を停止」機能について

2023-10-12 10:17:36 | 日記

最近、ポケモンGOアプリが重くなってきて、RAMが6GBあっても、稀にタスクキルされるようになってきた。
android13以降では、「開発者向けオプション」に「キャッシュに保存されたアプリの実行を停止」があるので、これを試してみた。
このオプションを無効にすると、ポケモンGO起動後にIngressの二重起動をしてもポケモンGO側でタスクキルがされなくなった。
ただ、長時間使用していると、稀にポケモンGOアプリがフリーズ状態になるようになった。
これはどちらを取るかトレードオフだな。
結局、フリーズするよりタスクキルされる方が健全と考え、このオプションは「デフォルト」に戻している。


Pixel6a

2023-02-01 13:08:31 | 日記

Pixel6aを購入。android12が初期導入OSでした。
AQUOS sense4で使用していたandroid12では、タスクキルで悩まされていたけど、Pixel6aはRAMが6GBあるせいか、初期設定のままでも全く問題がありませんでした。
ただ、ガラスパネルなしなら問題なかった指紋認証が、ガラスパネルを付けたら、2回に1回くらいしか成功しなかったです。
このため、android13にアップデートしたら、ほぼ問題ない程度まで改善し、2023/1のセキュリティアップデート後は、ほぼ1回で認証されるようになりました。

先のblogでタスクキルを改善するためのオプションがandroid13に搭載されるっぽいと書きましたが、
「開発者向けオプション」に「キャッシュに保存されたアプリの実行を停止」がありました。
これを無効にしたら良さそうですね。
設定をいじらなくても特に問題ないので変更していませんが。

ポケモンGOの起動時間は環境やネットの負荷によって変わりますが、「周りに注意を払って」の画面が出るまでPixel6aは最短10秒程度。同条件で比較して、AQUOS sense4より10秒以上早く、iPhone12 proより数秒遅い程度。
こんなにも快適さが違うとは思ってもみませんでした。
バッテリ持ちやカスタマイズの自由度を考慮すると、わざわざiPhoneを選ぶ意味が無いような気がしました。


GmailアプリでMicrosoftのフリーメールが受信できなくなった

2022-11-08 10:06:04 | 日記

突然、androidのGmailアプリでMicrosoftのフリーメール(outlook.jp)での受信ができなくなった。
ネットで調べると結構事例があり、Microsoftが出してるandroid用のメーラー(Microsoft Outlook)を導入して回復という結果を多く見かけた。
色々試した結果、以下設定変更で回復した。

IMAPの設定
サーバー名 imap-mail.outlook.com
ポート 993
暗号化方式 SSL/TLS(証明書をすべて承認)
SMTPの設定
サーバー名 smtp-mail.outlook.com
ポート 587
暗号化方式 STARTTLS(証明書をすべて承認)

今まで、(証明書をすべて承認)になってなかったので、恐らくMicrosoft側でアップデートがありセキュリティ設定が変更になったのではないかと想像する。

尚、私の環境だけかも知れないが、WiFi環境で設定しようとすると「サーバーに接続できませんでした」というメッセージが出て設定が完了せず、WiFiを切ってセルラー(スマホ回線)経由でやったら完了した。ご参考まで。

===

・・・・と書いてはみたものの、スマホ用のMicrosoft Outlookを試してみたところ、実に使い勝手の良いアプリであることが分かり、こちらに乗り換えてしまいました。このアプリの魅力は、複数のアカウントのメールを一括で見られること(かつどこのアカウントかも見やすい)やgmail以外に届いたテキストメールに書かれたurlにもきちんとLinkが張られること。Gmailアプリだとgmailに届いたメールを除き、urlのコピペも出来ず困ってました。


android12 の タスクキル 対策について

2022-10-14 13:47:10 | 日記

AQUOSスマホ(sense4)をandroid12にアップデートした直後からポケモンGOの再起動が多発するようになった。
再起動するタイミングは、ゲーム中に画面を切り替えてLineを見たりした場合。
すなわち、一旦ポケモンGOがバックグラウンドとなり、再度切り替えた際に問題が発生する。

android11に戻せば問題は解決するが、戻すのはかなりハードルが高い。スマホがPixelならばOSイメージが公開されていてダウングレードできるかも知れないが、AQUOSではムリ。前に進むしか無い。

色々調べたところ、android12からパフォーマンス向上のため PhantomProcessKiller という機能(タスクキル)が追加されているとのこと。バックグラウンドで動いているCPU負荷の高いアプリを強制終了させたり(問題1)、バックグラウンドのタスクを32までに制限し、それ以上になった場合、タスクをバッサバッサと停止させている(問題2)とのこと。

問題1に関しては根本的な対策は見つけられていないが、設定画面→アプリでタスクキルされるアプリのバッテリ設定を「制限なし」に設定することにより、多少は軽減できるようだ。加えてスマホのマルチウインドウ設定等の対応を行えば多少はマシになるが、ポケモンGOはマルチウインドウには正式対応していないので、有効となるケース(フォアグラウンドになるアプリがマルチウィンドウ対応時のみ)も限られ、この設定のみでは結構ストレスだった。

問題2に関しては、スマホを開発者オプションにしてデバッグモードに変更後、PCと接続し、PCからadbというツールでこの値を大きくすることで改善できそうだ。機能自体の無効化はandroid13まで待つ必要があるようだ。
対策の見つけられていない問題1もあるため、32を超えるタスクの制限対策を実施してもバックグラウンドの動きはandroid11とは同じ動きにはできてないが、上記タスク数制限対策を行い、かつスマホのマルチウインドウ設定を追加してからは自分の環境下では許容範囲レベルまで落ち着いている。また、この設定を行った後でもandroid11の頃よりパフォーマンスも良くなっているような気がする。
参考までに、この制限タスク数変更の方法を記載しておく。

 ※実施する場合は自己責任で!!

0)設定画面→アプリでタスクキルされるアプリのバッテリ設定を「制限なし」に設定する(未実施の場合)

1)スマホのドライバーをPCに導入
 AQUOS用のドライバーは以下
 https://k-tai.sharp.co.jp/support/developers/driver/index.html

2)PCにて以下対応を実施する
 https://www.orefolder.net/2017/03/platform-tools/

3)スマホの開発者向けオプションを有効化し設定

 3-1)「USBデバッグ」をONにする
 https://developer.android.com/studio/debug/dev-options?hl=ja

 3-2)マルチウインドウ対応(※希望があれば)
 https://www.teradas.net/archives/27229/

4)PCとスマホをType-Cケーブルで接続

5)Windows PowerShellを管理者として起動し、以下を実施

 5-1)現在の設定値を確認
> adb shell "/system/bin/dumpsys activity settings | grep max_phantom_processes"
 max_phantom_processes=32 とでてくるはず

 5-2)設定値を大きくする
> adb shell "/system/bin/device_config put activity_manager max_phantom_processes 384"
 AQUOSではエモパー等バックグラウンドプロセスが多めなので多めにしたほうが良さそう。
 自分の環境下では256以上ないと効果は薄かった。
 ちなみに、最大値は2147483647。
 大きすぎると他への影響もあるかも知れないので注意が必要。
> adb shell "/system/bin/dumpsys activity settings | grep max_phantom_processes"
 にて設定値を確認する。 

 5-3)再起動してもデフォルトに戻らないよう設定値を固定化
  (再起動時に行われるデバイス構成の同期を無効化)
> adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent"

 ※上記コマンドにてデバイス構成の同期を無効にすると、Androidがクラッシュ、
  ブートループ、および不正な構成から回復できなくなる可能性がある。
  デフォルト設定を復元するには以下のコマンドでデバイス構成の同期を有効にする。

> adb shell "/system/bin/device_config set_sync_disabled_for_tests none"

 5-4)上記確認
> adb shell "/system/bin/device_config is_sync_disabled_for_tests"
 trueが戻ってきたら設定完了

 元に戻す時は以下を実施
> adb shell "/system/bin/device_config set_sync_disabled_for_tests none"

> adb shell "/system/bin/device_config put activity_manager max_phantom_processes 32"
> adb shell "/system/bin/device_config is_sync_disabled_for_tests"
 falseが戻ってきたら設定完了

 5-5)Type-Cケーブルを抜いて、スマホのデバッグモードをオフにし、念のためスマホを再起動

                              以上