I have a basic question, and assumed the answer is yes but I cannot find very explicit languages in Symbian OS security doc for this:
Is is true that a native app in C++ in Symbian cannot access data written by a MIDlet in Java ME in a Symbian 9.x device?
I am not sure how application IDs are associated for the OS to determine the privacy and capability across two programming environments.
An application in SIS / C++ is identified by SID. When Java application MIDlet is used, MIDlet is up to the Java ME (AMS) to recognize - signed jar file is authenticated and then traced.
(1) Does Symbian OS treat Java ME entirely as one process /or application? If so, then it delegates access permission to the Java ME, and it is up to Java ME / AMS to do next level of file protection in its own Java ME meta private area.
In other words, when a MIDlet writes a file to system, is the file associated with entire Java ME from OS's perspective? I assume that some way Java ME passes the MIDlet ID to Symbian OS so that it knows it is from a distinct app. Two MIDlets would be considered different apps in OS level, and different from any other native application in C++.
(2) When a MIDlet writes data to Java RMS in non-shared mode with other MIDlets, how does it prevent a native application to read the RMS data? RMS data seemed to locate in DBMS cage (DBMS server private area). I assume that a native application in C++ with UserReadData capability can access DBMS, reading the RMS data, and deserialize to acquire any secret that a MIDlet writes. This is similar to contact database access approach. I am looking for preventions that a native app cannot read data written by a MIDlet's in either file system (\private\xxx) or RMS.
Thanks for confirmations on the questions and reference documents that explicitly talk about the cross environment protection.

Reply With Quote

