base64 de/enkodieren (zur Steuerung eines Samsung TV per bash Skript)

tzippy

Neuer User
Mitglied seit
6 Nov 2010
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
Hallo!

Ich steuere meinen Samsung Fernseher bisher mittels EnOcean Fernbedienung und einem Raspberry Pi auf dem die SmartHome Software FHEM läuft.
Ein Skript leitet die Fernbedienungssignale über das Netzwerk an den TV (Gibt sich dabei als die Samsung iPhone App aus).
Da die FritzBox ebenfalls FHEM unterstützt, und ich dies auch schon erfolgreich zum Laufen bekam mit meiner EnOcean Fernbedienung, möchte ich gerne den TV von der FritzBox aus steuern.

Einziges Manko: Das Skript nutzt den Befehl
Code:
base64
, der leider in meiner busybox version nicht enthalten ist. Auch openssl, das ja ebenfalls
Code:
base64
en/kodieren kann, gibt es ja nur als
Code:
openssl_req
und
Code:
openssl_genrsa
.

Nun zu meiner Frage: Kann man diesen Befehl einfach nachinstallieren als binary? Oder gar mittels eines Skriptes das En/kodieren vornehmen?
Vielen Dank schonmal für eure Hilfe!
 
Es soll ein base64 Applet in der Busybox geben.

Vermutlich kann man das auch mit einem bash Skript tun, aber das heißt nicht, dass es effizient oder sinnvoll wäre.
 
Auf meiner 7390 mit aktuellem Trunk ist base64 verfügbar.
Code:
BusyBox v1.21.1 (2013-12-08 21:15:20 CET) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list
   or: function [arguments]...

	BusyBox is a multi-call binary that combines many common Unix
	utilities into a single executable.  Most people will create a
	link to busybox for each function they wish to use and BusyBox
	will act like whatever it was invoked as.

Currently defined functions:
	[, [[, addgroup, adduser, arp, arping, ash, awk, [COLOR="#FF0000"]base64[/COLOR], basename,
	brctl, bunzip2, bzcat, bzip2, cat, chgrp, chmod, chown, chroot, clear,
	cmp, cp, crond, crontab, cryptpw, cut, date, dd, delgroup, deluser, df,
	diff, dirname, dmesg, dnsdomainname, dos2unix, du, echo, egrep, env,
	ether-wake, expr, false, fgconsole, fgrep, find, flock, free, ftpget,
	ftpput, getopt, grep, groups, gunzip, gzip, halt, head, hexdump,
	hostname, httpd, id, ifconfig, ifdown, ifup, inetd, init, insmod,
	iostat, ip, ipaddr, iplink, iproute, iprule, iptunnel, kill, killall,
	killall5, klogd, less, ln, logger, login, logname, logread, ls, lsmod,
	lsof, lzcat, lzma, makedevs, md5sum, mkdir, mkfifo, mknod, mkpasswd,
	mkswap, modinfo, modprobe, more, mount, mpstat, mv, nbd-client, nc,
	netstat, nice, nohup, nslookup, passwd, patch, pidof, ping, ping6,
	pivot_root, pmap, poweroff, printenv, printf, ps, pscan, pstree, pwd,
	pwdx, rdate, readlink, realpath, reboot, renice, reset, rm, rmdir,
	rmmod, route, sed, seq, setconsole, setserial, sh, sleep, smemcap,
	sort, stat, strings, stty, stun-ip, swapoff, swapon, switch_root, sync,
	sysctl, syslogd, tail, tar, tee, telnet, telnetd, test, time, top,
	touch, tr, traceroute, traceroute6, true, tty, ubimkvol, ubirmvol,
	ubirsvol, ubiupdatevol, umount, uname, uniq, unix2dos, unlzma, unxz,
	unzip, uptime, uudecode, uuencode, vconfig, vi, wc, which, who, whois,
	xargs, xz, xzcat, yes, zcat
Bei make menuconfig kannst Du auswählen/nachsehen, welche Applets in dei Busybox integriert werden.
 
Ist bei mir leider nicht dabei
Code:
BusyBox v1.21.0 (2013-04-19 01:11:28 CEST) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list
   or: function [arguments]...

	BusyBox is a multi-call binary that combines many common Unix
	utilities into a single executable.  Most people will create a
	link to busybox for each function they wish to use and BusyBox
	will act like whatever it was invoked as.

Currently defined functions:
	[, [[, addgroup, adduser, ash, awk, basename, blkid, cat,
	chmod, chown, cp, crond, crontab, cryptpw, cut, date, dd,
	delgroup, deluser, df, dirname, dmesg, dnsdomainname, du,
	echo, egrep, env, ether-wake, expr, false, fgrep, find, free,
	getopt, grep, gunzip, gzip, halt, head, hexdump, hostname,
	httpd, id, ifconfig, ifdown, ifup, inetd, init, insmod, kill,
	killall, klogd, ln, logger, login, logread, ls, lsmod,
	makedevs, md5sum, mkdir, mkfifo, mknod, mkpasswd, mkswap,
	modprobe, mount, mv, nc, netstat, nohup, passwd, pidof, ping,
	ping6, pivot_root, poweroff, printf, ps, pwd, realpath,
	reboot, rm, rmdir, rmmod, route, sed, sh, sleep, sort, stat,
	stty, stun-ip, swapoff, swapon, sync, sysctl, syslogd, tail,
	tar, tee, telnetd, test, top, touch, tr, true, tty, umount,
	uname, uptime, uudecode, vconfig, vi, wc, which, whois, xargs,
	yes, zcat
 
Moin

"Ist bei mir leider nicht dabei"
Kein Grund es nicht zu benutzen.
Hier findest du bestimmt eine busybox passend zu deinem System (FB Prozessor: MIPS oder MIPSEL).

Alles auf USB (/var/media/NEW_LINK/) ...
Code:
# cat .profile
export PATH=/var/media/NEW_LINK/bin:$PATH
alias ls='ls -AFp --color=auto'
alias l='ls -al'
# . .profile
# l busybo*
lrwxrwxrwx    1 root     root            72 Oct 25 09:35 busybox -> /var/media/NEW_LINK/busybox-1.21*
-rwxrwxrwx    1 root     root       1565400 Jul  7 11:13 busybox-1.20*
-rwxrwxrwx  348 root     root       1576156 Oct 14 08:07 busybox-1.21*
# mkdir bin
# ./busybox --install -s ./bin
# echo $PATH
/var/media/NEW_LINK/bin:/bin:/usr/bin:/sbin:/usr/sbin
# ls bin
[@                 conspy@            fbset@             ifenslave@         ls@                nbd-client@        remove-shell@      softlimit@         udhcpc@
[[@                cp@                fbsplash@          ifplugd@           lsattr@            nc@                renice@            sort@              udhcpd@
acpid@             cpio@              fdflush@           ifup@              lsmod@             netstat@           reset@             split@             udpsvd@
add-shell@         crond@             fdformat@          inetd@             lsof@              nice@              resize@            start-stop-daemon@ umount@
addgroup@          crontab@           fdisk@             init@              lspci@             nmeter@            rev@               stat@              uname@
adduser@           cryptpw@           fgconsole@         insmod@            lsusb@             nohup@             rm@                strings@           unexpand@
adjtimex@          cttyhack@          fgrep@             install@           lzcat@             nslookup@          rmdir@             stty@              uniq@
arp@               cut@               find@              ionice@            lzma@              ntpd@              rmmod@             su@                unix2dos@
arping@            date@              findfs@            iostat@            lzop@              od@                route@             sulogin@           unlzma@
ash@               dc@                flock@             ip@                lzopcat@           openvt@            rpm@               sum@               unlzop@
awk@               dd@                fold@              ipaddr@            makedevs@          passwd@            rpm2cpio@          sv@                unxz@
base64@            deallocvt@         free@              ipcalc@            makemime@          patch@             rtcwake@           svlogd@            unzip@
basename@          delgroup@          freeramdisk@       ipcrm@             man@               pgrep@             run-parts@         swapoff@           uptime@
beep@              deluser@           fsck@              ipcs@              md5sum@            pidof@             runlevel@          swapon@            users@
blkid@             depmod@            fsck.minix@        iplink@            mdev@              ping@              runsv@             switch_root@       usleep@
blockdev@          devmem@            fsync@             iproute@           mesg@              ping6@             runsvdir@          sync@              uudecode@
bootchartd@        df@                ftpd@              iprule@            microcom@          pipe_progress@     rx@                sysctl@            uuencode@
brctl@             dhcprelay@         ftpget@            iptunnel@          mkdir@             pivot_root@        script@            syslogd@           vconfig@
bunzip2@           diff@              ftpput@            kbd_mode@          mkdosfs@           pkill@             scriptreplay@      tac@               vi@
busybox@           dirname@           fuser@             kill@              mke2fs@            pmap@              sed@               tail@              vlock@
bzcat@             dmesg@             getopt@            killall@           mkfifo@            popmaildir@        sendmail@          tar@               volname@
bzip2@             dnsd@              getty@             killall5@          mkfs.ext2@         poweroff@          seq@               tcpsvd@            wall@
cal@               dnsdomainname@     grep@              klogd@             mkfs.minix@        powertop@          setarch@           tee@               watch@
cat@               dos2unix@          groups@            last@              mkfs.vfat@         printenv@          setconsole@        telnet@            watchdog@
catv@              du@                gunzip@            less@              mknod@             printf@            setfont@           telnetd@           wc@
chat@              dumpkmap@          gzip@              linux32@           mkpasswd@          ps@                setkeycodes@       test@              wget@
chattr@            dumpleases@        halt@              linux64@           mkswap@            pscan@             setlogcons@        tftp@              which@
chgrp@             echo@              hd@                linuxrc@           mktemp@            pstree@            setserial@         tftpd@             who@
chmod@             ed@                hdparm@            ln@                modinfo@           pwd@               setsid@            time@              whoami@
chown@             egrep@             head@              loadfont@          modprobe@          pwdx@              setuidgid@         timeout@           whois@
chpasswd@          eject@             hexdump@           loadkmap@          more@              raidautorun@       sh@                top@               xargs@
chpst@             env@               hostid@            logger@            mount@             rdate@             sha1sum@           touch@             xz@
chroot@            envdir@            hostname@          login@             mountpoint@        rdev@              sha256sum@         tr@                xzcat@
chrt@              envuidgid@         httpd@             logname@           mpstat@            readahead@         sha3sum@           traceroute@        yes@
chvt@              ether-wake@        hush@              logread@           mt@                readlink@          sha512sum@         traceroute6@       zcat@
cksum@             expand@            hwclock@           losetup@           mv@                readprofile@       showkey@           true@              zcip@
clear@             expr@              id@                lpd@               nameif@            realpath@          slattach@          tty@
cmp@               fakeidentd@        ifconfig@          lpq@               nanddump@          reboot@            sleep@             ttysize@
comm@              false@             ifdown@            lpr@               nandwrite@         reformime@         smemcap@           tunctl@
# base64 -h
base64: invalid option -- h
BusyBox v1.21.1 (2013-07-08 10:56:01 CDT) multi-call binary.

Usage: base64 [-d] [FILE]

Base64 encode or decode FILE to standard output
        -d      Decode data

# base64 test.sh
IyEgL2Jpbi9zaAojIFNrcmlwdGVyc3RlbGx1bmcgYXVzIGVpbmVtIFNrcmlwdCBoZXJhdXMuCiMv
YmluL2NhdCA8PCBFT1QgPiBjYWxsbG9nCiNlY2hvIC1lICJcJHswfSInOiAnIlwke1wkfSInIDwt
UElELUFSR1MtPiAnIlwkeyF9IiAiXCR7I30iJ1xuJyJcJHtAfSIKI0VPVAojIHRlc3QgaWYgbmV0
d29yayBpcyByZWFjaGVhYmxlCmk9MAp3aGlsZSAocGluZyAtYzEgLXczICQxIDI+JjEgfCB0ciAt
ZCAnXG4nIFwKICAgfCBncmVwIC12RSAnIDAlIHBhY2tldCcgPiAvZGV2L251bGwpOyBkbwogICBp
ZiBbICRpIC1lcSAzIF0KICAgdGhlbgogICAgZWNobyAiTGltaXQgcmVhY2hlZCIKICAgIHJldHVy
biAyCiAgIGZpCiAgIGxldCAnaSs9MScKICAgc2xlZXAgMQogICBlY2hvICRpICMgRGVidWcKZG9u
ZQoKIyBzdGFydCB5b3VyIHByb2dyYW0gaGVyZQplY2hvICQwIjogTmV0d29yayBpcyByZWFjaGFi
bGU6ICIkMSAjIERlYnVnCnJldHVybiAwCgo=
#

Wenn du für die Himbeere auch eine brauchst...
Code:
openelec:~ $ cat /proc/cpuinfo
processor       : 0
model name      : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS        : 2.00
Features        : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7

Hardware        : BCM2708
Revision        : 000e
Serial          : 000000002b947eb9
...dann wirds die busybox-armv6l sein.

"Bei make menuconfig kannst Du auswählen/nachsehen, welche Applets in dei Busybox integriert werden."
Genau, das solltest du auf Jedenfall machen, so mickrig wie deine busybox aussieht.
:rolleyes:
 
Zuletzt bearbeitet:

Danke! So geht's erstmal! Werde mir bei zeiten mal ein neues Image machen. Das lag schon etwas zurück und da ich viel mit fhem und so gemacht habe, wollte ich ungern das Sytem verändern.
Ich habe auch noch nie ein neues Image drauf gespielt nach dem Mal.
Verliere ich dann alle Änderungen?
Wie würde ich am besten vorgehen? Habe im Internen Speicher der Fritzbox einiges abgelegt (/var/InternerSpeicher/). Muss ich das in das Image reinkopieren als "external", damit es hinterher wieder drauf ist? Danke!
 
Zuletzt bearbeitet:
Moin

"Habe im Internen Speicher der Fritzbox einiges abgelegt (/var/InternerSpeicher/)...."
Antwort: Wenn du davon noch keinen Backup gemacht hast, wirds aber Zeit. ;)
Nach dem Flashen dann einfach wieder zurückkopieren.
Bedenke auch, dass /var/flash/freetz ohne Recover oder Werksreset erhalten bleibt.
Das betrifft sämtliche Einstellungen: Webif: Benutzer/Passwort und ssh Benutzer/Passwort u.s.w.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.