MythTV on Android
Warning: Some of this information is out of date. See Android for more up to date instructions.
MythTV runs on Android but an official apk is not distributed, here is how to build an android package for yourself.
It uses Linux as the build platform, and opengl as the display layer.
Contents
Background & Caveats
Currently it is not very well tested
What works?
Only the frontend works.
However:
- It works the same way it does on Linux.
- The same themes (or new ones) or any downloadable ones work.
- Live TV works with program guide to change channels.
- Playback gesture key mapping is reconfigurable with phpmyadmin.
- Guide gesture mapping is (currently) Fixed and Click does not work.
- Only OpenGL Mode for rendering and playback.
- You cant return from setup screens in OpenGL mode, but it works in Qt rendering mode.
What doesn't work?
- No backend (currently)
- Builds are device specific.
- playback is a bit hiccuppy.
- not all screens have even rudimentary gesture support.
Unofficial Android Pre-Builds
Some master only builds exist on http://www.digivation.com.au/debian with various dates.
Gesture Support
Limited gesture support has been added to various widgets so that button lists, playback and program guide are navigable.
Setting up the Options
- Select country/language
- Add DB details.
- Note: Un check ping server otherwise it wont work. There is no ping
- In Setup (you can only go back with Qt painter painter but video doesnt work with Qt theme Painter)
- select Theme first
- set key bindings for your back key and menu key
- Menu to Global.Menu
- Back to TV Playback.Back
- Finally in Appearance set painter to OpenGL
- After this, setup wont work properly, but playing video will
- if you want to do intensive setup work, switch back to Qt painter temporarily
Playback Gestures
The playback gestures are reconfigurable in the DB settings. There is a unique map for LiveTV and for recording playback.
LiveTV Map
- Settings Name : LiveTVScreenPressKeyMap
- Default: "P,Up,Z,S,Left,Return,Return,Right,A,Down,Q,F"
These are mapped onto a 4x3 grid as follows:
P | Up | Z | S |
Left | Return | Return | Right |
A | Down | Q | F |
To change channels, access the guide (S), find the channel you want and then swipe RightThenLeft or use the menu key.
Recorded Playback Map
- Settings Name : PlaybackScreenPressKeyMap
- Default: "P,Up,Z,],Left,Return,Return,Right,A,Down,Q,["
These are mapped onto a 4x3 grid as follows:
P | Up | Z | ] |
Left | Return | Return | Right |
A | Down | Q | [ |
Button List Gestures
Gesture | Action |
---|---|
Left | Left |
Right | Right |
Up | PgUp |
Down | PgDn |
UpLeft | Up |
UpRight | Up |
DownLeft | Dn |
DownRight | Dn |
- Press button once to focus, then again to click
Program Guide Gestures
Gesture | Action |
---|---|
Left | Left |
Right | Right |
Up | Up |
Down | Dn |
UpThenLeft | PageLeft or PgUp |
DownThenRight | PageRight or PgDn |
UpThenRight | PgUp |
LeftThenUp | PgUp or PageLeft |
RightThenDown | PgDn or PageRight |
LeftThenDown | Day Left |
RightThenUp | Day Right |
RightThenLeft | to change channel on highlighted channel |
Also use the menu and back buttons to access those functions.
Themes
Existing themes work fine and the click sensitivity make it quite usable.
Currently there do not exist any special themes for touch screen usage.
Build Procedure
This build procedure is out of date. Please use the procedure described in the android/Readme.md file in the MythTV, packaging repository until this wiki is updated.To build MythTV for android, use the following steps.
There is currently no automated way to get all dependencies and build an apk in one step
1. Clone the repos from the android fork
mkdir workdir cd workdir git clone https://github.com/MythTV/packaging.git cd packaging/android git clone https://github.com/MythTV/mythtv.git
2. Get Android sdk, ndk and Qt using the online installer
- I used Qt 5.4.1 (http://www.qt.io/qt5-4/)
- You need the sdk version you are compiling to. I used 17 for 4.2.2 as minimum compatability level. File will be something like qt-opensource-linux-x64-1.6.0-8-online.run (https://developer.android.com/sdk/index.html#Other)
- install in ~/android as the build scripts assume its there
- also get android-ndk-r10d-linux-x86_64.bin and install it in ~/android too. (https://developer.android.com/ndk/downloads/index.html)
- also get android-cmake-master.zip and install that too in ~/android
-
git clone https://github.com/taka-no-me/android-cmake
-
- if you want to build a release apk, you need to create a key.
- modify and copy android-utilities/* to ~/android
-
cp android-utilities/setenv.sh ~/android
-
cp android-utilities/maketoolchain.sh ~/android
-
- For setenv.sh, you will need to edit JAVA_HOME, JDK_PATH, KEYSTORE, KEYALIAS, KEYSTOREPASSWORD, and QTBASE to match your configuration
- For maketoolchain.sh you will need to edit SDKVERSION and SDKVERSION to match your configuration
- create a toolchain for the correct version. see maketoolchain.sh for this. sdk 17 is the default
cd ~/android ./maketoolchain.sh cd ~/workdir/packages/android
You should have a dir structure like this after you are done:
~/android Qt android-cmake android-ndk -> android-ndk-r10d android-ndk-r10d android-sdk-linux android-studio yourname-release.keystore yourname.keystore maketoolchain.sh setenv.sh
3. Build all the libraries (make sure to have ruby installed on your system as building qt5extras requires it)
./makelibs all
or
./makelibs taglib ./makelibs freetype ./makelibs openssl ./makelibs iconv ./makelibs mariadb ./makelibs lame ./makelibs exiv2 ./makelibs qt5extras
4. Build it (debug by default)
./mythbuild.sh
mythfrontend.apk should now exist in the current directory