Fire OS 7搭載のFire TV Stick 第3世代を使っているのですが、2月20日付近で配信されたアップデート Fire OS 7.6.6.9 (PS7669/4007)
を適用したところ、Fire TVでローカルホストからadbが使えなくなってしまいました。外部デバイスからのadbは引き続き使用できるので、Amazonが意図的に通信をブロックしているようです。現在進行系でとても困っているのですが、日本語だと全然情報がないので自分用にまとめておきます。
できなくなったこと
Fire TV自身がadbクライアントの場合に、ローカルホストのadbサーバーに接続できなくなりました。adb connect 127.0.0.1:5555
すると接続が拒否されます。これにより、内部でadbを使っているアプリは動作しなくなっています。
具体的なアプリ名を挙げるとMouse Toggle for Fire TV
やVolume Control for Lite
あたりは今まで通りに動きません。
できること
開発用のPCやサーバーといった外部のマシンをadbクライアントにして、Fire TVのadbサーバーに接続するのは問題ないようです。 開発時は普通この方法でしか接続しないので、大半の人は困らないと思います。
PS7669/4007に関する情報
今回のアップデートについてAmazon公式から何かしらアナウンスが出ているかを確認したのですが、それっぽい情報は見つかりませんでした。
CVE-2024-27350にローカルでのadbの話が書いてあったので、どうやら「脆弱性への対応」という扱いのようです。
Amazon Fire OS 7 before 7.6.6.9 and 8 before 8.1.0.3 allows Fire TV applications to establish local ADB (Android Debug Bridge) connections.
AFTVnewsにこのアップデートに関する記事があり、Amazonからは「一部のアプリが最近のセキュリティアップデートの影響を受けているという報告は承知している」と返答を受けたようです。
When I asked Amazon if this change was intentional and performing as intended because multiple readers and developers were asking me about it, Amazon’s only reply to me was “We are aware of reports that some apps have been impacted by a recent security update.”
回避策
自分でビルドできるアプリであれば、ローカルネットワーク内に適当なサーバーを立てて、そこから(IPアドレスを固定した)Fire TVへadb接続するようにアプリを修正すれば回避できます。
ソースコードが公開されていないアプリの場合は、アプリの制作者が対応しない限りどうしようもなさそうです。
Volume Control for Lite
のv3.1はオーバーレイでアプリを実行することで問題を回避しようとしているのですが、これだとボリュームボタンが使えないので何の解決にもなっていません。「adbクライアントのIPアドレスを指定可能にするか、もしくはFire TV以外のデバイスからアプリを起動できるようにしてほしい」という話を作者にメールしたのですが、回答は望み薄だと思っています。→(2024/03/17追記)3月にリリースされたv3.2において、外部デバイスからパーミッションを設定する方法で起動するようになりました。
Mouse Toggle for Fire TV
のほうはコマンドを手動で実行することで問題が回避できるようです。私はこのアプリを使っていないので試していません。
所感
セキュリティアップデートは建前で、サイドローディングを潰したいんだろうなぁ、というのがひしひしと伝わってきました。私としては、IRなしで音量調整できるようにしてくれればもう何でもいいので、そこだけどうにかしてほしいです。