Modify FOTA script: privacy DB should store user settable privacy packages only 85/160885/3
authorYunjin Lee <yunjin-.lee@samsung.com>
Mon, 20 Nov 2017 10:05:15 +0000 (19:05 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Mon, 20 Nov 2017 10:44:31 +0000 (19:44 +0900)
Change-Id: I12773eacba17c7417af8fc168d0c43b80377df66
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
upgrade/201.security_upgrade.sh
upgrade/711.security_privacy_package_migration.sh

index 709bcf54838105b343d1c98681650e3013e749cd..bb1ebd84023ea91cbd60ff4b5d15347a279db7cd 100644 (file)
@@ -36,7 +36,7 @@ PRIVILEGE_CHECHER_PRIVACY_DB_JOURNAL=/opt/dbspace/.privacy.db-journal
 
 touch $PRIVILEGE_CHECKER_PRIVACY_DB
 touch $PRIVILEGE_CHECHER_PRIVACY_DB_JOURNAL
-sqlite3 $PRIVILEGE_CHECKER_PRIVACY_DB "CREATE TABLE PRIVACY_PACKAGE (PKG_ID TEXT not null, UID NUMERIC not null, PRIVACY_NAME TEXT not null, PRIVILEGE_NAME TEXT not null, IS_CRITICAL NUMERIC not null, API_VERSION TEXT not null, IS_PRIVACY_REQUESTABLE NUMERIC not null, UNIQUE(PKG_ID, UID, PRIVILEGE_NAME));"
+sqlite3 $PRIVILEGE_CHECKER_PRIVACY_DB "CREATE TABLE PRIVACY_PACKAGE (PKG_ID TEXT not null, UID NUMERIC not null, PRIVACY_NAME TEXT not null, PRIVILEGE_NAME TEXT not null, IS_CRITICAL NUMERIC not null, API_VERSION TEXT not null, UNIQUE(PKG_ID, UID, PRIVILEGE_NAME));"
 
 chmod 664 $PRIVILEGE_CHECKER_PRIVACY_DB
 chmod 664 $PRIVILEGE_CHECHER_PRIVACY_DB_JOURNAL
index 0511a23c8db2e4208b01e2ac1a1987414be1f9ab..07071c6b2f2b4a73f7ec7e235fc1037b8971a3ff 100644 (file)
@@ -2,8 +2,11 @@
 
 PATH=/bin:/usr/bin:/sbin:/usr/sbin
 
+. /etc/tizen-platform.conf
+
 PRIVACY_DB=/opt/dbspace/.privacy.db
 PKGMGR_DB=/opt/dbspace/.pkgmgr_parser.db
+globalapp_uid=`cat /etc/passwd | grep $TZ_SYS_GLOBALAPP_USER | cut -d ":" -f3`
 
 CORE_PRIVILEGE_INFO_DB=/usr/share/privilege-manager/.core_privilege_info.db
 
@@ -13,10 +16,27 @@ for i in $privilege_list
 do
        pkg_list=`sqlite3 $PKGMGR_DB "select distinct package from package_privilege_info where privilege='$i'"`
        privacy_name=`sqlite3 $CORE_PRIVILEGE_INFO_DB "select privacy_name from privilege_info where privilege_name='$i'"`
+       privacy_id=`sqlite3 $CORE_PRIVILEGE_INFO_DB "select privacy_id from privacy_info where privacy_name='$privacy_name'"`
        for j in $pkg_list
        do
-               api_version=`sqlite3 $PKGMGR_DB "select package_api_version from package_info where package='$j'"`
-               sqlite3 $PRIVACY_DB "insert or ignore into privacy_package values ('$j', 376, '$privacy_name', '$i', 0, '$api_version')"
+               privacy_option_list=`sqlite3 $CORE_PRIVILEGE_INFO_DB "select privacy_option from privacy_whitelist where pkg_id='$j' and settable='0'"`
+               for k in $privacy_option_list
+               do
+                       privacy_option=`echo ${k:$privacy_id:1}`
+                       if [ "$privacy_option" == "0" ]; then
+                               api_version=`sqlite3 $PKGMGR_DB "select package_api_version from package_info where package='$j'"`
+                               sqlite3 $PRIVACY_DB "insert or ignore into privacy_package values ('$j', $globalapp_uid, '$privacy_name', '$i', 0, '$api_version')"
+                       fi
+               done
+               privacy_option_list=`sqlite3 $CORE_PRIVILEGE_INFO_DB "select privacy_option from privacy_whitelist where pkg_id='$j' and settable='1'"`
+               for k in $privacy_option_list
+               do
+                       privacy_option=`echo ${k:$privacy_id:1}`
+                       if [ "$privacy_option" == "1" ]; then
+                               api_version=`sqlite3 $PKGMGR_DB "select package_api_version from package_info where package='$j'"`
+                               sqlite3 $PRIVACY_DB "insert or ignore into privacy_package values ('$j', $globalapp_uid, '$privacy_name', '$i', 0, '$api_version')"
+                       fi
+               done
        done
 done