--- /dev/null
+#!/bin/sh
+#----------------------------------
+# upgrade script for pkgmgr
+#----------------------------------
+
+#backup previous db
+mv /opt/dbspace/.pkgmgr_parser.db /opt/dbspace/.pkgmgr_parser_backup.db
+
+#copy user app's manifest file and change owner, smack label
+sqlite3 /opt/dbspace/.pkgmgr_parser_backup.db "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='tpk'" |
+awk '{
+system("cp --no-preserve=ownership /opt/usr/apps/" $1 "/tizen-manifest.xml /opt/usr/home/owner/.applications/manifest/" $1 ".xml")
+system("chown owner:users /opt/usr/home/owner/.applications/manifest/" $1 ".xml")
+system("chsmack -a User::Home /opt/usr/home/owner/.applications/manifest/" $1 ".xml")
+system("rm /opt/share/packages/" $1 ".xml")
+}'
+
+#remove pkg folder which is not registered at pkg db
+rm -r /opt/usr/apps/media-server
+rm -r /opt/usr/apps/org.tizen.indicator_shm
+rm -r /opt/usr/apps/org.tizen.sound-player
+rm -r /opt/usr/apps/tmp
+
+#remove wgt app's xml at /opt/share/packages before pkg_initdb
+sqlite3 /opt/dbspace/.pkgmgr_parser_backup.db "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='wgt'" |
+awk '{system("rm /opt/share/packages/" $1 ".xml")}'
+
+pkg_initdb
+
+#delete userdata of packages which are removed from 3.0
+sqlite3 /opt/dbspace/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
+SELECT package from backup.package_info WHERE package_preload='true' COLLATE NOCASE AND
+package NOT IN (SELECT package FROM package_info)" |
+awk '{ system("rm -r " "/opt/usr/apps/" $1)}'
+
+#move preload package's userdata
+sqlite3 /opt/dbspace/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
+SELECT package from backup.package_info WHERE package IN (SELECT package FROM package_info)" |
+awk '{
+system("cp -r -f --no-preserve=ownership /opt/usr/apps/" $1 "/cache/ /opt/usr/home/owner/apps_rw/" $1)
+system("chown -R owner:users /opt/usr/home/owner/apps_rw/" $1 "/cache")
+system("chsmack -r -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/cache")
+system("cp -r -f --no-preserve=ownership /opt/usr/apps/" $1 "/data/ /opt/usr/home/owner/apps_rw/" $1)
+system("chown -R owner:users /opt/usr/home/owner/apps_rw/" $1 "/data")
+system("chsmack -r -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/data")
+system("cp -r -f --no-preserve=ownership /opt/usr/apps/" $1 "/shared/ /opt/usr/home/owner/apps_rw/" $1)
+system("chown -R owner:users /opt/usr/home/owner/apps_rw/" $1 "/shared")
+system("chsmack -r -a User::Home /opt/usr/home/owner/apps_rw/" $1 "/shared")
+system("chsmack -r -a User::Pkg::" $1 "::SharedRO /opt/usr/home/owner/apps_rw/" $1 "/shared/data")
+system("rm -r /opt/usr/apps/" $1)
+}'
+
+#check preload package which is disabled and enable it
+sqlite3 /opt/dbspace/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
+SELECT package from backup.package_info WHERE package_preload='true' COLLATE NOCASE AND
+package_disable='true' COLLATE NOCASE AND
+package IN (SELECT package from package_info)" |
+awk '{ system("tpk-backend -D " $1 " --preload")}'
+
+#copy userdata for userapp
+sqlite3 /opt/dbspace/.pkgmgr_parser_backup.db "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE" |
+awk '{
+system("mv /opt/usr/apps/" $1 "/ /opt/usr/home/owner/apps_rw/")
+system("chown -R owner:users /opt/usr/home/owner/apps_rw/" $1)
+system("chsmack -r -a User::Home /opt/usr/home/owner/apps_rw/" $1)
+system("chsmack -r -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/cache")
+system("chsmack -r -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/data")
+system("chsmack -r -a User::Pkg::" $1 "::RO /opt/usr/home/owner/apps_rw/" $1 "/bin")
+system("chsmack -r -a User::Pkg::" $1 "::RO /opt/usr/home/owner/apps_rw/" $1 "/lib")
+system("chsmack -r -a User::Pkg::" $1 "::RO /opt/usr/home/owner/apps_rw/" $1 "/res")
+system("chsmack -r -a User::Pkg::" $1 "::SharedRO /opt/usr/home/owner/apps_rw/" $1 "/shared/data")
+system("chsmack -r -a User::Author::1 /opt/usr/home/owner/apps_rw/" $1 "/shared/trusted")
+}'
+
+#userdb init
+pkg_initdb --uid 5001
+
+#manifest direct install for user wgt apps
+sqlite3 /opt/dbspace/.pkgmgr_parser_backup.db "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='wgt'" |
+awk '{
+system("wgt-backend -y " $1 " -u 5001")
+system("mkdir /opt/usr/home/owner/apps_rw/" $1 "/cache")
+system("chown owner:users /opt/usr/home/owner/apps_rw/" $1 "/cache")
+system("chsmack -a User::Pkg::" $1 " /opt/usr/home/owner/apps_rw/" $1 "/cache")
+}'
+
+#disable user package
+sqlite3 /opt/dbspace/user/5001/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
+SELECT package FROM backup.package_info WHERE package_preload='false' COLLATE NOCASE AND
+package_disable='true' COLLATE NOCASE AND package_type='tpk' AND
+package IN (select package from package_info)" |
+awk '{ system("tpk-backend -D " $1 " -u 5001")}'
+
+sqlite3 /opt/dbspace/user/5001/.pkgmgr_parser.db "ATTACH DATABASE '/opt/dbspace/.pkgmgr_parser_backup.db' AS backup;
+SELECT package FROM backup.package_info WHERE package_preload='false' COLLATE NOCASE AND
+package_disable='true' COLLATE NOCASE AND package_type='wgt' AND
+package IN (select package from package_info)" |
+awk '{ system("wgt-backend -D " $1 " -u 5001")}'
+
+#remove backups
+rm -r /opt/dbspace/.pkgmgr_parser_backup.db