Introduction
The purpose of this article is to guide the user on how to install an application on an Amino media player and to demonstrate the supported methods.
In this article:
Installing/Uninstalling multiple Apps via INI (USB/DHCP)
Prerequisites
This article assumes that basic setup of the devices has been completed and the device is configured to use Orchestrate, USB, or DHCP to receive any necessary configuration settings.
The article also assumes that you understand the use of Amino INI configuration settings and that you can edit and apply INI configuration parameters to your media player.
Summary
Orchestrate
Uploading apps into Orchestrate
Here you will be able to upload your apk files into Orchestrate.
Select your domain and go to the Manage section.
On the left of the screen under Software click on Manage Android Apps and then Create Application.
Set a name for the application.
You can now upload your apk file to the section area by clicking on the + Upload APK button. It is also possible to upload a different version of the app so you can choose later which one to install.
Note: Apps must be registered by Amino on Orchestrate before it can be uploaded. If this has not yet been done the system will show Signer Certificate Error. This article provides more information on the process of registering an app. Having followed the article and generated the fingerprint, please open a ticket with the Amino support team who will register the application.
Now that the apk file is defined as an Android App in Orchestrate, go to Manage Groups and select the group where the media player is present.
On the right side of the screen click on Group details.
At the bottom of the Groups Details section, you will find Application Settings.
Click on + Add / Remove Parameters and search and config these two options:
system.allow_install_unknown_sources = True
appinstaller.link = "App's link"
To open the app automatically when the media player boots, change the value of the tvapp.package_id option to the application ID. You can find the Application ID in the Application Details where you previously uploaded it in Orchestrate.
e.g.
Reboot the media player for the changes to take effect.
Installing applications using USB
Create a USB image with our Offline Image Creator
Get the image from the Offline Image Creator here, by selecting only the latest available FW and skipping the next 2 steps. Export the image and download the zip file to your PC.
Prepare the USB thumb drive
1. Format a USB thumb drive with FAT32.
2. Unzip all the files from the previously downloaded USBImage.zip to the root directory of the USB thumb drive.
3. Place your APK file in the root directory of the USB thumb drive. The total size of the APK file(s) should be less than 976MB.
4. On the root directory create the file apk_list.txt and add the file name of your apk file.
ie. Application.apk (replace Application.apk with your app's name)
5. The root directory of your USB thumb drive will look like this
6. Finally open the amino_h2xx_usb_upgrade.txt and add the line --apk_list=/udisk/apk_list.txt so it looks like this:
In case you previously added INI parameters and created a channel lineup in the Offline Image Creator the amino_h2xx_usb_upgrade.txt would contain the following lines:
--update_package=/udisk/25.3.2330.7R.zip
--update_ini=/udisk/usb_boot.ini
--update_channel_list=/udisk/zapper_lineup.json
--apk_list=/udisk/apk_list.txt
Flash and install the FW and the app(s)
1. Insert the USB thumb drive into the USB slot nearest to the media player's power adapter.
2. Connect the power adapter to the media player.
3. The media player should detect the USB thumb drive and start to upgrade automatically without user interaction.
4. Once you see the on-screen prompt confirming the system upgrade was done, remove the USB thumb drive and reboot the media player.
5. After the reboot, the media player will then install the app and an on-screen message will appear to confirm it has been installed.
Note: if your application is configured to start at reboot, the first reboot will install the application and configuration but the application will not start until the next reboot.
Installing Applications using DHCP
After defining in the DHCP server the VCI and the INI option file for media player, it is now possible to deploy apps.
For more information about the media player VCI+INI option follow this article.
Apps Deployment
In the INI file you will need to add the following lines:
system.allow_install_unknown_sources="ALLOW_INSTALL_UNKNOWN_SOURCES"
appinstaller.link="<introduce here the app's link>"
Automatically App launch
If you wish to launch the app upon the H200 boot add the following line to the INI file:
tvapp.package_id="<introduce here the app's id>"
INI file example
# Application Firmware and Version
firmware_upgrade.url=http://<preferred ip and path>/25.3.2022.9R.zip
firmware_upgrade.version="25.3.2022.9R"
# App Parameters
adb.mode="1"
key.link.blue="pkg://com.android.tv.settings?cls=com.android.tv.settings.MainSettings"
system.allow_install_unknown_sources="ALLOW_INSTALL_UNKNOWN_SOURCES"
appinstaller.link="http://gcs.aminoengage.com/sw/7/1/org.videolan.vlc-13019607.apk"
tvapp.package_id="org.videolan.vlc"
Reboot the media player for the changes to take effect.
Installing/Uninstalling multiple Apps via INI (USB/DHCP)
Installation command
Introduced in the FW 25.6.2410, the INI appinstaller.installation_file reads an URL to download a plaintext file for the installation. Currently, only HTTP has been tested.
e.g. appinstaller.installation=http://test.amino.com/installation_file
In the plaintext file, it should be a list of URLs separated by a line separator ("\n").
Here is an example:
http://gcs-beta.amino-orchestrate.com/sw2/1/7/apk/com.aminocom.apollo.demo-20240124.apk
http://gcs-beta.amino-orchestrate.com/sw2/1/7/apk/cy.com.cablenet.client.android.tvlauncher-1100287353.apk
http://gcs-beta.amino-orchestrate.com/sw2/1/7/apk/com.consolidatedcomm.tv.platform-1030712.apk
Each line is independent of the other which means even if one fails, it should not affect the other installation action.
URL using HTTPS protocol with Self-Signed SSL Certificate will not be accepted currently for both INI and apk URL.
Side Note
- Each line should only contain 1 URL. If multiple URLs are found, it will be ignored.
- These apks are considered mandatory and no checking on the version will be done.
- If the previous installation has not been completed and the installation_file content has not changed, it will only install apks that have not been completed yet.
- When the content of the installation file is exactly the same as the previous one and have completed the previous installation, it will not run again.
Uninstallation command
Available since the FW 25.6.2410, the INI appinstaller.uninstallation_file reads an URL to download a plaintext file for the uninstallation. Currently, only HTTP has been tested.
e.g. appinstaller.uninstallation=http://test.amino.com/uninstallation_file
In the plaintext file, it should be a list of package Ids separated by a line separator ("\n").
Here is an example:
com.aminocom.apollo.demo
com.twizted.videoflowplayer
cy.com.cablenet.client.android.tvlauncher
com.ted.android.tv
Each line should be independent of the other which means even if one fails, it should not affect the other uninstall action.
Side Note
- Each line should only contain 1 package ID. If multiple package IDs are found, it will be ignored.
For the whole section App installation via INI
- These INIs will take effect on boot and upon INI update.
- Every time a new package is installed (PACKAGED_ADDED intent received), we will check the package ID with the command file and uninstallation file. If they have the package ID (and is action is uninstall), it will be uninstall immediately.
- Every time a package is uninstalled, a redo will always be done in the next INI_UPDATE. (No matter whether the delete app is related to the INI)
- if the INI appinstaller.link is set, it will always run.
- if INI appinstaller.installation_file or appinstaller.uninstallation_file is set, appinstaller.command_file will be ignored.