I was wondering if the following scenario was possible, and if so, how I'd go about doing it?
I install an application onto the phone via an SIS file. This ends up on \system\apps\myapp
At some point later, I want to install additional files into the same directory, \system\apps\myapp, and/or replace an existing file in there with an updated version. During this phase, any other files that aren't overwritten should be left alone.
Can this be done? And if so, how? Is it via a specially formatted SIS? What kind of application ID should I be using in such a SIS file?
I think that this can be done using the TYPE option of the package header of a .pkg file.
I believe that the package header is usually the first line in the .pkg file. The last component of the header allows you to set the TYPE of the sis file that you wish to create. Normally this is set to SISAPP, but there are other options. Have a look at the .pkg file format description in the SDK documentation. It is located at the following location on my SDK.
(Symbian OS v6.1 Edition for C++ » Tools And Utilities » Installation Reference » Package file format .pkg)
I think the options SISPATCH and SISUPGRADE may suit your purpose. Both of these options allow you to create a new sis file that modifies a previously installed app. However, there is a difference between them. A patch can be removed, whereas an upgrade cannot. Now I'm not sure what happens if a patch, that modifies an exisiting file, is removed. Is the original version of the file restored? If not then removal of the patch could render your application unstable. I guess you'll have to play around with these two options and see which one suits you best.
So to summarise, create a new .pkg file, use the same UID that is employed by your original app, and then set the TYPE field in the package header to SISPATCH or SISUPGRADE. I think you can even update the version number of your application this way.