FJ Software Foren-Übersicht  
 Homepage   •  Suchen   •  FAQ   •  Mitgliederliste   •  Registrieren   •  Login
 myphoneexplorer für linux? Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
R41zW4z



Anmeldedatum: 01.05.2025
Beiträge: 5
Wohnort: Munich

BeitragVerfasst am: Do Mai 01, 2025 12:43 Antworten mit ZitatNach oben

Hallo zusammen,

viele haben sich sicherlich schon nach einem solchen tollen Programm für Linux gesehnt.
Ich mich auch Confused Very Happy

Am Laufen habe ich es bei mir schon sehr lange unter verschiedenen Linux-Versionen. Ein Alles-In-Der-Cloud-Fan bin ich nämlich wirklich nicht.
Außerdem bietet dieses Programm ein paar nette Features.

Heute teile ich einfach mal mit der Community mein Machwerk.
Wer mit Linux arbeitet, egal ob Neuling oder Erfahrener sollte zumindest wissen, was ein Bash-Skript ist, und wie man es ausführbar macht.

Ich habe extra kein Programm kompiliert, denn so lässt es sich für jeden einsehen und verstehen... naja verstehen Rolling Eyes vielleicht nicht unbedingt, aber es tut nicht weh.


Dieses Herumgefrickel mit PlayOnLinux usw. stört Euch sicherlich auch.

Ich hoffe mal, dass es hier keine Zeichenbegrenzung gibt, denn zum Upload einer Datei kann ich hier nichts entdecken.

Vorab ein paar Infos und die Vorgehensweise.

Die Setup-Datei von MyPhoneExplorer sollte bereits heruntergeladen sein.
Es ist eine ganz normale Installation wie unter Windows auch.
Bitte sicherstellen, dass Wine und Winetricks installiert sind.
Per USB-Verbindung geht das Ganze auch, aber das würde hier jetzt den Rahmen sprengen. Es soll ja keine Google-ADB-Schulung werden.
Von daher gibt es hier die WLAN-Variante. Sie funktioniert mit vielen Linux Distributionen und Versionen sowie Wine in vielen Geschmacksrichtungen.
Wer nicht weiß, was eine Linux Distribution ist, kann hier schon aufhören weiterzulesen. Falscher Film Question Arrow
Und Wine ist nichts zum Trinken.
Wer Linux will, muss also auch ein bisschen Linux leben wollen. Und das hier ist nicht weniger als das, was die Windows-Jünger mit Batch, VBscript, Powershell und Python machen, wenn sie es denn können.
Copy/Paste kann wohl jeder von Euch. Laughing

Es ist wie schon erwähnt ein Bash--Skript.

1. alles in einer Textdatei speichern -> mpe.sh
2. Datei ausführbar machen -> chmod +x mpe.sh
3. Terminal öffnen und Skript starten -> bash script.sh

Bin mal gespannt, ob das hier reingeht...


Edit: 03.045.2025 16:25 Uhr
1. neueste Version von MyPhoneExplorer wird wenn geünscht vom Skript heruntergeladen (aktuell: MyPhoneExplorer_Setup_2.2.exe)
3. mein Skript vollständig kopieren und in einen Texteditor einfügen (COPY/PASTE oder per Maus) - nur bitte keine Textverarbeitung wie Libre Writer oder MS Word verwenden - das gibt unter Umständen Probleme mit unsichtbaren Sonderzeichen)
4. Datei speichern z.B. als "mpe.sh" der Einfachheit halber im selben Ordner in dem das Setup-Programm von MyPhoneExplorer gespeichert ist

kurze Zusammenfassung
- Für die jetzt und hier folgenden Schritte muss die "mpe.sh" nicht unbedingt ausführbar gemacht werden.
- Jetzt muss ein beliebiges Terminal/ Konsole geöffnet werden.
- anschließend bitte in das Verzeichnis der beiden Dateien wechseln (bei mir ~/Downloads)
Befehl: "cd ~/Downloads" (ohne Anführungszeichen)
- zur Kontrolle prüfen, ob und dass beide Dateien angezeigt werden
Befehl: "ls" oder "dir" (ohne Anführungszeichen)
- und jetzt kommt der Trommelwirbel (Skript ausführen):
Befehl: "bash mpe.sh" (am besten Leerzeichen im Dateinamen vermeiden)

- Achso: Enter/ Return drücken, wenn man den Befehl eingegeben hat Very Happy

Während das Skript läuft sollten - soweit es mir möglich war querzudenken und mir Probleme vorzustellen - ziemlich viele Eventualitäten und Möglichkeiten abgedeckt sein.
Wer dennoch an einer Stelle meint, dass gleich etwas Böses passieren könnte, kann das Skript mit "STRG + C" zu jeder Zeit beenden.

Ggf. erscheint noch ein kleines Fenster für die Installation eines Microsoft-Pakets - das ist notwendig und muss wie nicht gelesene AGBs einfach installiert werden

- wenn noch nicht geschehen, die passende App zu der verwendeten MyPhoneExplorer Version auf dem SmartPhone installieren (bei den meisten vermutlich die neueste Version)
- die App starten und dafür sorgen, dass eine WLAN-Verbindung besteht (das wird in der App angezeigt, und die App wartet dann auf eine Verbindung zum Computerprogramm von MyPhoneExplorer
- im jetzt hoffentlich installierten Programm über das Dateimenü versuchen, eine WLAN-Verbindung herzustellen
Ich habe einfach ein paar Sekunden gewartet, und Tadaaa, das Smartphone wurde gefunden. Was der QR macht, weil ich nicht, weil mein Smartphone nicht mit Google spricht Wink
Ich vermute aber, dass nichts anderes getan wird, als was Ihr mit meiner Anleitung bereits getan habt -> die App installieren und starten

Zusammen mit dieser Anleitung, dem Quelltext (für die, die ihn verstehen) und den Abschlusshinweisen am Ende des Skriptdurchlaufs sollte es den meisten gelingen, das Ding zum Fliegen zu bekommen. Und das ganz ohne Zusatzsoftware und Exportieren aus irgendwelchen Wine-Umgebungen (Präfixes), die an allen möglichen Stellen liegen können, wenn man mal den Computer wechselt. Einfach den Ordner, den man bei der Installation angegeben hat kopieren, und den Befehl, der am Ende angezeigt wird für den neuen Computer und/ oder Speicherort anpassen.

Übrigens arbeite ich gerade an der USB-Variante unter Linux.

PS: bei Firewall oder sonstigen Problemen - einfach in der Apotheke, dem Friseur oder jemanden, den Ihr nicht mögt, nachfragen



In diesem Sinne

Rainman aka R41zW4z



Code:

#!/bin/bash

LOGFILE="${HOME}/.mpe_setup.log"
export LOGFILE

clear
# === Farben für Terminalausgabe ===
RED="\e[31m"
GREEN="\e[32m"
YELLOW="\e[33m"
BOLD="\e[1m"
RESET="\e[0m"

# === Logdateien vorbereiten ===
script_dir="$(cd "$(dirname "$0")" && pwd)"
timestamp="$(date +%Y-%m-%d_%H-%M-%S)"
mkdir -p "$script_dir/log"
logfile="$script_dir/log/MyPhoneExplorer_Install-Log_$timestamp.log"
winelog="$script_dir/log/MyPhoneExplorer_Install-Wine-Log_$timestamp.log"
backup_file=""

# --- Logfunktion mit Timestamp ---
log() {
  local ts
  ts=$(date '+%Y-%m-%d %H:%M:%S')
  echo "[$ts] $*" >> "$logfile"
}

# --- Menüausgaben auf Terminal und Log ---
menu_echo() {
  echo -e "$@" >&3
  # Für Log: Entferne ANSI-Farbcodes vor dem Speichern
  clean_line=$(echo -e "$@" | sed -r 's/\x1B\[[0-9;]*[mK]//g')
  log "$clean_line"
}

# --- 0. Wine und Winetricks prüfen ---
check_cmd() { command -v "$1" >/dev/null 2>&1; }

log "Skript gestartet."

fehlende=""
if ! check_cmd wine; then
  fehlende="Wine"
fi
if ! check_cmd winetricks; then
  if [ -z "$fehlende" ]; then
    fehlende="Winetricks"
  else
    fehlende="$fehlende und Winetricks"
  fi
fi

if [ -n "$fehlende" ]; then
  echo -e "${RED}Es fehlen Komponenten ($fehlende) für die Durchführung der Installation von MyPhoneExplorer.${RESET}"
  echo
  echo "  1) Ja, automatisch installieren"
  echo "  2) Fehlende Komponenten selbst installieren und Skript später erneut ausführen"
  echo
  read -p "Bitte wähle eine Option [1-2]: " installopt
  installopt=${installopt:-2}
  case "$installopt" in
    1)
      echo
      echo -e "${YELLOW}Alle fehlenden Komponenten werden aus den eigenen Quellen des Betriebssystem installiert.${RESET}"
      echo -e "${YELLOW}Achtung: Die Installation der fehlenden Komponenten erfolgt auf eigene Gefahr!${RESET}"
      echo -e "${YELLOW}Für eventuelle Probleme oder Schäden wird keine Haftung übernommen.${RESET}"
      echo
      echo "Möchtest Du wirklich fortfahren?"
      echo "  1) Ja, fortfahren"
      echo "  2) Abbrechen"
      read -p "Bitte wähle eine Option [1-2]: " warnopt
      warnopt=${warnopt:-2}
      case "$warnopt" in
        1)
          pm=""
          if [ -f /etc/os-release ]; then
            . /etc/os-release
            case "$ID" in
              ubuntu|debian|linuxmint)
                pm="sudo dpkg --add-architecture i386 && sudo apt update && sudo apt install wine wine32 winetricks -y"
                ;;
              fedora)
                pm="sudo dnf install wine wine-win32 winetricks"
                ;;
              opensuse*)
                pm="sudo zypper install wine wine-32bit winetricks"
                ;;
              arch|manjaro)
                pm="sudo pacman -S wine winetricks"
                ;;
              *)
                pm="Bitte installiere wine und winetricks über Deinen Paketmanager."
                ;;
            esac
          fi
          echo "Installiere Wine und Winetricks z.B. mit:"
          echo "$pm"
          if [[ "$pm" == Bitte* ]]; then
            log "Unbekannte Distribution, Installation nicht automatisch möglich."
            exit 1
          fi
          eval "$pm"
          ;;
        *)
          echo -e "${YELLOW}Skript wird beendet.${RESET}"
          log "Benutzer hat die automatische Installation abgelehnt. Skript beendet."
          exit 1
          ;;
      esac
      ;;
    *)
      echo -e "${YELLOW}Bitte installiere die fehlenden Komponenten und starte das Skript erneut.${RESET}"
      log "Benutzer will Komponenten selbst installieren. Skript beendet."
      exit 1
      ;;
  esac
fi

WINETRICKS=$(type -P winetricks)

# === Laufende Wine-Prozesse anzeigen ===

running_wine_processes=()
while read -r pid cmd; do
  # Versuche das Prefix zu ermitteln (optional, klappt nicht immer)
  prefix=$(tr '\0' '\n' < /proc/$pid/environ 2>/dev/null | grep '^WINEPREFIX=' | cut -d= -f2-)
  [ -z "$prefix" ] && prefix="(unbekannt oder Standard)"
  running_wine_processes+=("PID: \"$pid\" -> $cmd -> Prefix: \"$prefix\"")
done < <(ps -eo pid,cmd | grep -E '[w]ine|[w]inedevice|[w]ineserver')

if [ ${#running_wine_processes[@]} -gt 0 ]; then
  echo -e "${YELLOW}Achtung: Es laufen aktuell folgende Wine-Prozesse (Windows-Programme):${RESET}"
  log "Achtung: Es laufen aktuell folgende Wine-Prozesse (Windows-Programme):"
  for entry in "${running_wine_processes[@]}"; do
    echo "  $entry"
    log "  $entry"
  done
  echo -e "${YELLOW}Bitte beende ggf. laufende Wine-Anwendungen, um Konflikte zu vermeiden! (Dies kann zu Datenverlust für die laufenden Programme führen.)${RESET}"
  log "Bitte beende ggf. laufende Wine-Anwendungen, um Konflikte zu vermeiden!"
  echo

  # Dick und rot markierter Prompt
  echo -en "${RED}${BOLD}Es werden alle laufenden Wine-Prozesse (Windows-Programme) beendet. Trotzdem fortfahren? [j/N]: ${RESET}"
  read weiter

  weiter=${weiter,,}
  if [[ "$weiter" != "j" && "$weiter" != "ja" ]]; then
    echo "Manuell vom Benutzer abgebrochen."
    log "Vom Benutzer wegen laufender Wine-Prozesse abgebrochen."
    exit 1
  fi

  echo -e "${YELLOW}Beende alle laufenden Wine-Prozesse (pkill -9 -f wine)...${RESET}"
  log "Alle laufenden Wine-Prozesse werden hart beendet (pkill -9 -f wine)."
  pkill -9 -u "$USER" -f wine
fi

# === 1. Disclaimer mit j/n ===
clear
printf "%b\n" "${YELLOW}DISCLAIMER:${RESET}"  # Farbige Überschrift
cat <<EOF
Dieses Skript ist kein Bestandteil des Programmes MyPhoneExplorer und wird offiziell nicht von "Franz Josef Wechselberger" unterstützt.
Die Verwendung geschieht auf eigene Gefahr und die Haftung liegt bei Dir selbst. Ich Empfehle, die Installation in einer virtuellen Maschine oder bei jemanden, den Du nicht magst, zu testen.
EOF
echo
read -p "Bist Du mit dem Disclaimer einverstanden? [j/n]: " disclaimer_accept
disclaimer_accept=${disclaimer_accept,,}
log "Disclaimer Zustimmung: $disclaimer_accept"
if [[ "$disclaimer_accept" != "j" ]]; then
  echo -e "${RED}Tja, wer nicht will...${RESET}"
  log "Nutzer hat Disclaimer abgelehnt, Skript beendet."
  exit 1
fi

# === 1a. Hauptmenü nach Disclaimer ===
while true; do
  echo
  echo -e "${YELLOW}Was möchtest Du tun?${RESET}"
  echo "  1) Installation starten"
  echo "  2) Installationsverzeichnis anzeigen"
  echo "  3) Hilfe anzeigen"
  echo "  4) Beenden (oder STRG + C)"
  read -p "Bitte wähle eine Option [1-4]: " main_choice
  main_choice=${main_choice,,}

  case "$main_choice" in
    1)
      log "Menüauswahl: Installation starten"
      break
      ;;
    2)
      echo "Das Installationsverzeichnis wird später im Skript ausgewählt."
      log "Menüauswahl: Installationsverzeichnis anzeigen (noch nicht implementiert)"
      ;;
    3)
      echo
      echo "Hilfe: Dieses Skript installiert MyPhoneExplorer in einem Wine-Präfix. Folge den Anweisungen im Terminal."
      log "Menüauswahl: Hilfe anzeigen"
      ;;
    4)
      echo -e "${RED}Beendet auf Wunsch des Nutzers.${RESET}"
      log "Menüauswahl: Beenden, Skript beendet."
      exit 0
      ;;
    "")
      echo -e "${RED}Es wurde keine Auswahl getroffen. Bitte erneut versuchen.${RESET}"
      ;;
    *)
      echo -e "${RED}Ungültige Eingabe. Bitte wähle 1, 2, 3 oder 4.${RESET}"
      ;;
  esac

done

# === 2. Umleitung der Ausgaben (außer Menü) in Log ===
exec 3>&1 4>&2
exec > >(tee -a "$logfile") 2>&1

# === 3. Installationspfad auswählen und prüfen ===
while true; do
  menu_echo
  menu_echo -e "${YELLOW}Bitte wähle einen Installationspfad für MyPhoneExplorer:${RESET}"
  menu_echo "  1) $HOME/MyPhoneExplorer   [Standard]"
  menu_echo "  2) eigenen Pfad auswählen"
  menu_echo "  3) Beenden"
  echo
  read -p "Auswahl [1]: " auswahl <&3
  auswahl=${auswahl:-1}

  case "$auswahl" in
    1)
      pfad=~/MyPhoneExplorer
      ;;
    2)
      echo
      menu_echo "Bitte gib den gewünschten Pfad ein."
      menu_echo "${RED}Hinweis: Falls der Pfad Leerzeichen enthält, bitte in Anführungszeichen setzen!${RESET}"
      menu_echo "Beispiel: \"/home/$USER/Downloads\""
      read -e -p "Installationspfad: " pfad <&3
      pfad="${pfad/#~/$HOME}"
      log "Benutzerdefinierter Pfad eingegeben: $pfad"
      ;;
    3)
      menu_echo "${YELLOW}Skript wird beendet.${RESET}"
      log "Benutzer hat das Skript beendet."
      exit 0
      ;;
    *)
      menu_echo "${RED}Ungültige Auswahl.${RESET}"
      continue
      ;;
  esac
  log "Installationspfad Auswahl: $auswahl ($pfad)"

  # Existiert der Ordner?
  if [ -d "$pfad" ]; then
    # Ist der Ordner leer?
    if [ -z "$(ls -A "$pfad")" ]; then
      menu_echo "${YELLOW}Der ausgewählte Ordner \"$pfad\" existiert bereits, ist aber leer.${RESET}"
      menu_echo "  1) Ordner löschen und neuen Pfad wählen"
      menu_echo "  2) Anderen Pfad wählen"
      menu_echo "  3) Beenden"
      read -p "Auswahl [2]: " leerauswahl <&3
      leerauswahl=${leerauswahl:-2}
      case "$leerauswahl" in
        1)
          rm -rf "$pfad"
          menu_echo "${GREEN}Ordner gelöscht.${RESET}"
          log "Leerer Ordner gelöscht: $pfad"
          continue
          ;;
        2)
          continue
          ;;
        3)
          menu_echo "${YELLOW}Skript wird beendet.${RESET}"
          log "Benutzer hat das Skript beendet."
          exit 0
          ;;
        *)
          menu_echo "${RED}Ungültige Auswahl.${RESET}"
          continue
          ;;
      esac
    else
      # Prüfen, ob Wine-Präfix
      if [ -f "$pfad/system.reg" ] && [ -f "$pfad/user.reg" ] && [ -f "$pfad/userdef.reg" ] && [ -d "$pfad/drive_c" ]; then
        # Architektur feststellen
        arch="win32"
        if grep -q "arch=win64" "$pfad/system.reg"; then
          arch="win64"
        fi
        menu_echo
        menu_echo "${YELLOW}Im gewählten Ordner befindet sich bereits ein ${arch}-Wine-Präfix, in dem ggf. Windows Programme installiert sind.${RESET}"
        menu_echo "${RED}Warnung: Eine Installation in ein bestehendes Präfix kann zu Konflikten mit anderen Programmen führen!${RESET}"
        menu_echo "${RED}Es können Daten überschrieben oder beschädigt werden.${RESET}"
        menu_echo
        menu_echo "  1) In dieses Präfix installieren"
        menu_echo "  2) Präfix löschen und fortsetzen"
        menu_echo "  3) Anderen Pfad wählen"
        menu_echo "  4) Beenden"
        echo
        read -p "Auswahl [3]: " praefixauswahl <&3
        praefixauswahl=${praefixauswahl:-3}
        case "$praefixauswahl" in
          1)
            log "Installation erfolgt im bestehenden Präfix ($pfad, $arch)"
            # Hier folgt die normale Installationslogik
            break
            ;;
          2)
            menu_echo "${RED}Das Präfix \"$pfad\" wird jetzt unwiderruflich gelöscht!${RESET}"
            rm -rf "$pfad"
            menu_echo "${GREEN}Präfix wurde gelöscht. Ein neues Präfix wird angelegt und die Installation fortgesetzt.${RESET}"
            log "Präfix gelöscht: $pfad"
            mkdir -p "$pfad"
            # Hier ggf. weitere Initialisierung für ein neues Präfix
            WINEARCH=win32 WINEPREFIX="$pfad" wineboot
            break
            ;;
          3)
            continue
            ;;
          4)
            menu_echo "${YELLOW}Skript wird beendet.${RESET}"
            log "Benutzer hat das Skript beendet."
            exit 0
            ;;
          *)
            menu_echo "${RED}Ungültige Auswahl.${RESET}"
            continue
            ;;
        esac
      else
        # Ordner ist befüllt, aber KEIN Wine-Präfix
        menu_echo "${RED}Warnung: Im gewählten Ordner befinden sich bereits Daten, aber kein vollständiges Wine-Präfix!${RESET}"
        menu_echo "  1) Trotzdem verwenden (Achtung: Dateien könnten überschrieben werden!)"
        menu_echo "  2) Anderen Pfad wählen"
        menu_echo "  3) Beenden"
        read -p "Auswahl [2]: " befuelltauswahl <&3
        befuelltauswahl=${befuelltauswahl:-2}
        case "$befuelltauswahl" in
          1)
            log "Installation erfolgt im bestehenden, aber nicht leeren Ordner: $pfad"
            break
            ;;
          2)
            continue
            ;;
          3)
            menu_echo "${YELLOW}Skript wird beendet.${RESET}"
            log "Benutzer hat das Skript beendet."
            exit 0
            ;;
          *)
            menu_echo "${RED}Ungültige Auswahl.${RESET}"
            continue
            ;;
        esac
      fi
    fi
  else
    # Ordner existiert nicht, anlegen
    mkdir -p "$pfad"
    if [ $? -eq 0 ]; then
      menu_echo "${GREEN}Ordner \"$pfad\" wurde angelegt.${RESET}"
      log "Ordner wurde neu angelegt: $pfad"
    else
      menu_echo "${RED}Fehler: Ordner \"$pfad\" konnte nicht angelegt werden.${RESET}"
      log "Fehler beim Anlegen des Ordners: $pfad"
      continue
    fi

    # wineboot separat prüfen und Fehler ggf. anders behandeln
    echo "DEBUG: LOGFILE='$LOGFILE'" >&2
    WINEARCH=win32 WINEPREFIX="$pfad" wineboot 2>>"$LOGFILE"
    if [ $? -ne 0 ]; then
      menu_echo "${YELLOW}Warnung: wineboot für \"$pfad\" war nicht erfolgreich. Prüfe Logfile.${RESET}"
      log "Warnung: wineboot für \"$pfad\" war nicht erfolgreich."
      # Optional: continue oder abbrechen, je nach gewünschtem Verhalten
    fi
  fi
done

menu_echo "${GREEN}Installationspfad gewählt: $pfad${RESET}"
log "Installationspfad gewählt: $pfad"

menu_echo

# === 4. Wine-Versionen sammeln und auswählen ===
extract_version() {
  local ver="$1"
  if [[ "$ver" =~ ([0-9]+\.[0-9]+) ]]; then
    echo "${BASH_REMATCH[1]}"
  else
    echo "$ver"
  fi
}

collect_wine_versions() {
  local base_dir="$1"
  local origin="$2"
  local -n versions_ref=$3
  local -n paths_ref=$4

  [ ! -d "$base_dir" ] && return

  while IFS= read -r wine_bin; do
    ver_raw=$("$wine_bin" --version 2>/dev/null)
    if [[ "$ver_raw" == wine* ]]; then
      ver=$(extract_version "$ver_raw")
      name=$(basename "$(dirname "$wine_bin")")
      # Nur aufnehmen, wenn Pfad noch nicht enthalten ist
      if [[ ! " ${paths_ref[@]} " =~ " $wine_bin " ]]; then
        versions_ref+=("$name|$ver|$origin")
        paths_ref+=("$wine_bin")
      fi
    fi
  done < <(find "$base_dir" -type f -name "wine" -executable 2>/dev/null)
}

collect_system_wines() {
  local -n versions_ref=$1
  local -n paths_ref=$2

  # Suche nach allen typischen wine-Befehlen, inkl. "wine" selbst!
  mapfile -t bins < <(compgen -c | grep -E '^wine($|64|-(stable|devel|staging|ge|[0-9]+))$' | sort -u)
  for bin in "${bins[@]}"; do
    path=$(which "$bin" 2>/dev/null)
    if [ -x "$path" ]; then
      ver_raw=$("$path" --version 2>/dev/null)
      if [[ "$ver_raw" == wine* ]]; then
        ver=$(extract_version "$ver_raw")
        name="$bin"
        # Nur aufnehmen, wenn Pfad noch nicht enthalten ist
        if [[ ! " ${paths_ref[@]} " =~ " $path " ]]; then
          versions_ref+=("$name|$ver")
          paths_ref+=("$path")
        fi
      fi
    fi
  done
}

is_stable() {
  [[ "$1" =~ stable ]] && return 0 || return 1
}

sort_versions_desc() {
  printf "%s\n" "${!1}" | sort -t'|' -k2 -V -r
}

declare -a system_versions system_paths

# Nur systemweite Wine-Versionen sammeln
collect_system_wines system_versions system_paths
system_versions_sorted=($(sort_versions_desc system_versions[@]))

# Debug-Ausgabe
menu_echo "Gefundene systemweite Wine-Versionen:"
for i in "${!system_versions[@]}"; do
  name="${system_versions[$i]%%|*}"
  ver="${system_versions[$i]#*|}"; ver="${ver%%|*}"
  path="${system_paths[$i]}"
  menu_echo "  $name $ver -> $path"
done

if (( ${#system_versions_sorted[@]} == 0 )); then
  menu_echo
  menu_echo "${RED}Keine systemweite Wine-Installation gefunden! Bitte installiere Wine über Deinen Paketmanager.${RESET}"
  menu_echo
  log "Abbruch: Keine systemweite Wine-Installation gefunden."
  exit 1
fi

# Standardauswahl bestimmen
find_default() {
  local -n versions=$1
  for i in "${!versions[@]}"; do
    name="${versions[i]%%|*}"
    if is_stable "$name"; then
      echo "$i"
      return
    fi
  done
  echo -1
}

default_system=$(find_default system_versions_sorted)
default_idx=$default_system
(( default_idx < 0 )) && default_idx=0

# Auswahlmenü anzeigen (ohne Pfadangabe, nur Name und Version)
# Anzahl der gefundenen Wine-Versionen
wine_count=${#system_versions_sorted[@]}

if (( wine_count > 1 )); then
  menu_echo
  menu_echo "Es wurden mehrere Wine-Versionen gefunden."
  for i in "${!system_versions_sorted[@]}"; do
    version="${system_versions_sorted[$i]}"
    name="${version%%|*}"
    ver="${version#*|}"; ver="${ver%%|*}"
    menu_echo "  $((i+1))) $name $ver"
  done
  menu_echo ""
  menu_echo "Bitte eine Wine-Version auswählen, die für die Installation von MyPhoneExplorer verwendet werden soll:"
  read -p "Auswahl [$(($default_idx + 1))]: " auswahl <&3
  auswahl=${auswahl:-$((default_idx + 1))}
  log "Wine-Version Auswahl: $auswahl"

  if ! [[ "$auswahl" =~ ^[0-9]+$ ]] || (( auswahl < 1 || auswahl > wine_count )); then
    menu_echo "${RED}Ungültige Auswahl.${RESET}"
    log "Ungültige Wine-Version Auswahl: $auswahl"
    exit 1
  fi

  index=$((auswahl - 1))
  selected_version="${system_versions_sorted[index]}"
  selected_path="${system_paths[index]}"

elif (( wine_count == 1 )); then
  version="${system_versions_sorted[0]}"
  name="${version%%|*}"
  ver="${version#*|}"; ver="${ver%%|*}"
  menu_echo
  menu_echo "Es wurde nur eine Wine-Version gefunden:"
  menu_echo "  $name $ver"
  menu_echo ""
  while true; do
    read -p "Soll diese für die Installation von MyPhoneExplorer verwendet werden? [ja, nein, abbrechen]: " antwort <&3
    antwort=${antwort,,}
    log "Wine-Version Einzel-Auswahl: $antwort"
    case "$antwort" in
      ja|j)
        selected_version="$version"
        selected_path="${system_paths[0]}"
        break
        ;;
      nein|n)
        menu_echo
        menu_echo "${YELLOW}Bitte installiere eine andere Wine-Version und starte das Skript neu.${RESET}"
        menu_echo
        log "Nutzer möchte andere Wine-Version, Skript beendet."
        exit 1
        ;;
      abbrechen|a|exit|quit)
        menu_echo "${RED}Abgebrochen.${RESET}"
        log "Nutzer hat abgebrochen."
        exit 1
        ;;
      *)
        menu_echo "${YELLOW}Bitte 'ja', 'nein' oder 'abbrechen' eingeben.${RESET}"
        ;;
    esac
  done
else
  menu_echo
  menu_echo "${RED}Keine systemweite Wine-Installation gefunden! Bitte installiere Wine über Deinen Paketmanager.${RESET}"
  menu_echo
  log "Abbruch: Keine systemweite Wine-Installation gefunden."
  exit 1
fi

menu_echo
menu_echo "Gewählt: $selected_version"
menu_echo "Pfad: $selected_path"
log "Gewählte Wine-Version: $selected_version, Pfad: $selected_path"

# === 5. Setup.exe auswählen und prüfen ===
menu_echo
menu_echo "${YELLOW}Wie möchtest Du das Installationsprogramm auswählen?${RESET}"
menu_echo "1) Neueste Version von MyPhoneExplorer herunterladen"
menu_echo "2) Bereits vorhandene Setup.exe verwenden"
read -p "Bitte Option wählen [1-2]: " setup_option

case "$setup_option" in
  1)
    skript_ordner="$(dirname "$(readlink -f "$0")")"
    # Dateinamen aus HTTP-Header extrahieren
    setup_name=$(curl -sI -L "https://sourceforge.net/projects/myphoneexplorer/files/latest/download" | \
      grep -i 'content-disposition' | \
      sed -n 's/.*filename="\?\([^"]*\)".*/\1/p')
    [ -z "$setup_name" ] && setup_name="MyPhoneExplorer_Setup.exe"
    setup_path="$skript_ordner/$setup_name"
    menu_echo "Lade neueste MyPhoneExplorer-Version herunter..."
    curl -L -o "$setup_path" "https://sourceforge.net/projects/myphoneexplorer/files/latest/download"
    menu_echo "Download abgeschlossen: $setup_path"
    ;;
  2|*)
    menu_echo "${YELLOW}Bitte gib den vollständigen Pfad zur Setup.exe an.${RESET}"
    menu_echo "${RED}Hinweis: Falls der Pfad Leerzeichen enthält, bitte in Anführungszeichen setzen!${RESET}"
    menu_echo "Beispiel: \"/home/$USER/Downloads/My Phone Explorer Setup.exe\""
    read -e -p "Pfad zur Setup-Datei: " setup_path <&3
    setup_path="${setup_path/#~/$HOME}"
    ;;
esac

# Nur die reine Eingabe loggen!
log "Setup.exe Pfad (User-Auswahl): $setup_path"

if [ ! -f "$setup_path" ]; then
  menu_echo "${RED}Fehler: Datei '$setup_path' existiert nicht!${RESET}"
  log "Fehler: Setup.exe nicht gefunden: $setup_path"
  exit 1
fi

menu_echo
menu_echo "pack ma's..."
log "Setup wird gestartet: $setup_path"

# === 6. Installation ===
menu_echo "Installiere vb6run im Prefix..."
log "Starte winetricks vb6run und Setup.exe"

{
  WINEPREFIX="$pfad" "$WINETRICKS" -q vb6run
  WINEPREFIX="$pfad" "$selected_path" "$setup_path" /S
} &> "$winelog"
install_exitcode=$?

exec 1>&3 2>&4

echo
if [ $install_exitcode -eq 0 ]; then
  echo -e "${GREEN}Die Installation war erfolgreich!${RESET}"
  log "Installation erfolgreich."
else
  echo -e "${RED}Es sind Fehler aufgetreten, bitte prüfe die Logdateien.${RESET}"
  log "Installation fehlgeschlagen."
fi

echo
echo "Logdateien:"
echo "Installationslog:             $(realpath "$logfile")"
echo "Wine-Log:                     $(realpath "$winelog")"
if [ -n "$backup_file" ]; then
  echo "Backup:                       $(realpath "$backup_file")"
fi
if [ -f "$pfad/drive_c/Program Files (x86)/MyPhoneExplorer/install.log" ]; then
  echo "MyPhoneExplorer-Install-Log: $(realpath "$pfad/drive_c/Program Files (x86)/MyPhoneExplorer/install.log")"
fi

# --- Desktop-Verknüpfung ---
DESKTOP_DIR="$(xdg-user-dir DESKTOP 2>/dev/null || echo "$HOME/Desktop")"

# Architektur und Pfad bestimmen
if grep -q 'arch=win64' "$pfad/system.reg" 2>/dev/null; then
  mpe_exe="$pfad/drive_c/Program Files (x86)/MyPhoneExplorer/MyPhoneExplorer.exe"
else
  mpe_exe="$pfad/drive_c/Program Files/MyPhoneExplorer/MyPhoneExplorer.exe"
fi

if [ -d "$DESKTOP_DIR" ]; then
  cat > "$DESKTOP_DIR/MyPhoneExplorer.desktop" <<EOF
[Desktop Entry]
Name=MyPhoneExplorer
Exec=env WINEPREFIX="$pfad" "$selected_path" "$mpe_exe"
Type=Application
Icon=wine
Terminal=false
Categories=Utility;
EOF
  chmod +x "$DESKTOP_DIR/MyPhoneExplorer.desktop"
  echo "Desktop-Verknüpfung erstellt: $DESKTOP_DIR/MyPhoneExplorer.desktop"
  log "Desktop-Verknüpfung erstellt: $DESKTOP_DIR/MyPhoneExplorer.desktop"
else
  echo "Desktop-Verzeichnis nicht gefunden, keine Verknüpfung erstellt."
  log "Desktop-Verzeichnis nicht gefunden, keine Verknüpfung erstellt."
fi

echo
echo -e "${BOLD}Alternativ zur Desktop-Verknüpfung kann MyPhoneExplorer auch mit folgendem Befehl gestartet werden:${RESET}"
echo -e "${YELLOW}WINEPREFIX=\"$pfad\" \"$selected_path\" \"$mpe_exe\"${RESET}"
echo

echo -e "${YELLOW}${BOLD}Verwendung"
echo -e "----------${RESET}"
echo -e "1. MyPhoneExplorer-App auf dem Smartphone installieren und starten."
echo -e "2. Im MyPhoneExplorer eine Verbindung per WLAN aufbauen: Menü ${YELLOW}${BOLD}\"Datei\" - \"Verbinden\"${RESET} oder ${YELLOW}${BOLD}F1${RESET} drücken."
echo
echo -e "${RED}${BOLD}WICHTIG: Darauf achten, dass in der MyExplorerApp eine IP-Adresse angezeigt wird.\nGgf. die App noch einmal neu starten.${RESET}"
echo
echo " --- Das Smartphone sollte automatisch erkannt werden. ---"
echo
echo "Der Rest ist wie unter Windows auch. Siehe Handbuch."
echo
echo "Viel Spaß, falls alles läuft. Ansonsten noch mehr Spaß beim Entkäfern ;-)"
echo
echo
echo




Viel Spaß


Zuletzt bearbeitet von R41zW4z am Sa Mai 03, 2025 16:24, insgesamt 6-mal bearbeitet
Benutzer-Profile anzeigenPrivate Nachricht senden
HKaufmann



Anmeldedatum: 22.01.2017
Beiträge: 13

BeitragVerfasst am: Do Mai 01, 2025 13:09 Antworten mit ZitatNach oben

R41zW4z hat Folgendes geschrieben:
Hallo zusammen,

viele haben sich sicherlich schon nach einem solchen tollen Programm für Linux gesehnt.
Ich mich auch Confused Very Happy

Am Laufen habe ich es bei mir schon sehr lange unter verschiedenen Linux-Versionen. Ein In-Der-Cloud-Speicher-Fan bin ich nämlich wirklich nicht.
Außerdem bietet dieses Programm ein paar nette Features.

Heute teile ich einfach mal mit der Community mein Machwerk.
Wer mit Linux arbeitet, egal ob Neuling oder Erfahrener sollte zumindest wissen, was ein Bash-Skript ist, und wie man es ausführbar macht.

Ich habe extra kein Programm kompiliert, denn so lässt es sich für jeden einsehen und verstehen... naja verstehen Rolling Eyes vielleicht nicht unbedingt, aber es tut nicht weh.


Dieses Herumgefrickel mit PlayOnLinux usw. stört Euch sicherlich auch.

Ich hoffe mal, dass es hier keine Zeichenbegrenzung gibt, denn zum Upload einer Datei kann ich hier nichts entdecken.

Vorab ein paar Infos und die Vorgehensweise.

Die Setup-Datei von MyPhoneExplorer sollte bereits heruntergeladen sein.
Es ist eine ganz normale Installation wie unter Windows auch.
Bitte sicherstellen, dass Wine und Winetricks installiert sind.
Per USB-Verbindung geht das Ganze auch, aber das würde hier jetzt den Rahmen sprengen. Es soll ja keine Google-ADB-Schulung werden.
Von daher gibt es hier die WLAN-Variante. Sie funktioniert mit vielen Linux Distributionen und Versionen sowie Wine in vielen Geschmacksrichtungen.
Wer nicht weiß, was eine Linux Distribution ist, kann hier schon aufhören weiterzulesen. Falscher Film Question Arrow
Und Wine ist nichts zum Trinken.
Wer Linux will, muss also auch ein bisschen Linux leben wollen. Und das hier ist nicht weniger als das, was die Windows-Jünger mit Batch, VBscript, Powershell und Python machen, wenn sie es denn können.
Copy/Paste kann wohl jeder von Euch. Laughing

Es ist wie schon erwähnt ein Bash--Skript.

1. alles in einer Textdatei speichern -> mpe.sh
2. Datei ausführbar machen -> chmod +x mpe.sh
3. Terminal öffnen und Skript starten -> sh script.sh

Bin mal gespannt, ob das hier reingeht...



Hallo R41zW4z,

verwende Bottles um Windows Programme unter Linux zum laufen zu bekommen. Finde es ist einfacher als Wine bzw PlayÓnLinux 4.

Habe kein Ahnung vom Programmieren.

Leider habe ich MPE noch nicht richtig zum laufen gebracht.

Gruß Holger
Benutzer-Profile anzeigenPrivate Nachricht senden
K.Achim



Anmeldedatum: 01.11.2020
Beiträge: 189

BeitragVerfasst am: Do Mai 01, 2025 13:34 Antworten mit ZitatNach oben

Danke für Deine Mühe, R41zW4z!

Erkenne ich das richtig, dass das Script letztlich eine automatisierte Installation von MPE via Wine durchführt?

Habe bereits versucht MPE mit Wine (32 und 64 bit Prefix) nanuell zu installieren, läuft beides leider nicht.

Macht Dein Script etwas Besonderes? Habe Deine Anleitung befolgt, passieren tut leider nichts.
Wahrscheinlich aber mangels meiner Kenntnis.

Schritt 3 von Dir, ausgeführt per Terminal im Pfad der Datei, ergibt "No such file", daher den Schritt abgewandelt in "sh mpe.sh" (auch mit vorangestelltem sudo)
Fehlermeldung dann: "mpe.sh: 19: local : not in a function

Aber mal abwarten, was Andere sagen, bin jetzt unterwegs und kann keine weiteren Versuche starten.

Gruß und schönen Feiertag Smile
Achim

PS: auch Schritt 2, chmod..., habe ich dabei mit vorangestelltem sudo probiert
PPS: Linux Mint Mate 22.1 XIA

_________________
Stand 01.03.25:
Desktop Windows 10 Pro/64-22H2, MPE v2.2-debug/14.02.25, Betterbird v102.15.1-bb41 (64bit), AddOn 4.7, Cardbook 86.4
Laptop Windows 10 Pro/64-22H2, MPE v2.2-debug/140225, Betterbird v102.15.1-bb41 (64bit), Cardbook 86.4
Samsung A35 5G, Android 14/UI_6.1, de-bloated, rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Samsung S6 Lite 2022, Android 14/UI_6.1, de-bloated rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Benutzer-Profile anzeigenPrivate Nachricht senden
R41zW4z



Anmeldedatum: 01.05.2025
Beiträge: 5
Wohnort: Munich

BeitragVerfasst am: Do Mai 01, 2025 22:11 Antworten mit ZitatNach oben

K.Achim hat Folgendes geschrieben:
Danke für Deine Mühe, R41zW4z!

Erkenne ich das richtig, dass das Script letztlich eine automatisierte Installation von MPE via Wine durchführt?

Habe bereits versucht MPE mit Wine (32 und 64 bit Prefix) nanuell zu installieren, läuft beides leider nicht.

Macht Dein Script etwas Besonderes? Habe Deine Anleitung befolgt, passieren tut leider nichts.
Wahrscheinlich aber mangels meiner Kenntnis.

Schritt 3 von Dir, ausgeführt per Terminal im Pfad der Datei, ergibt "No such file", daher den Schritt abgewandelt in "sh mpe.sh" (auch mit vorangestelltem sudo)
Fehlermeldung dann: "mpe.sh: 19: local : not in a function

Aber mal abwarten, was Andere sagen, bin jetzt unterwegs und kann keine weiteren Versuche starten.

Gruß und schönen Feiertag Smile
Achim

PS: auch Schritt 2, chmod..., habe ich dabei mit vorangestelltem sudo probiert
PPS: Linux Mint Mate 22.1 XIA



Hallo Achim,

ja das siehst Du richtig.
Das Skript führt ohne PlayOnLinux, Lutris, Heroic oder sonstige Launcher ein vollständiges Setup durch.

Das Skript habe ich übrigens noch einmal angepasst. Es war nur ein Schönheits-/ Anzeigefehler - keine funktionale Sache.

Bevor ich gleich doch mal eine Schritt-für-Schritt-Anleitung gebe, habe ich da mal ne Frage Wink

Ich habe keine Ahnung, wie ich das Forum hier so richtig richtig verwende.
Ein bisschen strange ist die Bedienung schon. Es gibt keinen "Abbrechen"-Button nur "Vorschau" und "Absenden", WYSIWYG ist hier auch nicht drin, naja, ich weiß.... mecker mecker mecker Wink

Jedenfalls frage ich mich, wie ich meinen Eintrag vielleicht so positioniere, damit man es leichter findet und nicht erst irgendwo mitten eines Threads, oder wie auch immer es hier heißen mag.
Um hierhin zu gelangen, bin habe ich einfach die Suche bemüht und den nächstbesten, halbwegs aktuellen und passenden Eintrag genommen.
Deswegen hierzu meine Fragen:
- Sollte ich vielleicht einen neuen Thread erstellen?
- Wie werde ich benachrichtigt, wenn jemand auf einen Beitrag von mir antwortet? (ich habe das heute wirklich nur per Zufall gesehen, weil ich noch etwas ändern wollte - sonst wäre ich vermutlich erst wieder in ein paaar Wochen oder Monaten hier gewesen)
- Kann man hier Bilder oder Dateien hochladen- und wenn ja wie? Das würde einiges vereinfachen.

Holger alias (HKaufmann) vom vorherigen Post und Du, Ihr seid jetzt die ersten, die mit schreibt, aber ob alle danach auch sämtliche Einträge durchlesen und sehen, wenn ich Anpassungen vorgenommen habe, ist fraglich. Also auch, ob dann jemand bei so einem langen Skript überhaupt liest, was ich dazu geschrieben habe.

Wenn alles für Dich funktioniert, dann kannst Du ja auch auf diesen Thread verweisen.

Nun zur Anleitung. Du sollst ja nicht länger warten Wink

Ach, während ich das hier so schreibe, fällt mir ein, dass ich die Anleitung wohl besser in meinem initialen Post einfüge. Dann haben alle etwas an der richtigen Stelle davon.
Aber vielleicht kannst Du mir meine beiden Fragen von oben noch beantworten. Ich möchte mir nicht das ganze Forum-Gedöns (Anleitung usw.) reinziehen müssen...

Also Anleitung = oben in meinem Beitrag


VG
Benutzer-Profile anzeigenPrivate Nachricht senden
R41zW4z



Anmeldedatum: 01.05.2025
Beiträge: 5
Wohnort: Munich

BeitragVerfasst am: Sa Mai 03, 2025 16:35 Antworten mit ZitatNach oben

HKaufmann hat Folgendes geschrieben:
R41zW4z hat Folgendes geschrieben:
Hallo zusammen,

viele haben sich sicherlich schon nach einem solchen tollen Programm für Linux gesehnt.
Ich mich auch Confused Very Happy

Am Laufen habe ich es bei mir schon sehr lange unter verschiedenen Linux-Versionen. Ein In-Der-Cloud-Speicher-Fan bin ich nämlich wirklich nicht.
Außerdem bietet dieses Programm ein paar nette Features.

Heute teile ich einfach mal mit der Community mein Machwerk.
Wer mit Linux arbeitet, egal ob Neuling oder Erfahrener sollte zumindest wissen, was ein Bash-Skript ist, und wie man es ausführbar macht.

Ich habe extra kein Programm kompiliert, denn so lässt es sich für jeden einsehen und verstehen... naja verstehen Rolling Eyes vielleicht nicht unbedingt, aber es tut nicht weh.


Dieses Herumgefrickel mit PlayOnLinux usw. stört Euch sicherlich auch.

Ich hoffe mal, dass es hier keine Zeichenbegrenzung gibt, denn zum Upload einer Datei kann ich hier nichts entdecken.

Vorab ein paar Infos und die Vorgehensweise.

Die Setup-Datei von MyPhoneExplorer sollte bereits heruntergeladen sein.
Es ist eine ganz normale Installation wie unter Windows auch.
Bitte sicherstellen, dass Wine und Winetricks installiert sind.
Per USB-Verbindung geht das Ganze auch, aber das würde hier jetzt den Rahmen sprengen. Es soll ja keine Google-ADB-Schulung werden.
Von daher gibt es hier die WLAN-Variante. Sie funktioniert mit vielen Linux Distributionen und Versionen sowie Wine in vielen Geschmacksrichtungen.
Wer nicht weiß, was eine Linux Distribution ist, kann hier schon aufhören weiterzulesen. Falscher Film Question Arrow
Und Wine ist nichts zum Trinken.
Wer Linux will, muss also auch ein bisschen Linux leben wollen. Und das hier ist nicht weniger als das, was die Windows-Jünger mit Batch, VBscript, Powershell und Python machen, wenn sie es denn können.
Copy/Paste kann wohl jeder von Euch. Laughing

Es ist wie schon erwähnt ein Bash--Skript.

1. alles in einer Textdatei speichern -> mpe.sh
2. Datei ausführbar machen -> chmod +x mpe.sh
3. Terminal öffnen und Skript starten -> sh script.sh

Bin mal gespannt, ob das hier reingeht...



Hallo R41zW4z,

verwende Bottles um Windows Programme unter Linux zum laufen zu bekommen. Finde es ist einfacher als Wine bzw PlayÓnLinux 4.

Habe kein Ahnung vom Programmieren.

Leider habe ich MPE noch nicht richtig zum laufen gebracht.

Gruß Holger


Hallo Holger,

ich habe mein Skript jetzt mehrfach angepasst und in meinem ursprünglichen Post oben eingetragen.
Jetzt werden ziemlich viele Eventualitäen mit Menüs abgegriffen.
Und mein Skript kann MyPhoneExplorer sogar automatisch herunterladen, wenn man das im Menü auswählt.

PlayOnLinux, Bottles, Lutris, Heroic usw. sind auch nur Launcher und verwenden letztlich alle Wine.
Ein Fan bin ich von den Launchern auch nur, wenn sie funktionieren.
Mit diesem Skript habe ich halt die volle Kontrolle und keine versteckten Dateien innerhalb der Verzeichnisse vom jeweiligen Launcher.
Der Installationspfad wid beim Ausführen vom Skript abgefragt.
Voreingestellt ist ~/MyPhoneExplorer (also Dein Home-Dir).
Alle Log-Dateien und der Download der aktuellsten Version von MyPhoneExplorer befinden sich im Ordner, in dem Du das Skript gespeichert hast.

Aufräumarbeiten wenn nötig:
- Dekstop-Verknüpfung löschen
- Installationsordner löschen (wie geschrieben: Standard "~/MyPhoneExplorer"
- Skriptordner mit allem Inhalt löschen

Und schon ist's, als hättest Du nie mit meinem Skript Berührung gehabt.
Wir sind ja nicht unter Windoof, wo alles in der Systemregistrierung landet.

In diesem Sinne.
Hab' ein schönes Wochenende und viel Spaß mit dem Skript Smile
Benutzer-Profile anzeigenPrivate Nachricht senden
K.Achim



Anmeldedatum: 01.11.2020
Beiträge: 189

BeitragVerfasst am: So Mai 04, 2025 13:31 Antworten mit ZitatNach oben

@R41zW4z

Leider kein Erfolg. Nach Eingabe von "bash mpe.sh" (im Terminal im Speicherpfad der mpe.sh ausgeführt) kommen Fehlermeldungen...

(Linux Mint Mate 22.1 XIA)

Image

_________________
Stand 01.03.25:
Desktop Windows 10 Pro/64-22H2, MPE v2.2-debug/14.02.25, Betterbird v102.15.1-bb41 (64bit), AddOn 4.7, Cardbook 86.4
Laptop Windows 10 Pro/64-22H2, MPE v2.2-debug/140225, Betterbird v102.15.1-bb41 (64bit), Cardbook 86.4
Samsung A35 5G, Android 14/UI_6.1, de-bloated, rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Samsung S6 Lite 2022, Android 14/UI_6.1, de-bloated rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Benutzer-Profile anzeigenPrivate Nachricht senden
Seepferd



Anmeldedatum: 05.05.2025
Beiträge: 1

BeitragVerfasst am: Mo Mai 05, 2025 12:30 Antworten mit ZitatNach oben

Super Arbeit, Danke für das Script!

Hallo R41zW4z

In der Überschrift steht ja schon alles. Mein "erwachsener" Laptop hat es mit seinen 18 Jahren dank deines Scripts problemlos geschafft den MyPhoneExplorer 2.2 in Linux Mint 21.3 zu installieren. Die Verbindung funktionierte einwandfrei über WLAN nach Eingabe des Passwortes aus der App vom Handy.

Beste Grüße Burkhard

An K.Achim: Du musst den Text von R41zW4z kopieren und so speichern, wie er es schrieb, als mpe.sh. Und dann erst funktioniert der Aufruf des Scripts.
Benutzer-Profile anzeigenPrivate Nachricht senden
K.Achim



Anmeldedatum: 01.11.2020
Beiträge: 189

BeitragVerfasst am: Mo Mai 05, 2025 13:14 Antworten mit ZitatNach oben

1. Versuch: Code in eine mit Notepad++ erstellte UTF-8 codierte txt-Datei kopiert. diese anschließend in eine mpe.sh umbenannt.
2. Versuch: Code in Notepad++ kopiert, UTF-8 voreingestellt, aber als mpe.bash gespeichert (gibt Notepad++ für .sh so vor).
3. Versuch: wie 2., allerdings mpe.bash in mpe.sh umbenannt.

Alle 3 Versuche erzeugen die gleichen Fehlermeldung, siehe oben, wobei die Dateien allerdings alle jeweils auf einem Windows Rechner erstellt wurden.

???

_________________
Stand 01.03.25:
Desktop Windows 10 Pro/64-22H2, MPE v2.2-debug/14.02.25, Betterbird v102.15.1-bb41 (64bit), AddOn 4.7, Cardbook 86.4
Laptop Windows 10 Pro/64-22H2, MPE v2.2-debug/140225, Betterbird v102.15.1-bb41 (64bit), Cardbook 86.4
Samsung A35 5G, Android 14/UI_6.1, de-bloated, rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Samsung S6 Lite 2022, Android 14/UI_6.1, de-bloated rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Benutzer-Profile anzeigenPrivate Nachricht senden
K.Achim



Anmeldedatum: 01.11.2020
Beiträge: 189

BeitragVerfasst am: Mo Mai 05, 2025 13:35 Antworten mit ZitatNach oben

4. Versuch: Datei mit Linux und dessen Textverarbeitung erstellt und als mpe.sh gespeichert.

Das Script start nun, wie es soll, hänge jetzt aber an einer Warnung, dass sich im gewählten Ordner (Standard ausgewählt) bereits ein win32-wine-Prefix befindet und es Konflikte mit anderen Programmen geben könnte.

Was ist jetzt sinnvoll, ohne bereits andere Wine-Installationen zu gefähren (habe ja schon verschiedene Programme mit 32 und 64 Prefix installiert?
1) in dieses Präfix installieren
2) Präfix löschen und fortsetzen
...

_________________
Stand 01.03.25:
Desktop Windows 10 Pro/64-22H2, MPE v2.2-debug/14.02.25, Betterbird v102.15.1-bb41 (64bit), AddOn 4.7, Cardbook 86.4
Laptop Windows 10 Pro/64-22H2, MPE v2.2-debug/140225, Betterbird v102.15.1-bb41 (64bit), Cardbook 86.4
Samsung A35 5G, Android 14/UI_6.1, de-bloated, rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Samsung S6 Lite 2022, Android 14/UI_6.1, de-bloated rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Benutzer-Profile anzeigenPrivate Nachricht senden
eck-m



Anmeldedatum: 09.01.2017
Beiträge: 336
Wohnort: Berlin

BeitragVerfasst am: Mo Mai 05, 2025 14:32 Antworten mit ZitatNach oben

K.Achim hat Folgendes geschrieben:
Alle 3 Versuche erzeugen die gleichen Fehlermeldung, siehe oben, wobei die Dateien allerdings alle jeweils auf einem Windows Rechner erstellt wurden.
Das angemeckerte Zeichen \r ist doch offensichtlich das Zeichen für das Zeilenende bzw. die Ersatzdarstellung für ein nicht druckbares Steuerzeichen. Wie das Zeilenende dargestellt wird, ist eine Betriebssystem-spezifische Angelegenheit und weil das unterschiedlich ist, gibt es oft Schwierigkeiten bei einem Betriebssystem-übergreifenden Datenaustausch.
https://de.wikipedia.org/wiki/Textdatei#Kennzeichnung_des_Zeilenendes
Die eigentliche Zeichenkodierung wie UTF-8 legt die Darstellung des Zeilenendes nicht fest. in dem eben erwähnten Notepad++ gibt es - anders als in den meisten anderen Texteditoren - die Möglichkeit, die Darstellung des Zeilenendes einzustellen mit Bearbeiten - Format Zeilenende und so in begrenztem Maße die Möglichkeit einer Anpassung.
Benutzer-Profile anzeigenPrivate Nachricht senden
R41zW4z



Anmeldedatum: 01.05.2025
Beiträge: 5
Wohnort: Munich

BeitragVerfasst am: Mo Mai 05, 2025 15:19 Antworten mit ZitatNach oben

Seepferd hat Folgendes geschrieben:
Super Arbeit, Danke für das Script!

Hallo R41zW4z

In der Überschrift steht ja schon alles. Mein "erwachsener" Laptop hat es mit seinen 18 Jahren dank deines Scripts problemlos geschafft den MyPhoneExplorer 2.2 in Linux Mint 21.3 zu installieren. Die Verbindung funktionierte einwandfrei über WLAN nach Eingabe des Passwortes aus der App vom Handy.

Beste Grüße Burkhard

An K.Achim: Du musst den Text von R41zW4z kopieren und so speichern, wie er es schrieb, als mpe.sh. Und dann erst funktioniert der Aufruf des Scripts.


Hallo Burkhard,

danke für Dein Feedback. Ich arbeite gerade an eine ziemlich idiotensichere Version für mehrere Linux-Distributionen, weil es bei meiner letzten immer noch kleine Schwierigkeiten gibt, die selbst bei mir in einigen Versuchen aufgetreten sind.

Es kostet zwar im Moment mehr Zeit, als ich ursprünglich investieren wollte, aber Spaß macht's trotzdem Wink


Viele Grüße
R41zW4z
Benutzer-Profile anzeigenPrivate Nachricht senden
K.Achim



Anmeldedatum: 01.11.2020
Beiträge: 189

BeitragVerfasst am: Mo Mai 05, 2025 15:19 Antworten mit ZitatNach oben

Danke Euch, das Script läuft jetzt. Habe mit Option 1 (in vorhandes Prefix inst.) keine Schwierigkeiten in Bezug auf andere Wine-Programme festgestellt, nur mit MPE passiert überhaupt nichts, es startet nichts.
Also dachte ich, mach alles MPE-Zeuch nochmal weg, vielleicht ist durch meine voherigen Versuche irgendwo was schief gelaufen. Da ich nichts zum Deinstallieren gefunden habe, habe ich also Desktop- und Startmenü-Verknüpfungen händisch entfernt, im root-Installationsordner MyPhoneexplorer gelöscht und irgendwo war noch eine Log-Datei, die ich ebenfalls gelöscht habe. PC neugestartet und das Script nochmal durchlaufen lassen, alles gut, bis auf die bekannte Warnung, dass es schon ein Prefix gibt.
Und nu? Es wurden keine neuen Startverknüpfungen erstellt, weder auf dem Desktop, noch im Startmenü.

Hm, Linux ist nix für Luschen Very Happy

_________________
Stand 01.03.25:
Desktop Windows 10 Pro/64-22H2, MPE v2.2-debug/14.02.25, Betterbird v102.15.1-bb41 (64bit), AddOn 4.7, Cardbook 86.4
Laptop Windows 10 Pro/64-22H2, MPE v2.2-debug/140225, Betterbird v102.15.1-bb41 (64bit), Cardbook 86.4
Samsung A35 5G, Android 14/UI_6.1, de-bloated, rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Samsung S6 Lite 2022, Android 14/UI_6.1, de-bloated rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Benutzer-Profile anzeigenPrivate Nachricht senden
R41zW4z



Anmeldedatum: 01.05.2025
Beiträge: 5
Wohnort: Munich

BeitragVerfasst am: Di Mai 06, 2025 21:52 Antworten mit ZitatNach oben

K.Achim hat Folgendes geschrieben:
Danke Euch, das Script läuft jetzt. Habe mit Option 1 (in vorhandes Prefix inst.) keine Schwierigkeiten in Bezug auf andere Wine-Programme festgestellt, nur mit MPE passiert überhaupt nichts, es startet nichts.
Also dachte ich, mach alles MPE-Zeuch nochmal weg, vielleicht ist durch meine voherigen Versuche irgendwo was schief gelaufen. Da ich nichts zum Deinstallieren gefunden habe, habe ich also Desktop- und Startmenü-Verknüpfungen händisch entfernt, im root-Installationsordner MyPhoneexplorer gelöscht und irgendwo war noch eine Log-Datei, die ich ebenfalls gelöscht habe. PC neugestartet und das Script nochmal durchlaufen lassen, alles gut, bis auf die bekannte Warnung, dass es schon ein Prefix gibt.
Und nu? Es wurden keine neuen Startverknüpfungen erstellt, weder auf dem Desktop, noch im Startmenü.

Hm, Linux ist nix für Luschen Very Happy



Hallo Achim,

auch wenn Dich Frust gerade plagt, lasse ich das mit "Hm, Linux ist nix für Luschen" nicht so einfach stehen Laughing
Linux ist zwar anders, aber es ist oftmals alles nur eine Frage der Zeit oder halt der Eingewöhnung. Und Community-Suppot hat man genug.

Vielleicht ist das Problem auch einfach nur, dass da ein bisschen zu viel Windows in Deiner Signatur steht Very Happy

Dich bekomme ich jedenfalls auch noch verarztet.
Wenn es Dich nämlich beruhigt: MyPhoneExplorer läuft jetzt bei mir mit Arch Linux und Linux Mint 22.1 (extra für Dich getestet) auch mit der USB-Verbindung problemlos. Damit kann man initial den MyPhoneExplorer Client (APK) auf das Gerät pushen und auch die Remote-Steuerung des Bildschirms funktioniert wunderbar. Der Client/ die Appk wird direkt aus dem Google Play Store heruntergeladen und installiert. Per WLAN musst Du wie mit dem MyPhoneExplorer unter Windows auch schon, den die App bereits auf dem Android-Gerät installiert haben.
Für den USB-Support benötigst Du nur die "Android Debug Bridge" (ADB) von Google. Einfach aus den Linux Mint Repositories mit "apt install adb" installieren. Bei mir lief das Ganze mit einem frisch installiertem Linux Mint 22.1 ohne irgendwelche Zusatzsoftware - außer natürlich wine und winetricks, was das Skript - wenn es denn läuft - selbstständig herunterlädt.

Ich halte Dich und die anderen hier auf dem Laufenden.

VG
R41zW4z aka Rainman
Benutzer-Profile anzeigenPrivate Nachricht senden
K.Achim



Anmeldedatum: 01.11.2020
Beiträge: 189

BeitragVerfasst am: Mi Mai 07, 2025 13:17 Antworten mit ZitatNach oben

@Rainman

Das wäre zu schön Smile
Gut zu wissen, dass es grundsätzlich läuft.

Bin mit DOS und Windows aufgewachsen, von daher ist ein Sinneswandel nicht ganz so einfach, aber ich acker mich durch.
Hilfe kann ich dabei sicher brauchen und wäre sehr dankbar dafür Smile

ADB ist schon in Action, brauchte eine Alternative für ADBAppControl, wofür ich erstmal AYA gewählt habe.

Dein Script lud bei mir eine "vb6run" nach, was eine händische Installation via Wine nicht tat, zumindest nicht bewußt.
Die Hoffnung war nun also größer. Da keine Start-Icons mehr erstellt werden, habe ich den Pfad, der im Script zum Starten angegeben wird,
im Terminal eingegeben. Immerhin will MPE so tatsächlich starten, tut das aber nur mit zig err-Meldungen und nur halbfertig.
Schließe ich das Terminal, schließt auch MPE.

Um den Schwierigkeitsgrad zu erhöhen, falls es eine Rolle spielt, bei mir gibt es u.A. kein Google, denen hab ich den Hahn abgedreht.
Privatsphäre ist oberstes Gebot in meiner digitalen Welt. =)

Wie auch immer, ich denke, ich müßte die vorhandene Installation erstmal restlos entfernen, da auch keine Start-Icons mehr erstellt
werden. Hab zwar alles gelöscht, was im Dateimanager diesbezüglich zu finden war, denke aber, dass es irgendwo auch noch irgendwelche System-Configs mit Resten
drin gibt, ähnlich einer Windows Registry. Da muss ich mal suchen.

Ich harre mal der Dinge, die da kommen, Danke und Gruß
Achim Smile

_________________
Stand 01.03.25:
Desktop Windows 10 Pro/64-22H2, MPE v2.2-debug/14.02.25, Betterbird v102.15.1-bb41 (64bit), AddOn 4.7, Cardbook 86.4
Laptop Windows 10 Pro/64-22H2, MPE v2.2-debug/140225, Betterbird v102.15.1-bb41 (64bit), Cardbook 86.4
Samsung A35 5G, Android 14/UI_6.1, de-bloated, rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Samsung S6 Lite 2022, Android 14/UI_6.1, de-bloated rooted, Google-blocked, Ad-Away, AFWall+, MPE Client v4.1b11, DAVx5 v4.4.9-ose
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


 Gehe zu:   



Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de