Android 13、サイドローディングアプリのAccessibility API使用を制限
2022年5月9日 19:03
headless 曰く、 Android 13 ではサイドローディングしたアプリの Accessibility API 使用が制限されるそうだ(Esper Blog の記事、Neowin の記事、9to5Google の記事)。
Accessibility API を使用するユーザー補助サービスは別のアプリ上のテキストを読み取るなど強力な権限を持ち、アプリの機能を大幅に拡張できるが、悪用された場合のリスクも大きい。Google は 2017 年にユーザー補助目的以外での使用を禁止する方針を示したが、強い反発を受けて一律禁止には至らなかった。現在は API ドキュメントでユーザー補助目的でのみ使用するよう解説する一方、デベロッパープログラムポリシーでは悪用を禁止するにとどまる。最近のポリシー改定では音声通話録音目的での使用禁止が追加された。
Android 12 ではユーザー補助サービスの権限を要求する非ユーザー補助アプリについて、信頼できるソースからインストールされていない場合は権限をユーザーが許可してから 24 時間後に通知する機能が追加されている。しかし、悪意あるアプリへの対策としては 24 時間後に通知してもあまり意味がなさそうだ。
Android 13 ではこれをさらに進め、サイドローディングされた非ユーザー補助アプリはユーザー補助サービスを有効にできなくなる。インストール時にセッションベースの PackageInstaller.Session API を使用しなかったアプリがサイドローディングと判定されるため、Google Play 以外でもこの API を使用するアプリストアからインストールしたアプリであればユーザー補助サービスを利用できる。
また、「Files by Google」のようなアプリではローカルの APK をインストールするのにセッションベースの API を使用するが、新しい setPackageSource() API を使用してサイドローディングアプリ扱いにする。この方法でインストールされたアプリの場合、後で「設定」から制限を解除できるとのこと。こういった動作の変更点については、11・12 日にオンライン開催の Google I/O で紹介されるとみられる。