One of the first apps published by the Interactive Television Lab is the TV App Repo. It is designed to be the ultimate resource for sideloading apps, with a number of features that really allow it to stand out above any other option. After developing the software for the past two months, it is finally ready for the first public release.
What is it?
For a long time there has been no good way to download apps to sideload. You would have to open a web browser on your device, or insert a USB drive and navigate to an APK, or upload it to Google Drive… there was no direct way to connect users to apps. There was always some workaround. On a phone, using a mobile browser isn’t terrible. However, on a TV this process can be pretty convoluted since there’s no Leanback-supported browser. You have to open the app and go through poor UX to get to your download.
With the TV App Repo, downloadable apps are loaded into a familiar, easy-to-navigate Leanback interface. Just sit back and use your remote to get around. When you find the app you want, click the “Install” button to download and install the APK. If the app has several different versions of the APK, a list will appear allowing you to pick the optimal version.
After downloading, you will be prompted to install the app. After the installation occurs, the app is there. It’s straightforward and without hassle. Plus, there’s some additional goodies we’ve added into it. As you see above, we’re installing Google Photos, a useful app in general. However, it doesn’t support Android TV so we know the app will not appear on the launcher.
When you install the non-Leanback Google Photos app, you will install two apps. One is the Google Photos which you expect. The second is a Google Photos shortcut app. This app’s purpose is to simply live in the launcher and redirect users to the real Google Photos app. This solves a real problem that the community currently hasn’t solved adequately.
Handling Non-Leanback Apps
Users want their apps to appear in the launcher, and there are several ways to go about it. One way that I’ve seen is services like App Cloner which opens up the APK, modifies part of it, and recompiles it. This in general is a bad strategy. When the app gets recompiled, it is signed by this new developer, invalidating the original digital signature. These signatures are important for verifying the file’s origin. Since the Google Play Store sees the mismatch between the real and cloned app, it does not update it. Users miss out on security fixes or feature improvements because they’re stuck in this offshoot.
One day I came across a developer, Moden, who had created a bunch of small apps on Google Play which simply acted as shortcuts to the real apps. I found the concept really interesting because it solved the objective, getting the app on the launcher, without causing a security concern. However, their apps were built based on user demand and each one had to be created manually and published separately.
What I did was write a Python script which allows one to dynamically generate these Leanback shortcuts. Just input a few small characteristics and it spits out an APK. With a custom banner I designed, I allow Google Photos to appear on my homescreen without changing anything in the app. This could be expanded to exist for any type of Android Intent with a little extra work.
What about #SIDELOADTAG?
#SIDELOADTAG was born out of a discussion with the developer about the sideloading problem. I had brought up this idea although I hadn’t completed the initial version at the time. They quickly built that app which uses TinyURL tags to find and install APKs. That idea is great, and the code is open source. It was borrowed for some of this app. This app does support the #SIDELOADTAG method of installing. By entering a tag, it downloads and installs apps the same way as through the database regularly. I hope both formats continue because they work well at light and robust ends of the spectrum.
What apps work?
We will be curating a list of available apps, similar to APK Mirror although not the same extent. Our database will be focused more around apps for Android TV.
So, copyright is definitely something we want to keep in mind when storing these apps. Any pirated or cracked app will not be allowed. Users will be the ones submitting this content. We may curate submissions, but this should be a user-driven service. Developers can ask us to host their apps or delete them when they want. We have a form for submitting the apps you’d like to see.
How do I get started?
This is certainly a work in progress. While I’ve tested a fair amount of it, stuff could break at any time. Please bare with me as this app slowly makes its way through its rollout. I’ll be fixing bugs as they appear and you may see several updates to the app as I get back the initial user feedback.
You can download the app by visiting this page. It will be the last app you have to manually sideload.
Alternatively users can use the #SIDELOADTAG