WhatsApp für Android 4.0.X-X86 ICS auf VirtualBox

Das populäre Kurznachrichten-Programm WhatsApp, erfreut sich auf zahlreichen Smartphones immer größerer Beliebtheit, wohl auch wegen seiner einfachen Bedienung und nahtlosen Kontaktbuch-Integration. Trotz vieler datenschutz- und sicherheitstechnischen Bedenken hat es in kurzer Zeit weite Verbreitung gefunden und löst bisherige Methoden von Mobilkommunikation wie SMS oder MMS ab. Authentifiziert werden Benutzer über ihre Geräte-ID und Mobilrufnummer. Die Kommunikation erfolgt teils-verschlüsselt über eine bestehende Internetverbindung. Nun existieren bereits Anleitungen im Netz, wie man WhatApp in einem Android SDK Emulator auch auf den PC benutzen könne, doch gibt es meiner Meinung nach auch bessere Lösungen in Form einer X86-Version.
Langfristig soll mir diese Installation dabei helfen, schneller und besser das WhatsApp protokoll zu analysieren um bei bedarf auch ein externes Client-Programm zu programmieren (z.B. in Form eines Pidgin-Plugins).
Bei Android-dev.ro gibt es ein fertiges, mit Ethernet-Support gepatchtes Android 4.0 x86 Image (in diesem Tutorial Version” 20120307), also ein temporärer Fork des bekannten Android-X86 Projektes. Mit folgenden Befehlen kann man das Installations-Medium sowie die wichtigsten Programme und Konfigurationen für ArchLinux unter anderem via. dem “Paketmanager” Yaourt einrichten:

yaourt -S virtualbox-bin
sudo /etc/rc.d/vboxdrv setup
sudo /etc/rc.d/vboxdrv start
mkdir /tmp/android
cd /tmp/android
wget http://www.buildroid.org/Download/android-x86-vm-20120307.iso.gz
wget http://matrixrewriter.com/android/files/TitaniumBackup.apk
wget http://onny.project-insanity.org/files/whatsappconf.tar.gz
gunzip android-x86-vm-20120307.iso.gz

Mit dem Befehl “VirtualBox” kann der VM-Manager gestartet und die virtuelle Machine eingerichtet werden. Prinzipiell muss dabei mit dem Wizard (Einrichtungsassistenten) eine Maschine mit z.B. dem Namen “Android4” (spielt später noch eine Rolle) und allen weiteren Standarteinstellungen angelegt werden. In den Einstellungen der VM sollte der Netzwerkadapter auf NAT eingestellt werden, um die Internetverbindung auf dem Android-System so unkompliziert wie möglich zu gewährleisten. Desweiteren benötigt man noch eine Portweiterleitung, um mit dem Konfigurationsprogramm ADB Einstellungen auf der Android-Maschine auf Terminal-Ebene vorzunehmen:

cd /opt/android-sdk/platform-tools
VBoxManage modifyvm "Android4" --natpf1 "adb,tcp,*,5555,*,5555"

Mit in VB eingelegter ISO-Installations-CD (android-x86-vm-20120307.iso) die Installation durchführen (siehe Tutorial), am Ende jedoch unbedingt noch “Create fake SDCARD” auswählen. Nach dem Reboot (CD-Medium/ISO wieder entfernen), die Mouse-Integration von VirtualBox deaktivieren um das System benutzen zu können (siehe Screenshot). Mit folgenden Befehlen kann man eine ADB-Session zu der VM aufbauen:

./adb connect localhost:5555
# connected to localhost:5555
./adb device
# List of devices attached 
# localhost:5555	device

Die zuvor heruntergeladenen WhatsApp-Konfigurationen werden benötigt, um das Programm (WhatsApp in Version 2.7.7533) samt “Dummy-Konfigs” zu installieren, bzw. mit TitaniumBackup ein von Android 2.3 erstelltes Backup wiederherzustellen. Ohne diese Konfigs lässt sich sonst WhatsApp nicht auf einem neueren Android 4.0 (“Tablet-Version”) starten. Im Archiv com.whatsapp-20120512-175536.tar.gz gibt es, nachdem man es extrahiert hat, mehrere Konfigurationsdateien, in denen Telefonnummer und Name schon im Vorraus angegeben werden können (ansonsten kann man es später im Programm erneut eingeben). Dabei müssen Textstellen mit der Nummer 0203040506 (ohne Countrycode) und den Namen anonymous mit den gewünschten Einstellungen ersetzt werden. Danach muss das modifizierte Archiv selbstverständlich wieder mit dem ursprünglichen Namen gepackt werden (tar cvzf com.whatsapp-20120512-175536.tar.gz *).

./adb -s "localhost:5555" install /tmp/android/TitaniumBackup.apk
tar xf whatsappconf.tar.gz 
./adb -s "localhost:5555" push /tmp/android/com.whatsapp-20120512-175536.tar.gz /sdcard/TitaniumBackup/
./adb -s "localhost:5555" push /tmp/android/com.whatsapp-20120512-175536.properties /sdcard/TitaniumBackup/
./adb -s "localhost:5555" push /tmp/android/com.whatsapp-ce260de720b0ceecea9bceced4bd7b80.apk.gz /sdcard/TitaniumBackup/

Das gestartete TitaniumBackup Programm (mit erlaubten SU-Rechten), ermöglicht es nun WhatsApp mit Konfigurationsdateien zu installieren (siehe Screenshots). WhatsApp lässt sich nun ohne Einschränkungen nutzen :)

Ayo, ich sehe, dass Du Deine Entwicklung auch aktiv voran getrieben hast. Wie steht es denn mit Deinem purple-whatsapp Plugin?
Ich würde mich gern daran versuchen, dass unter bitlbee-purple zum laufen zu bringen, wenn Du der Ansicht bist, es sei schon stabil genug! :)
Grüße und großen Dank für Deine Mühen!

@phil:
Sorry, die Portierung von verfügbaren Python-Implementierungen nach C für purple-Plugins steht leider gerade auf Eis. Das ganze ist gerade noch für mich ein wneig zu anspruchsvoll und Zeitintensiv. Aber vllt. komm Ich nochmal darauf zurück.

Mh, verstehe. Bei mir siehts ähnlich aus, wäre momentan “noch” “ein wenig” Überfordert mit der Angelegenheit. Aber ich habe Hoffnung!
Vielen Dank, Grüße

Vielen Dank für die Anleitung,

funktioniert wunderbar!

Noch mehr Dank für die TitaniumBackup Dateien, da ich kein Smartphone besitze!

Unter Windows mit Bluestacks scheiterte es an OpenGL ES , da Intel Treiber für meine GraKa nur bis OpenGL 1.4 liefert.

Unter Linux in VirtualBox jetzt wunderbar.

Meine abweichende Konfig:
android-x86-2.3-RC1-eeepc.iso
Ohne create Fake SDCARD, ich habe in GRUB: DATA=sda1 SDCARD=sda2 dafür eingefügt und sda2 extra manuell angelegt.
Die zu ändernden Einträge in dem TitaniumBackup Archiev, habe ich dann per grep -r /data NUMMER, gefunden ;)
Statt adb bin ich einfach über UbuntuOne gegangen, nicht schön aber für die paar Dateien….

Natürlich habe ich auch noch UVESA_MODE=320×480 vga=864 in GRUB stehen, sieht einfach schöner aus und kann wie ICQ damals rechts am Desktop platziert werden.
Aber vorher VBoxManage setextradata “Android-x86” “CustomVideoMode1” “320x480x16” nicht vergessen…

Nochmal danke für Anleitung und Dateien,
wenn bedarf für eine Ausführliche Anleitung besteht einfach schreiben.

Gruß, Michael

Benutze einfach ein anderes Android mit Ethernet-Support!

Wie oben beschrieben benutze ich das android-x86-2.3-RC1-eeepc.iso
kann man beim Android-X86 Projekt runterladen.

-Aber mal ganz ehrlich wenn das schon das Problem ist solltest du an der Sache mit dem Titaniumbackup und den ändern der Dateien in Vi erst recht scheitern…

8 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

* Checkbox GDPR is required

*

I agree

Software
2
Bye bye Play Store! Mirroring Play Store Apks to private F-Droid repo

This small tutorial will show you how to setup your own F-Droid repository containing automatically mirrored Play Store apps. Using this private repo, you don’t have to relay on Google Play Store or third party stores anymore to keep non-free apps up-to-date. All you need to have is a Linux …

Software
Ebook reader app for Nextcloud

Because of lack of altenatives I decided to write a small ebook reader plugin for Nextcloud. The task of creating such an app was quite easy: I just forked the files_pdfviewer extension and replaced PDF.js with the Epub.js library. In the app template file, I used the reference ebook reader …

Software
Hacking replay gain audio normalization into Jellyfin

There is already a feature request for audio normalization in Jellyfin media server. This is important if you want to listen to your music collection while always having the same loudness level. Usually, in different recordings or music genres some tracks are louder and others are more quiet. The standard …