From 7fba38809a063c85a1b629bf5e353e7389d48fcb Mon Sep 17 00:00:00 2001 From: Adam Stolcenburg Date: Tue, 23 Jun 2026 12:51:12 +0200 Subject: [PATCH] Add support for org.rdk.AppPackageManager callsign Ref: #RDKEAPPRT-862 --- bolt/src/RemotePackageManager.cjs | 38 ++++++++++++++++++++++++------- bolt/src/config.cjs | 5 +++- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/bolt/src/RemotePackageManager.cjs b/bolt/src/RemotePackageManager.cjs index cb473f0..eb95af1 100644 --- a/bolt/src/RemotePackageManager.cjs +++ b/bolt/src/RemotePackageManager.cjs @@ -26,19 +26,24 @@ class RemotePackageManager { isPackageInstalled(id, version) { try { - return this.remote.makeThunderRequest({ - method: `${config.PACKAGE_MANAGER_CALLSIGN}.packageState`, - params: { packageId: id, version }, - }) === "INSTALLED"; + return this.makeRequest("packageState", { packageId: id, version }) === "INSTALLED"; } catch (e) { return false; } } isActive() { + return this.getCallsign() !== null; + } + + install(id, version, fileLocator) { + return this.makeRequest("install", { packageId: id, version, fileLocator }); + } + + callsignIsActive(callsign) { try { const status = this.remote.makeThunderRequest({ - method: `Controller.status@${config.PACKAGE_MANAGER_CALLSIGN}`, + method: `Controller.status@${callsign}`, }); return status[0].state === "activated"; } catch (e) { @@ -46,10 +51,27 @@ class RemotePackageManager { } } - install(id, version, fileLocator) { + getCallsign() { + if (this.callsign === undefined) { + this.callsign = null; + for (const callsign of config.PACKAGE_MANAGER_CALLSIGNS) { + if (this.callsignIsActive(callsign)) { + this.callsign = callsign; + break; + } + } + } + return this.callsign; + } + + makeRequest(method, params) { + const callsign = this.getCallsign(); + if (!callsign) { + throw new Error("No package manager is active on the device"); + } return this.remote.makeThunderRequest({ - method: `${config.PACKAGE_MANAGER_CALLSIGN}.install`, - params: { packageId: id, version, fileLocator }, + method: `${callsign}.${method}`, + params, }); } } diff --git a/bolt/src/config.cjs b/bolt/src/config.cjs index a281264..c3af470 100644 --- a/bolt/src/config.cjs +++ b/bolt/src/config.cjs @@ -35,7 +35,10 @@ exports.AI2_MANAGERS_ENABLED_FILE = "/opt/ai2managers"; exports.DEFAULT_UID = 34567; exports.DEFAULT_GID = 34567; exports.PROCESS_HOME_DIR = "/home"; -exports.PACKAGE_MANAGER_CALLSIGN = "org.rdk.PackageManagerRDKEMS"; +exports.PACKAGE_MANAGER_CALLSIGNS = [ + "org.rdk.AppPackageManager", + "org.rdk.PackageManagerRDKEMS", +]; exports.APP_MANAGER_CALLSIGN = "org.rdk.AppManager"; exports.STDOUT_TARGET = "-"; exports.TEMP_FILE_SUFFIX = "~";