Fix ui service launching issue 14/313614/1 submit/tizen/20240704.160117
authorSangYong Park <sy302.park@samsung.com>
Fri, 28 Jun 2024 07:42:25 +0000 (16:42 +0900)
committerSangYong Park <sy302.park@samsung.com>
Fri, 28 Jun 2024 07:42:25 +0000 (16:42 +0900)
Prevent code execution for global service during launching ui service

Change-Id: I8e1dac51f6ce23d9466108601fae77a814bb3872
Signed-off-by: SangYong Park <sy302.park@samsung.com>
wrt_app/service/service_manager.ts
wrt_app/service/service_runner.ts

index 4d8b55ba0b9fc4eb09c761ade6af06d083c03b61..a4d33fe4134f7b9f5233910847fbdf7700b8181e 100644 (file)
@@ -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 {
index 654b56acb987caad5bb957e8b30ae2b5ddffa084..6187297664bc8bca2d4b638a8eb034918e30535e 100644 (file)
@@ -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);