動画再生アプリ「VLC」のAndroid版がアップデートされない理由は「秘密鍵をGoogleに渡したくない」から
動画再生アプリ「VLC」はWindowsやmacOS、Linux、iOS、Androidなど多様なOSに対応していますが、Android版のVLCは2023年2月を最後にアップデートの配信が止まってしまいました。なぜAndroid版VLCのアップデートが停止してしまったのかについて、VLCの開発チームが解説しています。
VLC for Android updates on the Play Store - DEV Community
If you wonder why we can't update the VLC on Android version, it's because Google refuses to let us update:
- either we give them our private signing keys,
- or we drop support for Android TV before API-30, and all our users on TV API<30 can't get fixes.— VideoLAN (@videolan) March 22, 2024
Google Playで配布されているAndroid版VLCの記事作成時点のアプリ情報が以下。最新バージョンは2023年2月20日に配信された3.5.4で、1年以上にわたってアップデートの配信が止まっています。VLCの開発自体は活発に行われており、WindowsやiOSなどAndroid以外のOSに対応したVLCは頻繁にアップデートされています。
Android版VLCのアップデートが止まってしまった理由は、GoogleによるAndroidアプリ公開ルールの変更にあります。Google Playでは長らく「開発者が署名済みのAPKファイルをGoogle Playにアップロードする」という方式でアプリが配布されていましたが、2018年には「開発者はコンパイル済みのアプリコードやリソースをGoogle Playにアップロードし、APKファイルの生成および署名はGoogleが行う」という配布形式「Android App Bundle(AAB)」が登場しました。
AABではGoogleがAPKファイルの生成および署名を行うため、開発者は署名に使う秘密鍵をGoogleにアップロードする必要があります。しかし、VLCの開発チームはセキュリティ上の理由から秘密鍵のアップロードを受け入れられず、AABの採用は見送っていました。Googleは2021年8月以降に登場する新たなアプリに対してAABの採用を義務付けましたが、既に公開されているアプリに対しては従来の配布形式の維持を認めているため、VLCのアップデートは問題なく配信され続けていました。
Google PlayでAndroidアプリを公開するにはAPKでなく「Android App Bundle」を使う必要があるとGoogleが発表 - GIGAZINE
その後、Googleは2022年11月に「Android TVに対応するアプリは2023年5月以降はAPKファイル直接アップロード方式からAABに移行する必要がある」と発表。Android版VLCはテレビモードを搭載してAndroid TVに対応しているため、機能を維持しつつアップデートを配信するにはAABへ移行する必要が生じました。
Google PlayにはAPKファイル直接アップロード方式とAABを両立する「デュアルリリース」と呼ばれるアプリ配布システムも存在します。デュアルリリースは「Android 11以降のデバイスにはAABでアプリを配布し、Android 10以前のデバイスには開発者がアップロードしたAPKファイルを配布する」という仕組みで、Googleには「APKファイル直接アップロード方式での配布時から使っていた秘密鍵」ではなく「新しく作成した秘密鍵」を渡すだけでOK。このため、デュアルリリースに移行する場合はVLCのセキュリティ理念にも合致します。
しかし、デュアルリリースに移行する場合でも「Android TV対応アプリはAPK直接アップロード方式で配布できない」というルールは適用されるため、デュアルリリースに移行した場合、Android 10以前のデバイスに対してテレビモードを提供できなくなります。開発チームによると、VLCユーザーのうち70%近くがAndroid 10以前のデバイスを使っているそうで、Android 10以前のデバイスを切り捨てることは苦しい選択です。
まとめると、Google PlayでAndroid版VLCのアップデートを配信するには「APKファイルの署名に使っていた秘密鍵をGoogleに渡して、すべての機能を保ったままAABに完全移行する」もしくは「デュアルリリースに移行してAndroid 10以前のデバイスに対するテレビモードの提供を打ち切る」といった対応が必要ですが、いずれの対応も開発チームにとっては受け入れがたいものであるため、アップデートを配信できない状況が続いているというわけです。