Fotokalender im Bilderrahmen: Fragen zur Shell (Linux-Befehle; mounten der SD-Card)

K

ks14

Neues Mitglied
4
Hallo liebe Gemeinde,
ich habe seit 2 Monaten mein erstes Android-Handy und bin ganz begeistert von den ganzen Apps und Möglichkeiten. Nun möchte ich mir gerne einen Herzenswunsch erfüllen, den ich unter Nokia/Symbian nie hinbekommen habe, und das ist ein Fotokalender mit schönen Bildern und Sprüchen, die ich als jpg-Bilder habe.

Ich habe also 366 Bilddateien auf der SD-Karte, je Tag eine Datei. Die sind benannt mit MM_TT.jpg, also z.B. 02_23.jpg für den 23.02.

Dann habe ich gedacht, ich erstelle einen Ordner "heute" auf der SD-Card und weise ein "Bilderrahmen"-Widget an (z.B. das bei Samsung eingebaute), seine Bilder von dem Ordner zu laden. Dazu würde ich einmal pro Tag die entsprechende Datei in den Ordner schieben und das alte Bild löschen.
Die heutige Datei zu finden und zu kopieren sollte folgendes Linux-Script erledigen: (Als Eingabetool habe ich SManager benutzt)
Code:
bildname=$(date -I | cut -b 6-7)'-'$(date -I | cut -b 9-10)'.jpg'
cp $bildname /mnt/extSdCard/heute/
Als erstes musste ich leider lernen, dass Android nicht Linux ist :) Die eingebaute shell kennt weder date -I noch cut.

Was ich komisch finde: wenn ich mich mit dem Handy am PC über SSHDroid verbinde (bzw. putty am PC) und die Befehle in eine Konsole eingebe, gehen sie auf einmal. Bringt denn der SSHdroid eine eigene Shell mit? Und könnte ich die für meine Zwecke ohne PC benutzen, also im Handy aufrufen?

Meine zweite Frage betrifft das mounten. Wenn ich dem "heute"-Ordner Bilder untergeschoben oder gelöscht habe, muss die SD-Karte neu gemountet werden, bevor das Bilderrahmen-Widget es merkt. Als Notnagel habe ich "Rescan SD" installiert. Könnte ich das remounten auch per Script erledigen?

root ist im Moment noch keine Option, weil ich erst die Garantiezeit abwarten möchte.

vielen Dank und viele Grüße
Kristian
 
Zuletzt bearbeitet:
Mal ein bisschen quer gedacht. Ein Widget das dir von sich aus täglich das neue Bild anzeigt hast du in den Weiten des Playstores nicht gefunden?
 
Hallo,

Ich hatte nach den ersten Problemen im Appstore geguckt. Aber eine App, die tageweise das Bild aktualisiert, habe ich nicht gefunden.

Außerdem habe ich ja noch die Illusion, dass so etwas ganz einfach zu machen sein müsste ;-)

Grüße
Kristian
 
Hi,
ks14 schrieb:
Als erstes musste ich leider lernen, dass Android nicht Linux ist :) Die eingebaute shell kennt weder date -I noch cut.
Soweit ich das bei mir sehe, bringt busybox date -I & cut mit.

Was ich komisch finde: wenn ich mich mit dem Handy am PC über SSHDroid verbinde (bzw. putty am PC) und die Befehle in eine Konsole eingebe, gehen sie auf einmal. Bringt denn der SSHdroid eine eigene Shell mit? Und könnte ich die für meine Zwecke ohne PC benutzen, also im Handy aufrufen?
SSHdroid & eigene Shell - keine Ahnung. Ging bisher davon aus, es wird die Shell des Servers benutzt.

root ist im Moment noch keine Option, weil ich erst die Garantiezeit abwarten möchte.
Also auch keine busybox.
SSH-Server auf'm Handy und mit "ssh localhost" (s. o.) - Nu ja, wenn sich nix besseres findet, vielleicht einen Versuch wert.
 
Hi,
danke für Deine Antwort.
Ich bin mittlerweile schon ein bischen weiter, habe den Entwickler von SSHDroid angemailt und folgende Antwort erhalten:
[Zitat]
SSHDroid embeds a custom busybox binary that provides the "extended" tools u need :)
[/(Zitat]

Dann gibt es im Play Store "BusyBox Non-Root". Damit funktioniert endlich mein Script (ohne rooten)
Code:
export PATH=/data/data/burrows.apps.busybox/app_busybox/:$PATH
bildname=$(date -I | cut -b 6-7)'_'$(date -I | cut -b 9-10)'.jpg'
Dabei ist die Reihenfolge vom PATH wichtig, damit er "date" zuerst im busybox-Verzeichnis sucht und nicht unter /system/bin/date.

Momentan überlege ich, wie ich das remounten der SD-Karte hinbekomme.
Mit /ext/SdCard als Parameter kann mount nichts anfangen, es will ein device als Parameter.
Wenn ich nachsehe, wie die SDKarte gemountet ist, kommt folgendes:
Code:
u0_a254@hlte:/data/data/berserker.android.apps.sshdroid/home $ mount | grep extSdCard
/dev/block/vold/179:65  /storage/extSdCard vfat  rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1023,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro  0 0
tmpfs /storage/extSdCard/.android_secure tmpfs ro,seclabel,relatime,size=0k,mode=000 0 0
Also ist meine SD-Karte /dev/block/void/179:65.

Als nächtes muss ich herausfinden, was die Zahlen bedeuten, und ob sie immer gleich bleiben, damit ein remount nicht hinterher aus Versehen schlimme Dinge anstellt ;-)

viele Grüße
Kristian
 
Hallo,

auch wenn das Interesse nicht so dicke war, hier meine Lösung für alle Googler, die nach mir kommen ;-)

1. Skript erstellen und über Shortcut aufrufen:
SManager
https://play.google.com/store/apps/details?id=os.tools.scriptmanager

2. für die Befehle "date -i" und "cut":
Busybox non root
https://play.google.com/store/apps/details?id=burrows.apps.busybox
geht wirklich ohne root!

3. das Skript:
Code:
rddir='/mnt/extSdCard/_Bilder/Fotokalender'
wrdir='/mnt/sdcard/_ks/heuteBild'
export PATH=/data/data/burrows.apps.busybox/app_busybox/:$PATH

bildname=$(date -I | cut -b 6-7)'_'$(date -I | cut -b 9-10)'.jpg'

echo $bildname

rm $wrdir/*
cp $rddir/$bildname $wrdir/heute.jpg
4. Anzeigewidget:
Photo Grid/Frame Widget
https://play.google.com/store/apps/details?id=com.gzplanet.photogridwidget
Das hat die geniale Funktion "auto refresh on file change", das gebraucht wird, wenn man ein Bild (wie bei mir "heute.jpg") per Skript austauscht

5. automatischer Bildwechsel:
nicht gelöst. Es war ein Problem, das Skript aufzurufen, während das Telefon schläft, also um 0:00 Uhr. SManager kann es nicht, weil er das Android-Alarmsystem verwendet, das verpasste Termine nicht nachholt; Tasker machte keinen Bildwechsel um 0:00 Uhr, aber es kann sein, dass er es um 1:00 Uhr machen würde, weil "date" scheinbar nach GMT geht (Greenwitch Mean Time), also eine Stunde gegenüber unserer normalen Winterzeit hinterherhängt. Das habe ich nicht weiter verfolgt. Morgens daddele ich sowieso so viel mit Nachrichtenapps usw., dass ich auch das Skript eben aufrufen kann :)

6. Alternativen:
Wer für die ganze Skripterei nicht seinen PC-Doktor machen möchte, kann einen Fotokalender wahrscheinlich auch alleine über Photo Grid/Frame Widget und Tasker realisieren. Das Widget bringt ein Plugin für Tasker mit, über das man es anweisen kann, ein Bild weiter zu schalten.

viele Grüße
Kristian
 
Zuletzt bearbeitet:

Ähnliche Themen

Brantgaard
Antworten
9
Aufrufe
346
Nightly
Nightly
Tiger-Chrisi
  • Tiger-Chrisi
Antworten
7
Aufrufe
1.127
Tiger-Chrisi
Tiger-Chrisi
olsch
Antworten
0
Aufrufe
348
olsch
olsch
Zurück
Oben Unten