Backup and Restore Problem
Hi Experts,
I am testing backup and restore. I followed steps from link [URL="http://wiki.forum.nokia.com/index.php/TSS000750_-_Enabling_backup_and_restore_for_installed_C%2B%2B_applications"]http://wiki.forum.nokia.com/index.php/TSS000750_-_Enabling_backup_and_restore_for_installed_C%2B%2B_applications[/URL] and link [URL="http://wiki.forum.nokia.com/index.php/How_to_make_an_application_backup_and_restore"]http://wiki.forum.nokia.com/index.php/How_to_make_an_application_backup_and_restore[/URL]
Steps I did,
1) Installed application GUI and EXE. Run it
2) Took a complete backup
3) Uninstalled Application both GUI and EXE.
4) Restored from backup
5) Application restored and I can run GUI app perfectly fine
>>>>6) My GUI app actually starts EXE on a menu command and I am not able to start EXE.<<<
I checked memory card in data mode and my EXE is restored in sys/bin however when I try to start app. I get an error -1 (not found) with RApaLsSession:StartApp
[CODE] TThreadId app_threadid;
CApaCommandLine* cmdLine;
cmdLine=CApaCommandLine::NewLC();
cmdLine->SetExecutableNameL(_L("MyExeApp.exe"));
cmdLine->SetCommandL( EApaCommandRun );
cmdLine->SetOpaqueDataL(_L8("1"));
RApaLsSession ls;
User::LeaveIfError(ls.Connect());
TInt err = ls.StartApp(*cmdLine,app_threadid);
ls.Close();
CleanupStack::PopAndDestroy(); // cmdLine
TBuf<128> buf;
buf.AppendNum((TInt64)err);
CEikonEnv::InfoWinL(_L("Error in start App: "),buf);[/CODE]
This code works fine without backup-restore.
I am not able to understand why I get KErrNotFound when application is present in sys/bin of memory card? and Executable file for GUI app is also in same folder but that works fine.
Few More Details:
I install both GUI and EXE via single package/sis file but since these 2 apps have difference uid so I have 2 backup_registration.xml each kept in their private folder
Please help
Re: Backup and Restore Problem
Re: Backup and Restore Problem :: Call Audio Control Plugin
Hi Experts,
I found the problem. Problem is happening because my application includes callAudioControl_31_0x10207bd2.SISX for FP1 and callAudioControl_32_0x10207bd2.SISX for FP2.
Looks like This pluging is not build with backup_registrations.xml. When doing backup/restore CallAudioControl is not backedup/restored. So after restore my app doesn't start. After restore if I install CAC plugin again it works fine.
[COLOR="Blue"]SymbianSigned has a requirement of backup restore and we have to go through symbiansigned because we are using non-user granted capabilities.
It will be very helpful if some official Nokia people (Like Mr. Ltomuta or Nokia Ron etc) can guide on this or update plugin with backup/restore functionality.
[/COLOR]
Best Regards
Gailu
Re: Backup and Restore Problem
Hi gailu,
This is a known issue and it applies to many/all of our sis files but we will try to ensure the backup support from now on.
A workaround for this problem is to add the appropriate registration file yourself, from your own package by adding the following line to the PKG next to the one that embedds the sis:
[CODE]
; embed my_sis_file.sisx
@"my_sis_file.sisx", (0x[COLOR="blue"]UID3UID3[/COLOR])
; fix backup support for my_sis_file.sisx
"BinaryBackup.xml" - "!:\private\[COLOR="Red"]10202D56[/COLOR]\import\packages\[COLOR="Blue"]UID3UID3[/COLOR]\backup_registration.xml"
[/CODE]
where UID3 in in your case 10207bd2 and the *.xml file is the standard system backup:
[CODE]<?xml version="1.0" standalone="yes" ?>
<backup_registration>
<system_backup />
</backup_registration>
[/CODE]
Details about how this works in SDK's documentation and in [URL="http://wiki.forum.nokia.com/index.php/TSS001073_-_Backup_of_add-on_DLLs"]TSS001073 - Backup of add-on DLLs[/URL]
Re: Backup and Restore Problem
Dear Mr. Ltomuta,
Excellent!
Thanks you very much for your help.
Thanks Again
Gailu
Re: Backup and Restore Problem
Hi Lucian,
I am reopening this thread.
Your proposed solution worked perfect earlier when I reported this problem back in Feb. Now I am facing another problem in the same area.
I had developed 2 apps. Both uses CallAudioControl plugin and in package file I use following line to make sure that CallAudioControl is backedup properly.
[QUOTE]"BinaryBackup.xml" - "!:\private\10202D56\import\packages\UID3UID3\backup_registration.xml"[/QUOTE]
Both application works fine independently. However here is the problem
If app1 is already installed and I try to install app2 I get an installation "update error" becuase of this backup_registration.xml. If app1 is already installed I can only install app2 when I comment above mentioned line and rebuild app2.
Use Case:
1. If customer may install any one app, in which case for proper back back_registration.xml for CAC should be installed by each individual app.
2. If customer install both apps then second app won't install
3. Customer may have CAC already installed due some other third party app and if that third party app includes above line for backup. My application won't install.
Question: How do I resolve this? Is it possible to check during installation that [QUOTE]"!:\private\10202D56\import\packages\UID3UID3\backup_registration.xml"[/QUOTE] already exist so do not try to install?
There is a very strict procedure on OVI QA so they won't accept if they see update error. If I skip CallAudioControl back-restore then there is problem with symbian signing compliance.
I tried below but still get update error but if comment line altogether then it works fine.
[QUOTE]if exists("!:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
else
"..\sis\cac_backup_registration.xml" -"!:\private\10202D56\import\packages\10207bd2\backup_registration.xml"
endif
[/QUOTE]
I am stuck. Could you please help.
Any help is appreciated.
Re: Backup and Restore Problem
I would expect that the following should work just fine:
[CODE]
if NOT exists("c:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
"..\sis\cac_backup_registration.xml" -"c:\private\10202D56\import\packages\10207bd2\backup_registration.xml"
endif
[/CODE]
Re: Backup and Restore Problem
Hi Lucian,
That didn't work. But You gave me pointer to get a workaround. Thank you very much
I am not sure if this file will always be in C: drive so following seems to be working. I know I added so many unnecessary drive letter which I will remove may be after h:
[QUOTE]if exists("c:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("d:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("e:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("f:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("g:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("h:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("i:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("j:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("k:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("l:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("m:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("n:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("o:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("p:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("q:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("r:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("s:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("t:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("u:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("v:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("w:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("x:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("y:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
elseif exists("z:\private\10202D56\import\packages\10207bd2\backup_registration.xml")
else
;"..\sis\cac_backup_registration.xml" -"!:\private\10202D56\import\packages\10207bd2\backup_registration.xml"
endif
[/QUOTE]
Re: Backup and Restore Problem
Actually this brings forht anoter question: what will happen when one of the applications is uninstalled? The file is removed and the remaining application will not have backup support for the library anymore.
I'm afraid I don't see a clean solution at this moment.
Re: Backup and Restore Problem
Hi Lucian,
You abosultely right pointing to the major problem. My instllation problem solved but now I have uninstallation problem.
What I tried.
1. Installed App1 (backp_registration file provided for CAC)
2. Installed App2 (didn't copy backp_registration file with if exists())
3. Uninstalled App1
---Now backup restore does not work for App2---
4. backup
5. Unistalled App2
6. Restore
In step 6 restore didn't restore CAC plugin becuase in step3 backup_registration.xml for CAC is removed.
Any pointer will help to look for a workaround.
Re: Backup and Restore Problem
Hi Lucian,
Could this be documented as a known problems that we can give reference to in release notes (known limitation) when submit for symbian signed.
BTW, I believe that the clean solution to the problem is that plugin sis itself is responsible for back_registration.xml.
Third party application will conflict that use same plugin (having sis file). If they do provide backup-restore for plugin then user will encounter update error and if use workaround as discussed yesterday they will face backup-restore problem.
[B]Ovi QA is very strict and they just look for end user experience, no matter is there is a known problem or not. Is there any chance that plugin sis file is updated with including backup_registration.xml? I believe it must not require retesting of plugin functionality because code need not to be touched just need to run makesis withupdated pkg file[/B]
Your comments are appreciated.
Re: Backup and Restore Problem
Re: Backup and Restore Problem
The upcoming extension plug-in release will contain an updated CAC release with backup support added. It will be available for S60 3.1+ and will fix this entire problem.
Until then I can only think of one possible solution which involves your application having a copy of the CAC sis file in its data files and use that whenever it is detected to be missing, e.g. after a backup.
Re: Backup and Restore Problem
Dear Lucian,
Thank you very much for the details. We will wait for the new plugin release.
Thanks Again