WhatsApp virtualisieren und clientunabhängig nutzen

Endlich WhatsApp unabhängig vom Smartphone nutzen

🚀 Update April 2023
Der Anschluss einer Kamera ist nicht mehr notwendig, sofern deine virtuelle Maschine gerootet ist, denn mit einer App wie "Activity Launcher" kannst du nach Auswahl der App "WhatsApp" die Aktivität "LinkedDevicesEnterCodeActivity" direkt aufrufen. Klicke dazu auf "Starte Aktivität (root User)":

Der Umweg über den "Verknüpfte Geräte"-Dialog, der nach wie vor den Anschluss einer Kamera notwendig gemacht hat (siehe blaue Box unterhalb), entfällt damit vollständig.

Update November 2023
Wie in einer der Kommentare bereits angekündigt, funktioniert inzwischen auch eine Verknüpfung mittels Eingabe der Handynummer. Somit entfällt der fehleranfällige und komplizierte Teil rund um das Scannen des QR-Codes mit der Kamera. Allerdings muss weiterhin eine Kamera angeschlossen sein, da man sonst nicht über den Button "Gerät hinzufügen" hinauskommt (Fehlermeldung: Kamera kann nicht gestartet werden. Bitte starte dein Gerät neu.). (siehe grüne Box oberhalb)

Zusammenfassung:

  • WhatsApp auf deiner virtuellen Maschine starten und Kamera verbinden
  • Dort auf "Verknüpfte Geräte" und dann auf "Gerät hinzufügen"
  • Unten auf "Gerät stattdessen via Telefonnummer verknüpfen" klicken
  • Im Browser eine neue WhatsApp-Web-Session starten und ebenfalls auf "Via Telefonnummer verknüpfen" klicken
  • Handynummer eingeben, mit der WhatsApp auf der virtuellen Maschine läuft
  • Es wird nun ein 8-stelliger Code aus Buchstaben und Zahlen angezeigt, den du 1:1 auf der virtuellen Maschine eingibst
  • Voila – das Gerät ist verknüpft 🥳

Das Gleiche gilt natürlich auch auf dem Smartphone. Unter Android kann man WhatsApp Web beispielsweise mit WhatsApp Web To Go nutzen. Das Prozedere ist analog wie oben beschrieben.

Lange habe ich darauf gewartet, einen Blogartikel zu dem Thema schreiben zu können, der einen für andere reproduzierbaren Weg beschreibt. Und nun ist es endlich soweit 🎉🎉

Ich bin absolut kein Freund von WhatsApp und nutze es selbst auch nicht. Allerdings lassen sich unzählige Menschen auch nach dem gefühlt 20. Skandal rund um Facebook und die Weitergabe von Daten bislang nicht davon abhalten, WhatsApp weiter zu verwenden. Am Schlimmsten ist das leider in Vereinen – und da tangiert es mich. Nutzt du kein WhatsApp, bleibst du außen vor und bekommst nichts mehr mit.

Und weil ich nicht einsehe, extra für die Nutzung von WhatsApp ein Android-Smartphone bereitzuhalten, bleibt mir nur die Virtualisierung von WhatsApp. Leider hatte ich dadurch bisher aber keine Möglichkeit, Drittanbieter-Anwendungen oder WhatsApp Web zu nutzen und somit auch keine Benachrichtigungen erhalten – bisher...

Hinweis
Da dieser Artikel einiges technisches KnowHow bezogen auf Virtualisierung voraussetzt, ist das (momentan) leider keine Schritt-für-Schritt-Anleitung, die du als "Otto-Normalnutzer:in" ohne IT-Kenntnisse selbst umsetzen kannst.

* * *

Inhaltsverzeichnis

Vorwort zu WhatsApp Web
Technische Voraussetzungen
Konfiguration der virtuellen Maschine
Die USB-Kamera per SPICE durchreichen
Neue WhatsApp Web Session starten
Scan-Problem durch verzerrtes Kamera-Bild
Probleme mit virt-viewer unter Windows
Ich möchte WhatsApp gerne virtualisieren, habe dabei aber Schwierigkeiten
Weiterführende Links

* * *

Vorwort zu WhatsApp Web

Fast alle Drittanbieter-Anwendungen für WhatsApp basieren auf WhatsApp Web, also der Webvariante von WhatsApp. Nur über diese Variante können diese dauerhaft funktionieren, ohne dass Facebook nach kurzer Zeit den Zugriff auf seine Schnittstellen unterbindet oder den verknüpften WhatsApp-Account sperrt. So geschehen in der Vergangenheit z.B. bei der Nutzung von WhatsAPI oder yowsup.

Die Nutzung von WhatsApp Web setzt allerdings zwei Dinge voraus:

  1. Mit dem Gerät, auf dem WhatsApp installiert ist, muss vorab ein QR-Code gescannt werden
    Da WhatsApp hierfür einen eigenen Kamera-Handler in seiner App eingebaut hat, schlagen alle Versuche fehl, dafür eine "Fake-Kamera-App" mit hochgeladenem QR-Code-Screenshot zu verwenden.

Bislang war mir das auch mit einer virtuellen Maschine nicht möglich, da sich hier nicht einfach eine Webcam ins Rechenzentrum "durchschleifen" lässt. Auch haben mir die Blogbeiträge im PROXMOX-Forum da bisher wenig Hoffnung gemacht. Wie ich nun herausgefunden habe, gibt es aber doch einen Weg, mit dem das Ganze klappt.

  1. Das Gerät muss dauerhaft online sein
    Also kommt – neben einem dauerhaft eingeschalteten und mit dem Internet verbundenen Android-Smartphone – nur eine virtuelle Maschine bzw. ein Server in Frage. Erst mit der Multi-Geräte-Beta verändert sich das leicht, wenn auch nicht grundlegend. Denn wenn du hoffst, dass du dann nur noch einmal deinen Client verbinden musst und hinterher das Android-Gerät nicht mehr benötigst, dann muss ich dich leider enttäuschen. Facebook hat sich schon überlegt, wie es das unterbinden kann: "Wenn du dein Telefon länger als 14 Tage nicht verwendest, wird die Verbindung zu deinen verknüpften Geräten getrennt."

Ich habe mich aus folgenden Gründen gegen die Nutzung eines (alten) Android-Smartphones entschieden:

  • Bei so einem Gerät muss der Akku durch das "Dauerladen" nach gewisser Zeit ausgetauscht werden
  • Das Gerät benötigt immer wieder Updates (und dafür muss ich es in die Hand nehmen)
  • Ich muss die Internetverbindung über ein WLAN sicherstellen (inkl. Firewallregeln, da ich bspw. nicht möchte, dass das Gerät meine restlichen Netzwerkgeräte finden oder darauf zugreifen kann)
  • Das Gerät besitzt eine Kamera / ein Mikrofon, was ich beides ungern "einfach so" mit Internetzugriff in meinem Wohnraum herumliegen habe
* * *

Im Folgenden zeige ich dir, wie ich es geschafft habe, eine neue WhatsApp Web Session zu starten, während WhatsApp in einer virtuellen Maschine unter Android x86 läuft. Das Zauberwort dafür lautet USB-Kamera mittels SPICE-Protokoll und USB-Redirection weiterleiten.

Technische Voraussetzungen

  • Ein PROXMOX-Host mit installiertem Android x86 innerhalb einer virtuellen Maschine
  • Eine (Fake-)Handynummer für WhatsApp
    • Ich gehe davon aus, dass WhatsApp bereits in der VM installiert und mit deiner Nummer verknüpft ist
  • Eine USB-Webcam
  • virt-viewer bzw. remote-viewer (SPICE-Client für VM)
  • Linux oder macOS als Client-Betriebssystem (siehe Hinweis)

Hinweis
Die ganze Prozedur muss pro Drittanbieter-Anwendung nur einmal durchgeführt werden. Da der Windows-Client von virt-viewer bzw. remote-viewer die USB-Weiterleitung via SPICE-Protokoll allerdings nicht unterstützt, lohnt sich ggf. der Einsatz eines temporär vom USB-Stick gebooteten Linux-Systems.

* * *

Konfiguration der virtuellen Maschine

Die folgende Konfiguration ist Voraussetzung, damit die Weiterleitung von USB-Geräten über das SPICE-Protokoll funktioniert.

Meine VM-Konfiguration innerhalb von PROXMOX

Den untersten Eintrag erhältst du, indem du bei der Konfiguration der virtuellen Maschine unter "Hardware" oben auf "Hinzufügen" und dann auf "USB Gerät" klickst.

USB Gerät hinzufügen

Wähle dann "SPICE Port" aus und klicke auf OK.

SPICE Port auswählen

Sollte die virtuelle Maschine währenddessen schon laufen, musst du sie einmal herunterfahren und wieder starten, damit die Änderungen an der Hardware der virtuellen Maschine wirksam werden.

Hinweis
Ich habe die Anzeige erst auf SPICE geändert, nachdem ich Android x86 bereits installiert und WhatsApp eingerichtet hatte. Ich weiß nicht, ob eine Installation von Android x86 mit voreingestelltem "SPICE" als Anzeige ebenfalls funktioniert. Im Zweifel einfach für die Installation der VM den Wert für Anzeige auf "Standardeinstellung" belassen und erst hinterher auf "SPICE" umstellen.

* * *

Die USB-Kamera per SPICE durchreichen

Der Trick ist nun, dass man unter Linux bzw. macOS mit dem SPICE-Protokoll clientseitige USB-Geräte an die VM durchreichen kann, z.B. mit dem Tool virt-viewer bzw. remote-viewer. Ich nutze für dieses Tutorial remote-viewer unter Manjaro Linux.

Verbinde zuerst die USB-Kamera mit deinem Gerät und starte die SPICE-Verbinung zur Android-VM, beispielsweise indem du über die Weboberfläche von PROXMOX oben rechts unter "Konsole" den Eintrag "SPICE" auswählst.

SPICE-Verbindung starten

Daraufhin öffnet sich virt-viewer bzw. remote-viewer und oben links findest du einen Button (hier mit Noten-Symbol), hinter welchem sich die USB-Redirection verbirgt.

Oben links auf den Button klicken

Wähle dort nun deine USB-Kamera aus und klicke anschließend auf "Schliessen".

Und die USB-Kamera auswählen

Nun muss die VM einmal bei geöffneter SPICE-Verbindung neu gestartet werden, damit die Kamera beim Android-Start verfügbar ist und korrekt eingebunden wird.

Klicke dazu in PROXMOX für die VM oben auf "Herunterfahren" und anschließend im SPICE-Viewer unter Android auf "Neu starten". Solltest du diesen Schritt auslassen, erhältst du beim Start einer Kamera-App wie Simple Camera folgende Fehlermeldung:

Fehlermeldung, wenn keine Kamera verfügbar ist

Nachdem Android wieder gestartet ist, kannst du durch erneutes Öffnen der Kamera-App testen, ob die Kamera richtig erkannt wurde und ein Bild angezeigt wird.

Juhuu, die angeschlossene USB-Kamera wird korrekt durchgereicht

Bei mir war der Bildaufbau zwar unheimlich langsam, das Bild war gespiegelt und auch das Format und die Skalierung waren irgendwie verschoben. Für das Scannen des QR-Codes hat es mit etwas Geduld aber problemlos ausgereicht.

* * *

Neue WhatsApp Web Session starten

Nun startest du WhatsApp in der VM und klickst oben rechts im Menü auf "Verknüpfte Geräte".

Verknüpfte Geräte anzeigen

Anschließend fügst du mit Klick auf "Neues Gerät hinzufügen" ein weiteres Gerät hinzu. Wie du unten siehst, habe ich vorab bereits die Anwendung WazzApp (die einen eingebetteten Chrome-Browser nutzt) verknüpft. Hier kannst du auch der Multi-Geräte-Beta beitreten, wenn du das möchtest.

Weiteres Gerät hinzufügen

Den folgenden Dialog einmal mit "OK" bestätigen.

Dialog mit OK bestätigen

Nun sollte dir das Kamera-Bild angezeigt werden. Erscheint hingegen die Fehlermeldung "Kamera kann nicht gestartet werden, bitte starte dein Telefon neu", ist beim Durchreichen der USB-Kamera etwas schiefgegangen:

Fehlermeldung, wenn die USB-Kamera nicht korrekt durchgereicht oder erkannt wurde

Vielleicht hast du das Android in der VM nach dem Anschließen auch noch nicht neu gestartet. Lies hierzu nochmal den Absatz Die USB-Kamera per SPICE durchreichen.

Hat hingegen alles geklappt, wird die interne Kamera-App von WhatsApp gestartet und zeigt das Bild der USB-Kamera an:

Die durchgereichte USB-Kamera funktioniert auch in WhatsApp

Starte nun die gewünschte Drittanbieter-Anwendung wie beispielsweise WazzApp oder matterbridge. Alternativ kannst du auch den offiziellen WhatsApp-Web Client unter web.whatsapp.com öffnen. Wichtig ist nur, dass dir nun der QR-Code von WhatsApp Web angezeigt wird.

Die Drittanbieter-Anwendung öffnen und den QR-Code anzeigen lassen

Scanne nun diesen QR-Code, indem du die USB-Kamera mit etwas Abstand (und Geduld) auf deinen Bildschirm richtest. Nur Geduld, manchmal klappt es je nach Kameraqualität, Umgebungslicht und Latenzen der Übertragung nicht gleich beim ersten Mal.

Den QR-Code scannen

Sobald es geklappt hat, erscheint in der Android-VM auf dem Bildschirm "Logging in" und die Verbindung wird aufgebaut.

Die Verbindung wird aufgebaut

Voila – das neue Gerät taucht nun unten in deiner Liste auf und kann direkt verwendet werden. Das SPICE-Fenster kannst du einfach schließen, das Gerät wird spätestens nach dem nächsten Android-VM-Neustart automatisch getrennt.

Das neue Gerät taucht nun in der Liste auf
* * *

Probleme mit virt-viewer unter Windows

Unter Windows kann es in virt-viewer zu einem USB-Weiterleitungsfehler kommen:
Device: Could not open usb device: Entity not found [-5]

Fehlermeldung in virt-viewer unter Windows

In diesem Fall bitte für die Weiterleitung ein Linux-(Live-)System verwenden. Hiermit funktioniert es problemlos.

Danke an Nico Wa, der mir das gemeldet und den "Workaround" bestätigt hat.

* * *

Scan-Problem durch verzerrtes Kamera-Bild

Ich hatte bei mir das Problem, dass alle in SPICE freigegebenen Kameras das Bild entweder stark verzerrt oder sogar horizontal gespiegelt wiedergegeben haben. Das macht eine Erkennung seitens WhatsApp natürlich sehr mühsam und zeitintensiv.

Abhilfe hat bei mir geschaffen, dass ich den QR-Code (in diesem Fall wars der auf meinem Smartphone) so groß wie möglich gezogen habe und gleichzeitig vom PC aus eine Fernwartungs-Sitzung auf das Smartphone gestartet habe (z.B. mit AnyDesk, ISL Online oder TeamViewer). Dieses Fernwartungs-Fenster habe ich mir daraufhin in Open Broadcast Studio (OBS) anzeigen lassen und entsprechend beschnitten bzw. gespiegelt und verzerrt. Leider braucht es dafür zwingend eine Echtzeit-Verbindung, da der QR-Code in regelmäßigen Abständen erneuert wird.

Mit der in SPICE freigegebenen Kamera habe ich daraufhin den PC-Bildschirm abgefilmt und konnte innerhalb kurzer Zeit die neue Web-Session authentifizieren.

* * *

Ich möchte WhatsApp gerne virtualisieren, habe dabei aber Schwierigkeiten

Ich unterstütze dich gerne bei der Virtualisierung von WhatsApp auf deinem eigenen Server.
Schreib mir hierzu einfach über Kontakt, per Telegram oder unten in die Kommentare eine Nachricht.

* * *

Drittanbieter-Apps für WhatsApp

* * *

Änderungshistorie

16.04.2024, 13:50 – Ergänzen des Hinweises, dass man die "Codeeingabe"-Aktivität auch direkt aufrufen kann
30.12.2022, 13:45 – Ergänzen der Passage "Probleme mit virt-viewer unter Windows"
15.12.2022, 18:00 – Ergänzen der Passage "Scan-Problem durch verzerrtes Kamera-Bild" und kleinere Ergänzungen
22.11.2021, 19:45 – Kleinere Ergänzungen und Anpassungen
22.11.2021, 17:45 – Artikel erstellt
22.11.2021, 14:50 – Erfolgreiche technische Umsetzung der Lösung

* * *
Christian Süßenguth Christian Süßenguth @sweetgood

Hi, ich bin Inhaber der Firma SWEETGOOD. Mit dem andersGOOD Blog möchte ich auch dich für datensichere IT-Lösungen begeistern. So bringst du dein Unternehmen voran, ohne großen Konzernen deine wertvollen Daten zu liefern. Probiers mal anders!


Kommentarbereich

Die Kommentare sind für dich noch deaktiviert, da du dem Setzen von Cookies bisher nicht zugestimmt hast.
Klicke oben rechts auf "Ja, klar!" und lade die Seite neu, um die Kommentare anzuzeigen.

Seite neu laden

👾 Magst du Kekse?

Ich würde gerne Cookies setzen

Ist das OK für dich?