Neuigkeiten:

Privates MODX und LINUX BLOG, User Registrierung ist deaktiviert! Fragen oder Tipps? Bitte per Matrix: @jolichter:tchncs.de

Hauptmenü

iOS mit Linux

Begonnen von Jo, 2015-12-12 | 03:09:06

« vorheriges - nächstes »

Jo

Seit dem iOS 10 Update kann libimobiledevice keine Verbindung mehr zum iPhone herstellen
(update: iOS 11 siehe Thread 2)

Dumm gelaufen?
Ja das gehört ganz klar zu den Nachteilen von LINUX - wobei LINUX dafür nichts kann!  :mad:
iOS ist nun mal ein proprietäres Betriebssystem und das macht es den libimobiledevice Entwickler natürlich nicht leichter.
Ich bin und war noch nie ein Freund bei großen Updates, gleich ein gut laufendes System auf eine höhere Version zu bringen.
In Wirklichkeit sind das heute die beta-Tester...

Das iOS 9 rennt derzeit mit vielen aktuellen Linux-Distributionen "out of the box" ohne Probleme, z.B. mit webdav und libimobiledevice.
Bei einem Upgrade besteht immer die Gefahr das dann was nicht mehr so läuft wie es war. Ich meine nicht die Sicherheitsupdates sondern die großen Releases z.B. iOS 9 auf iOS 10. Das ist mit ein Grund warum ich nur LINUX LTS-Versionen benutze - wenn möglich.

Was kann man tun, damit sowas nicht noch einmal passiert? Benutzt VirtualBox mit Windows und installiert dort das aktuelle iTunes oder macht es wie ich und habt etwas Geduld. Nach ein paar Wochen schreiben diese "iOS-Beta Tester" eventuelle Probleme in den entsprechenden Foren. Vorher würde ich kein großes Update machen. Bald soll iOS 11 kommen -> Finger weg! Ich warte lieber auf 11.x und suche im www ob das mit libimobiledevice und webdav läuft.


LÖSUNG: Es gibt eine PPA für die libimobiledevice mit Unterstützung für iOS 10
*** getestet mit iOS 10.3.2 und MINT 17.3 ***

Ooops, du hast ein Android? Dann kannst du den MTP-Modus aktivieren und das Paket mtpfs installieren.


PROLOG:
Volle Kontrolle des iPhones unter LINUX ohne iTunes und jailbreak? Ja das geht!

Kalender und Kontakte lassen sich gut per WebDAV (CardDAV, CalDAV) synchronisieren, z.B. mit einer eigenen OwnCloud, iCloud, web.de oder GMail. LINUX-Mailprogramme wie Evolution, Thunderbird mit Lightning oder Kontact unterstützen schon lange WebDAV. Backups könnt ihr per idevicebackup2 oder iCloud erstellen, dass ich wegen WebDAV nicht benötige. Macht aber vielleicht Sinn bei einem neuen iPhone, um installierte Apps und Einstellungen zu importieren. Mit dem FileMaster App können Dateien auf das iPhone kopiert werden (siehe unten). Möchtet ihr per FileMaster z.B. Bilder auf PC kopieren, muss dieser erst die Fotos aus dem iPhone Bilderordner importieren. Das ist etwas umständlich, daher bevorzuge ich iFuse um per USB-Kabel an die Bilder zu kommen.

DETAILS:

  • libimobiledevice PPA von Martin Salbaba Softwaredesign
  • libimobiledevice ist eine Bibliothek und beherrscht die nativen USB-Protokolle von Apple
  • iFUSE ist ein Dateisystem-Treiber, der libiphone verwendet, um iPhone und iPod Touch-Geräte ohne jailbreak zu verbinden

WICHTIG:
iFuse kann das Gerät als USB-Laufwerk einbinden, da aber die iTunes-Datenbank des Gerätes von einem einfachen Kopiervorgang nichts mitbekommt und neue Dateien nicht anzeigt, bitte nur zum Anzeigen oder kopieren auf euren PC benutzen!
Bilderordner: ~/[user]/[mount point]/DCIM/
Musikordner: ~/[user]/[mount point]/iTunes_Control/Music/




Achtung: Diese PPA (erste Zeile) nur wenn ihr die libimobiledevice 1.2.0 benötigt (nur MINT 17 und iOS 10)
PPA einbinden, libimobiledevice und ifuse installieren, aufräumen:
sudo add-apt-repository ppa:martin-salbaba/ppa+libimobiledevice
sudo apt-get update
sudo apt-get install libimobiledevice-utils ifuse
sudo apt-get autoclean; sudo apt-get clean; sudo apt-get autoremove

evt. auch per Synaptic Paketverwaltung prüfen ob es Einträge in "Nicht installiert (zurückgebliebene Konfiguration)" gibt und diese dann löschen

Kontrolliert per KUser (wenn ihr KDE benutzt) ob der Benutzer zur Gruppe "fuse" gehört (Benutzereigenschaften oder Group). Einfacher geht das per Terminal. Legt die Gruppe fuse an und fügt den Benutzer zur Gruppe hinzu:

sudo addgroup fuse
sudo adduser $USER fuse
newgrp - fuse

Hinweis: Das beitreten der Gruppe via newgrp ohne Neustart funktioniert nur in diesem Terminal (Shell).
Loggt euch aus- und wieder ein, dann ist man fest in der neuen Gruppe.

Ordner zum mounten anlegen, z.B.:
mkdir ~/iPhone/

testet ob das iPhone erkannt wird:
dmesg | grep ipheth
#[ 2109.944705] ipheth 3-1.6:4.2: Apple iPhone USB Ethernet device attached
#[ 2109.944772] usbcore: registered new interface driver ipheth


iPhone Bilderschirm entsperren!

iPhone verbinden und Host verwalten, dann per ifuse mounten:
idevicepair pair
ifuse ~/iPhone/


iPhone dismounten, dann Verbindung und Host lösen:
fusermount -u ~/iPhone/
idevicepair unpair


Achtung: iPhone immer dismounten bevor das USB-Kabel entfernt wird!
Sonst gehört der gemountete Ordner root und hat chmod = 0 (also keine Berechtigung), dann hilft nur eins:
sudo chmod 0755 ~/iPhone/

Zum einfachen mounten per Mausklick habe ich eine bash-Datei erstellt.
Siehe bash script im Zip-Anhang. Im iPhone-Login müsst ihr "MeinPasswort" durch euer sudo Passwort ersetzen!
Das stellt dann sicher das euer iPhone Ordner immer chmod 0755 hat.





Backup des Geräts mit idevicebackup2:
Bei dieser inkrementellen Datensicherung werden nur die Dateien in die Archivdatei übernommen, die seit dem letzten Backup verändert wurden. Zum Erstellen eines Backups muss zuerst ein Ordner im Homeverzeichnis erstellt werden, z.B.:
mkdir ~/iPhoneBackup
Backup des Geräts erstellen:
idevicebackup2 backup ~/iPhoneBackup
Backup des Geräts wiederherstellen:
idevicebackup2 restore ~/iPhoneBackup




Klingeltöne ohne iTunes ertellen: GarageBand (SCHRITT FÜR SCHRITT ANLEITUNG)




PS: ein guter Dateimanager für iOS ist z.B. der FileMaster, damit könnt ihr ohne iTunes per WLAN auf die schnelle Bilder Musik usw aufs iPhone bringen.

Jo

#1
für iOS 11 oder iOS 12 muss libimobiledevice 1.2.0 aktualisiert werden
Stand: 2018-09-18

Update: In Ubuntu 18.04 ist libimobiledevice-utils 1.2.1 enthalten. Daher ist keine PPA oder neu kompilieren nötig  :-[
sudo apt install libimobiledevice-utils ifuse


Gilt nur für Ubuntu 16.04:
Die offizielle Version libimobiledevice 1.2.0 (05.07.2016) unterstützt iOS 10 und muss für iOS 11 oder iOS 12 aktualisiert werden, Link: Need updated libimobiledevice to mount iOS 11 devices

Für Ubuntu Version 17.10 (Artful) und die kommende 18.04 LTS (Bionic) gibt es schon eine libimobiledevice 1.2.0+dfsg-3.1ubuntu3 die mit iOS 11 oder iOS 12 funktioniert.

Wer Ubuntu 16.04 LTS (Xenial), Mint18 oder das derzeitige KDE Neon 5.11.x benutzt kann selbst eine libimobiledevice 1.2.1 Version für iOS 11 oder iOS 12 erstellen oder muss auf die nächste LTS-Version warten. Die Lösung (Fix) befindet sich im Upstream-Github und kann mit "Browse Files" -> "Clone or download" -> "Download ZIP" geladen werden.

Nach dem Download das Archiv entpacken und die "README" lesen wie ihr das kompilieren könnt. Hier meine Vorgehensweise mit dem derzeitigen KDE Neon 5.11.2 (ohne Gewähr!).

Hinweis: Mein kompiliertes Debian-Paket libimobiledevice 1.2.1 für iOS 11 oder iOS 12 im Anhang (libimobiledevice_iOS11_amd64.zip) ist natürlich ohne Garantie/Gewähr, dass dieses Paket auch woanders funktioniert. Damit könntet ihr Schritt 3 und 4 überspringen.

1) Deinstalliert "libimobiledevice6"
(wenn installiert)
sudo apt --purge remove libimobiledevice6
Achtung, dabei werden auch Abhängigkeiten deinstalliert die später wieder installiert werden müssen!
Liste der deinstallierten Pakete für später merken (siehe Datum und Uhrzeit):
awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log
bei mir war das z.B. amarok amarok-utils ifuse libgpod-common libgpod4 libimobiledevice6 upower usbmuxd

2) Aufräumen
sudo apt update; sudo apt upgrade; sudo apt dist-upgrade
sudo apt clean; sudo apt autoclean; sudo apt-get -f install; sudo apt clean; sudo apt autoremove --purge


3) Zum kompilieren werden noch entsprechende Entwicklungsdateien benötigt
sudo apt install build-essential checkinstall libtool automake libusbmuxd-tools
Das "make" Script gibt evtl. eine Fehlermeldung aus wenn Pakete fehlen die nachinstalliert werden müssen, z.B.:
sudo apt install libicu-dev libxml2-dev libplist-dev libplist++3v5 libplist++-dev cython libexpat1-dev libpython2.7-dev libpython-dev python2.7-dev python-dev cython-dbg libplist-dbg zlib1g-dev libssl-dev

4) Kompilieren im entpackten Ordner
./autogen.sh
das Ende davon sollte so aussehen:
Configuration for libimobiledevice 1.2.1:
-------------------------------------------

  Install prefix: .........: /usr/local
  Debug code ..............: no
  Python bindings .........: no
  SSL support backend .....: OpenSSL

  Now type 'make' to build libimobiledevice 1.2.1,
  and then 'make install' for installation.


dann:
make
Wenn hier keine Fehler angezeigt werden kann mit "sudo make install" das Script installiert werden und mit "sudo make uninstall" deinstalliert werden.
Bei dieser Vorgehensweise werden die Dateien von der Paketverwaltung NICHT registriert und können diese sogar stören! Insbesondere ist eine Deinstallation sehr schwierig. Darum benutze ich dafür das Paket checkinstall.
sudo checkinstall
Statt einer direkten Installation erstellt checkinstall zuerst ein Debian-Paket und wird das anschließend sofort installieren. Die Datei ist im Anhang als libimobiledevice_iOS11_amd64.zip gespeichert.

5) Nach der erfolgreichen Installation: "libimobiledevice6" und gelöschte Pakete wieder herstellen (siehe Punkt 1), z.B.
sudo apt install libimobiledevice6 amarok amarok-utils ifuse libgpod-common libgpod4 upower usbmuxd

6) iOS 11 oder iOS 12 mit KDE neon mounten (siehe Thread 1 oben)
Neu ab iOS 11: Nach dem Einstöpseln per USB kommt eine Abfrage, ob ihr dem Computer "vertraut" und wenn ja müsst ihr das mit euren Passwort bestätigen - sonst ist ein "idevicepair pair" nicht möglich.

:-[ O0