画面共有すると、次のメッセージが表示されます。
Can not start share, we only support wayland on
GNOME with Ubuntu(17,18), Fedora (25 to 29),
Debian9, openSUSE Leap 15, Arch Linux. If your
OS is not on the list, please use x11 instead.
Waylandのすべての機能を無効にする必要のない回避策はありますか?
https://www.dropbox.com/sh/3klzwv3n3xn09s4/AAD28SF62Z9cXKCSCxz6SOb5a?dl=
これは正常に動作する開発バージョンです。信頼できない場合は、他の解決策を参照してください。うまくいけばすぐに修正する必要があります。
Os-releaseファイルを編集して、OSが古いと思い込んでズームすることができます。 OSの破損につながる可能性があるため、スクリーンキャストが開始したらすぐに変更を元に戻します。
したがって、Fedora30の変更について
$ cat /etc/os-release
NAME=Fedora
VERSION="30 (Workstation Edition)"
ID=Fedora
VERSION_ID=30
に
$ cat /etc/os-release
NAME=Fedora
VERSION="30 (Workstation Edition)"
ID=Fedora
VERSION_ID=29
同様の変更はUbuntu19,04 +でも機能するはずです
プロセスを促進するためのbashエイリアスは次のとおりです。 https://gitlab.com/snippets/188372
このredditスレッドにもいくつかの良いトリックがあります。具体的には、特定のファイルへの呼び出しに対するライブラリオーバーライド:
あなたの時間の最も有益な使用法は、ZoomがOSデータを取得するために使用しているいくつかの基本的な方法を交換することだと思います。
「フック」に何をさせたいのか、何をフックしたいのかから始めます。これは、openの実装を置き換えることにより、/ etc/os-releaseに実際にあるものを短い文字列「ZV」に置き換えるだけの単純なフックです。 Zoomがどのように実行しているかを実際に把握するには、プログラムstraceを使用する必要があります。
#define _GNU_SOURCE
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <dlfcn.h>
int open(const char *path, int oflag) {
if (strcmp(path, "/etc/os-release")) {
int (*nopen)(const char *path, int oflag);
nopen = dlsym(RTLD_NEXT, "open");
return nopen(path, oflag);
} else {
int *fildes = calloc(2, sizeof(int));
pipe(fildes);
const char *fake = "ZV";
write(fildes[1], fake, strlen(fake));
return fildes[0];
}
}
これを使用するには、上記のコードから作成したファイルをファイル(私はfakeread.cと名付けました)に書き出してコンパイルする必要があります。
$ gcc -shared -fPIC -ldl -o fakeread.so fakeread.c
次に、新しい共有オブジェクトによってエクスポートされたシンボルを優先的に使用するようにダイナミックリンカに指示する環境変数を使用してコマンドを呼び出す必要があります。
$ LD_PRELOAD=`pwd`/fakeread.so WHATEVER_ZOOM_COMMAND_IS
同じ原則で、execのような他のライブラリ関数やunameのようなシステムコールをフックすることもできます。