Add missing smack label setting for preloaded app (#286) accepted/tizen_6.0_unified_hotfix tizen_6.0_hotfix accepted/tizen/6.0/unified/20201030.120828 accepted/tizen/6.0/unified/hotfix/20201103.050913 accepted/tizen/unified/20201005.101327 submit/tizen/20201005.025011 submit/tizen_6.0/20201029.205103 submit/tizen_6.0_hotfix/20201102.192503 submit/tizen_6.0_hotfix/20201103.114803 tizen_6.0.m2_release
author조웅석/Common Platform Lab(SR)/Principal Engineer/삼성전자 <ws77.cho@samsung.com>
Mon, 28 Sep 2020 00:43:42 +0000 (09:43 +0900)
committer이형주/Common Platform Lab(SR)/Staff Engineer/삼성전자 <leee.lee@samsung.com>
Mon, 28 Sep 2020 00:43:42 +0000 (09:43 +0900)
In the case of preload app installation, the smack label may not be changed automatically.
This patch add that kind of missing smack label setting

NativeLauncher/installer-plugin/prefer_nuget_cache_plugin.cc

index 2e80c2c..f241865 100644 (file)
@@ -120,6 +120,7 @@ static bool copyAssemblyCreateSymlink(std::string binPath, std::string tacDir, s
                                        }
                                }
                                bf::create_symlink(concatPath(tac_version_dir, assembly), concatPath(tacDir, assembly));
+                               copySmackAndOwnership(tacDir, concatPath(tacDir, assembly), true);
 
                                if (!removeFile(concatPath(binPath, assembly))) {
                                        _ERR("Failed to remove of %s", assembly.c_str());
@@ -137,6 +138,7 @@ static bool copyAssemblyCreateSymlink(std::string binPath, std::string tacDir, s
                        std::string assembly = nuget_package_assembly.substr(nuget_package_assembly.rfind(':') + 1);
                        if (!strcmp(nuget_package.c_str(), nugetPackage.c_str())) {
                                copyFile(concatPath(tac_version_dir, assembly), concatPath(binPath, assembly));
+                               copySmackAndOwnership(binPath, concatPath(binPath, assembly));
                                removeFile(concatPath(tacDir, assembly));
                        }
                }
@@ -173,12 +175,14 @@ static void copyLibraryCreateSymlink(const char* pkgId, std::vector<std::string>
                        continue;
                }
                bf::create_symlink(concatPath(tlcDir, fileSha), library);
+               copySmackAndOwnership(getBaseName(library), library, true);
 
                char *sql = sqlite3_mprintf("INSERT INTO TLC (PKGID, LIBRARY) VALUES (%Q, %Q);", pkgId, fileSha.c_str());
                if (!insertDB(tlc_db, sql)) {
                        _ERR("Sqlite insert error");
                        sqlite3_free(sql);
                        copyFile(concatPath(tlcDir, fileSha), library);
+                       copySmackAndOwnership(getBaseName(library), library);
                        if (fileCopied) {
                                removeFile(concatPath(tlcDir, fileSha));
                        }