Hi Team,
I am encountering an installation failure while trying to deploy a Release build to my Fire TV Stick 4K Select (G4N33M03351401DP)
Error Log:
Command failed: vda -s G4N33M03351401DP shell ‘vpm install /tmp/abp_armv7.vpkg’
Kepler operation FAILED due to an irrecoverable error: Failed
Observations:
When running vpm install manually via the device shell, I receive the error: error (Module dependency not found).
Upon checking vpm list modules on the device, I see that the device supports IEpg_7 (/com.amazon.kepler.epg_2@IEpg_7).
However, my build logs show that the SDK/Autolinker is injecting a dependency for IEpg_8, which is likely causing the mismatch.
This is my manifest.toml
schema-version = 1
[package]
id = “com.abp.firetv”
title = “abp”
version = “2.0.0”
build-number = 30
Components
[components]
[[components.interactive]]
id = “com.abp.firetv.main”
runtime-module = “/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0”
categories = [“com.amazon.category.main”, “com.amazon.category.kepler.media”]
launch-type = “singleton”
[[components.interactive]]
id = “com.abp.firetv.sync_source”
runtime-module = “/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0”
launch-type = “singleton”
[[components.service]]
id = “com.abp.firetv.interface.provider”
runtime-module = “/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0”
[[components.service]]
id = “com.abp.firetv.content.dataRefresh.provider”
runtime-module = “/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0”
[[components.task]]
id = “com.abp.firetv.onInstallOrUpdateTask”
runtime-module = “/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0”
[[components.task]]
id = “com.abp.firetv.epgSyncTask”
runtime-module = “/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0”
Processes
[processes]
[[processes.group]]
component-ids = [“com.abp.firetv.main”]
[[processes.group]]
component-ids = [“com.abp.firetv.interface.provider”]
[[processes.group]]
component-ids = [“com.abp.firetv.content.dataRefresh.provider”]
[[processes.group]]
component-ids = [“com.abp.firetv.onInstallOrUpdateTask”]
[[processes.group]]
component-ids = [“com.abp.firetv.epgSyncTask”]
Wants
[wants]
[[wants.service]]
id = “com.amazon.inputmethod.service”
[[wants.service]]
id = “com.amazon.kepler.pcon.service.main”
[[wants.service]]
id = “com.amazon.drm.key”
[[wants.service]]
id = “com.amazon.drm.crypto”
[[wants.service]]
id = “com.amazon.tv.developer.dataservice”
[[wants.privilege]]
id = “com.amazon.tv.content-personalization.privilege.provide-data”
[[wants.service]]
id = “com.amazon.media.server”
[[wants.service]]
id = “com.amazon.mediametrics.service”
[[wants.service]]
id = “com.amazon.inputd.service”
[[wants.service]]
id = “com.amazon.media.playersession.service”
[[wants.service]]
id = “com.amazon.mediabuffer.service”
[[wants.service]]
id = “com.amazon.mediatransform.service”
[[wants.privilege]]
id = “com.amazon.devconf.privilege.accessibility”
[[wants.service]]
id = “com.amazon.gipc.uuid.*”
[[wants.service]]
id = “com.amazon.audio.stream”
[[wants.service]]
id = “com.amazon.audio.control”
[[wants.service]]
id = “com.amazon.audio.system”
[[wants.service]]
id = “com.amazon.network.service”
[[wants.service]]
id = “com.amazon.iap.core.service”
[[wants.module]]
id = “/com.amazon.iap.core@IIAPCoreUI”
[[wants.service]]
id = “com.amazon.iap.tester.service”
[[wants.module]]
id = “/com.amazonappstore.iap.tester@IIAPTesterUI”
Needs
[needs]
[[needs.privilege]]
id = “com.amazon.media.secureplayback”
[[needs.privilege]]
id = “com.amazon.privilege.security.file-sharing”
[[needs.privilege]]
id = “com.amazon.kepler.tv.privilege.data_provider”
[[needs.privilege]]
id = “com.amazon.network.privilege.net-info”
[[needs.module]]
id = “/com.amazon.kepler.appstore.iap.purchase.core@IAppstoreIAPPurchaseCoreService”
[[needs.module]]
id = “/com.amazon.kepler.media.control.server@IMediaControlServerComponentAsync”
[[needs.module]]
id = “/com.amazon.kepler.media@IContentLauncher1”
[[needs.module]]
id = “/com.amazon.kepler.media.@IAccountLogin1”
Tasks
[tasks]
[[tasks.work]]
component-id = “com.abp.firetv.onInstallOrUpdateTask”
mode = “install”
Offers
[offers]
[[offers.service]]
id = “com.abp.firetv.interface.provider”
[[offers.service]]
id = “com.abp.firetv.content.dataRefresh.provider”
[[offers.service]]
id = “com.amazon.gipc.uuid.*”
[[offers.interaction]]
id = “com.abp.firetv.main”
[[offers.message-target]]
uses-component = “com.abp.firetv.sync_source”
uris = [“kepler://com.abp.firetv.sync_source”]
[[offers.module]]
id = “/com.abp.firetv.main@IMod1”
includes-messages = [“kepler://com.abp.firetv.main”]
Messages
[[message]]
uri = “kepler://com.abp.firetv.main”
sender-privileges = [“*”]
receiver-privileges = [“self”]
Extras
[[extras]]
key = “interface.provider”
component-id = “com.abp.firetv.main”
[extras.value.application]
[[extras.value.application.interface]]
interface_name = “com.amazon.kepler.media.IChannelServer”
features = [“ChannelList”]
[[extras.value.application.interface]]
interface_name = “com.amazon.kepler.media.IContentPersonalizationServer”
attribute_options = [“SupportedCustomerLists”, “DataRefreshComponentId”]
[extras.value.application.interface.static_values]
SupportedCustomerLists = [“Watchlist”]
DataRefreshComponentId = “com.abp.firetv.content.dataRefresh.provider”
[[extras.value.application.interface]]
interface_name = “com.amazon.kepler.media.IContentLauncherServer”
attribute_options = [“partner-id”]
static-values = { partner-id = “ABP_APP” }
[[extras.value.application.interface]]
interface_name = “com.amazon.kepler.media.IAccountLoginServer”
attribute_options = [“Status”]
override_attribute_component = { Status = “com.abp.firetv.interface.provider” }
[[extras.value.application.interface]]
interface_name = “com.amazon.kepler.media.IMediaPlaybackServer”
command_options = [“Play”,“Pause”,“StartOver”,“Previous”,“Next”,“SkipForward”,“SkipBackward”]
attribute_options = [“AudioAdvanceMuted”]
features = [“AdvancedSeek”, “VariableSpeed”, “AudioTracks”, “TextTracks”]
Thank you