Category:
Computer
macOS をクリーンインストールするたびに AU Lab が動かない (マイクが反応しない) 問題にハマるのだが、毎回復活手順を忘れるのでメモ。
要は、AU Lab のフリをして (AU Lab と同じ identifier で) Microphone の権限を要求するアプリケーションを AppleScript で作って動かすことで、強制的に Microphone の権限を付与してしまえばよい。AU Lab 以外にも、JDK のような Microphone 権限の要求がうまくできないアプリケーションにも応用できると思う。
手順 (macOS Big Sur 英語版を想定しています):
1. Script Editor を開く。
2. 以下のコードを貼り付けて、Application 形式で保存する。
4. 保存したアプリケーションを実行すると Microphone の権限を要求されるので、許可する。
5. Security & Privacy 環境設定を開き、Privacy タブの Microphone を選択する。AU Lab が追加されているので、一旦チェックを外してオフにしてから、もう一度オンにする。(この操作を行わないと本物の AU Lab に権限が反映されない)
これで、AU Lab が動くようになる。ちなみに
追記: 直接 TCC のテーブルに書き込むというテクニックもあるらしい。こちらの方が便利で良いですね…。https://twitter.com/4uShiyu/status/1363688414210445317
要は、AU Lab のフリをして (AU Lab と同じ identifier で) Microphone の権限を要求するアプリケーションを AppleScript で作って動かすことで、強制的に Microphone の権限を付与してしまえばよい。AU Lab 以外にも、JDK のような Microphone 権限の要求がうまくできないアプリケーションにも応用できると思う。
手順 (macOS Big Sur 英語版を想定しています):
1. Script Editor を開く。
2. 以下のコードを貼り付けて、Application 形式で保存する。
use framework "AVFoundation"3. スクリプトの Bundle Contents ペインを開き、Bundle Info の Identifier を
get (current application's AVAudioRecorder's alloc()'s initWithURL:(current application's NSURL's alloc()'s initFileURLWithPath:"/tmp/au_lab_enabler.mp4") settings:(current application's NSDictionary's alloc()'s init()) |error|:(null))'s |record|()
com.apple.audio.aulab
に変更して保存する。4. 保存したアプリケーションを実行すると Microphone の権限を要求されるので、許可する。
5. Security & Privacy 環境設定を開き、Privacy タブの Microphone を選択する。AU Lab が追加されているので、一旦チェックを外してオフにしてから、もう一度オンにする。(この操作を行わないと本物の AU Lab に権限が反映されない)
これで、AU Lab が動くようになる。ちなみに
tccutil reset Microphone com.apple.audio.aulab
というコマンドで Microphone の権限リストから AU Lab を削除することができる。追記: 直接 TCC のテーブルに書き込むというテクニックもあるらしい。こちらの方が便利で良いですね…。https://twitter.com/4uShiyu/status/1363688414210445317