[EXPERIMENTAL] CyanogenMOD (11 - 12 - Android TV) for WeTek Play with Kodi Live TV

ChristianTroy

Registered
Messages
2
aaN0auZm.png




Release notes

This build includes a totally new kernel and Amlogic code based on their latest SDK, and I took the chance to get rid of Amlogic DVB drivers and use those from WeTek Play's OpenELEC build; by doing this I am able to run DVBAPI apps like Tvheadend.
Kodi Live TV support under Android was one of the most requested features, this experimental build allows you to run Kitkat (CyanogenMOD 11) or Lollipop (CyanogenMOD 12 or Android TV) and Kodi Live TV (WeTek Theater is no longer supported with the provided drivers).

The new 3.10 kernel brings OMX support as well (Android libstagefright media decoding), while Amlogic's prebuilt libraries work very good on KitKat they don't work at all with Lollipop.
Just to be sure to have a good media experience use Kodi, at the end of the post you will find latest stable official Kodi packed in a flashable zip and in the second post you will find a link to a modified version that should give a better experience on the WeTek device.

Now I will give you some details on how to configure Tvheadend, if you already know what to do you can skip this section.

Tvheadend will run automatically at boot and you can access to it from a web browser (even from a different device, you are not forced to do it from the box) at http://wetek_ip_address:9981

From this WebUI click "Configuration" -> "DVB Inputs" -> "Networks" and add a new Network according to the type of tuner you have (for example I created a DVB-S network called "Hotbird" and assigned the E13.0 pre-defined muxes, just pay attention that they are not bleeding edge updated so if you don't find a channel you might have to insert manually the transponder by looking at frequencies on sites like kingofsat or lyngsat).

After that go to "TV Adapters", click the link with a folder icon showing your adapter's name (if you're running the dual DVB-S2 tuner you will see two of them, #1 is the input closer to the edge of the box, while #0 the one closer to the rear usb ports), and click "Enabled", configure the eventual parameters (DiseqC, Unicable, etc.) and save the settings.
Go to the option right under the adapter name, assign it to the network that you have created and configure the eventual parameters.

Now go back to "Networks", after a couple of minutes you should see the "Scan Q length" lowering its value, when in reaches 0 everything has been scanned and you can proceed mapping the channels from "Services" section.

For further instructions, here you can find a tutorial to show you how to configure the DVB-T/C tuner, and here one for the DVB-S tuner.

Before leaving the configuration go to "Recordings" and set a "Recording System Path" pointing it to your external storage (on my roms it will be "/storage/sdcard1" for the MicroSD, "/storage/usbdisk0" for the lower rear usb port, "/storage/usbdisk1" for the upper rear usb port and "/storage/usbdisk2" for the side usb port).
Not doing that will drive Kodi's Tvheadend client plugin crazy trying to determine the available space for recordings.

Now you can launch Kodi, go to its settings, enable Live TV and select the "Tvheadend backend".

Remember that this is still something EXPERIMENTAL

Like the other Lollipop buils, remember, this is not a bug, but a consequence of the switch to art from dalvik: first boot, updates and apps installation will take longer; this happens because art compiles the apk and does not work like dalvik that was using a just-in-time approach (so expect almost 10 minutes for the first boot and future upgrades)


First install instructions

* As really first thing get this CWM recovery, unrar it and copy "recovery.img" to a MicroSD.
* Power off your device and unplug the AC power cord.
* Get the latest available ROM and GAPPS version from the links below and copy them to a MicroSD card.
* Now insert the MicroSD card in your STB.
* Plug the AC power cord while you keep pressed the little reset pinhole (located on the bottom of the device) for 10 seconds (just count slowly to ten and it will be good).
* Once the device has booted to recovery perform a factory reset and flash the ROM's zip for first followed by the GAPPS zip.
* Reboot and enjoy CyanogenMOD.



Update instructions

* If you're coming from the "regular", not "experimental" builds, please follow the "First install instructions"
* Get the latest available ROM and GAPPS version from the links below and copy them to a MicroSD card.
* Now insert the MicroSD card in your STB.
* Enable "Developer options" following this tutorial and from it enable the "Reboot to recovery" option.
* Bring up power menu by keeping pressed the power button on the STB for a couple of seconds (or pushing F4 if you have a keyboard plugged in) and select "Reboot -> recovery".
* Once the device has booted to recovery flash the ROM's zip for first followed by the GAPPS zip.
* Reboot and enjoy your updated CyanogenMOD.



Downloads

* ROM (CM12) 2015-03-20
* GAPPS 2015-01-07 (LITE)

* ROM (Android TV) 2015-03-20
* GAPPS (Android TV) 2015-01-30

* ROM (CM11) 2015-03-20 - Real 1080p output (r1)
* GAPPS 2014-06-06 (LITE)

* Kodi 14.1 "Preinstall"
 
Last edited:

ChristianTroy

Registered
Messages
2
Misc tips

* If you wanna start Kodi at boot go to "Developer options" and enable the last entry called "Start Kodi at boot"
* There are some keyboard shortcuts: F1 (Home), F2 (Menu), F3 (App switch) and F4 (Power menu) and some CEC remote shortcuts: Red (Power off the device), Green (Home), Yellow (Menu) and Blue (Search).
* By enabling "Google remote support" in "Other" section of "Network" configuration you will be able to control your device from your Android smartphone / tablet by using this app on it.
* When an app forces the portrait orientation, the default behavior is to simulate a portrait / phone-like UI adding black bars to the sides (an example is Antutu when it runs the benchmark, or Box.com). If you prefer to have a landscape stretched UI flash this zip. To revert to the default behavior flash this one instead.
Note that the setting will persist even if you upgrade the ROM so you have to flash that zip only once.


Real 1080p output (optional zip for CM11)

On Android Amlogic MX SOC uses a 1280x720 framebuffer coupled with a scaler to do the up/down scaling.
They did it for a good reason, 720p resolution has half the pixels of the 1080p one so the UI will be snappier and 3D performance will be better but if you don't care about that and you just wanna the best image quality (I noticed the scaler gives me a weird motion when watching sports) you can flash that optional zip.
Once flashed if you wanna change resolution go to Android Display settings, set your resolution and reboot the device (this step is required because some stuff has to be set at boot because Android is not meant to change resolution while it's running).
I didn't do it for Lollipop builds because Kitkat it runs already slower than Kitkat, adding this mod might be too much :)

Since you have this option (WeTek Play is the only MX device that allows you to do that) I would give it a try, if you have a good TV set you will clearly see the difference.



Kodi 14.2rc1 WeTek_mod_v3

This is a Kodi build that includes some patches not included upstream that will improve (hopefully) your overall experience.

Since it's been signed with different keys respect those from Kodi build server you won't be able to install it over the older Kodi but you'll have to uninstall it.
Take a backup of /sdcard/Android/data/org.xbmc.kodi folder before uninstalling or Android will delete it and you'll lose your configuration; restore it after installing the new APK.

Download

You can use OE's /sdcard/Android/data/org.xbmc.kodi/files/.kodi/userdata/advancedsettings.xml file
Code:
<?xml version="1.0" encoding="UTF-8"?>
<advancedsettings>

  <network>
    <cachemembuffersize>20971520</cachemembuffersize>
  </network>

  <samba>
    <clienttimeout>30</clienttimeout>
  </samba>

  <network>
    <readbufferfactor>4.0</readbufferfactor>
  </network>

  <pvr>
    <minvideocachelevel>5</minvideocachelevel>
    <minaudiocachelevel>20</minaudiocachelevel>
  </pvr>
</advancedsettings>

or (this is what I'm using)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<advancedsettings>
  <network>
    <buffermode>1</buffermode>
    <cachemembuffersize>31457280</cachemembuffersize>
    <readbufferfactor>10</readbufferfactor>
  </network>
  <gui>
    <algorithmdirtyregions>0</algorithmdirtyregions>
  </gui>
</advancedsettings>


External disk spindown for WeTek Play

Flash this zip from recovery, once booted to android use a root capable file explorer (like Solid Explorer for example) and edit "/system/etc/spindown.conf" to fit your needs.

The default configuration is set-up to spin down "sda" disk after 3600 seconds (60 minutes) using sg3-tools.

You don't need to flash the zip again if you do a rom update because I've added the addon.d backup script.

Note: your drive have to ne able to be set to sleep using "sg_start --stop /dev/block/$disk", I've tried it with 3 drives, 2 WDs and 1 Seagate and it worked.


Debian chroot

As very first thing you have to set-up a MicroSD card with two primary partitions, the first one must be formatted in FAT32, the second one can be left unformatted because the "sdcardfiles" zip will format it (I suggest you to give at least 1GB of space to the secondary partition).
After that grab the two zips: wetek-debian-chroot-sdcardfiles.zip and wetek-debian-chroot-systemfiles-rc1.zip and copy them (together with CWM's recovery.img) to the FAT32 partition of the MicroSD (the primary one).
Boot to recovery and flash the two zips (the order doesn't matter).

How to actually use it:

The "systemfiles" zip will add an helper file that I called "debian-chroot", together with the init.d script it will set up the chroot at boot and run the configured services (as a template the /system/xbin/debian-chroot file includes the execution of dropbear daemon, so you can use it as starting point for your own stuff).
To access Debian you can just type as root from terminal emulator / serial console / adb over network "debian-chroot chroot", othwerise you can access using an SSH client to the configured Dropbear SSH server that is listening on port 2222.
There are two default users: 'root' (pwd: wetek) and a regular user 'wetek' (pwd: wetek), both can be used to access to the ssh server.
 
Top