Zoomのアップデートで使えなくなったSnap Cameraを使えるようにする方法[Mac版]

## はじめに
外出自粛でまったく外に出なくなりました．そうすると，寝癖が半端ない状態に気づかずにオンラインミーティングに出てしまったことがありました．そういうとき，snap cameraが便利です．snapchatの開発元のsnap.incが開発しています．
カメラにフィルターをかけてzoom等のミーティングに参加できるので，寝癖がついてても，メイクをしていなくても誤魔化せるので便利です．


ちなみに次のフィルターがお気に入りでよく使っていたのですが，私はずっとポケモンの「ディグダ」のフィルターだと思いこんでいました．どうやら，このフィルターは，「じゃがいも」のフィルターだったようです．私はずっとディグダに成りきっていたつもりで，じゃがいもになっていたみたいです．なんでディグダなのに，こんなに可愛くないんだろう．ハリウッド版のピカチュウ的なアレなのかな？というずっと抱いていた疑問が解決されました．

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56557/87f13c32-8360-0037-e0b2-085330be0d33.png" width="400px"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56557/7e8a3e5f-9436-cb95-6993-4862babeb8b4.jpeg" width="400px">

※この記事は，macosでzoomを使用している人向けです．
※解決策だけ知りたい人は，「アップデートで使えなくなった原因」を飛ばして「解決策1」と「解決策2」を読んでくださって結構です．

## アップデートで使えなくなった原因

2020年4月2日に4.6.9のアップデートが配信されました．それ以降のバージョンのZoomクライアントアプリで，snap cameraのような仮想カメラを選択できなくなってしまいました．下記が4.6.9のリリースノートになります．


Release notes of 4.6.9 (19273.0402):

- Resolved an issue where a malicious party with local access could tamper with the Zoom installer to gain additional privileges to the computer
- Resolved an issue where a malicious party with local access could gain access to a user’s webcam and microphone
- Resolved an issue where some users could access chat in a webinar when chat was disabled

Twitterでしゃなはすさんが4.6.9のアップデートで仮想カメラが使えなくなった理由について言及してくれています．

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://t.co/6knXVBTUM9">https://t.co/6knXVBTUM9</a> <a href="https://t.co/dV2wKAFwtV">https://t.co/dV2wKAFwtV</a>.cs.disable-library-validationが指定されなくなったのはわざと (脆弱性が指摘されたから) なのか…</p>&mdash; [しゃなはす] (@seanchas_t) <a href="https://twitter.com/seanchas_t/status/1251179352558993410?ref_src=twsrc%5Etfw">April 17, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ツイートのURL先のコメントを引用します．原文と翻訳を下記に示します．

> In June 2019, the security researcher Jonathan Leitschuh discovered a trivially exploitable remote 0day vulnerability in the Zoom client for Mac, which “allow[ed] any malicious website to enable your camera without your permission”

> 2019年6月、セキュリティ研究者のJonathan Leitschuh氏がMac用Zoomクライアントにリモートで悪用可能な脆弱性を発見しました。これにより、悪意のあるWebサイトがユーザの許可なくカメラを有効にできてしまいます 😱

悪意のあるWebサイトが許可なくカメラを有効できる脆弱性があったため，今回のアップデートでサードパーティのカメラを許可しなくしたようです．

具体的にはmacosアプリには`com.apple.security.cs.disable-library-validation`というパラメータがあり，それは署名が同じチームのサードパーティしか使えないというもので，このパラメータが変更されたようです．

## 解決策1

最も簡単な解決策は，ブラウザ版(Chrome)のZoomを使用することです． 自分も最近まで知らなかったのですが，ブラウザだけでもZoomは使用できるようです．ZoomのURLを開くと下記の画面になると思いますが，赤線で囲ったclick hereを押すとブラウザ上でZoomができるようになります．

<img width="1408" alt="スクリーンショット 2020-04-30 13.52.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56557/47ed8735-178c-202d-951a-8c77a7b048b9.png">

今回のアップデートはmacosアプリだけのものなので，ブラウザで行う場合は関係ないということです．
ちなみにChromeでは別プロセスでカメラアクセスを許可しているらしく，脆弱性はクリアしていると聞きました．(これに関してはちゃんと確認していないです．)

## 解決策2

macosアプリのzoomで仮想カメラを使用する方法です．
今回のアップデートでは，署名が同じチームのサードパーティしかアクセスできなくなったということは，アプリの署名を消してしまうだけで解決します．
気をつけてほしいのは，アプリの署名を消していまうことで「悪意のあるWebサイトがユーザの許可なくカメラを有効にできてしまう」という**脆弱性が発生してしまう可能性がある**ので，**細心の注意を払ってほしい**です．

下記がアプリの署名を消すコマンドになります．Terminalを開いて，下記のコマンドを実行するだけで，仮想カメラが使えるようになります．

```
sudo codesign --remove-signature /Applications/zoom.us.app
```

--追記--
上記のコマンドを実行したら，署名がなくなるので，マイク・カメラの使用や画面収録のアクセス権を許可するかどうかのポップアップが再び表示されます．その際，画面収録のアクセスを許可をしたのに，アプリ上で画面共有ができないという不具合が私の環境で起こりました．それは「セキュリティとプライバシー」の画面で，一度アクセス許可のチェックを外して，もう一度入れたら使えるようになりました．

## 謝辞
Twitterで@seanchas_t さんに教えていただきました．ありがとうございます！