<!DOCTYPE html>
<html>
<head><!--<metahttp-equiv="X-UA-Compatible" content="IE=5" data-cafe-userdata="true">--><!--<metahttp-equiv="Content-Type" content="text/html; charset=utf-8" data-cafe-userdata="true">--><!--<metaname="Generator" content="ActiveSquare" data-cafe-userdata="true">-->
<meta class="cui-content-default" http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style class="cui-content-default" data-cafe-default="true">/*! cafe note v2.2.11.1 | Copyright 2014, S-Core, Inc. All Right Reserved. */
@charset "UTF-8";body {display:block;margin:10px;}ul,ol{margin:0;}li,p{line-height:1.9;margin:0 auto;}table.cui-div{width:100%;display:block;}table.cui-div > tbody{display:block;}table.cui-div > tbody > tr{display:block;}table.cui-div > tbody > tr > th,table.cui-div > tbody > tr > td{display:block;}#cafe-note-contents div[data-cui-alt-image],#cafe-note-contents img[data-cui-alt-image]{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAABH0lEQVQ4jbXU26qEIBQGYF+wtxLMgg4QdGdBREUhFEFBBx/tn6sGpcPezTTCAi/0Q11rSQghhDGGJ4P8An3j20QIgSzLvookSfawUgrrukIp9VVcwkIIcM7h+z66rnsGbprGeCvf95+B8zw3YM75M/A4jnAcB3pS9Y3zPKPv+0vYKDf9jcdxRJ7naJrG2DRNE8IwBGMMZVkewmQbOnwVy7IgiqL3TWzbRtu2x+gVnKYpXNdF27ZY1xVxHO+awHVdDMMAKaWJnsFZlhkn8zzvtMOCIACl1No8Sqm1S55SCkVR3GrdI3QH13V9/7PRxmG5SSlh2/bHKGMMVVXtYc75bZRSaunX1w92+9vUT6mju3WfJuqvv/zf8FmZXq7/BfoCA1VRsvK4AfgAAAAASUVORK5CYII=") no-repeat center #c1c1c1;}table tr:not(:first-child) td[colspan],_:-ms-lang(x){border-top-style:none\9 !important;}table tr:not(:first-child) th[colspan],_:-ms-lang(x){border-top-style:none\9 !important;}*,body {word-wrap:break-word\0;}</style>
<style class="cui-content-default" data-user-config="true">body {margin: 10px;font-size: 10pt;font-family:'맑은 고딕'; line-height:1.9;}
p,li,h1,h2 h3,h4,h5,h6 { line-height:1.9;}
</style></head>
<body><p>There is a correction: it's Tizen 5.5 (tizen branch), not 5.0, of Tizen:Unified, which is already "released".</p>
<p> </p>
<p>Parichay, you may share your code, rephrased as a minimal code along with full build script and test environment, via github.com (your personal repo). Your related code is already an open source code. It would be great if you could make a .spec file that tests what you want is accomplished or not (i.e., gbs build fails if the custom filter is not loaded). Based on this, you can easily and automatically get a regression test as well.</p>
<p> </p>
<p>Cheers,</p>
<p>MyungJoo </p>
<p>--------- <b>Original Message</b> ---------</p>
<p>Hello Tomasz Swierczek</p>
<p> </p>
<p>Thanks for the response.</p>
<p> </p>
<p>1) The system component is a multimedia framework (which is the RPM) for running neural network models. This framework will support running various models for inference. So, an application can call the system component to run its own model (this is the SO file) for inference.</p>
<p> </p>
<p>2) Yes, the system component is an SO file along with a c-api + static library. An application can use the c-api provided to use it. No, its not a system service, just a library.</p>
<p> </p>
<p>3) The SO file in the application is located in the ./lib/ folder of the application. The full path of the SO in the system is /opt/usr/globalapps/org.example.application/lib/libxyz.so. The output of chsmack <path> - access="User::Pkg::org.example.application::RO"</p>
<p>The current owner of the file is tizenglobalapp and the group is root. I have tried with permissions of 644 and 775, but still no success.</p>
<p> </p>
<p>I am using Tizen version 5.0.  </p>
<p>Regarding how the SO file is loaded - currently, the SO file is a custom model file, which is being loaded using dlopen()/dlsys() in the library and loaded functions are correspondingly called.</p>
<p>For the purpose of testing, the full path of the SO file is being passed to the system library from the application.</p>
<p> </p>
<p>Regards</p>
<p>Parichay Kapoor</p>
<p> </p>
<p>--------- <b>Original Message</b> ---------</p>
<p><b>Sender</b> : Tomasz Swierczek <t.swierczek@samsung.com> Staff Engineer/Head of Part/Security (PLT) /SRPOL/Samsung Electronics</p>
<p><b>Date</b> : 2019-05-07 14:21 (GMT+9)</p>
<p><b>Title</b> : RE: [Dev] Loading shared objects of application from platform libraries</p>
<p> </p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Hello Parichay, Kapoor,<!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><!--o:p--> <!--/o:p--></span></p>
<p class="MsoListParagraph" style="text-indent: -18pt; mso-list: l0 level1 lfo1;"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><span style="mso-list: Ignore;">1)<span style='line-height: normal; font-family: "Times New Roman"; font-size: 7pt; font-style: normal; font-variant: normal; font-size-adjust: none; font-stretch: normal;'>      </span></span></span><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Can you elaborate more on why a system component – which you RPM will be – should open an SO file provided by application?<!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><!--o:p--> <!--/o:p--></span></p>
<p class="MsoListParagraph" style="text-indent: -18pt; mso-list: l0 level1 lfo1;"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><span style="mso-list: Ignore;">2)<span style='line-height: normal; font-family: "Times New Roman"; font-size: 7pt; font-style: normal; font-variant: normal; font-size-adjust: none; font-stretch: normal;'>      </span></span></span><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>From your earlier emails from the mailing list I can see that your system component is an SO file (subject “[Dev] Adding new rpm package to tizen emulator+SDK”) – how is it run? Which process uses it? Is it a system service? If yes, which one?<!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><!--o:p--> <!--/o:p--></span></p>
<p class="MsoListParagraph" style="text-indent: -18pt; mso-list: l0 level1 lfo1;"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><span style="mso-list: Ignore;">3)<span style='line-height: normal; font-family: "Times New Roman"; font-size: 7pt; font-style: normal; font-variant: normal; font-size-adjust: none; font-stretch: normal;'>      </span></span></span><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Can you list up the attributes if SO file *<b>provided by the application</b>* (its location after the application is installed, with full path on the system plus output of chsmack <the path>?)<!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><!--o:p--> <!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>In general, depending on which Tizen version your device has (I am assuming Tizen version 3.0 or higher), there should be nothing that prevents system components (run with Smack labels User, System or System::Privileged) to manipulate application binaries (execute/read them) – most importantly, because application launcher (also a system component!) needs to be able to properly execute applications, which can freely contain some SO files of their own (like ie. org.tizen.contacts app has under its ./lib/ subdirectory where it is installed). However, in principle, running application code (considered typically unsafe) in context of a system service (which I’m assuming you’re not doing, however, I’m asking number 2. just to be sure), can possibly be a little bit dangerous.<!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><!--o:p--> <!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Also, if you say that you try to load the SO file of the app somehow and cannot do it – how exactly do you try to do it? Can you list some errors/actions taken to do it so I could help you more? For sure the system loader doesn’t have the apps/<id>/lib path of each application in its searching path – are you sure you’re trying to load the SO file from proper location?<!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><!--o:p--> <!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Best Regards,<!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><!--o:p--> <!--/o:p--></span></p>
<table class="cui-div" style="border-collapse: collapse; -ms-word-break: break-all;"><colgroup><col></colgroup><tbody><tr><td><p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 3.75pt; margin-left: 0cm; mso-margin-top-alt: 3.75pt;"><span style='color: rgb(31, 73, 125); font-family: "Arial","sans-serif"; font-size: 9pt;'><!--NamoWec7 Generated Comment []--><!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 3.75pt; margin-left: 0cm; mso-margin-top-alt: 3.75pt;"><span style='color: rgb(31, 73, 125); font-family: "Arial","sans-serif"; font-size: 9pt;'><!--o:p--> <!--/o:p--></span></p>
<p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 3.75pt; margin-left: 0cm; mso-margin-top-alt: 3.75pt;"><span style='color: rgb(6, 137, 216); font-family: "Arial","sans-serif"; font-size: 11pt;'>Tomasz Świerczek</span><span style='color: rgb(31, 73, 125); font-family: "Arial","sans-serif"; font-size: 9pt;'><!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 3.75pt; margin-left: 0cm; mso-margin-top-alt: 3.75pt;"><span style='color: rgb(117, 120, 123); font-family: "Arial","sans-serif"; font-size: 11pt;'>Samsung R&D Institute Poland</span><span style='color: rgb(31, 73, 125); font-family: "Arial","sans-serif"; font-size: 9pt;'><!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 3.75pt; margin-left: 0cm; mso-margin-top-alt: 3.75pt;"><span style='color: rgb(117, 120, 123); font-family: "Arial","sans-serif"; font-size: 11pt;'>Samsung Electronics<!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 3.75pt; margin-left: 0cm; mso-margin-top-alt: 3.75pt;"><span style='color: rgb(117, 120, 123); font-family: "Arial","sans-serif"; font-size: 11pt;'>Office +48 22 377 95 59</span><span style='color: rgb(31, 73, 125); font-family: "Arial","sans-serif"; font-size: 9pt;'><!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 3.75pt; margin-left: 0cm; mso-margin-top-alt: 3.75pt;"><span style='color: rgb(117, 120, 123); font-family: "Arial","sans-serif"; font-size: 11pt;'>Cell +48 503 135 021<!--o:p--><!--/o:p--></span></p>
<p class="MsoNormal" style="margin-right: 0cm; margin-bottom: 3.75pt; margin-left: 0cm; mso-margin-top-alt: 3.75pt;"><span style='color: rgb(117, 120, 123); font-family: "Arial","sans-serif"; font-size: 11pt;'><a href="mailto:t.swierczek@samsung.com"><span style="color: blue;">t.swierczek@samsung.com</span></a></span><span style='color: rgb(31, 73, 125); font-family: "Arial","sans-serif"; font-size: 9pt;'><!--o:p--><!--/o:p--></span></p>
</td></tr></tbody></table><p class="MsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'><!--o:p--> <!--/o:p--></span></p>
<table class="cui-div" style="border-collapse: collapse; -ms-word-break: break-all;"><colgroup><col></colgroup><tbody><tr><td><table class="cui-div" style="border-collapse: collapse; -ms-word-break: break-all;"><colgroup><col></colgroup><tbody><tr><td style="padding: 3pt 0cm 0cm; border-top-color: rgb(181, 196, 223); border-top-width: 1pt; border-top-style: solid;"><p class="MsoNormal"><b><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'>From:</span></b><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'> Dev [mailto:dev-bounces@lists.tizen.org] <b>On Behalf Of </b>Parichay Kapoor <br><b>Sent:</b> Friday, April 19, 2019 12:20 PM <br><b>To:</b> dev@lists.tizen.org <br><b>Subject:</b> [Dev] Loading shared objects of application from platform libraries<!--o:p--><!--/o:p--></span></p>
</td></tr></tbody></table></td></tr></tbody></table><p class="MsoNormal"><!--o:p--> <!--/o:p--></p>
<p>Hello<!--o:p--><!--/o:p--></p>
<p> <!--o:p--><!--/o:p--></p>
<p>We are making a new package for tizen along with its c-api for Tizen. One of the features of the package is to run a shared-object .so file provided by the application. (package loads model.so from the application and executes it)<!--o:p--><!--/o:p--></p>
<p><br>However, I am not able to load the shared object from the application in the package.<!--o:p--><!--/o:p--></p>
<p>This is most likely due tizen security policy, which does not allow loading shared objects of application from platform libraries.<!--o:p--><!--/o:p--></p>
<p> <!--o:p--><!--/o:p--></p>
<p>Is there any work around for this?<!--o:p--><!--/o:p--></p>
<p> <!--o:p--><!--/o:p--></p>
<p>Regards<!--o:p--><!--/o:p--></p>
<p>Parichay<!--o:p--><!--/o:p--></p>
<p class="MsoNormal"><!--o:p--><!--/o:p--></p>
<p>_______________________________________________</p>
<p>Dev mailing list</p>
<p>Dev@lists.tizen.org</p>
<p>https://lists.tizen.org/listinfo/dev</p>
<p> </p>
<p> </p>
<p>--</p>
<p><span style="font-size: 9pt;">MyungJoo Ham (함명주), Ph.D.</span></p>
<p><span style="font-size: 9pt;">On-Device Lab, Platform Team, Samsung Research.<br>Cell: +82-10-6714-2858</span></p>
<table id=bannersignimg data-cui-lock="true" namo_lock><tr><td><p> </p>
</td></tr></table><table id=confidentialsignimg data-cui-lock="true" namo_lock><tr><td><p><img style="border: 0px solid currentColor; border-image: none; width: 520px; height: 144px; display: inline-block;" unselectable="on" data-cui-image="true" src="cid:cafe_image_0@s-core.co.kr"> </p>
</td></tr></table></body>
</html><img src='http://ext.samsung.net/mail/ext/v1/external/status/update?userid=myungjoo.ham&do=bWFpbElEPTIwMTkwNTA4MTMyNTUwZXBjbXMxcDJmMWQxMjAzZjVlMjYwOGU3Zjc4YzE5OGZjM2RhMzg5YiZyZWNpcGllbnRBZGRyZXNzPWRldkBsaXN0cy50aXplbi5vcmc_' border=0 width=0 height=0 style='display:none'>