From 31451842a835f0947335363efb695fd4981fd0a1 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Tue, 25 Jul 2017 14:59:13 +0900 Subject: [PATCH] Skip checking reference when installing preload pkgs Requires: - https://review.tizen.org/gerrit/139436 Change-Id: I44eae5ac3c05fe14fe0bceb084bf1f3e06456515 Signed-off-by: Sangyoon Jang --- src/install_preload_pkg.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/install_preload_pkg.c b/src/install_preload_pkg.c index 58439e5..8fda943 100644 --- a/src/install_preload_pkg.c +++ b/src/install_preload_pkg.c @@ -55,7 +55,7 @@ #define WGT_RW_DIR tzplatform_mkpath(TZ_SYS_RO_APP, ".preload-rw-wgt") static int _install_preload_pkg(const char *backend, const char *directory, - bool readonly) + bool readonly, bool skip_reference_check) { DIR *dir; struct dirent *file_info; @@ -89,6 +89,9 @@ static int _install_preload_pkg(const char *backend, const char *directory, if (pid == 0) { execl(backend, backend, "-i", file_path, readonly ? "--preload" : "--preload-rw", + skip_reference_check ? + "--skip-check-reference" : + "", (char *)NULL); } else if (pid < 0) { _E("failed to fork and execute %s!", backend); @@ -135,22 +138,30 @@ int main(int argc, char *argv[]) char err_msg[BUFSZE]; int handle = -1; int ret; + bool skip_reference_check = false; if (!_is_authorized(getuid())) { _E("You are not an authorized user!"); return -1; } - if (_install_preload_pkg(TPK_BACKEND_CMD, TPK_DIR, true) < 0) + if (argc > 1 && !strcmp(argv[1], "--skip-reference-check")) + skip_reference_check = true; + + if (_install_preload_pkg(TPK_BACKEND_CMD, TPK_DIR, true, + skip_reference_check) < 0) goto error; - if (_install_preload_pkg(WGT_BACKEND_CMD, WGT_DIR, true) < 0) + if (_install_preload_pkg(WGT_BACKEND_CMD, WGT_DIR, true, + skip_reference_check) < 0) goto error; - if (_install_preload_pkg(TPK_BACKEND_CMD, TPK_RW_DIR, false) < 0) + if (_install_preload_pkg(TPK_BACKEND_CMD, TPK_RW_DIR, false, + skip_reference_check) < 0) goto error; - if (_install_preload_pkg(WGT_BACKEND_CMD, WGT_RW_DIR, false) < 0) + if (_install_preload_pkg(WGT_BACKEND_CMD, WGT_RW_DIR, false, + skip_reference_check) < 0) goto error; return 0; -- 2.7.4