1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Xrdp mit LXDE geht - aber kein Ping für Non-Root?

Dieses Thema im Forum "Root / Hacking / Modding für Samsung Galaxy" wurde erstellt von sven-ola, 28.08.2009.

  1. sven-ola, 28.08.2009 #1
    sven-ola

    sven-ola Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    78
    Erhaltene Danke:
    22
    Registriert seit:
    31.07.2009
    Hey,

    ein Xrdp waer fein denk' ich mir, koennte man doch per "Remote Desktop" eine GUI auf das Telefon zaubern. Also losgelegt (ich hab'n Debian drauf mit 1GB-Loopfile, siehe http://www.android-hilfe.de/root-hacking-modding-fuer-samsung-galaxy/4924-debian-auf-dem-galaxy.html).

    * apt-get install tightvncserver xrdp
    * apt-get install lxde
    * apt-get remove gdm xserver-xorg;apt-get autoremove;apt-get clean

    OK - es meckert ein bisschen. Muss mal die locale geradeziehen, leider braucht localedef fuer UTF-8 zuviel Speicher und wird daher gekilled.

    Jedenfalls festgestellt: als normaler Benutzer hat man keinen Netzzugriff. Das hier funktioniert nicht und sagt "socket: Permission denied":
    Code:
    localhost:~# su xrdp sh -c "ping 151.1.1.1"
    
    OK - starten wir erstmal als "root":
    Code:
    echo "USERID=root" >> /etc/default/xrdp
    /etc/init.d/xrdp start
    
    Mmh. Sobald ich von meinem PC aus kontakten will ("rdesktop -g 480x320 -u root [ip-vom-telefon]") gibt der Xrdp-Daemon einen "Bus error" aus. Kleiner Fehler in xrdp/common/arch.h, da fehlt ein "#if defined(__arm__) #define NEED_ALIGN". Einige Kompilierminuten spaeter hab' ich ein neue Deb-File (im Anhang) mit der Korrektur. Nun gehts erstmal. lxde-logout braucht ein bisschen viel Speicher.

    So - und nun stecke ich fest: Warum kann man als normaler Benutzer (Non-Root) keinen Socket aufmachen? Zeigt immer EACCESS an.

    // Sven-Ola
     

    Anhänge:

  2. sven-ola, 28.08.2009 #2
    sven-ola

    sven-ola Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    78
    Erhaltene Danke:
    22
    Registriert seit:
    31.07.2009
    Noch was vergessen. Man fuege in /etc/xrdp/sesman.ini in die Sektion [Xvnc] noch folgende Zeilen ein:
    Code:
    param3=-geometry
    param4=480x480
    
    Dann noch die "Remote RDP Demo" aus dem Shop. Connect to localhost, user=root, password=[your root pw] und schon hat man ein LXDE auf dem Mobiltelefon. Hier noch mein Debian Startscript /data/local/bin/bootdeb, dass ich uber den ConnectBot aufrufe FYI (siehe oben aufgeführtes "Debian auf dem Samsung" Post):

    Code:
    # Script based on http://www.saurik.com/id/10 as well as on
    # http://www.elitehardware.de/debian-unter-android-pm-8.html
    
    mnt=$ANDROID_DATA/local/mnt
    img=$EXTERNAL_STORAGE/debian.img
    
    if ! ls $img >&- 2>&-
    then
      echo "$img not found. You may re-insert your SD-Card and/or unplug USB"
      exit 1
    fi
    
    if ! ls ${0%/*}/unionfs.ko >&- 2>&-
    then
      echo "${0%/*}/unionfs.ko not found. This kernel module is required."
      exit 1
    fi
    
    if ! ls -d /proc/$PPID/status >&- 2>&-
    then
      if ! ls ${0%/*}/busybox >&- 2>&-
      then
        echo "${0%/*}/busybox not found. This script does not run with the android/BSD shell."
        exit 1
      fi
      exec ${0%/*}/busybox ash $0 $*
    fi
    
    if [ "$1" = "umount" ]
    then
      for m in $(sed -n 's/^unionfs //p' /proc/mounts|cut -d' ' -f1)
      do
        umount $m
      done
      umount $mnt
      exit
    fi
    
    grep -q ^unionfs /proc/modules || /system/bin/insmod ${0%/*}/unionfs.ko
    grep -q " $mnt " /proc/mounts || mount -o loop,noatime $img $mnt
    
    if [ -d $mnt/debootstrap ]; then
      PATH=/usr/sbin:/usr/bin:/sbin:/bin && chroot $mnt /debootstrap/debootstrap --second-stage
    fi
    
    mount -o remount,rw /
    
    #if [ ! -d /tmp ]
    #then
    #  mkdir /tmp
    #  mount -t tmpfs tmpfs /tmp
    #fi
    
    for d in $mnt/*
    do
      s=/${d##*/}
      [ "$s" = "/etc" ] && s=/system/etc
      if [ ! -h $s ] && [ -d $d ]
      then
        if ! cut -d' ' -f2 /proc/mounts|grep -q \^$s\$
        then
          if [ -d $s ]
          then
            mount -t unionfs -o dirs=$d=rw:$s=ro unionfs $s
          else
            ln -s $d $s
          fi
        fi
      fi
    done
    
    # Fix empty sources.list for 'apt-get update'
    if [ ! -s $mnt/apt/sources.list ]
    then
      cat<<EOF>$mnt/etc/apt/sources.list
    deb http://ftp.de.debian.org/debian lenny main
    deb-src http://ftp.de.debian.org/debian lenny main
    EOF
    fi
    
    # If no /etc/mtab, the debian mount command shows nothing
    [ -f /etc/mtab ] || ln -s /proc/mounts /etc/mtab
    
    # Note: Mounting readonly triggers a bug in dpkg currently
    # rmdir("//..dpkg-tmp") = -1 EROFS (Read-only file system)
    #mount -o remount,ro /
    
    #if [ -f /etc/initdeb ]
    #then
    #  echo "running /etc/initdeb"
    #  /etc/initdeb
    #else
    #  echo "creating /etc/initdeb"
    #  touch /etc/initdeb
    #  chmod +x /etc/initdeb
    #fi
    
    export PATH=/usr/sbin:/usr/bin:/sbin:/bin
    export TERM=xterm
    export HOME=/root
    
    case "$1" in
      x|xrdp)
        for file in xrdp sesman; do
          if [ -f /var/run/xrdp/$file.pid ] && [ "/usr/bin/$file" != "$(cat /proc/$(cat /var/run/xrdp/$file.pid)/cmdline 2>&-)" ];then
            rm -f /var/run/xrdp/$file.pid
          fi
        done
        exec /etc/init.d/xrdp start
      ;;
      X)
        /etc/init.d/xrdp stop
        pidof -s xrdp >&- && killall -KILL xrdp
        pidof -s sesman >&- && killall -KILL sesman
        rm -f /var/run/xrdp/xrdp.pid
        rm -f /var/run/xrdp/sesman.pid
      ;;
      s|sshd)
        if [ -f /var/run/sshd.pid ] && [ "/usr/sbin/sshd" != "$(cat /proc/$(cat /var/run/sshd.pid)/cmdline 2>&-)" ];then
          rm /var/run/sshd.pid
        fi
        exec /etc/init.d/ssh start
      ;;
      S)
        /etc/init.d/ssh stop
        pidof -s sshd >&- && killall -KILL sshd
        rm -f /var/run/sshd.pid
      ;;
      *)
        exec /bin/bash --login
      ;;
    esac
    
     

Diese Seite empfehlen