From 55285e9b7ce23dd1db91e3befc769ee19c12d2e9 Mon Sep 17 00:00:00 2001 From: SangYong Park Date: Fri, 28 Jun 2024 16:42:25 +0900 Subject: [PATCH] Fix ui service launching issue Prevent code execution for global service during launching ui service Change-Id: I8e1dac51f6ce23d9466108601fae77a814bb3872 Signed-off-by: SangYong Park --- wrt_app/service/service_manager.ts | 8 ++++---- wrt_app/service/service_runner.ts | 24 ++++++++++++++---------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/wrt_app/service/service_manager.ts b/wrt_app/service/service_manager.ts index 4d8b55ba..a4d33fe4 100644 --- a/wrt_app/service/service_manager.ts +++ b/wrt_app/service/service_manager.ts @@ -124,13 +124,13 @@ let initializeExtensionOnMain = (id: string) => { // It must be handled ahead of dropThreadPrivilege() // Otherwise, smack violation might hanppen from 'libdbuspolicy'. global.tizen.systeminfo.getPropertyValue('CPU', () => { }, () => { }); - if (global['serviceType'] !== 'STANDALONE') { - global.tizen.alarm.getAll(); - } else { + if (global['serviceType'] === 'STANDALONE') { let ids = id.split(':'); let serviceId = ids[0]; let packageId = serviceId.split('.')[0]; wrt.security?.dropThreadPrivilege(packageId, serviceId); + } else if (global['serviceType'] === 'GLOBAL') { + global.tizen.alarm.getAll(); } } @@ -141,7 +141,7 @@ export function startService(id: string, filename: string) { } console.debug(`startService - ${id}`); initializeExtensionOnMain(id); - let startService = `${__dirname}/service_runner.js`; + let startService = `${__dirname}/../service/service_runner.js`; if (!hasPendingService()) { createWorker(id, startService, filename) } else { diff --git a/wrt_app/service/service_runner.ts b/wrt_app/service/service_runner.ts index 654b56ac..61872976 100644 --- a/wrt_app/service/service_runner.ts +++ b/wrt_app/service/service_runner.ts @@ -69,18 +69,23 @@ let checkLauncherAlive = (id: string) => { } export function start(id: string, filename: string) { - let ids = id.split(':'); - let serviceId = ids[0]; - let packageId = wrt.getPackageId(id); - if (!packageId) { - console.debug(`${id}'s pkgid is empty, so stop service`); - requestStopService(id); - return; + if (isServiceApplication()) { + let ids = id.split(':'); + let serviceId = ids[0]; + let packageId = wrt.getPackageId(id); + if (!packageId) { + console.debug(`${id}'s pkgid is empty, so stop service`); + requestStopService(id); + return; + } + + global.ssoGuid = wrt.tv?.getSSOGuid(); + wrt.security?.dropThreadPrivilege(packageId, serviceId); + + deviceApiRouter = new DeviceAPIRouter(id, isGlobalService()); } - global.ssoGuid = wrt.tv?.getSSOGuid(); wrt.setServiceAppId(id); - wrt.security?.dropThreadPrivilege(packageId, serviceId); XWalkExtension.initialize(); XWalkExtension.setRuntimeMessageHandler((type, data) => { @@ -91,7 +96,6 @@ export function start(id: string, filename: string) { }); console.debug(`serviceType : ${global['serviceType']}`) - deviceApiRouter = new DeviceAPIRouter(id, isGlobalService()); printAppControlData(id); ServiceMessage.initConsoleMessageNotification(id); -- 2.34.1