Soniq Cinavision TV And Computing Facilities
  
  A work in progress by: Waldis Jirgens. Latest update: 9
th November 2013.
  
  
  
      Note that the usual disclaimer applies:
      If you use this information here, don't blame me, should you, your data, or your TV/Computer get hurt!
  
  General
  
  The Soniq Cinavision smart TV runs under 
Android 2.2.1. It
  has 3 USB ports, where one can attach a USB keyboard and a USB mouse plus a USB memory stick.
  
  
  It is possible to use a USB 1.1 hub for the keyboard and the  mouse. Even more convenient is to use a wireless keybord and a wireless mouse. 
  There are a few applications. A vital one that can be installed is
  the 
terminal emulator. Install that one first from the menu.
  
  When selecting "All Applications" from the menu after switching on
  the TV (can be done with the remote or the mouse) one gets a user desktop similar to a real PC.
  
  Selecting applications from this desktop is done by 
single clicking the icon of the application.
  
  The 
terminal emulator allows a few commands known from 
Linux. Most  importantly it allows to run 
bash-alike shell scripts. 
  
  This is done by entering 
sh scriptname
  
  Applications come as .apk files. They can be installed by single left clicking them in the file manager. 
Here is a GPL Freeware Repository
  
  I upgraded the firmware online on the 9/5/2013 and on the 6/11/2013
  
  
TV Recording And Play-Back
  Recording can be done either to an SD card or a USB
    stick. Before starting select which device you'd like to record to. This is done with the
remote selecting "Menu" then "Option" then "PVR Settings" then "Device List" and highlighting the device there. Note that the device must have a 
filesystem of type FAT32 - NOT the LBA variety! If this is not the case the USB stick is not recognised.
    Recorded files are in directory usbrecord of the device where you record on. Filenames show
    Station name and timestamp. Suffix of the files is .sq
    
    
Play-Back can be done 
only by starting the file
    manager and selecting the recorded file. The first time one does
    that, the system asks you which application to use to handle the
    file. Select media-player to do that. 
Screen format
    during play-back is 
16:9 and I haven't found a way to
    change that yet.  Also the .sq files do not show up in
    application "Media"!
  
  
  
Playing Video Files
  Video file formats that can be plaved with 
MplayerIII Tab or Movie Player are: 
3gp, flv, mpg or mpeg, even the ones with audio encoded in MPEG-4AAC format.
  Video file formats that cannot be plaved with 
MplayerIII Tab or Movie Player are: 
avi, mov, qt, ogv.
  I have not tested any other formats.
  
  
  
Web Browsing
  The standard browser is pretty rudimentary compared to a "real" one, but web pages can be displayed and one can watch embedded flash videos like with YouTube. Operating facebook and web-mail is pretty straight forward. The key bindings are strange when compared to Linux or Windows. I installed also the "Dolphin" and the "Chrome" browsers, which are somehow more modern. 
Neither browser seems to honour the <embed> tag except for flash videos 
    
    
    Key Bindings, Idiosyncracies, Links
  These are strange if you come from a Linux background.
  
    - The escape key on the keyboard brings you back one step to the previous task.
        The same happens with the right mouse button. 
   
 
    - The delete key acts as destructive backspace. 
    
 
    - The real destructive backspace key does nothing.
    
 
    - Sometimes the TV decides to display a keyboard on the screen. If you click "Go" there, it goes away.
    
 
    - Sometimes all keystrokes appear in upper case. Shift-Caps_lock brings it (mostly) back. If the on-screen
      keyboard appears, it has a toggle button for the keyboard - like on a mobile phone.
    
 
    - Webpages (yes it can display local ones in spite of protesting no internet connection) are scrolled by either the mouse wheel or drag and release with the left mouse button - like on a tablet.
    
 
    - It has an ethernet connection with RJ45 socket and can be part of a home ethernet network.
    
 
     - The USB disk is known as /mnt/sda1 - very Linux-like.
    
 
    - The sd card is known as /mnt/sdcard and also as /sdcard.
    
 
    - Commands on the terminal emulator are not remembered via the "up" arrow key.
    
 
    - I had to delete and re-install the terminal emulator after the 2nd firmware upgrade.
    
 
    - Highlighting text with the mouse is not possible.
    
 
    - Saving web content or mail attachments is only possible if you plug in an SD card. It creates a directory "download" on
      it and puts the content there.
    
 
    - Uploading files as attachments to webmail is only possible from the SD card.
    
 
    - The file manager lacks basic functionality like copying files. This has to be done from the command prompt in the terminal emulator. 
    
 
    - The syntax of the "let" scripting command is incompatible with BASH.
    
 
    - Here is an Android-Shell-Command-Reference
    
 - I haven't found a way yet to become "root".
    
 
  
  There is a nice 
Text editor application available from 
http://textedit.paulmach.com/
  which installs on the sd card. It is called Textedit and allows verey basic full screen editing.
  
  The 
middle mouse key (or mouse wheel) brings up a menu where you can select what to do - open, save, save as, new file, editor options.
  
  
  Before I knew this I did a little exercise in scripting:
  
Very Basic Editor Script
  To do some basic tasks I developed the following scripts. They reside on the USB stick.:
  
  
    
shcreate - to create a file on the USB disk:
 
#!/bin/sh
echo "Start a file. Enter filename"
read finam
echo "Type text line by line. CNTRL-D when done"
cat > $finam
exit 0
 
 
sheditandro - Basic Editor
Note the different "let" statement formats!
 
#!/bin/sh
echo "Edit lines in a file. Enter filename:"
read finam
endmark=0
while [ $endmark -ne 1 ]; do
   reconum=0
   while read line; do
#    let "reconum = $reconum + 1"
     reconum=`let $reconum+1`
   done < $finam
   echo "Number of records: $reconum"
   lincomp=1
   linestart=`let $reconum+1`
#  let "linestart = $reconum + 1"
   until [ $linestart -le $reconum ]; do 
     echo "Line number to start the listing:"
     read linestart
      if [ $linestart -gt $reconum ]
      then
         echo "too big, must be less or equal to $reconum"
      fi
   done
#  let "lineend = $linestart - 1"
   lineend=`let $linestart-1`
   while [ $lineend -lt $linestart ]; do
     echo "Line number to end the listing:"
     read lineend
     if [ $lineend -lt $linestart ]
     then
        echo "too small, must be at least $linestart"
     fi
   done
   if [ $lineend -gt $reconum ]
   then 
      lineend=$reconum
      echo "Line number to end set to maximum namely $reconum"
   fi
   echo "===================================================="
   while read line; do
     if [ $linestart -le $lincomp ]
     then
        if [ $lineend -ge $lincomp ]
        then
           echo "$lincomp $line"
        fi
     fi 
#     let "lincomp = $lincomp + 1"
     lincomp=`let $lincomp+1`
   done < $finam
   echo "What do you want to do:"
   echo "d Delete Records"
   echo "i Insert Records"
   echo "z Finish"
   read choice
   case $choice in 
     d)
#       let "fitodel = $reconum + 1"
       fitodel=`let $reconum+1`
       while [ $fitodel -gt $reconum ]; do
         echo "First line to delete"  
         read fitodel   
       done
#       let "latodel = $fitodel - 1"
       latodel=`let $fitodel-1`
       while [ $latodel -lt $fitodel ]; do
         echo "Last line to delete"  
         read latodel   
       done
       echo "deleting lines $fitodel to $latodel"
       rm -f tmpd@@tmpd
       lire=0
       while read line; do
#         let "lire = $lire + 1"
         lire=`let $lire+1`
         if [ $lire -lt $fitodel ]
         then
           echo "$line" >> tmpd@@tmpd
         fi
         if [ $lire -gt $latodel ]
         then
           echo "$line" >> tmpd@@tmpd
         fi
       done < $finam
       mv  tmpd@@tmpd $finam
       ;;
     i)
#       let "inaft = $reconum + 1"
       inaft=`let $reconum+1`
       while [ $inaft -gt $reconum ]; do
         echo "Insert after which line"
         read inaft  
       done
       rm -f tempi##tempi
       if [ $inaft -eq 0 ]
       then
        echo "Write lines to insert. finish with Cntrl-d on a new line"
         cat >> tempi##tempi
         cat tempi##tempi $finam > tempn##tempn
         mv tempn##tempn $finam
       else
         lire=0
         while read line; do
            if [ $lire -le $inaft ]
            then
#              let "lire = $lire + 1"
              lire=`let $lire+1`
              echo "$line" >> tempi##tempi
            fi
         done < $finam
         echo "Write lines to insert. finish with Cntrl-d on a new line"
         cat >> tempi##tempi
         lire=0
         while read line; do
#           let "lire = $lire + 1"
           lire=`let $lire+1`
           if [ $lire -gt $inaft ]
           then
             echo "$line" >> tempi##tempi
           fi
         done < $finam
         mv tempi##tempi $finam
         fi
       ;;
     z)
       endmark=1
       ;;
   esac
done
exit 0