Undoubtedly the biggest complaint against Telus Pik TV is the laggy (and sometimes buggy) Android TV box that the company sells as the default way to watch on your TV. And while Telus now offers an app for Apple TV, it’s a more expensive option that doesn’t make a lot of sense for those of us who have already chosen the Android platform over Apple.
But what if you already own a quality Android TV box like the NVIDIA Shield TV? Unfortunately, Telus does not allow the Pik TV app for Android TV to be installed from the Play Store to any devices other than it’s own… But it turns out there’s a (relatively) easy workaround that allows Pik TV to be side-loaded on the Shield TV – and the performance is, as you would expect, much smoother on the more powerful NVIDIA hardware.
Download the modified Pik TV APK for Android TV here. Only tested on the Shield TV, but users have reported that it works on other Android TV devices like the Fire TV stick, etc.
|2019‑02‑25||Updated to new Pik TV version published on Play Store|
|2019‑06‑05||Removed AndroidManifest.xml sections related to starting on boot, etc. (fixes application load timeout errors)|
|2019‑09‑12||Updated to new Pik TV version published on Play Store|
Steps to modify the Telus Pik TV APK to run on NVIDIA Shield (and other Android TV devices)
- Obtain the Pik TV APK from the Telus-provided Android box
Important: Must be from the Pik TV Android box. It is different from the app that can be installed on Android phones/tablets. You can use an app like FX File Explorer to copy the apk off the device.
- Decode the APK using apktool:
apktool d com.telus.mediaroom.tvx.proda.apk
- Remove this line from AndroidManifest.xml:
- Optionally, remove these sections from AndroidManifest.xml:
(I believe these sections are related to the auto-start behaviour on the Telus box. Removing them will prevent application load timeout errors and I have not noticed any loss of functionality.)
<receiver android:enabled="false" android:exported="true" android:name="com.ericsson.MediaFirstUC.tv.BootNotificationReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> </receiver>
<receiver android:name="com.ericsson.MediaFirstUC.tv.PartnerCustomizationReceiver"> <intent-filter> <action android:name="com.iwedia.action.START_ERICSSON_APPLICATION"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.GLOBAL_BUTTON"/> </intent-filter> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> </receiver>
<service android:enabled="true" android:name="com.ericsson.MediaFirstUC.tv.RestartMainActivity" android:stopWithTask="false"/>
- Re-build the APK using apktool:
apktool b com.telus.mediaroom.tvx.proda
- Sign the APK that you just built with SignApk
Now just side-load the APK you signed onto your Shield TV. If everything was done correctly the app will install and run just as it would on the original Pik TV hardware – but faster.
You can also pair the Pik TV remote with your Shield TV, however most of the useful buttons like Pik TV, Guide, Prev won’t be mapped or functional.
In theory this same process will allow you to run Pik TV on any Android TV device, but I have only tried it with the Shield. Obviously, you still need a Pik TV account and are subject to the same Telus-only connection restrictions.
Enjoy it while it lasts
Telus might choose to change the app to prevent this kind of modification in the future, so enjoy your Pik TV experience on better hardware while it lasts.