OWNER_SYSTEM_SHARE=owner:system_share
TRUSTED_LABEL=User::Author::1
+RESTRICTION_DBPATH=/var/lib/package-manager
+RESTRICTION_DBNAME=restriction.db
#----------------------------------
# upgrade script for pkgmgr
#----------------------------------
mv $PARSER_DB_PATH $PARSER_BACKUP_DB_PATH
}
+function create_restriction_db(){
+ echo "#create restriction db"
+ local restriction_db=$RESTRICTION_DBPATH/$RESTRICTION_DBNAME
+ mkdir -p $RESTRICTION_DBPATH
+ echo "PRAGMA journal_mode=WAL;
+ CREATE TABLE restriction (uid INTEGER NOT NULL, pkgid TEXT NOT NULL, mode INTEGER NOT NULL, UNIQUE(uid, pkgid));" |
+ sqlite3 $restriction_db
+}
+
function remove_modified_manifest(){
echo "#remove modified manifest"
rm -rf $DEFAULT_PKG_MANIFEST_LOCATION/*
function remove_unregistered_pkg(){
#remove pkg folder which is not registered at pkg db
- rm -rf $OPT_USR_APPS/media-server
- rm -rf $OPT_USR_APPS/org.tizen.indicator_Shm
- rm -rf $OPT_USR_APPS/org.tizen.sound-player
- rm -rf $OPT_USR_APPS/tmp
+ ls $OPT_USR_APPS/ | while read FOLDER
+ do
+ result=$(sqlite3 $PARSER_BACKUP_DB_PATH "SELECT COUNT(*) FROM package_info WHERE package='$FOLDER';")
+ if [ $result != "1" ]
+ then
+ echo "delete unregistered package directory $OPT_USR_APPS/$FOLDER"
+ rm -r $OPT_USR_APPS/$FOLDER
+ fi
+ done
}
function move_user_tpk_ro_files(){
rm -rf $DEFAULT_PKG_APP_LOCATION/$package/shared/cache
}
+function copy_user_tpk_manifest(){
+ local package=$1
+ cp $DEFAULT_PKG_APP_LOCATION/$1/$TIZEN_MANIFEST $DEFAULT_PKG_MANIFEST_LOCATION/$package.xml
+}
+
function move_user_tpk_files(){
echo "#move user TPK's files"
echo "SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='tpk' COLLATE NOCASE;" |
echo "processing user tpk $package..."
move_user_tpk_ro_files $package
move_user_tpk_rw_files $package
+ copy_user_tpk_manifest $package
done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
}
while read package
do
- echo "disable preload tpk, rpm $package..."
+ echo "disable preload pkg $package..."
tpk-backend -D $package --preload
done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
while read package type
do
+ echo "disable user pkg $package..."
+ echo "$type-backend -D $package"
$type-backend -D $package
- done < $DB_RESULT_FILE
+ done < $DB_RESULT_FILE
rm -f $DB_RESULT_FILE
}
rm $PARSER_BACKUP_DB_PATH
}
+function init_user_wgt_packages(){
+ echo "#init user wgt packages"
+ echo ".separator \" \"
+ SELECT package FROM package_info WHERE package_preload='false' COLLATE NOCASE AND package_type='wgt';" |
+ sqlite3 $PARSER_BACKUP_DB_PATH > $DB_RESULT_FILE
+
+ while read package
+ do
+ echo "init user wgt package $package..."
+ wgt-backend -y $package
+ done < $DB_RESULT_FILE
+ rm -f $DB_RESULT_FILE
+}
+
+function migrate_external_info(){
+ echo "#migrate external storage info"
+ echo "ATTACH DATABASE '$PARSER_BACKUP_DB_PATH' AS backup;
+ UPDATE package_info set installed_storage='installed_external' WHERE package IN (SELECT package FROM backup.package_info WHERE installed_storage='installed_external' COLLATE NOCASE);" |
+ sqlite3 $PARSER_DB_PATH
+}
+
backup_db
+create_restriction_db
+
remove_modified_manifest
remove_unregistered_pkg
move_user_wgt_files
initdb
+init_user_wgt_packages
remove_files_for_deleted_packages
move_preload_pkg_userdata
disable_preload_pkg
disable_user_pkg
+migrate_external_info
remove_backup_db